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
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 T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more