Неинтересная подготовка
Показать
[console]
goblin-server tmp # lvcreate -n lv_tmp -L 2G vg_data
Logical volume "lv_tmp" created
goblin-server tmp # mkdir -p lv_tmp
goblin-server tmp # mkfs.ext4 /dev/vg_data/lv_tmp
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
goblin-server tmp # mount /dev/vg_data/lv_tmp ./lv_tmp/
goblin-server tmp # mkdir lv_tmp/test/1
mkdir: невозможно создать каталог «lv_tmp/test/1»: No such file or directory
goblin-server tmp # mkdir lv_tmp/test
goblin-server tmp # touch lv_tmp/test/foo
goblin-server tmp # touch lv_tmp/test/bar
goblin-server tmp # touch lv_tmp/test/baz
[/console]
Cоздание снапшота
Показать
goblin-server tmp # lvcreate -L 100M -n lv_tmp_snapshot -s /dev/vg_data/lv_tmp
Rounding up size to full physical extent 128,00 MiB
Logical volume "lv_tmp_snapshot" created
goblin-server tmp # lvdisplay /dev/vg_data/lv_tmp
--- Logical volume ---
LV Path /dev/vg_data/lv_tmp
LV Name lv_tmp
VG Name vg_data
LV UUID wBfuTv-JiZI-nVzU-jQIX-Rom3-IsNe-Yet2Pg
LV Write Access read/write
LV Creation host, time goblin-server, 2014-02-12 17:28:53 +0400
LV snapshot status source of
lv_tmp_snapshot [active]
LV Status available
# open 1
LV Size 2,00 GiB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:12
goblin-server tmp # lvdisplay /dev/vg_data/lv_tmp_snapshot
--- Logical volume ---
LV Path /dev/vg_data/lv_tmp_snapshot
LV Name lv_tmp_snapshot
VG Name vg_data
LV UUID Xw4c4o-Kv6s-jBjM-elmI-Q8Sm-UPIA-x8YzAr
LV Write Access read/write
LV Creation host, time goblin-server, 2014-02-12 17:36:03 +0400
LV snapshot status active destination for lv_tmp
LV Status available
# open 0
LV Size 2,00 GiB
Current LE 32
COW-table size 128,00 MiB
COW-table LE 2
Allocated to snapshot 0,01%
Snapshot chunk size 4,00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:13
[/console]
Опасные действия
Показать
bar baz foo
goblin-server tmp # rm lv_tmp/test/bar
goblin-server tmp # ls lv_tmp/test/
baz foo
goblin-server tmp # umount lv_tmp
goblin-server tmp # dd if=/dev/zero of=/dev/vg_data/lv_tmp bs=1M count=1 # давай вообще всю ФС убьём
1+0 записей считано
1+0 записей написано
скопировано 1048576 байт (1,0 MB), 0,152402 c, 6,9 MB/c[/console]
Восстановление снапшота
Показать
Merging of volume lv_tmp_snapshot started.
lv_tmp: Merged: 0,0%
Merge of snapshot into logical volume lv_tmp has finished.
Logical volume "lv_tmp_snapshot" successfully removed
goblin-server tmp # mount /dev/vg_data/lv_tmp ./lv_tmp/
goblin-server tmp # ls lv_tmp/test/
bar baz foo
[/console]
У тебя всё точно так же с точностью до имён и размеров... только «опасным действием» будет fsck.
да, и под размер снапшота на всякий пожарный отдай всё доступное в группе место...