pub enum SnapMode {
Zfs,
Btrfs,
External,
}Expand description
§Inner Operations
assume:
- root volume of zfs is
zfs - root volume of btrfs is
/btrfs - business data is stored in
<root volume>/data - target block height to recover is 123456
§snapshot
# zfs filesystem
zfs destroy zfs/data@123456 2>/dev/null
zfs snapshot zfs/data@123456
# btrfs filesystem
rm -rf /btrfs/data@123456 2>/dev/null
btrfs subvolume snapshot /btrfs/data /btrfs/data@123456§rollback
# zfs filesystem
zfs rollback -r zfs/data@123456
# btrfs filesystem
rm -rf /btrfs/data || exit 1
btrfs subvolume snapshot /btrfs/data@123456 /btrfs/dataVariants§
Zfs
Available on some Linux distributions and FreeBSD
- Ubuntu Linux
- Gentoo Linux
- FreeBSD
- …
Btrfs
Available on most Linux distributions, but its user experience is worse than zfs
External
Rely on an external independent process
Implementations§
Trait Implementations§
impl Copy for SnapMode
Auto Trait Implementations§
impl Freeze for SnapMode
impl RefUnwindSafe for SnapMode
impl Send for SnapMode
impl Sync for SnapMode
impl Unpin for SnapMode
impl UnwindSafe for SnapMode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more