Руководство по созданию и восстановлению снимков логического тома
Введение
Создавая снимки логического тома, вы можете зафиксировать текущее состояние любого из ваших логических томов. Это означает, что вы можете очень легко создать резервную копию и откатить ее до исходного состояния логического тома. Этот метод очень похож на то, что вы уже знаете, используя программное обеспечение для виртуализации, такое как Virtualbox или VMware, где вы можете просто сделать снимок всей виртуальной машины и вернуться обратно в случае, если что-то пошло не так и т. Д. Таким образом, использование снимков LVM позволяет вам сделать снимок контроль логических томов вашей системы, будь то ваш личный ноутбук или сервер. Это руководство является автономным, так как не требуется опыт работы с Logical Volume Manager.
сценарий
В этой статье мы расскажем, как вручную создавать и восстанавливать снимки логических томов. Поскольку мы не предполагаем какого-либо предыдущего опыта работы с Logical Volume Manager, мы начнем с нуля, используя фиктивный физический жесткий диск / dev / sdb размером 1073 МБ. Вот все шаги в двух словах:
- Сначала мы создадим два раздела на нашем диске / dev / sdb. Эти разделы будут иметь тип "8e Linux LVM" и будут использоваться для создания физических томов.
- После создания обоих разделов мы используем команду pvcreate для создания физических томов.
- На этом этапе мы создаем новую группу логических томов и один логический том размером 300 МБ с использованием файловой системы ext4.
- Смонтируйте наш новый логический том и создайте пример данных
- Сделайте снимок и удалите пример данных
- Откат снимка логического тома
Создание логического тома
Основы менеджера логических томов
Вот краткое описание менеджера логических томов:
Диспетчер логических томов позволяет создавать логическую группу, состоящую из нескольких физических томов. Физические тома могут быть целыми жесткими дисками или отдельными разделами. Физические тома могут находиться на одном или нескольких жестких дисках, разделах, USB, SAN и т. Д. Чтобы увеличить размер логического тома, вы можете добавить дополнительные физические тома. После создания группы логических томов вы можете создать несколько логических томов и в то же время полностью игнорировать уровень физического тома. Размер группы логических томов можно изменить в любое время, добавив больше физических томов, чтобы новые логические тома можно было создавать или изменять их размер.
Создать разделы
Во-первых, нам нужно создать разделы и пометить их как физические тома. Вот наш физический диск, с которым мы будем работать:
# fdisk -l /dev/sdb
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x335af99c
Device Boot Start End Blocks Id System
Давайте создадим два основных раздела. Здесь мы используем fdisk для выполнения этой работы. Не стесняйтесь использовать любой другой инструмент для создания разделов, например cfdisk, parted и т. Д.
# fdisk /dev/sdb
Все команды выделены жирным шрифтом:
Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-2097151, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +400M Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (821248-2097151, default 821248): Using default value 821248 Last sector, +sectors or +size{K,M,G} (821248-2097151, default 2097151): +200M Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Если вы выполнили вышеуказанные шаги, ваша новая таблица разделов на диске / dev / sdb теперь будет выглядеть примерно так, как показано ниже:
# fdisk -l /dev/sdb Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x335af99c Device Boot Start End Blocks Id System /dev/sdb1 2048 821247 409600 8e Linux LVM /dev/sdb2 821248 1230847 204800 8e Linux LVM
Создать физические тома
На этом этапе мы помечаем оба раздела как физические тома. Обратите внимание, что вам не обязательно следовать той же схеме, что и в этом уроке. Например, вы можете просто разбить весь диск на один раздел вместо двух. Используйте pvcreate для создания физических томов:
# pvcreate /dev/sdb[1-2]
Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created
Writing physical volume data to disk "/dev/sdb2"
Physical volume "/dev/sdb2" successfully created
Создать группу томов
Теперь пришло время создать группу томов. Для этого мы используем инструмент vgcreate. Новая группа томов будет называться «volume_group».
# vgcreate volume_group /dev/sdb1 /dev/sdb2
Volume group "volume_group" successfully created
После выполнения вышеупомянутой команды у вас будет создана новая группа томов с именем «volume_group». Эта новая группа томов будет состоять из двух физических томов:
- / DEV / sdb1
- / DEV / sdb2
Вы можете просмотреть статистику вашей новой группы томов с помощью команды vgdisplay:
# vgdisplay
--- Volume group ---
VG Name volume_group
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 592.00 MiB
PE Size 4.00 MiB
Total PE 148
Alloc PE / Size 0 / 0
Free PE / Size 148 / 592.00 MiB
VG UUID 37jef7-3q3E-FyZS-lMPG-5Jzi-djdO-BgPIPa
Создание логических томов
Если все прошло гладко, теперь мы наконец можем создать логический том. Размер логического тома не должен превышать размер вашей логической группы. Давайте создадим новый логический том с именем «volume1» размером 200 МБ и отформатируем его в файловой системе ext4.
# lvcreate -L 200 -n volume1 volume_group
Logical volume "volume1" created
Вы можете увидеть определение вашего нового логического тома с помощью команды lvdisplay. Запишите значение LV Path, так как оно понадобится вам при создании файловой системы на новом логическом томе h "volume1".
# lvdisplay
--- Logical volume ---
LV Path /dev/volume_group/volume1
LV Name volume1
VG Name volume_group
LV UUID YcPtZH-mZ1J-OQQu-B4nj-MWo0-yC18-m77Vuz
LV Write Access read/write
LV Creation host, time debian, 2013-05-08 12:53:17 +1000
LV Status available
# open 0
LV Size 200.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
Теперь вы можете создать файловую систему ext4 на своем логическом томе:
# mkfs.ext4 /dev/volume_group/volume1
Снимок логического тома
Наконец, мы подошли к моменту, когда мы можем сделать снимок нашего логического тома, созданного в предыдущем разделе. Для этого нам также понадобятся некоторые примеры данных на нашем логическом томе «volume1», поэтому, как только мы вернемся из снимка, мы сможем подтвердить весь процесс, сравнивая исходные данные с данными, восстановленными из снимка.
Понимание Snaphosts
Чтобы понять, как работают моментальные снимки, нам сначала нужно понять, из чего состоит логический том и как хранятся данные. Эта концепция похожа на хорошо известные символические ссылки. Когда вы создаете символическую ссылку на файл, вы не создаете копию фактического файла, а вместо этого просто создаете только ссылку на него. Логический том хранит данные аналогичным образом и состоит из двух основных частей:
- указатели метаданных
- блок данных
При создании снимка Диспетчер логических томов просто создает копию всех указателей метаданных на отдельном логическом томе. Метаданные не занимают много места, поэтому вы можете создать снимок, скажем, от 2 ГБ логического тома до 5 МБ снимка. Том снимка начинает расти только после того, как вы начнете изменять данные исходного логического тома. Это означает, что каждый раз, когда вы удаляете или редактируете файл на исходном логическом томе, на томе моментального снимка создается копия этого файла (данных). Для простых изменений вам может потребоваться создать том снимка размером около 5-10% от исходного размера логического тома. Если вы готовы внести много изменений в свой исходный логический том, тогда вам потребуется намного больше, чем 10%. Давайте начнем:
Образец данных
Сначала создайте новый каталог точки монтирования для «volume1» и смонтируйте его:
# mkdir /mnt/volume1
# mount /dev/volume_group/volume1 /mnt/volume1
Введите точку монтирования «volume1» и скопируйте некоторые примеры данных:
# cd /mnt/volume1
# cp -r /sbin/ .
# du -s sbin/
8264 sbin/
Используя предыдущие команды, мы скопировали весь каталог / sbin в / mnt / volume1. Размер / mnt / volume1 / sbin / в настоящее время составляет 8264 КБ.
Создание снимка
Теперь мы собираемся создать снимок логического тома "volume1". В процессе менеджер логических томов создаст новый отдельный логический том. Этот новый логический том будет иметь размер 20 МБ и будет называться «volume1_snapshot»:
# lvcreate -s -L 20M -n volume1_snapshot /dev/volume_group/volume1
Logical volume "volume1_snapshot" created
Выполните команду lvs, чтобы подтвердить, что был создан новый моментальный снимок тома:
# lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
volume1 volume_group owi-aos- 200.00m
volume1_snapshot volume_group swi-a-s- 20.00m volume1 0.06
Теперь, когда снимок был создан, мы можем начать изменять данные на «томе 1», например, удалив весь контент:
# cd /mnt/volume1
# rm -fr
# rm -fr sbin/
После этой операции вы можете снова обратиться к команде lvs и увидеть, что Data% на volume1_snap теперь увеличен. Если вы хотите, теперь вы можете смонтировать том снимка, чтобы убедиться, что исходные данные из «тома 1» все еще существуют.
Восстановить снимок логического тома
Прежде чем мы вернем наш снимок логического тома, давайте сначала подтвердим, что наши данные / mnt / volume1 / sbin все еще отсутствуют:
# du -s /mnt/volume1/sbin
du: cannot access `/mnt/volume1/sbin': No such file or directory
Восстановление снимков логического тома состоит из двух этапов:
- планирование восстановления снимка после следующей активации логического тома
- деактивировать и активировать логический том
Чтобы запланировать откат моментального снимка, выполните следующую команду linux :
# lvconvert --merge /dev/volume_group/volume1_snapshot
Can't merge over open origin volume
Merging of snapshot volume1_snapshot will start next activation.
После выполнения вышеуказанной команды логический том «том1» будет откатываться после активации. Поэтому, что нужно сделать дальше, это повторно активировать «volume1». Во-первых, убедитесь, что вы размонтируете свой «volume1»
# umount /mnt/volume1
Отключить и активировать громкость:
# lvchange -a n /dev/volume_group/volume1
# lvchange -a y /dev/volume_group/volume1
В качестве последнего шага снова подключите ваш логический том "volume1" и убедитесь, что все данные восстановлены:
# mount /dev/volume_group/volume1 /mnt/volume1
# du -s /mnt/volume1/sbin
8264 /mnt/volume1/sbin
Вывод
Выше приведен базовый пример манипулирования снимками с помощью диспетчера логических томов. Полезность снимков логических томов огромна, и она наверняка поможет вам в ваших задачах, будь вы системный администратор или разработчик. Несмотря на то, что вы можете использовать вышеописанную настройку для создания нескольких снимков для восстановления резервной копии, вам также нужно знать, что резервная копия найдет свои ограничения в вашей группе логических томов, поэтому любые проблемы с физическими томами низкого уровня могут сделать ваш снимок бесполезным.