Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

alt

Daniel Nashed

Ubuntu USB Stick Day 2 - Using free space to install ZFS

Daniel Nashed – 20 January 2026 20:32:36

Yesterday I have been using /dev/shm to have disk storge for containerd and Docker.
Today I found a way to get some space from the persistent partition /cow and create a ZFS pool.

RUFS can't make this adjustment. But there is a simple tick:


Just create the USB image with as much of persistent storage as possible.
Then use GParted on Linux to make the partition smaller and create another partition.

After that I booted from the USB stick and did all the installation again using ZFS for Docker.


New disk layout


df -h

Filesystem       Size  Used Avail Use% Mounted on

/dev/sda1        5.8G  5.3G  529M  92% /cdrom

/cow              30G  5.8G   22G  21% /

tmpfs             16G  8.0K   16G   1% /dev/shm

tmpfs             16G  8.0K   16G   1% /tmp

tank              21G  128K   21G   1% /tank

tank/local        23G  1.4G   21G   7% /local

tank/containerd   21G  384K   21G   1% /tank/containerd

tank/docker       21G  3.3M   21G   1% /tank/docker


ZFS Filesystems


zfs list

NAME                         USED  AVAIL  REFER  MOUNTPOINT

tank                        2.81G  20.9G   104K  /tank

tank/containerd              272K  20.9G   272K  /tank/containerd

tank/docker                 1.41G  20.9G  3.18M  /tank/docker

tank/local                  1.39G  20.9G  1.39G  /local


That's pretty cool. But the original setup was a lot faster. Now I am bound to the USB stick performance.
Before I was just using RAM. At runtime we could still put the Domino data disk into tmpfs for testing ...



Installation notes



# Create zpool

wipefs -a /dev/sda3
zpool create -o ashift=12 -o autotrim=on tank /dev/sda3

zfs set compression=lz4 tank

zfs set atime=off tank

zfs set xattr=sa tank


# Create file-systems

zfs create -o mountpoint=/local tank/local
zfs create -o mountpoint=/tank/docker tank/docker

zfs create -o mountpoint=/tank/containerd tank/containerd


# Link storage location for containerd to the new location

ln -s /tank/containerd /var/lib/containerd

# Ensure Docker uses ZFS and the file-system created

mkdir -p /etc/docker

vi /etc/docker/daemon.json

{

 "data-root": "/tank/docker",

 "storage-driver": "zfs"

}


# Start Docker and containerd

systemctl start containerd
systemctl start docker

systemctl start docker.socket



Links

    Archives


    • [HCL Domino]
    • [Domino on Linux]
    • [Nash!Com]
    • [Daniel Nashed]