LVM. Снэпшоты: различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
 
(не показано 5 промежуточных версий этого же участника)
Строка 19: Строка 19:
Для этого будет необходимо расширять VG дополнительным разделом
Для этого будет необходимо расширять VG дополнительным разделом


Как это сделать можно узнать в статье [[LVM. Расширение объема раздела LVM за счет другого раздела или диска]]
Как это сделать можно узнать в статье [[LVM. Расширение объема раздела LV за счет второго раздела на том же физическом диске или раздела на другом физическом диске|LVM. Расширение объема раздела LVM за счет другого раздела или диска]] или [[LVM. Расширение объема раздела LV за счет свободного места на физическом диске]]


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


===Создадим PV, VG===
===Создадим PV, VG===
Строка 141: Строка 141:
===Удалить снап, все новые изменения будут приняты без возможности отката===
===Удалить снап, все новые изменения будут приняты без возможности отката===
<code>lvremove /dev/mapper/data-data_snap_2021--18--12_17--34--33</code>
<code>lvremove /dev/mapper/data-data_snap_2021--18--12_17--34--33</code>
== Использовать LVM снэпшоты на '''системном''' разделе ==
=== Описание ===
Логика такая же как и на НЕсистемном разделе, за тем исключением, что после отката на снэпшот необходимо перезагружаться, так как системный раздел мы не отмонтируем во время работы.
Так же как и в случае с НЕсистемным разделом необходимо чтобы на VG было свободное место, примерно так:
<code>vgs</code>
  VG                    #PV #LV #SN Attr   VSize    '''VFree'''
  '''centos_centos7-test01'''   1   2   0 wz--n-  <31.00g '''<14.00g'''
<code>lvs</code>
  LV   VG                    Attr       '''LSize'''   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  '''root centos_centos7-test01''' -wi-ao----  '''15.00g'''
  swap centos_centos7-test01 -wi-ao----   2.00g
  data data                  -wi-ao---- 508.00m 
=== Создаем снэп ===
<code>lvcreate --size 1G --snapshot --name root_snap_`date +%Y-%d-%m_%H-%M-%S` /dev/centos_centos7-test01/root</code>
Для теста ставим какую-нибудь неустановленную утилиту
<code>yum install mtr</code>
Откатываемся на снэп
Система скажет что снэп будет применен при следующей деактивации/активации раздела
<code>lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_16--53--41</code>
Merging of snapshot root/root_snap_2021-18-12_16-53-41 will occur on next activation of data/data.
Перезагружаемся
<code>reboot</code>
Проверяем что тестовая утилита '''mtr''', установленная после создания снэпшота, после отката на снэпшот не установлена

Текущая версия на 21:10, 31 декабря 2022


Описание

Прежде всего, чтобы пользоваться снэпшотами на 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

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

Для этого будет необходимо расширять VG дополнительным разделом

Как это сделать можно узнать в статье LVM. Расширение объема раздела LVM за счет другого раздела или диска или LVM. Расширение объема раздела LV за счет свободного места на физическом диске

Использовать 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

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

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

mkfs.ext4 /dev/data/data

mkdir /mnt/data

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

Правим fstab

nano /etc/fstab

...
/dev/mapper/data-data /mnt/data                       ext4     defaults        0 0
...

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

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

Сначала обязательно отмонтируем основной раздел, для которого делали снэп

umount /mnt/data/

Теперь откатываемся на снэп

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

lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_18--28--45

  Merging of volume data/data_snap_2021-18-12_18-28-45 started.

  data/data: Merged: 100.00%

Монтируем основной раздел обратно

mount /mnt/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                  -wi-ao---- 508.00m

Если откатиться без отмонтирования основного раздела - будет предупреждение

lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_18--33--55

  Delaying merge since origin is open.

  Merging of snapshot data/data_snap_2021-18-12_18-33-55 will occur on next activation of data/data.

Также в выводе будет атрибут "О" (The answer is: The merging is delayed, otherwise the progress would be showing up using the lvs command.)

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

Отмонтируем раздел

umount /mnt/data/

Вводим команду

lvchange  --refresh 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                  -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

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

Описание

Логика такая же как и на НЕсистемном разделе, за тем исключением, что после отката на снэпшот необходимо перезагружаться, так как системный раздел мы не отмонтируем во время работы.

Так же как и в случае с НЕсистемным разделом необходимо чтобы на VG было свободное место, примерно так:

vgs

  VG                    #PV #LV #SN Attr   VSize    VFree
  centos_centos7-test01   1   2   0 wz--n-  <31.00g <14.00g

lvs

  LV   VG                    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_centos7-test01 -wi-ao----  15.00g
  swap centos_centos7-test01 -wi-ao----   2.00g
  data data                  -wi-ao---- 508.00m  

Создаем снэп

lvcreate --size 1G --snapshot --name root_snap_`date +%Y-%d-%m_%H-%M-%S` /dev/centos_centos7-test01/root

Для теста ставим какую-нибудь неустановленную утилиту

yum install mtr

Откатываемся на снэп

Система скажет что снэп будет применен при следующей деактивации/активации раздела

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

Merging of snapshot root/root_snap_2021-18-12_16-53-41 will occur on next activation of data/data.

Перезагружаемся

reboot

Проверяем что тестовая утилита mtr, установленная после создания снэпшота, после отката на снэпшот не установлена