| 1 |
{ |
| 2 |
parted -s /dev/sd$1 mklabel gpt |
| 3 |
parted -s /dev/sd$1 mkpart primary 1MiB 100% |
| 4 |
parted -s /dev/sd$1 set 1 lvm on |
| 5 |
} |
| 6 |
|
| 7 |
create b |
| 8 |
create c |
| 9 |
create d |
| 10 |
create e |
| 11 |
|
| 12 |
partprobe |
| 13 |
|
| 14 |
pvcreate /dev/sd[b-e]1 |
| 15 |
|
| 16 |
vgcreate vg_core /dev/sd[b-e]1 |
| 17 |
|
| 18 |
lvcreate -l 50%FREE vg_core -n lv_sandbox |
| 19 |
|
| 20 |
mkfs.ext4 /dev/vg_core/lv_sandbox |
| 21 |
|
| 22 |
mkdir /var/sandbox |
| 23 |
|
| 24 |
echo "`blkid | grep lv_sandbox | awk '{ print $2 }'` /var/sandbox ext4 defaults 0 0" >> /etc/fstab |
| 25 |
|
| 26 |
mount -a |
| 27 |
|
| 28 |
sed -i.original "/^[ \t]*#/d;/^$/d;s/snapshot_autoextend_threshold = 100/snapshot_autoextend_threshold = 75/" /etc/lvm/lvm.conf |
| 29 |
|
| 30 |
# dd if=/dev/zero of=/var/sandbox/file-before.img bs=1M count=10 |
| 31 |
|
| 32 |
echo original content > /var/sandbox/file.txt |
| 33 |
|
| 34 |
lvcreate --snapshot --size=10G --name=snap01 /dev/vg_core/lv_sandbox |
| 35 |
|
| 36 |
# for n in `seq 100`; do dd if=/dev/zero of=/var/sandbox/$n-file-after.img bs=1M count=10; done |
| 37 |
|
| 38 |
echo additional content >> /var/sandbox/file.txt |
| 39 |
|
| 40 |
mkdir /var/sandbox-snap |
| 41 |
|
| 42 |
cat > /root/mount-snapshot.sh << EOF |
| 43 |
mount -o rw /dev/mapper/vg_core-snap01 /var/sandbox-snap |
| 44 |
echo COMPARE /var/sandbox-snap and /var/sandbox |
| 45 |
EOF |
| 46 |
chmod +x /root/mount-snapshot.sh |
| 47 |
|
| 48 |
cat > /root/restore-snapshot.sh << EOF |
| 49 |
cd |
| 50 |
umount /var/sandbox /var/sandbox-snap |
| 51 |
lvconvert --merge /dev/mapper/vg_core-snap01 |
| 52 |
mount /var/sandbox |
| 53 |
echo EXAMINE /var/sandbox |
| 54 |
EOF |
| 55 |
chmod +x /root/restore-snapshot.sh |
| 56 |
|
| 57 |
cat > /root/merge-snapshot-into-main.sh << EOF |
| 58 |
echo replaced content >> /var/sandbox-snap/file.txt |
| 59 |
cd |
| 60 |
umount /var/sandbox /var/sandbox-snap |
| 61 |
lvconvert --merge /dev/mapper/vg_core-snap01 |
| 62 |
mount /var/sandbox |
| 63 |
echo EXAMINE /var/sandbox |
| 64 |
EOF |
| 65 |
chmod +x /root/merge-snapshot-into-main.sh |
| 66 |
|
| 67 |
cat > /root/remove-snapshot.sh << EOF |
| 68 |
cd |
| 69 |
umount /var/sandbox-snap |
| 70 |
lvremove /dev/vg_core/snap01 -y |
| 71 |
EOF |
| 72 |
chmod +x /root/remove-snapshot.sh |
| 73 |
|