How to add swap to ZFS disk?

If your swap device is in use, then you might not be able to delete it. Check to see if the swap area is in use. For example:

$ swap -l
swapfile                 dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 182,2         8  4194296  4194296

In the above output, blocks == free, so the swap device is not actually being used.

If the swap area is not is use, remove the swap area. For example:

$ swap -d /dev/zvol/dsk/rpool/swap

Confirm that the swap area is removed.

$ swap -l
No swap devices configured

Resize the swap volume. For example:

$ zfs set volsize=1G rpool/swap

One also has to ensure that the referenced swap is reserved from the pool, otherwise when it comes time to swap there might not be enough memory:

$ zfs set refreservation=1G rpool/swap

Activate the swap area.

$ swap -a /dev/zvol/dsk/rpool/swap

$ swap -l
swapfile                 dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 182,2         8  2097144  2097144

More info at: ZFS Troubleshooting Guide


If your swap is active, you can add an additional swap volume.

zfs create -V 10G rpool/swap2

swap -a /dev/zvol/dsk/rpool/swap2