Nastavení RAID1 na běžícím systému
Mám systémový disk, který obsahuje instalaci systému. Koupil jsem druhý disk, který chci použít na zrcadlení systémového disku (RAID1).
Warning
U všech příkazů platí: dvakrát měř, jednou řež!
Note
Zkoušeno na systému Debian Stretch, systemd free :)
Cíl
Systémový disk v softwarovém RAID1.
Postup
Na druhém oddíle je samostatně swap. Boot oddíl nemám nastaven.
Jak postupovat:
- Základní příprava nového disku přidaného do systému; rozdělit na oddíly stejně jako disk první - musí mít i stejné parametry (velikost); nastavení typu oddílů na fd (linux raid autodetect); vymazat případné RAID superbloky z nového disku (v případě, že byl již někdy použit v jiném poli)
- Vytvořit RAIDové pole; přidat nový disk do RAID1 pole (zatím ještě degradovaného)
- Naformátovat disk, aktualizovat nastavení mdadm
- Přidat do GRUBu položku v menu aby systém bootoval z tohoto nového pole
- Zkopírovat data ze systémového disku na nový disk; nainstalovat aktualizovavý GRUB do bootovacích oddílů
- Upravit /etc/fstab aby připojil root a swap z raidového pole
- Restartovat systém; ověřit, zda systém opravdu nabootoval z tohoto pole
- Upravit starý disk (typ oddílu na raid autodetect); přidat oddíly starého disku do RAIDového pole
- Smazat dočasnou položku v GRUB menu, aktualizovat GRUB
- Počkat na synchronizaci pole
- Restartovat
1. Základní příprava disku
Zjistím jak se moje disky jmenují
# fdisk -l
Upravím disk, typ na linux raid autodetect (typ: fd)
Zkopíruji tabulku rozdělení disku na cílový disk:
# sfdisk -d /dev/sda | sfdisk /dev/sde
Ověřím, zda je ok:
# fdisk -l /dev/sde
Vymažu superbloky z nového disku:
# mdadm --zero-superblock /dev/sde1
# mdadm --zero-superblock /dev/sde2
2. Vytvoření RAIDového pole
Vytvoření pole 2 disků (level 1 = RAID1) s chybějícím diskem (missing):
# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sde1
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sde2
Zjištění stavu:
cat /proc/mdstat
3. Naformátování oddílů
# mkfs.ext4 /dev/md0
# mkswap /dev/md1
Aktualizace nastavení mdadm:
# cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.bak
# mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Ověření stavu:
# cat /etc/mdadm/mdadm.conf
5. Zkopírování dat
Připojíme si pole do dočasného umístění:
# mkdir /mnt/md0
# mount /dev/md0 /mnt/md0
Ověření:
# mount
Zkopírovat všechna data:
# cp -dpRx / /mnt/md0
Instalace GRUBu:
# grub-install /dev/sda
# grub-install /dev/sde
6. Upravit přípojné body v /etc/fstab
Zjistím si jaké UUID pole má:
# blkid /dev/md0 /dev/md1
Upravím nastavení, /dev/md0 a swap na /dev/md1:
# editor /etc/fstab
Note
Lze použít i /dev/md0 a /dev/md1 místo UUID
7. Restartovat
# reboot
Po restartu ověřit:
# cat /proc/mdstat
# mount
8. Upravit starý disk
Změnit typy oddílů na linux raid autodetect (fd)
# fdisk /dev/sda
# mdadm --add /dev/md0 /dev/sda1
# mdadm --add /dev/md1 /dev/sda2
Ověřit:
# cat /proc/mdstat
Upravíme konfiguraci mdadm (tady jsem měl výsledek stejný jako předtím v bodu 3)
# cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.bak
# mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Warning
Je potřeba upravit případné duplicity!
10. Synchronizace pole
# cat /proc/mdstat
# mdadm --detail /dev/md0
# mdadm --detail /dev/md1
11. Restart
# reboot