Думаю, что с установкой citrix xenserver проблем не возникнет, т.ч. продолжаем.

 

Алгоритм работы:

— создать на втором диске файловую систему, аналогичную первому HDD, на котором уже установлен XenServer

— запустить на нем softraid

— перенести сам XenServer на второй HDD

— загрузиться со второго диска, т.е. уже с программного RAID

— подключить к новоиспеченному RAID массиву первый диск

 

Тестовая конфигурация железа, на котором производилась установка

Материнская плата – Asrock 880G

Процессор – Phenom 925 @ 2900 МГц

Оперативная память — 8192  Кб (2 x 4096 DDR3-SDRAM )

Дисковая подсистема — 2 Seagate SV35 ST1000VX000 (1 Тб)

 

Расклад:

sda – диск с XenServer

sdb – пустой диск 

Задача: подготовить второй диск к созданию массива (создать на нём копию таблицы разделов первого диска)

Смотрим таблицу разделов на sda

 

#gdisk -l /dev/sda

Проверяем, что таблица разделов на sdb пуста:

 

#gdisk -l /dev/sdb

С помощью gdisk вручную создаем на sdb таблицу разделов:

 

#gdisk /dev/sdb

*Примечание: с помощью клавиши «n» создаём три раздела (номер раздела, стартовые и конечные сектора должны полностью совпадать, тип раздела при этом необходимо указывать fd00 (Linux RAID)). После завершения нажимаем «w» для записи изменений и выходим из gdisk. Все команды можно узнать набрав «?» в программе gdisk.

Таблица должна быть идентична диску sda. 

*Примечание: рекомендую настраивать по SSH, т.к. там легко копируюся любые элементы.

 

Проверяем наши диски:

 

#gdisk -l /dev/sda 

#gdisk -l /dev/sdb

И если никаких различий (кроме типа раздела) — продолжаем

 

Создадим устройства 3 MD на втором диске:

 

#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

Создадим и перенесем Local Storage в RAID:

 

#pvcreate /dev/md2

#vgextend VG_[tab] /dev/md2

#pvmove /dev/sda3 /dev/md2

Примечание: [tab] — означает нажать клавишу Tab для автодописывания вашего значения.

 

Удалим старый storage с первого диска:

 

#vgreduce VG_[tab] /dev/sda3

#pvremove /dev/sda3

Создадим файловую систему на RAID:

 

#mkfs.ext3 /dev/md0

И смонтируем ее:

 

#mount /dev/md0 /mnt

Скопируем сам XenServer в RAID:

 

#cd /

#cp -axv . /mnt

Редактируем fstab для монтирования root раздела с RAID: 

 

#nano /mnt/etc/fstab

 

вместо строки:

LABEL=root-xxx / ext3 defaults 1 1

должна получиться строка:

/dev/md0 / ext3 defaults 1 1 

Создаем загрузочный образ для RAID: 

 

#mkdir /mnt/root/initrd-raid

#mkinitrd -v —fstab=/mnt/etc/fstab /mnt/root/initrd-raid/initrd-`uname -r`-raid.img `uname -r`

#cd /mnt/root/initrd-raid

#zcat initrd-`uname -r`-raid.img | cpio -i

Редактируем файл init:

 

#nano init

 

и добавляем после 

raidautorun /dev/md0

две строки:

raidautorun /dev/md1

raidautorun /dev/md2

Копируем новый диск в каталог /mnt/boot

 

#find . -print | cpio -o -Hnewc | gzip -c > /mnt/boot/initrd-`uname -r`-raid.img

#rm /mnt/boot/initrd-2.6-xen.img

rm: remove symbolic link `/mnt/boot/initrd-2.6-xen.img’? y

#ln -s initrd-`uname -r`-raid.img /mnt/boot/initrd-2.6-xen.img

Редактируем загрузочное меню: 

 

#nano /mnt/boot/extlinux.conf

 

Требуется заменить все упоминания: 

root=LABEL=root-xxx

на: 

root=/dev/md0

Устанавливаем MBR для GPT на втором диске:

 

#cat /mnt/usr/share/syslinux/gptmbr.bin > /dev/sdb

#cd /mnt

#extlinux —raid -i boot/

Корректно размонтируем второй диск:

 

#cd

#umount /dev/md0

#sync

Проверяем, что флаг загрузочного диска корректно установлен на обоих дисках:

 

#sgdisk /dev/sda —attributes=1:set:2

#sgdisk /dev/sdb —attributes=1:set:2

Перезагружаем сервер. И ЗАГРУЖАЕМСЯ СО ВТОРОГО HDD, то есть уже с RAID. Во избежание путаницы, возможность загрузки с первого диска лучше вообще отключить в BIOS.

reboot

 

После загрузки с RAID нам надо настроить файловую систему первого диска для работы в RAID:

 

#gdisk /dev/sda

*Примечание: с помощью клавиши t меняем типы для всех трех разделов на fd00 (Linux RAID). После завершения нажимаем w для записи изменений и выходим из gdisk. Все команды можно узнать набрав «?».

 

Теперь можно включать первый диск в RAID:

 

#mdadm -a /dev/md0 /dev/sda1

mdadm: added /dev/sda1

 

#mdadm -a /dev/md1 /dev/sda2

mdadm: added /dev/sda2

 

#mdadm -a /dev/md2 /dev/sda3

mdadm: added /dev/sda3

Процесс синхронизации (ребилда) массива можно смотреть с помощью команды:

 

#watch cat /proc/mdstat

После завершения ребилда вносим последние изменения в настройки:

 

#mdadm —detail —scan >> /etc/mdadm.conf

Перезагружаемся и радуемся, что все получилось.