Как стать автором
Обновить

Перенос Gentoo на LVM2 раздел

Время на прочтение3 мин
Количество просмотров5.3K
Доброго времени суток %username%!

В связи со своей профессиональной деятельностью, приходиться настраивать сервера наших клиентов. Не все из них хотят или имеют возможность приобрести виндовый сервер. Этим организациям в качестве серверной ОС мы ставим Calculate Directory Server основанном на Gentoo. И, как человеку, который любит крепко спать, хотелось, что бы система стояла на зеркальном рейде (RAID 1). К сожалению, из коробки Calculate Directory Server такой возможности не поддерживает. Так же я не смог найти ни одного более-менее внятного описания того, как можно это сделать. Так что пришлось потратить пару вечеров на поиск решения.


Итак, в качастве софтового рэйда я взял LVM2. О ее достоинствах на хабре уже писали, повторяться не буду. Как я уже говорил, в калькулейте нет поддержки LVM томов, хотя сам софт присутствует. Так что дело остаеться за малым — пересобрать ядро с поддержкой Device Mapper:

Для этих целей используем скрипт genkernel:

# genkernel --menuconfig --lvm2 all


Другие интересные параметры смотрим здесь и в манах. После запуска скрипта появиться меню, в котором нам нужно будет включить следующие пункты:

Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
<*> Device mapper support


По окончании сборки ядра и 3х кружек кофе, новое ядро и initramfs сами появяться в папке /boot. Далее правим /boot/grub/grub.conf, где заменяем следующие значения:

kernel /boot/vmlinuz --> /boot/ kernel-x86_64-2.6.31-gentoo-r6
initrd /boot/initrd --> initrd /boot/initramfs-x86_64-2.6.31-gentoo-r6


После чего перезагружаемся с новым ядром и поднимаем зеркальный рэйд. Для начала укажем какие разделы будут использоваться в рэйде:

# pvcreate /dev/sda3 /dev/sda4 /dev/sdb


В данном случае я добавил 3 раздела, т.к. на одном из них будет распологаться журнал, используемый для синхронизации зеркал, но об этом ниже. А пока добавим эти диски в виртуальную группу VGMirror:

# vgcreate VGMirror /dev/sda3 /dev/sda4 /dev/sdb


А вот теперь можно создать зеркало размером 20Гб:

# lvcreate -L 20G -m 1 -n MirrorVolume VGMirror


Вот вы и стали счастливым обладателем рэйда 1 уровня, находящийся по адресу /dev/VGMirror/MirrorVolume :) Так же можно было создать зеркальный рэйд из двух дисков, используя параметр --corelog, но при этом при каждой перезагрузке производилась бы полная ресинхронизация дисков, что не по феншую.
Теперь можем приступить к переносу системы на новый раздел. Для начала создадим на нем файловую систему:

# mkfs.ext4 /dev/VGMirror/MirrorVolume

И смонтируем, куда не жалко ;)

# mount /dev/VGMirror/MirrorVolume /mnt/calculate


И, собственно говоря, переносим все из корня на новый раздел, кроме папочки /proc:

# cd / ;cp $(ls /|sed 's\proc\\') /mnt/calculate -axv


А пока копируется вся эта куча хлама, лезем в /boot/grub/grub.conf (который все еще находиться на /dev/sda2) и добавляем к параметрам ядра dolvm директиву для автоматического обнаружения и активации LVM томов и меняем параметр root:

root=/dev/sda2 --> root=/dev/mapper/VGMirror-MirrorVolume


Вот и все, тепереь можно перезагрузиться и помолиться:)

PS После удачного запуска системы можно сносить первоначальную, а /boot перенести на свой маленький и шустренький раздел под ext2. Но лучше все же ограничиться переносом /boot'а, а root на /dev/sda2 оставить для такой замечательной вещи, присутствующей в Calculate Linux, как обновление системы.

PSS Все, теперь можете пинать, только не сильно, пожалуйста, все-таки первая моя статья не только на хабре но и вообще :)

Источники:
LVM Configuration
Повесть о Linux и LVM (Logical Volume Manager)
LVM HOWTO
man
Теги:
Хабы:
Всего голосов 11: ↑8 и ↓3+5
Комментарии6

Публикации