LVM. Снэпшоты: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| Строка 49: | Строка 49: | ||
===Правим fstab=== | ===Правим fstab=== | ||
<code>nano /etc/fstab</code> | <code>nano /etc/fstab</code> | ||
... | |||
/dev/mapper/data-data /mnt/data ext4 defaults 0 0 | /dev/mapper/data-data /mnt/data ext4 defaults 0 0 | ||
... | |||
... | |||
===Создадим тестовый файл=== | ===Создадим тестовый файл=== | ||
<code>echo 1 > /mnt/data/test.txt</code> | <code>echo 1 > /mnt/data/test.txt</code> | ||
<code>cat /mnt/data/test.txt</code> | <code>cat /mnt/data/test.txt</code> | ||
... | |||
1 | 1 | ||
... | |||
... | |||
===Создадим снэп=== | ===Создадим снэп=== | ||
| Строка 69: | Строка 67: | ||
<code>lvcreate --size 1G --snapshot --name data_snap_`date +%Y-%d-%m_%H-%M-%S` /dev/mapper/data-data</code> | <code>lvcreate --size 1G --snapshot --name data_snap_`date +%Y-%d-%m_%H-%M-%S` /dev/mapper/data-data</code> | ||
<code>lvs</code> | <code>lvs</code> | ||
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |||
root centos_centos7-test01 -wi-ao---- 28.99g | root centos_centos7-test01 -wi-ao---- 28.99g | ||
swap centos_centos7-test01 -wi-ao---- 2.00g | |||
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 | |||
data data owi-aos--- 508.00m | |||
data_snap_2021-18-12_17-13-34 data swi-a-s--- 104.00m data 0.01 | |||
===Обновляем тестовый файл=== | ===Обновляем тестовый файл=== | ||
<code>echo 2 > /mnt/data/test.txt</code> | <code>echo 2 > /mnt/data/test.txt</code> | ||
<code>cat /mnt/data/test.txt</code> | <code>cat /mnt/data/test.txt</code> | ||
... | |||
2 | 2 | ||
... | |||
... | |||
===Откатываемся на снэпшот data_snap_2021-18-12_17-13-34=== | ===Откатываемся на снэпшот data_snap_2021-18-12_17-13-34=== | ||
| Строка 93: | Строка 87: | ||
<code>umount /mnt/data/</code> | <code>umount /mnt/data/</code> | ||
Теперь откатываемся на снэп<blockquote>'''Снэп при успешном откате удаляется!'''</blockquote><code>lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_18--28--45</code> | Теперь откатываемся на снэп<blockquote>'''Снэп при успешном откате удаляется!'''</blockquote><code>lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_18--28--45</code> | ||
Merging of volume data/data_snap_2021-18-12_18-28-45 started. | |||
data/data: Merged: 100.00% | |||
data/data: Merged: 100.00% | |||
Монтируем основной раздел обратно | |||
<code>mount /mnt/data/</code> | <code>mount /mnt/data/</code> | ||
| Строка 101: | Строка 97: | ||
Проверяем | Проверяем | ||
<code>lvs</code> | <code>lvs</code> | ||
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 | |||
Если откатиться без отмонтирования основного раздела - будет предупреждение | |||
<code>lvconvert --merge /dev/mapper/data-data_snap_2021--18--12_18--33--55</code> | |||
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.) | |||
<code>lvs</code> | |||
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 | |||
<code> | data data '''O'''wi-aos--- 508.00m | ||
Отмонтируем раздел | |||
root centos_centos7-test01 -wi-ao---- 28.99g | |||
swap centos_centos7-test01 -wi-ao---- 2.00g | |||
data data '''O'''wi-aos--- 508.00m | |||
<code>umount /mnt/data/</code> | <code>umount /mnt/data/</code> | ||
| Строка 129: | Строка 125: | ||
Проверяем | Проверяем | ||
<code>lvs</code> | <code>lvs</code> | ||
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |||
root centos_centos7-test01 -wi-ao---- 28.99g | root centos_centos7-test01 -wi-ao---- 28.99g | ||
swap centos_centos7-test01 -wi-ao---- 2.00g | |||
swap centos_centos7-test01 -wi-ao---- 2.00g | data data -wi-ao---- 508.00m | ||
data data -wi-ao---- 508.00m | |||
===Проверяем откат содержимого тестового файла=== | ===Проверяем откат содержимого тестового файла=== | ||
<code>echo 1 > /mnt/data/test.txt</code> | <code>echo 1 > /mnt/data/test.txt</code> | ||
<code>cat /mnt/data/test.txt</code> | <code>cat /mnt/data/test.txt</code> | ||
... | |||
1 | 1 | ||
... | |||
... | |||
===Удалить снап, все новые изменения будут приняты без возможности отката=== | ===Удалить снап, все новые изменения будут приняты без возможности отката=== | ||
<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> | ||
Версия 13:05, 19 декабря 2021
Описание
Прежде всего, чтобы пользоваться снэпшотами на 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 снэпшоты на НЕсистемном разделе
Создадим 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