Linux notes #13 — Как сделать программный RAID в Linux

Если у вас осталась виртуальная машина от предыдущего урока и на вашем LVM нет никаких важных данных (а на тестовом стенде в лабе и не должно) сделаем так

sudo umount /mnt/newlv

sudo vgremove vg1
y
y

sudo wipefs -a /dev/sdb /dev/sdc

Закомментируем строку от LVM

sudo nano /etc/fstab
#/dev/mapper/vg1-lv1 /mnt/newlv ext4 defaults 0 0

Когда мы создаем аппаратный RAID есть рекомендация по использованию дисков от одного вендора, одной объема и т.д. Простыми словами они должны быть максимально одинаковы. Равняться RAID будет на самый “маленький” диск.

В программном RAID есть небольшой лайфхак — использовать разделы на диске.

sudo fdisk /dev/sdb

g

n
enter
enter
+1GB

p

w

sudo /dev/sdc

g

n
enter
enter
+1GB

p

w
sudo fdisk -l /dev/sdb1 /dev/sdc1

sudo mdadm --create newraid1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
y
ls -l /dev/md
ls -l /dev/md127
sudo mdadm -D /dev/md127
su
cd /etc

echo ‘DEVICE /dev/hd*[0-9] /dev/sd*[0-9]’ > mdadm.conf

cat mdamd.conf
DEVICE /dev/hd*[0-9] /dev/sd*[0-9]

mdadm --detail --scan >> mdadm.conf

cat mdadm.conf
ARRAY /dev/md/newraid1 metadata=1.2 name=almalinux:newraid1 UUID=784bfa8a:37fc9f37:adb6447c:664c0323
fdisk /dev/md127

g

n

enter
enter

+300MB

n
2
enter
enter

p

w
ls -l /dev/md
ls -l /dev/md/newraid1
mkfs.ext4 /dev/md127p1

pvcreate /dev/md127p2

vgcreate newraidvg /dev/md127p2

lvcreate newraidvg -n newraidlv -l 80%FREE

ls -l /dev/mapper

mkfs.ext4 /dev/mapper/newraidvg-newraidlv
nano /etc/fstab
/dev/mapper/newraidvg-newraidlv /mnt/newlv ext4 defaults 0 0
mount -a

df -h

Выключим виртуалку, уберем один диск, запустим и после загрузки проверим

df -h

Видим, что все в порядке

Теперь проверим статус RAID

sudo mdadm -D /dev/md127

Обратим внимание на degraded, значит что-то не так. Внизу видим, что один из дисков в состоянии removed. Теперь снова выключим виртуальную машину и представим, что мы заменили жесткий диск на новый. Создаем еще один диск на 1GB и включаем виртуалку.

Находим новый диск

sudo fdisk -l
sudo fdisk /dev/sdc

g

n

enter
enter
+1 GB

p

w
sudo mdadm /dev/md127 --add /dev/sdc1

sudo mdadm -D /dev/md127

Видим, что все в порядке