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

If you found this post useful and would like to help support this site - and get something for yourself - sign up for any of the services listed below through the provided affiliate links. I will receive a referral payment from any of the services you sign-up for.

Get faster shipping and more with Amazon Prime: About to order something from Amazon but want to get more value out of the money you would normally pay for shipping? Sign-up for a free 30-day trial of Amazon Prime to get free two-day shipping, access to thousands of movies and TV shows, and more.

Thanks for reading and take care.