Идея такова:
- создать на втором диске файловую систему, аналогичную свежеустановленному XenServer
- запустить на нем softraid
- перенести сам XenServer на второй диск
- загрузиться со второго диска, т.е. уже с программного RAID
- подключить к новоиспеченному RAID массиву первый диск
Для начала нам потребуется свежеустановленный XenServer 6.0. Желательно без каких-либо настроек и данных, поскольку в случае нарушения порядка действий вы легко можете получить мертвую систему. Итак, в сервере должны находиться 2, желательно идентичных диска. На первый мы ставим обычной установкой XenServer, а второй я настоятельно рекомендую перед началом настройки полностью затереть нулями (к примеру с помощью MHDD). Итак приступим к настройке.
Данные:
sda – диск с XenServer
sdb – пустой диск
Смотрим и сохраняем где-нибудь таблицу разделов sda.
gdisk -l /dev/sda--- |
Проверяем, что таблица разделов sdb пуста:
gdisk -l /dev/sdb |
С помощью gdisk вручную создаем на sdb таблицу разделов:
gdisk /dev/sdb
|
Таблица должна быть идентична диску sda (номер раздела, стартовые и конечные сектора должны полностью совпадать). Тип раздела при этом необходимо указывать fd00 (Linux RAID).
1
2 3 |
# 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:
1
2 3 |
# pvcreate /dev/md2
# vgextend VG_[tab] /dev/md2 # pvmove /dev/sda3 /dev/md2 |
Удалим старый storage с первого диска:
1
2 |
# vgreduce VG_[tab] /dev/sda3
# pvremove /dev/sda3 |
Создадим файловую систему на RAID:
1
|
# mkfs.ext3 /dev/md0
|
И смонтируем ее:
1
|
# mount /dev/md0 /mnt
|
Скопируем сам XenServer в RAID:
1
2 |
# cd /
# cp -axv . /mnt |
Редактируем fstab для монтирования root раздела с RAID:
1
|
# nano /mnt/etc/fstab
|
1
|
LABEL=root-xxx / ext3 defaults 1 1
|
1
|
/dev/md0 / ext3 defaults 1 1
|
Создаем загрузочный образ для RAID:
1
2 3 4 |
# 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:
1
|
nano init
|
1
|
raidautorun /dev/md0
|
1
2 |
raidautorun /dev/md1
raidautorun /dev/md2 |
Копируем новый диск в каталог /mnt/boot :
1
2 3 4 |
# 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 |
Редактируем загрузочное меню:
1
|
nano /mnt/boot/extlinux.conf
|
1
|
root=LABEL=root-xxx
|
1
|
root=/dev/md0
|
Устанавливаем MBR для GPT на втором диске:
1
2 3 |
# cat /mnt/usr/share/syslinux/gptmbr.bin > /dev/sdb
# cd /mnt # extlinux --raid -i boot/ |
Корректно размонтируем второй диск:
1
2 3 |
# cd
# umount /dev/md0 # sync |
Проверяем, что флаг загрузочного диска корректно установлен на обоих дисках:
1
2 |
# sgdisk /dev/sda --attributes=1:set:2
# sgdisk /dev/sdb --attributes=1:set:2 |
Перезагружаем сервер. И ЗАГРУЖАЕМСЯ СО ВТОРОГО ДИСКА, то есть уже с RAID. Во избежание путаницы, возможность загрузки с первого диска лучше вообще отключить в BIOS.
reboot
|
После загрузки с RAID нам требуется настроить файловую систему первого диска для работы в RAID:
1
|
# gdisk /dev/sda
|
Для этого с помощью клавиши t меняем типы для всех трех разделов на fd00 (Linux RAID). После завершения нажимаем w для записи изменений и выходим из gdisk.
Теперь можно включать первый диск в RAID:
1
2 3 4 5 6 |
# 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
|
После завершения ребилда вносим последние изменения в настройки:
1
|
# mdadm --detail --scan >> /etc/mdadm.conf
|
И перезагружаемся. Для корректной загрузки в случае отказа одного из дисков, требуется настроить в BIOS загрузку системы с обоих жестких дисков по-очереди.
Вот и все на этом настройка software RAID1 для xenserver 6.0 завершена. Все необходимые команды для работы с RAID можно найти
Основа для данной статьи взята
Спасибо, отличный мануал :)
ОтветитьУдалить:) всегда пожалуйста
УдалитьА для чего используется раздел sda2?
ОтветитьУдалитьКак понимаю sda1 / sda3 loca storage а sda2 swap? почему тогда идентификатор раздела 0700?
Here’s a quick explanation of your partitions:
Удалить/dev/sda1: the XenServer root partition
/dev/sda2: XenServer uses this partition for temporary space during upgrades
/dev/sda3: your storage repository should be in this logical volume
Антон, добрый день
ОтветитьУдалитьМожете помочь с настройкой RAID за благодарность?
еще актуально?
Удалить