Вход для пользователей

RAID1(mirror) and LVM2

Изображение пользователя Grifon.

Для обеспечения отказоустойчивости сети, в большинстве наших серверов стоят несколько жёстких дисков, объединённых в дисковый массив с избыточностью (RAID) первого уровня, т.е. зеркалирование. Как показала практика, при обслуживании таких дисков могут возникать сложности. В данной статье описывается перенос системы сервера gate.itc с обычного диска на два в составе software RAID1.
Итак. На машине установлен дистрибутив Fedora Core 5, ядро которой поддерживает device mapper и LVM2. Для настройки и управления параметрами нашей дисковой системы используются пакеты mdadm и lvm2, которые доступны в стандартных репозитариях дистрибутива. Жёсткие диски установлены на оба канала IDE в режиме master, т.е. имеют соответствующие устройства: /dev/hda, /dev/hdc. Старый диск - /dev/hdb. Перенос осуществлялся с помощью LiveCD Knoppix.
Разбиваем диск /dev/hda следующим образом:

    Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   fd  Linux raid autodetect
/dev/hda2              14          77      514080   82  Linux swap / Solaris
/dev/hda3              78        9729    77529690   fd  Linux raid autodetect

После этого копируем содержимое главной загрузочной записи и таблицы разбиения (mrb+pt) на диск /dev/hdc:
dd if=/dev/hda of=/dev/hdc bs=512 count=1

Подгружаем необходимые модули ядра:
modprobe -v md-mod
modprobe -v raid1
modprobe -v dm-mirror

Создаём массивы RAID:
mdadm --create /dev/md0 --auto=yes --raid-devices=2 --level=1 /dev/hda1 /dev/hdc1
mdadm --create /dev/md1 --auto=yes --raid-devices=2 --level=1 /dev/hda3 /dev/hdc3

В короткой записи:
mdadm -C /dev/md0 --a yes -n 2 -l 1 /dev/hd{a,c}1
mdadm -C /dev/md1 --a yes -n 2 -l 1 /dev/hd{a,c}3

Теперь устройство /dev/md0 будет использоваться для /boot, а /dev/md1 мы подготовим для логических дисков:
pvcreate /dev/md1
vgcreate sysvg /dev/md1
lvcreate -n lvroot -L 20G sysvg
lvcreate -n lvvar -L 30G sysvg
lvcreate -n lvsrv -l 6128 sysvg

Значение параметра -l 6128 взято из оставшегося незанятого пространства в sysvg командой
vgdisplay sysvg

Далее создаём файловые системы:
mkfs.ext2 /dev/md0
mkfs.ext3 /dev/mapper/sysvg-lvroot
mkfs.reiserfs /dev/mapper/sysvg-lvvar
mkfs.reiserfs /dev/mapper/sysvg-lvsrv

После этого монтируем фс для дальнейшего переноса:
mkdir /mnt/newgate
mount /dev/mapper/sysvg-lvroot /mnt/newgate
mkdir /mnt/newgate/{var,boot,srv}
mount /dev/md0 /mnt/newgate/boot
mount /dev/mapper/sysvg-lvvar /mnt/newgate/var
mount /dev/mapper/sysvg-lvsrv /mnt/newgate/srv
mount /dev/hdb1 /mnt/hdb1

Переносим систему:
cp -au /mnt/hdb1/* /mnt/newgate
chroot /mnt/newgate
mount -t proc proc /proc
mount -t sysfs sysfs /sys
cat /proc/mounts > /etc/mtab

Дело осталось за малым, но очень важным: сделать, чтобы это всё загружалось. Вносим необходимые изменения в файл /etc/fstab. Создаём образ initrd.
mkinitrd /myinitrd.gz
mkdir /myinitrd
cd /myinitrd
gunzip -c /myinitrd.gz | cpio -id
cp /sbin/{mdadm,lvm}.static bin
ln -sf mdadm.static bin/mdadm
ln -sf lvm.static bin/vgchange

Редатируем файл init. Перед строками
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro /dev/mapper/sysvg-lvroot

добавляем
echo Activating RAID device
mdadm -A /dev/md1 --auto=yes /dev/hda3 /dev/hdc3
echo Activating logical volumes
vgchange -ay

и сохраняем. Теперь запаковываем
find . | cpio -H newc -o | gzip -9 -c > /boot/initrd-lvm.gz

Последний штрих - настройка GRUB. Редактируем /boot/grub/menu.lst:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core LVM (hda)
       root (hd0,0)
       kernel /vmlinuz ro root=/dev/mapper/sysvg-lvroot rhgb quiet
       initrd /boot/initrd-lvm.gz
title Fedora Core LVM (hdc)
       root (hd1,0)
       kernel /vmlinuz ro root=/dev/mapper/sysvg-lvroot rhgb quiet
       initrd /boot/initrd-lvm.gz

устанавливаем GRUB в MBR:
grub-install /dev/hda

И на всякий случай:
grub-install /dev/hdc

Выключаем компьютер, снимаем старый диск. Загружаем с жёсткого диска. Всё готово!

Комментарии

Изображение пользователя Grifon.

Все вставки типа:
и прошу считать глюком движка, их там не должно быть

Изображение пользователя FraDe.

Действительно глюки.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".