Post a Comment
http://lwn.net/SubscriberLink/362500/6cc5cd840f5e0519/ (from behind the lwn.net paywall, for my OSnews friends)
The OpenSolaris source code is available. I dont know if IPS package system code is available?
Anyway, this rocks. Hard. Before every install, it gets snapshot. And each snapshot are shown in GRUB. I just choose which snapshot I want to boot into.
Also, Nexenta has this. It is Ubuntu, but with OpenSolaris kernel. You have ZFS, DTrace, etc with Ubuntu userland.
There's also experimental support in FreeBSD for the Boot Environment auto-snapshot feature for OS upgrades. Before an OS upgrade, a new BE is created, and you get a menu at boot that lets you select which BE to use. To "rollback", just boot into the previous BE and delete the erroneous one.
It's not part of FreeBSD yet, but the patches and docs are out there to make it work: http://anonsvn.h3q.com/projects/freebsd-patches/browser/manageBE
And if one puts /var and /usr/local onto ZFS filesystems, one can manually snapshot /var and /usr/local before installing/upgrading apps. If something goes wrong, just rollback to the previous snapshot and try again. (Technically, you'd want to put /var/db/pkg onto a separate ZFS filesystem as that is what gets updated during a port/package install, and not all of /var.) It's not automatic, but it's possible.
Edited 2009-11-23 21:56 UTC
Last time I checked, Btrfs did not have support for deleting snapshots or subvolumes (which are the same to Btrfs). I haven't been following Btrfs development, so it may now be implemented. It seems like that would be required for this to be very useful...
Also, Btrfs snapshots are per subvolume. Why not have separate subvolumes for /, /boot, and each /home/some_user? This would allow system rollbacks without affecting user data, and would make it possible to allow each user to make snapshots of their own home directory.
Also, does GRUB2 support Btrfs? If it does, next time I install Ubuntu, I'm going use the idea above and maybe write some scripts to implement this with APT.



