скопипижжено с: http://kryuchkov62.blogspot.ru/2012/10/software-raid1-citrix-xenserver-602_4.html
Алгоритм работы:
- создать на втором диске файловую систему, аналогичную XenServer
- запустить на нем softraid
- перенести сам XenServer на второй диск
- загрузиться со второго диска, т.е. уже с программного RAID
- подключить к новоиспеченному RAID массиву первый диск
Системный блок:
Материнская плата - Foxconn G31MXP
Процессор - Intel Pentium E5300 @ 2600 МГц
Оперативная память - 4096 Кб (2 x 2048 DDR2-SDRAM )
Дисковая подсистема - 2 Seagate ST3250813AS (250 Гб)
*Примечание: если у вас аналогичная материнская плата, то решение проблемы с определением 3 гигабайт оперативной памяти ****тут.
Устанавливаем XenServer 6.0.2. При установке я выбрал первый диск.
Установили. Переходим в консоль или подключаемся по SSH. Я использую Putty.
Расклад:
sda – диск с XenServer
sdb – пустой диск
Задача: подготовить второй диск к созданию массива (создать на нём копию таблицы разделов первого диска)
Смотрим таблицу разделов на sda
# gdisk -l /dev/sda
Проверяем, что таблица разделов на sdb пуста:
# gdisk -l /dev/sdb
С помощью gdisk вручную создаем на sdb таблицу разделов:
# gdisk /dev/sdb
*Примечание: с помощью клавиши "n" создаём три раздела (номер раздела, стартовые и конечные сектора должны полностью совпадать, тип раздела при этом необходимо указывать fd00 (Linux RAID)). После завершения нажимаем "w" для записи изменений и выходим из gdisk. Все команды можно узнать набрав "?".
Таблица должна быть идентична диску sda.
*Примечание: рекомендую настраивать по SSH, т.к. там легко копируюся любые элементы.
Проверяем наши диски:
# gdisk -l /dev/sda
# gdisk -l /dev/sdb
и если никаких различий (кроме типа раздела) - продолжаем
Создадим устройства MD на втором диске:
1# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing
2# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb2 missing
3# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb3 missing
Создадим и перенесем Local Storage в RAID:
1# pvcreate /dev/md2
2# vgextend VG_[tab] /dev/md2
3# pvmove /dev/sda3 /dev/md2
Примечание: [tab] - означает нажать клавишу Tab, чтобы дописать ваше значение.
Удалим старый storage с первого диска:
1# vgreduce VG_[tab] /dev/sda3
2# pvremove /dev/sda3
Создадим файловую систему на RAID:
# mkfs.ext3 /dev/md0
И смонтируем ее:
# mount /dev/md0 /mnt
Скопируем сам XenServer в RAID:
1# cd /
2# cp -axv . /mnt
Редактируем fstab для монтирования root раздела с RAID:
# nano /mnt/etc/fstab
вместо строки:
LABEL=root-xxx / ext3 defaults 1 1
должна получиться строка:
/dev/md0 / ext3 defaults 1 1
Создаем загрузочный образ для RAID:
1# mkdir /mnt/root/initrd-raid
2# mkinitrd -v --fstab=/mnt/etc/fstab /mnt/root/initrd-raid/initrd-`uname -r`-raid.img `uname -r`
3# cd /mnt/root/initrd-raid
4# zcat initrd-`uname -r`-raid.img | cpio -i
Редактируем файл init:
# nano init
и добавляем после
raidautorun /dev/md0
две строки:
# raidautorun /dev/md1
# raidautorun /dev/md2
Копируем новый диск в каталог /mnt/boot
1# find . -print | cpio -o -Hnewc | gzip -c > /mnt/boot/initrd-`uname -r`-raid.img
2# rm /mnt/boot/initrd-2.6-xen.img
rm: remove symbolic link `/mnt/boot/initrd-2.6-xen.img’? y
3# 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 на втором диске:
1# cat /mnt/usr/share/syslinux/gptmbr.bin > /dev/sdb
2# cd /mnt
3# extlinux --raid -i boot/
Корректно размонтируем второй диск:
1# cd
2# umount /dev/md0
3# sync
Проверяем, что флаг загрузочного диска корректно установлен на обоих дисках:
1# sgdisk /dev/sda --attributes=1:set:2
2# sgdisk /dev/sdb --attributes=1:set:2
Перезагружаем сервер. И ЗАГРУЖАЕМСЯ СО ВТОРОГО ДИСКА, то есть уже с RAID. Во избежание путаницы, возможность загрузки с первого диска лучше вообще отключить в BIOS.
reboot
После загрузки с RAID нам надо настроить файловую систему первого диска для работы в RAID:
# gdisk /dev/sda
*Примечание: с помощью клавиши t меняем типы для всех трех разделов на fd00 (Linux RAID). После завершения нажимаем w для записи изменений и выходим из gdisk. Все команды можно узнать набрав "?".
Теперь можно включать первый диск в RAID:
1# mdadm -a /dev/md0 /dev/sda1
mdadm: added /dev/sda1
2# mdadm -a /dev/md1 /dev/sda2
mdadm: added /dev/sda2
3# mdadm -a /dev/md2 /dev/sda3
mdadm: added /dev/sda3
Процесс синхронизации (ребилда) массива можно смотреть с помощью команды:
# watch cat /proc/mdstat
После завершения ребилда вносим последние изменения в настройки:
# mdadm --detail --scan >> /etc/mdadm.conf
И перезагружаемся. Для корректной загрузки в случае отказа одного из дисков, требуется настроить в BIOS загрузку системы с обоих жестких дисков по-очереди.
Необходимые команды для работы с RAID можно найти здесь.
2# vgextend VG_[tab] /dev/md2
3# pvmove /dev/sda3 /dev/md2
1# vgreduce VG_[tab] /dev/sda3
2# pvremove /dev/sda3
у меня эти команды не выполнялись, поэтому я сам называл VolumeGroup по типу VG1 VG2 и т.д. и в конце сделал руками сторадж. Поэтому НАСТОЯТЕЛЬНО рекомендую делать это на чистой мшине, до того как вы начнете заселять её виртуалками. Ну и соответственно НЕ рекомендую делть это на живой машине.
Комментариев нет:
Отправить комментарий