Доброго времени суток!
Хотелось бы поделиться опытом переноса CDS на LVM том. К сожалению, пока в калькулейте нет поддержки 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 Кстати, если вы планируете удалять винты из раздела, то советую использовать ext* разделы, т.к. их можно не только увеличивать, но и урезать.
Источники:
LVM Configuration
Повесть о Linux и LVM (Logical Volume Manager)
LVM HOWTO
man
Оригинал моей статьи можно посмотреть на хабре