Установка на raid10

Материал из ALT Linux Wiki

Предыстория: в evms отсутствует поддержка программного raid10, поэтому в инсталлере нельзя создать raid10 массивы и даже воспользоваться созданными вручную.

Допустим, у нас есть 4 HDD. Устанавливаем систему на один из дисков (например на sdd).

В тестовом примере используется разбивка на разделы под / /usr /var и /var/lib/vz. При этом / оставляется на raid1 из 4-х дисков, а для остальных точек монтирования используется raid10.

Разбиваем диски на разделы, всем будущим raid-разделам выставляем тип раздела fd (linux raid autodetect):

fdisk /dev/sda/
n
...
t
...
fd
...
w
sfdisk -d /dev/sda |sfdisk /dev/sdb
sfdisk -d /dev/sda |sfdisk /dev/sdc

После установки создаём raid10 массивы из 4-х устройств, одно определяем как missing:

mdadm -Cv -b internal /dev/md5 --level=raid10 --raid-devices=4 /dev/sda5 /dev/sdb5 /dev/sdc5 missing
mdadm -Cv -b internal /dev/md6 --level=raid10 --raid-devices=4 /dev/sda6 /dev/sdb6 /dev/sdc6 missing
mdadm -Cv -b internal /dev/md7 --level=raid10 --raid-devices=4 /dev/sda7 /dev/sdb7 /dev/sdc7 missing
mdadm -Cv -b internal /dev/md8 --level=raid10 --raid-devices=4 /dev/sda8 /dev/sdb8 /dev/sdc8 missing

Создаём файловые системы на массивах:

mkswap /dev/md5
mkfs.jfs /dev/md6
mkfs.jfs /dev/md7
mkfs.jfs /dev/md8

Монтируем массивы:

mkdir -p /mnt/newroot/{usr,var}
mount -t jfs /dev/md6 /mnt/newroot/usr/
mount -t jfs /dev/md7 /mnt/newroot/var/
mkdir -p /mnt/newroot/var/lib/vz/
mount -t jfs /dev/md8 /mnt/newroot/var/lib/vz/

Копируем данные на массивы:

rsync -vaPHx --delete --numeric-ids /usr/ /mnt/newroot/usr/
rsync -vaPHx --delete --numeric-ids /var/ /mnt/newroot/var/
rsync -vaPHx --delete --numeric-ids /var/lib/vz/ /mnt/newroot/var/lib/vz/

Прописываем в /etc/fstab UUID-ы файловых систем на массивах (старые пока не удаляем, а комментируем, на случай если что-то пойдёт не так):

proc            /proc                   proc    nosuid,noexec,gid=proc          0 0
devpts          /dev/pts                devpts  nosuid,noexec,gid=tty,mode=620  0 0
tmpfs           /tmp                    tmpfs   nosuid                          0 0
UUID=b4d0d9ad-c78d-443a-b30b-e97e668524da       /       ext3    noatime 1       1
UUID=2e1792d8-b034-49ae-9640-912697ac5e98       /usr    jfs     nodev,noatime   1       2
#UUID=b09bd3db-66c8-4ada-a4bf-816e19ea0431      /usr    jfs     nodev,noatime   1       2
UUID=96463e13-3912-429a-a616-76da0387f4bf       /var    jfs     nosuid,noatime  1       2
#UUID=24da1726-5ebc-429b-9352-7dfece553a58      /var    jfs     nosuid,noatime  1       2
UUID=a4bad24b-a1f6-47d9-9e4b-7a1bce91e200       /var/lib/vz     jfs     defaults,noatime        1       2
#UUID=61c85bb7-d0d8-4b06-b5b8-56157c3f8303      /var/lib/vz     jfs     defaults,noatime        1       2
UUID=4cdb9c7a-8d3b-4adb-84e9-28064cdc859e       swap    swap    defaults        0       0
#UUID=8265bab5-d5a5-4144-81f7-16fbfff0d3c6      swap    swap    defaults        0       0
/dev/hdc        /media/cdrom    udf,iso9660     ro,noauto,user,utf8     0 0

Выполняем перезагрузку

shutdown -r now

Если всё прошло хорошо, в выводе mount увидим, что mdX примонтированы.

Добавляем 4-й раздел к каждому массиву:

mdadm -a /dev/md5 /dev/sdd5
mdadm -a /dev/md6 /dev/sdd6
mdadm -a /dev/md7 /dev/sdd7
mdadm -a /dev/md8 /dev/sdd8

Прописываем массивы в /etc/mdadm.conf и включаем сервис mdadm.