Еще одна причина почему я люблю LVM.
Еще один лирический пост, в котором я снова рассказываю о том что мне нравится и почему. На этот раз речь пойдет об LVM (Logical Volume Manager). Если вкратце, то это менеджер управления логическими дисками который позволяет абстрагироваться от уровня физических накопителей и оперировать разделами на логическом, более гибком уровне, то это инструмент позволяющий гибко управлять дисковыми разделами. Гибкость заключается в том что LVM позволяет объединять целые диски в логические группы и внутри этих групп создавать дисковые разделы. Управлять этими разделами очень удобно, можно на лету менять размеры тома, распределять том на несколько физических дисков, делать зеркалирование, создавать снимки и многое другое. Снимки, или так называемые снапшоты, о них я и расскажу сегодня.
Так вот, очень удобно когда корневой раздел операционной системы находится в LVM томе. Бывает так, что нужно провести определенный эксперимент в ходе которого нужно установить программное обеспечение, выполнить настройку и изменить еще много чего. А между тем делать это на основном разделе не хочется, так как потом ошметки эксперимента нужно тщательно вычищать. Тут на выручку к нам и приходят LVM снимки.
Итак цель - создать песочницу для экспериментов.
- нужно создать снимки для тех разделов которые будут "испорчены" экспериментом;
- создать временный каталог и смонтировать туда снимки;
- смонтировать в песочницу псевдо-файловые системы;
- выполнить chroot;
- провести эксперимент;
- разобрать песочницу и удалить снимки.
При создании снимков нужно указать размер области отдаваемой под снимок. Здесь важно указать достаточный объем места под создаваемый снимок, так как снимок имеет четкую взаимосвязь с оригинальным томом (origin) и как только объем изменений в оригинальном томе превысит выделенный объем для снимка, снимок становится бесполезным.
Итак смотрим место и создаем два снимка для разделов santum/root и santum/usr.
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 santum lvm2 a-- 930.39g 315.39g
# lvcreate -s -L5G -n santum/root-snapshot santum/root
Logical volume "root-snapshot" created
# lvcreate -s -L3G -n santum/usr-snapshot santum/usr
Logical volume "usr-snapshot" created
Теперь нужно смонтировать созданные снимки и сформировать будущую песочницу. Будущая песочница будет представлять собой образ нашей запущенной операционной системы со всеми смонтированными файловыми системами и запущенными процессами. Таким образом нам нужно перенести все смонтированные псевдо-файловые системы в нашу песочницу. Корнем песочницы будет каталог со смонтированным снимком нашей корневой фс.
# mkdir /mnt/root-snapshot# mount /dev/santum/root-snapshot /mnt/root-snapshot
# mount /dev/santum/usr-snapshot /mnt/root-snapshot/usr
# mount -o bind /dev /mnt/root-snapshot/dev
# mount -o bind /proc /mnt/root-snapshot/proc
# mount -o bind /sys /mnt/root-snapshot/sys
Вышеперечисленные псевдо-файловые системы /proc, /dev, /sys обязательный для монтирования. Однако в зависимости от дистрибутива их состав может варьироваться, например это могут быть /run, /run/lock, /dev/pts и т.п.
Теперь когда песочница готова, можно выполнить chroot. Это операция установки нового корневого каталога. То есть мы переходим в только что созданное окружение на основе снимков. В моем случае с Gentoo Linux после chroot дополнительно можно обновить настройки окружения.
# chroot /mnt/root-snapshot /bin/bash# env-update && source /etc/profile
Все теперь мы перешли в нашу песочницу и теперь можем начать наш эксперимент. Параноики да и вообще осмотрительные люди могут для начала установить какой-нибудь безобидный пакет. Затем в соседней консоли этого сервера проверить, появился ли этот пакет в оригинальной системе.
Теперь когда эксперименты закончены, нужно в обратной последовательности разобрать песочницу: сначала делаем logout из песочницы, затем начинаем демонтирование псевдо-файловых систем, затем демонтируем снимки, ну и в конце удаляем снимки... Если конечно мы не захотим применить эти изменения в снимке к оригинальному тому...
На главную "Virtualizing Linux"
Так можно всегда расширить существующий vg на дополнительный диск (да хоть и на флешку) и использовать расширенное для создания снапшотов.
ОтветитьУдалитьКонечно можно, если есть куда и что подключать, в этом и заключается гибкость LVM.
Удалить