Files
notes/tiddlywiki/LVM snapshots.txt
2026-03-12 22:01:38 +01:00

68 lines
1.9 KiB
Plaintext
Executable File

-- setup
pvcreate /dev/xvdc1
pvcreate /dev/xvdd1
pvs
PV VG Fmt Attr PSize PFree
/dev/xvdc1 lvm2 --- <100.00g <100.00g
/dev/xvdd1 lvm2 --- <100.00g <100.00g
vgcreate vg_data /dev/xvdc1 /dev/xvdd1
vgs
VG #PV #LV #SN Attr VSize VFree
vg_data 2 0 0 wz--n- 199.99g 199.99g
lvcreate -n lv_data -L 99G vg_data
mkfs.xfs /dev/vg_data/lv_data
mkdir /mnt/{original,snap}
mount /dev/vg_data/lv_data /mnt/original
echo "/dev/vg_data/lv_data /mnt/original xfs defaults 0 0" >> /etc/fstab
-- snapshot creation
lvcreate -L 99G -s /dev/vg_data/lv_data -n lv_snapshot
-- mount the snapshot LV (on XFS you should use -o nouuid option)
mount -o nouuid /dev/vg_data/lv_snapshot /mnt/snap/
-- emptying file on snapshot FS
> /mnt/snap/file_90G.raw
df -h /mnt/snap
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_data-lv_snapshot 99G 33M 99G 1% /mnt/snap
-- changes on snaphot FS does not affects data Data% usage on the snaphot LV
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_data vg_data owi-aos--- 99.00g
lv_snapshot vg_data swi-aos--- 99.00g lv_data 0.00
-- change 10Gb of data on source LV
dd if=/dev/zero of=/mnt/original/file_90G.raw bs=1G count=10
lvdisplay /dev/vg_data/lv_snapshot | grep "Allocated to snapshot"
Allocated to snapshot 10.14%
-- revert to a snapshot
umount /mnt/{original,snap}
lvconvert --merge /dev/vg_data/lv_snapshot
-- if the COW space is exhausted, LV snapshot status become INACTIVE
-- we cannot revert from an INACTIVE snapshot
lvdisplay /dev/vg_data/lv_snapshot | grep "LV snapshot status"
LV snapshot status INACTIVE destination for lv_data
lvconvert --merge /dev/vg_data/lv_snapshot
Unable to merge invalidated snapshot LV "lv_snapshot".
-- remove a snapshot
lvremove /dev/vg_data/lv_snapshot