Создание программного RAID 5 массива на работающем сервере.

1. Проверяем названия дисков в системе командой fdisk -l
root@pve01:~# fdisk -l
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdc: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors
Disk /dev/sdd: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sde: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdf: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdg: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk /dev/sdh: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
2. Делаем разметку диска первого диска для рейда командой: cfdisk /dev/sda
выбираем тип gpt и создаем новый раздел на всю область диска, ставим тип раздела Linux RAID, записываем изменения, видим запись об успешной разметке - The partition table has been altered, выходим.
3. Для того чтоб не проделывать аналогичную процедуру для других дисков выполним команду (не повторять для дисков свыше 2Тб
)
sfdisk -d /dev/sda | sfdisk /dev/sdb
sfdisk -d /dev/sda | sfdisk /dev/sdd
sfdisk -d /dev/sda | sfdisk /dev/sde
sfdisk -d /dev/sda | sfdisk /dev/sdf
root@pve01:~# sfdisk -d /dev/sda | sfdisk /dev/sdb
sfdisk: Checking that no-one is using this disk right now ...
sfdisk: OK
Disk /dev/sdb: 486401 cylinders, 255 heads, 63 sectors/track
sfdisk: /dev/sdb: unrecognized partition table type
Old situation:
sfdisk: No partitions found
New situation:
Units: sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 1 4294967295 4294967295 ee GPT
/dev/sdb2 0 - 0 0 Empty
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
sfdisk: Warning: partition 1 does not end at a cylinder boundary
sfdisk: Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table
Re-reading the partition table ...
sfdisk: If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
Проверяем командой df -h, если разделы не создались или создались некорректно (как в нашем случае, разделы создалить до 2Тб, когда диски на 4 ТБ) переразмечиваем в ручную каждый cfdisk /dev/sdX.
Если создаваемый раздел не занимает всю свободную область - затираем диск dd if=/dev/zero of=/dev/sdX bs=1024k (sdX ваш диск, в нашем случае sdb, sdd, sde, sdf)
Отменить можно после нескольких минут командой Ctrl+C, нам нужно только начало диска стереть.
Создаем новые разделы cfdisk /dev/sdb
3. Используем утилиту mdadm для создания рейда.
Ключ --create (краткая форма -C) - режим создания. --verbose вывод всего происходящего на экран.
После этого ключа указывается имя создаваемого RAID-устройства. /dev/md3 так как у нас уже емелись 0,1,2 под загрузчик, swap и рам раздел линукса.
Ключ --level=5 определяет уровень RAID-массива. Ключ --raid-devices=5 определяет количество устройств-компонентов в создаваемом RAID-массиве. Завершает командную строку список устройств, из которых будет сформирован RAID-массив.
root@pve01:~# mdadm --create --verbose /dev/md3 --level=5 \
> --raid-devices=5 /dev/sda1 /dev/sdb1 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 3906886144K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
Командой fdisk -l проверяем наличие нашего раздела.
Disk /dev/md3: 14.6 TiB, 16002605645824 bytes, 31255089152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 2097152 bytes
4. Проверяем статус:
root@pve01:~# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md3 : active raid5 sdf1[5] sde1[3] sdd1[2] sdb1[1] sda1[0]
15627544576 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [UUUU_]
[=========>………..] recovery = 49.1% (1918542492/3906886144) finish=208.0min speed=159283K/sec
bitmap: 0/30 pages [0KB], 65536KB chunk
Статус [UUUU_] который показывает что диск номер 5 вышел с рейда при сборке рейд 5 служит для служебной информации на момент установки. Ждем 100% и проверяем. Все массивы на сервере:
root@pve01:~# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md3 : active raid5 sdf1[5] sde1[3] sdd1[2] sdb1[1] sda1[0]
15627544576 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 0/30 pages [0KB], 65536KB chunk
md1 : active raid1 sdg5[0] sdh5[1]
1921632256 blocks super 1.2 [2/2] [UU]
bitmap: 3/15 pages [12KB], 65536KB chunk
md0 : active raid1 sdg2[0] sdh2[1]
499392 blocks super 1.2 [2/2] [UU]
md2 : active raid1 sdg1[0] sdh1[1]
31233024 blocks super 1.2 [2/2] [UU]
unused devices:
Готово, осталось отформатировать массив в etx4 и добавить его в автомонтирование в /etc/fstab
Статья с картинками - http://alligator.work/создание-raid-массива-на-работающем-серв/
root@pve01:~# fdisk -l
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdc: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors
Disk /dev/sdd: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sde: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdf: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk /dev/sdg: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk /dev/sdh: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
2. Делаем разметку диска первого диска для рейда командой: cfdisk /dev/sda
выбираем тип gpt и создаем новый раздел на всю область диска, ставим тип раздела Linux RAID, записываем изменения, видим запись об успешной разметке - The partition table has been altered, выходим.
3. Для того чтоб не проделывать аналогичную процедуру для других дисков выполним команду (не повторять для дисков свыше 2Тб

sfdisk -d /dev/sda | sfdisk /dev/sdb
sfdisk -d /dev/sda | sfdisk /dev/sdd
sfdisk -d /dev/sda | sfdisk /dev/sde
sfdisk -d /dev/sda | sfdisk /dev/sdf
root@pve01:~# sfdisk -d /dev/sda | sfdisk /dev/sdb
sfdisk: Checking that no-one is using this disk right now ...
sfdisk: OK
Disk /dev/sdb: 486401 cylinders, 255 heads, 63 sectors/track
sfdisk: /dev/sdb: unrecognized partition table type
Old situation:
sfdisk: No partitions found
New situation:
Units: sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 1 4294967295 4294967295 ee GPT
/dev/sdb2 0 - 0 0 Empty
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
sfdisk: Warning: partition 1 does not end at a cylinder boundary
sfdisk: Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table
Re-reading the partition table ...
sfdisk: If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
Проверяем командой df -h, если разделы не создались или создались некорректно (как в нашем случае, разделы создалить до 2Тб, когда диски на 4 ТБ) переразмечиваем в ручную каждый cfdisk /dev/sdX.
Если создаваемый раздел не занимает всю свободную область - затираем диск dd if=/dev/zero of=/dev/sdX bs=1024k (sdX ваш диск, в нашем случае sdb, sdd, sde, sdf)
Отменить можно после нескольких минут командой Ctrl+C, нам нужно только начало диска стереть.
Создаем новые разделы cfdisk /dev/sdb
3. Используем утилиту mdadm для создания рейда.
Ключ --create (краткая форма -C) - режим создания. --verbose вывод всего происходящего на экран.
После этого ключа указывается имя создаваемого RAID-устройства. /dev/md3 так как у нас уже емелись 0,1,2 под загрузчик, swap и рам раздел линукса.
Ключ --level=5 определяет уровень RAID-массива. Ключ --raid-devices=5 определяет количество устройств-компонентов в создаваемом RAID-массиве. Завершает командную строку список устройств, из которых будет сформирован RAID-массив.
root@pve01:~# mdadm --create --verbose /dev/md3 --level=5 \
> --raid-devices=5 /dev/sda1 /dev/sdb1 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 3906886144K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
Командой fdisk -l проверяем наличие нашего раздела.
Disk /dev/md3: 14.6 TiB, 16002605645824 bytes, 31255089152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 2097152 bytes
4. Проверяем статус:
root@pve01:~# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md3 : active raid5 sdf1[5] sde1[3] sdd1[2] sdb1[1] sda1[0]
15627544576 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [UUUU_]
[=========>………..] recovery = 49.1% (1918542492/3906886144) finish=208.0min speed=159283K/sec
bitmap: 0/30 pages [0KB], 65536KB chunk
Статус [UUUU_] который показывает что диск номер 5 вышел с рейда при сборке рейд 5 служит для служебной информации на момент установки. Ждем 100% и проверяем. Все массивы на сервере:
root@pve01:~# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md3 : active raid5 sdf1[5] sde1[3] sdd1[2] sdb1[1] sda1[0]
15627544576 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 0/30 pages [0KB], 65536KB chunk
md1 : active raid1 sdg5[0] sdh5[1]
1921632256 blocks super 1.2 [2/2] [UU]
bitmap: 3/15 pages [12KB], 65536KB chunk
md0 : active raid1 sdg2[0] sdh2[1]
499392 blocks super 1.2 [2/2] [UU]
md2 : active raid1 sdg1[0] sdh1[1]
31233024 blocks super 1.2 [2/2] [UU]
unused devices:
Готово, осталось отформатировать массив в etx4 и добавить его в автомонтирование в /etc/fstab
Статья с картинками - http://alligator.work/создание-raid-массива-на-работающем-серв/