Всем привет!
Есть сервер с Debian 9. Система установлена на RAID1 /dev/md0p1 (состоит из 2х Intel DC S3700 200Gb).
sda 8:0 0 186,3G 0 disk
└─sda1 8:1 0 186,3G 0 part
└─md0 9:0 0 186,2G 0 raid1
└─md0p1 259:0 0 186,2G 0 md /
sdb 8:16 0 186,3G 0 disk
└─sdb1 8:17 0 186,3G 0 part
└─md0 9:0 0 186,2G 0 raid1
└─md0p1 259:0 0 186,2G 0 md /
Планируется докупить ещё 2 таких же диска и превратить массив в RAID10.
Как можно это сделать с минимальным простоем и без потери данных?
UPD. Разобрался как. Прилагаю полный алгоритм, как я только что сделал на тестовой виртуалке:
# структура разделов до процесса миграции: 4 идентичных диска, 2 из них в RAID1 (на обоих установлен GRUB)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 291M 0 rom
vda 254:0 0 5G 0 disk
└─vda1 254:1 0 5G 0 part
└─md0 9:0 0 5G 0 raid1 /
vdb 254:16 0 5G 0 disk
└─vdb1 254:17 0 5G 0 part
└─md0 9:0 0 5G 0 raid1 /
vdc 254:32 0 5G 0 disk
vdd 254:48 0 5G 0 disk
===============================
1) СОЗДАНИЕ ВТОРОГО РЕЙДА
===============================
#Для новых дисков нужно создать структуру разделов идентичную тем, что уже в raid
sfdisk -d /dev/vda --force | sfdisk /dev/vdc --force
sfdisk -d /dev/vda --force | sfdisk /dev/vdd --force
#Для начала вытащим 1 диск из raid1, т.к. нам нужно минимум 3 диска для создания raid10
mdadm /dev/md0 --fail /dev/vdb1 --remove /dev/vdb1
#Собираем деградированный RAID10 как /dev/md3 и монтируем его. Обязательно добавим запись о новом массиве, чтобы после перезагрузки он оставался
mdadm --create /dev/md3 --level=10 --raid-devices=4 /dev/vdb1 /dev/vdc1 /dev/vdd1 missing
mdadm --examine --scan > /etc/mdadm/mdadm.conf
update-initramfs -u
#Создаем ФС на новом массиве
mkfs.ext4 /dev/md3
===============================
2) ВЫБРАТЬ ДРУГОЙ КОРЕНЬ ФС
===============================
#В файле /boot/grub/grub.cfg везде заменить UUID md0, на UUID md3
cdee676d-736c-4028-b419-8d30a6f550c2 на 205e4eb4-84b2-46ef-a220-0aaeb917d4f3
#После этого
update-initramfs -u
#В файле /etc/fstab и /etc/mtab заменить UUID /dev/md0 на UUID /dev/md3
================================
3) ПЕРЕНЕСТИ ДАННЫЕ
================================
#Переносим данные с /dev/md0 на /dev/md3
mkdir /mnt/md3
mount -t ext4 /dev/md3 /mnt/md3
rsync -avHxl --progress --inplace --exclude 'lost+found' / /mnt/md3/
umount /mnt/md3
#Перезагрузиться. В качестве / должен теперь быть md3.
=================================
4) УДАЛИТЬ СТАРЫЙ РЕЙД, ДОСОБРАТЬ НОВЫЙ
=================================
#Разобрать старый рейд, очистить диск, добавить его в RAID10
mdadm -S /dev/md0
mdadm --zero-superblock /dev/vda1
mdadm /dev/md3 --add /dev/vda1
#Пересканировать рейд, обновить запись о массиве
mdadm --examine --scan > /etc/mdadm/mdadm.conf
==================================
5) УСТАНОВИТЬ GRUB НА ВСЕ ДИСКИ
==================================
#укажем все 4 диска
dpkg-reconfigure grub-pc
После перезагрузки наслаждаемся RAID10.