CDS 14 установка на raid 1

Установка CDS 14 на програмный raid 1 (зеркало). Может пригодится кому

Загрузочная USB flash

  wget http://ftp.yandex.ru/calculate/CDS/14/x86_64/cds-14-x86_64.iso
  dd if=cds-14-x86_64.iso of=/dev/sdc bs=8M

1. Загружаемся и размечаем разделы с помощью gdisk.
Тип разделов должен быть FD00(Linux Raid). Не забываем создать загрузочный раздел не менее 10мб тип EF02

 # gdisk /dev/sda

 # fdisk -l
Disk /dev/sda: 931.5 GiB, 1000203804160 bytes, 1953523055 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3977B1DA-F410-11DB-AB02-001B7808E29E

Device           Start          End   Size Type
/dev/sda1         2048        67583    32M BIOS boot partition
/dev/sda2        67584     16844799     8G Linux swap
/dev/sda3     16844800     58787839    20G Linux RAID
/dev/sda4     58787840    100730879    20G Linux RAID
/dev/sda5    100730880   1953523021 883.5G Linux RAID

Далее делаем зеркальное отображение разделов первого винта на второй

sgdisk -R /dev/sdb /dev/sda
sgdisk -G /dev/sdb

 # fdisk -l /dev/sdb
Disk /dev/sdb: 931.5 GiB, 1000203804160 bytes, 1953523055 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7B5FF941-A666-4B3D-B874-5C47D9933D0B

Device           Start          End   Size Type
/dev/sdb1         2048        67583    32M BIOS boot partition
/dev/sdb2        67584     16844799     8G Linux swap
/dev/sdb3     16844800     58787839    20G Linux RAID
/dev/sdb4     58787840    100730879    20G Linux RAID
/dev/sdb5    100730880   1953523021 883.5G Linux RAID

2. Создаём рейд массивы для нужных нам разделов

 # mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
 # mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4
 # mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda5 /dev/sdb5

3. Ждём пока соберется рейд

 # watch cat /proc/mdstat

Если все хорошо массивы будут выглядеть так:

 # cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md3 : active raid1 sda5[0] sdb5[2]
      442244975 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sda4[0] sdb4[1]
      20970424 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda3[0] sdb3[2]
      20970424 blocks super 1.2 [2/2] [UU]

4. Генерируем mdadm.conf

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

 # cat /etc/mdadm.conf
ARRAY /dev/md1 metadata=1.2 name=calculate:1 UUID=586e1cbb:dc936bb4:272aee4d:b60807ad
ARRAY /dev/md2 metadata=1.2 name=calculate:2 UUID=4ee49426:bd2d1e82:7e0e9617:d93f0585
ARRAY /dev/md3 metadata=1.2 name=calculate:3 UUID=0bf6b181:6a77c59b:98104a61:0a79d54e

5. Форматируем разделы

 # mkfs.ext4 /dev/md1
 # mkfs.ext4 /dev/md2
 # mkreiserfs /dev/md3

Swap нет смысла зеркалировать соответственно он будет расположен на разделах обоих дисков

 # mkswap /dev/sdb2
 # mkswap /dev/sda2

6.Устанавливаем систему c помощью cl-install

 # cl-install -l ru_RU --timezone Asia/Yekaterinburg -s CDS --march x86_64 -d /dev/md1:/:ext4:on -d /dev/md3:/var/calculate:reiserfs --scheduler cfq --mbr /dev/sda  --netconf openrc --iface enp0s10:192.168.47.7:24 --hostname cds.aramil.local --route default:192.168.47.1:enp0s10:192.168.47.7 -u root -u tf7

7. Монтируем разделы и производим перенос конфигурационных файлов

 # mount /dev/md1 /mnt/
 # mount /dev/md3 /mnt/var/calculate
 # cp /etc/mdadm.conf /mnt/etc/mdadm.conf

8.Редактируем fstab. Добавим разделы swap. Разделы указанные инсталятору там уже должны быть

 # blkid /dev/md1 /dev/sdb2 /dev/sda2 /dev/md3
/dev/md1: LABEL="CDS-14" UUID="3ec51aed-5ddc-45f5-a0c4-d8ffae039790" TYPE="ext4" 
/dev/sdb2: UUID="ac6bd464-6ac9-4314-84bb-810b725e08a0" TYPE="swap" PARTLABEL="Linux swap" PARTUUID="a87baf0c-574d-437a-a2a4-44ed03e96432" 
/dev/sda2: UUID="8c16e62b-6fe6-491c-bc9a-b84b79e1f389" TYPE="swap" PARTLABEL="Linux swap" PARTUUID="6b76a55d-6e46-42f7-ac10-2fff2661466b" 
/dev/md3: UUID="fcaa3d22-56be-41ca-847f-1b26261cc2df" TYPE="reiserfs" 

Готовый fstab

 # / was on /dev/md1 during installation
UUID=3ec51aed-5ddc-45f5-a0c4-d8ffae039790   /   ext4    noatime,nodiratime  0 1
 # /var/calculate was on /dev/md3 during installation
UUID=fcaa3d22-56be-41ca-847f-1b26261cc2df   /var/calculate  reiserfs    noatime,nodiratime  0 0
UUID=ac6bd464-6ac9-4314-84bb-810b725e08a0   none    swap    sw  0 0
UUID=8c16e62b-6fe6-491c-bc9a-b84b79e1f389   none    swap    sw  0 0
proc        /proc       proc    defaults        0 0
shm     /dev/shm    tmpfs   nodev,nosuid,noexec 0 0

9. Устанавливаем GRUB на оба жестких диска

grub-install --root-directory=/mnt/gentoo /dev/sda
grub-install --root-directory=/mnt/gentoo /dev/sdb

10. Для того чтобы при загрузке наш массив собирался как надо необходимо добавить файл /etc/mdadm.conf в образ initrd

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

Примонитируем системные директории /proc, /dev и /sys.

 # mount --rbind /proc /mnt/proc
 # mount --rbind /dev /mnt/dev
 # mount --rbind /sys /mnt/sys

Переходим в установленунную систему.

 # chroot /mnt /bin/bash
 # env-update
 # source /etc/profile

11.Обновляем initrd

   # cd /boot
   # mv initramfs-3.14.17-calculate.img initramfs-3.14.17-calculate.img.OLD
   # dracut --mdadmconf /boot/initramfs-3.14.17-calculate.img initramfs-3.14.17-calculate

12.Выход из chroot

 # umount -a
 # exit
 # umount -l /mnt/dev /mnt/proc /mnt/sys /mnt/
 # sync
 # reboot

Перезагружаемся

Замечание и дополнения приветствуются.

SWAP рекомендуют делать на raid. В противном случае при вылете одного из swap разделов - может возникнуть кернел паник и т.д и т.п.
А если сдохнет sda? На нем же mbr. Получается система попросту не загрузится при выходе из строя sda диска.
Вы пробовали вытаскивать sda и грузиться с другого диска?

Вот что то не получается у меня установка, вроде как все по мануалу делаю
RAID создается

calculate ~ # fdisk -l
Диск /dev/loop0: 672.8 MiB, 705425408 байт, 1377784 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/sda: 1.9 GiB, 2031091712 байт, 3966976 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xcad4ebea
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sda4 * 256 3966975 3966720 1.9G 6 FAT16
Диск /dev/sdb: 1.8 TiB, 2000398934016 байт, 3907029168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: 4CFECB91-B1F2-4CA2-B652-4168B1D100E9
Устр-во начало Конец Секторы Размер Тип
/dev/sdb1 2048 104447 102400 50M BIOS boot
/dev/sdb2 104448 3907029134 3906924687 1.8T Linux RAID
Диск /dev/sdc: 1.8 TiB, 2000398934016 байт, 3907029168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: D5711C93-A4DF-4594-A95D-21932127DB31
Устр-во начало Конец Секторы Размер Тип
/dev/sdc1 2048 104447 102400 50M BIOS boot
/dev/sdc2 104448 3907029134 3906924687 1.8T Linux RAID
GPT PMBR size mismatch (3907029167 != 3907028991) will be corrected by w(rite).
Диск /dev/md0: 1.8 TiB, 2000398843904 байт, 3907028992 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0x00000000
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/md0p1 1 3907029167 3907029167 1.8T ee GPT
Раздел 1 начинается не на границе физического сектора.

А вот установка не получается :frowning:

calculate ~ # cl-install -D /dev/md0
* Ошибка в параметре -D. Значения для ‘Устройства для установки’ может быть только “/dev/sda (Kingston DataTraveler 2.0, 1.8G)” [/dev/sda], “/dev/sdb (ATA WDC WD20EFRX-68E, 1.8T)” [/dev/sdb] или “/dev/sdc (ATA WDC WD20EFRX-68E, 1.8T)” [/dev/sdc]

Николай Киршин wrote:

SWAP рекомендуют делать на raid. В противном случае при вылете одного из swap разделов - может возникнуть кернел паник и т.д и т.п.
А если сдохнет sda? На нем же mbr. Получается система попросту не загрузится при выходе из строя sda диска.
Вы пробовали вытаскивать sda и грузиться с другого диска?

Сейчас появилась поддержка установки на рейд в утилитах, документация доступна по ссылке. Если у вас на каждом диске есть bios boot раздел (нужен только для gpt) или efi раздел (при использовании efi загрузки), загрузчик пропишется на каждый диск. При выходе из строя одного из дисков система будет загружаться.