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

Делимся опытом, обсуждаем проблематику внедрения серверов и сервисов.

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

Сообщение Трешнюк Олег » 05 авг 2017, 12:09

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Тб :shock: )
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-массива-на-работающем-серв/
Трешнюк Олег
 
Сообщений: 7
Зарегистрирован: 19 янв 2016, 16:11
Откуда: Украина, Николаев
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.

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

Сообщение Трешнюк Олег » 05 авг 2017, 12:50

Собственно:
Создаем раздел в системе под массив.
root@pve01:/# mkdir /massive
Монтирует его
root@pve01:/# mount /dev/md3 /massive
Проверяем его наличие
root@pve01:/# df -h
Filesystem Size Used Avail Use% Mounted on
udev 10M 0 10M 0% /dev
tmpfs 13G 9.7M 13G 1% /run
/dev/md1 1.8T 235G 1.5T 14% /
tmpfs 32G 43M 32G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/md0 465M 108M 329M 25% /boot
/dev/sdc1 5.5T 139G 5.1T 3% /backup
/dev/fuse 30M 20K 30M 1% /etc/pve
/dev/md3 15T 9.1M 14T 1% /massive
root@pve01:/#

Для автомонтирования добавляем его в /etc/fstab
Редактируем: nano /etc/fstab

# /massive on /dev/md3 raid5
UUID=6092e00f-2ad5-47a7-9e38-6a4f122d950c /massive ext4 defaults 0 2

UUID можно узнать командой blkid -c /dev/null
Трешнюк Олег
 
Сообщений: 7
Зарегистрирован: 19 янв 2016, 16:11
Откуда: Украина, Николаев
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.

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

Сообщение Трешнюк Олег » 13 авг 2017, 14:29

UPD. Переведенный способ во втором сообщение работает.
58a5d-clip-103kb.png
58a5d-clip-103kb.png (102.73 KiB) Просмотров: 332

Но создается двойная запись данных. На виртуальный раздел объемом 13,7Тб (именно столько позволил создать проксмокс) и непосредственно на физический образ который расположен на физическом сервере. Поэтому по совету сотрудников хостинг компании было решено отказать от виртуального раздела.

Под систему файлового сервера была создана виртуальная машина на SSD массиве размером в 50Гб, а сам файловый раздел в рейде 5 объемом 16002605645824 был смонтирован как отдельный диск вручную через файл настроек вируалки nano /etc/pve/qemu-server/ХХХХ.conf
Таким образом доступно для использования 100% места и нет повторных записей, а следственно ненужной нагрузки на файловый массив и сам сервер.
Clip2net_170813152824.png
Clip2net_170813152824.png (129.71 KiB) Просмотров: 332
Трешнюк Олег
 
Сообщений: 7
Зарегистрирован: 19 янв 2016, 16:11
Откуда: Украина, Николаев
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.


Вернуться в Сервера и сетевые решения

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron