LVM. Снэпшоты

Материал из Wiki
Перейти к навигации Перейти к поиску


Описание

Прежде всего, чтобы пользоваться снэпшотами на LVM, необходимо, чтобы на vg было свободное неиспользуемое место

vgs

  VG                    #PV #LV #SN Attr   VSize    VFree

  centos_centos7-test01   1   2   0 wz--n-  <31.00g   4.00m

  data                    1   1   0 wz--n- 1020.00m 512.00m

 

То есть если вы создали раздел LVM root без свободного места, или создали раздел с данными через команду:

lvcreate -l 100%FREE --name graylog_data data1

то использовать снэпшоты не получится

Использовать LVM снэпшоты на НЕсистемном разделе

Создадим PV, VG

pvcreate /dev/sdb1

vgcreate data /dev/sdb1

Создадим LV, используя 50% от раздела, остальное - под будущие снапы

lvcreate -l 50%FREE --name data data

vgs

  VG                    #PV #LV #SN Attr   VSize    VFree

  centos_centos7-test01   1   2   0 wz--n-  <31.00g   4.00m

  data                    1   1   0 wz--n- 1020.00m 512.00m

Создадим ФС, точку монтирования и смонтируем раздел

mkfs.ext4 /dev/data/data

mount /dev/mapper/data-data /mnt/data

Создадим тестовый файл

echo 1 > /mnt/data/test.txt

cat /mnt/data/test.txt

...

1

...

Создадим снэп

--size 1G - это объем под данные снэпшота, если указанный объем будет больше, чем текущее свободное место, то lvm урежет объем до максимально возможного. Например, в данном случае размер снэпа урезается до 512МБ

lvcreate --size 1G --snapshot --name data_snap_`date +%Y-%d-%m_%H-%M-%S` /dev/mapper/data-data

lvs

  LV                            VG                    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  root                          centos_centos7-test01 -wi-ao----  28.99g

  swap                          centos_centos7-test01 -wi-ao----   2.00g

  data                          data                  owi-aos--- 508.00m

  data_snap_2021-18-12_17-13-34 data                  swi-a-s--- 104.00m      data   0.01 

Обновляем тестовый файл

echo 2 > /mnt/data/test.txt

cat /mnt/data/test.txt

...

2

...

Откатываемся на снэпшот data_snap_2021-18-12_17-13-34

Снэп при успешном откате удаляется!

lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_16--53--41 lvs

  LV   VG                    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  root centos_centos7-test01 -wi-ao----  28.99g

  swap centos_centos7-test01 -wi-ao----   2.00g

  data data                  -wi-ao---- 508.00m

Проверяем откат содержимого тестового файла

echo 1 > /mnt/data/test.txt

cat /mnt/data/test.txt

...

1

...

Удалить снап, все новые изменения будут приняты без возможности отката

lvremove /dev/mapper/data-data_snap_2021--18--12_17--34--33