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 destroy zfs/data@123456 2>/dev/null
zfs snapshot zfs/data@123456
rm -rf /btrfs/data@123456 2>/dev/null
btrfs subvolume snapshot /btrfs/data /btrfs/data@123456rollback
zfs rollback -r zfs/data@123456
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
TODO: unimplemented! rely on an external independent process
Implementations
Trait Implementations
impl Copy for SnapMode
Auto Trait Implementations
impl RefUnwindSafe for SnapMode
impl Send for SnapMode
impl Sync for SnapMode
impl Unpin for SnapMode
impl UnwindSafe for SnapMode
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more