Рекомендации FB
Community
XENsource RAID
Сергей Любшин, мой коллега, недавно проделал установку XENSource на RAID.
Заметки о процессе - ниже.
Любшин Сергей Александрович пишет:
* Может содержать небольшие неточности
Установка XenServer для бедных или программное зеркало в действии.
Почти все было взято с
http://www.firstserved.net/blog/2007/06/07/booting-xenserver-or-xenenterprise-from-software-raid/
Предполагается знание ОС Линукс в объеме базового администрирования (у меня такого нет J)
У нас в серваке – 4ре SATA диска.
Видятся в Xen как /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd
Устанавливаем XenServer на /dev/sda
Виртуальное хранилище пока можно не создавать вообще.
Логинимся, смотрим разделы на /dev/sda
fdisk –l /dev/sda
В 4.1 их три: /dev/sda1 (корень), /dev/sda2 (резервный?), /dev/sda3 (пустой)
Создаем на /dev/sdb точно такие же, но тип меняем на fd (Linux raid autodetect)
Создаем ноды для md:
mknod /dev/md0 b 9 0
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
Создаем «битые» зеркала на /dev/sdb
mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sdb1 missing
mdadm –create /dev/md1 –level=1 –raid-devices=2 /dev/sdb2 missing
mdadm –create /dev/md2 –level=1 –raid-devices=2 /dev/sdb3 missing
Самое интересное – игры с ядром
Разбираем текущее ядро
mkdir /root/initrd-raid
mkinitrd --fstab=/etc/fstab /root/initrd-raid/initrd-`uname -r`-raid.img `uname -r`
cd /root/initrd-raid
zcat initrd-`uname -r`-raid.img | cpio -i
Копируем в него драйвера md-raid
cp /lib/modules/`uname -r`/kernel/drivers/md/raid*.ko ./lib
Правим init
nano init
1. После строки (инит последнего терминала)
mknod /dev/ttyS3 c 4 67
Добавляем
echo Setting up md slots
mknod /dev/md0 b 9 0
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
mknod /dev/md3 b 9 3
(последняя – на будущее)
2. После строк
echo Setting up hotplug.
hotplug
echo Creating block device nodes.
mkblkdevs
Добавляем загрузку драйвера md-raid
echo "Loading raid1.ko module"
insmod /lib/raid1.ko
3. После строк
stabilized --hash --interval 250 /proc/scsi/scsi
mkblkdevs
Добавляем
echo Starting md supported devices
raidautorun /dev/md0
raidautorun /dev/md1
raidautorun /dev/md2
raidautorun /dev/md3
Собираем новое загрузочное ядро (плохо от него точно не станет, поэтому пишем просто поверх старого – хотите, можете сохранить). Напоминаю, мы находимся в каталоге /boot/initrd-raid/
find . -print | cpio -o -Hnewc | gzip -c > /boot/initrd-`uname -r`.img
Перегружаемся, видим сообщения о том, что автоинициализация md прошла и зеркала завелись. Если нет – то где-то ошиблись, нужно проверить что загружается именно новое ядро.
Переезжаем на новый корень:
Правим /etc/fstab и /boot/grup/menu.lst
Заменяем в них LABEL=xxxxx на /dev/md0
Копируем корень
mkfs.ext3 /dev/md0
mount /dev/md0 /mnt
cd /
cp -ax . /mnt
Глубоко вздыхаем и перегружаемся еще раз. Если загрузились успешно – выдыхаем.
Доделываем зеркала
Меняем тип всех разделов на /dev/sda на fd
Создаем разделы /dev/sdc1 и /dev/sdd1 на весь размер с типом fd
«Чиним» зеркала
mdadm -a /dev/md0 /dev/sda1
mdadm -a /dev/md1 /dev/sda2
mdadm -a /dev/md2 /dev/sda3
Создаем еще одно зеркало на оставшихся двух разделах
mdadm –create /dev/md3 –level=1 –raid-devices=2 /dev/sdс1 /dev/sdd1
Создаем файловые системы на свободных разделах
mkfs.ext3 /dev/md2
mkfs.ext3 /dev/md3
Имеем:
/dev/md0 – Корень
/dev/md1 – резерв
/dev/md2 – свободно
/dev/md3 – свободно
Виртуальных групп у нас нет, потому создаем
pvcreate /dev/md2
pvcreate /dev/md3
xe sr-create name-label="LVM-1" shared=false type=lvm device-config-device=/dev/md2
vgscan
Запоминаем название виртуальной группы
Расширяем эту группу на /dev/md3
vgextend VG_XenStorage-длиннющий_ууид /dev/md3
!По какой-то причине новый размер группы показывается не сразу. Я вечером это проделал, посокрушался что не вышло, а утром размер LVM стал правильным (соответствующим сумме двух разделов)
… В следующей главе – дружим Xen и apcupsd …
--
Любшин Сергей