ThorneLabs

Solaris Replicate ZFS Volume with zfs send and zfs receive

• Updated January 10, 2019


ZFS provides a mechanism to migrate or backup ZFS pools from one server to another using SSH.

For example, pretend you have a large ZFS pool to migrate from one server to another, but your maintenance window to perform the copy is very small. You could run the initial ZFS replication, which will take a considerable amount of time, then when your maintenance window opens, run the ZFS replication again to only copy everything that changed (the incrementals). This will take much less time and hopefully fit within your maintenance window.

The following commands show how to start the initial replication and then the replicate incrementals.

Initial ZFS Replication

zfs snapshot pool1/iscsi_server@initial

zfs send pool1/iscsi_server@initial | ssh root@thumper2 zfs receive pool1/iscsi_server

Replicate Incrementals

You will have to use zfs receive -F to force the transfer if the destination volume is modified.

zfs snapshot pool1/iscsi_server@new

zfs send -i pool1/iscsi_server@initial pool1/iscsi_server@new | ssh root@thumper2 zfs receive pool1/iscsi_server

References