ZFS: Restore a filesystem from a snapshot backup
Posted by Quinn McHenry in Solaris system administration
ZFS snapshots provide point-in-time backups of filesystems which utilize minimal disk space and CPU load. This, combined with the fact that you can make billions of billions of snapshots, makes taking frequent backups of filesystems a realistic possibility. This recipe describes restoring a filesystem from a snapshot.
To restore a snapshot called techrx/home/qmchenry@060614 (the filesystem in this case is techrx/home/qmchenry and the snapshot name is 060614), use the command:
zfs restore techrx/home/qmchenry@060614
This is a great tool which has many uses. My favorite is for installing complex application suites like JES (Sun’s Java Enterprise System). These installations typicaly consist of several separate applications (directory, web, application, and mail servers) which all play together, sometimes not nicely. A little typo during the configuration can cause hours of cleanup which usually is avoided by reinstalling everything. I’ve played tricks with ufsdumping the filesystem after a clean install and before configuration begins, then restoring from that copy if need be.
ZFS snapshots make this substantially easier. Multiple snapshots can be taken quickly and easily as the progress continues and it is as easy as the one simple command above to rollback to any of those snapshot milestones (which can be conveniently named with something meaningful: blankslate, ldapconfig, etc.). Restoring a snapshot is fast, much quicker than restoring a ufsdump. Once you are in production and the snapshots are no longer needed, they can be easily deleted freeing up the disk space they do use.
About Quinn McHenry
View more articles by Quinn McHenry
The Conversation
Follow the reactions below and share your own thoughts.




October 15, 2010 at 6:44 am, Snow said:
I realise this article is now 4 years old and I’m only familiar with zfs since 2009, the option for restoring a snapshot is “rollback” these days, but same syntax.