Skip to content

Výměna disků v RAID 1

Jedna rychlovka v podobě výměny disků v raid 1 🙂 

Mějme server s gnu/linuxem a raidem 1 postaveným na mdadm, raid 1 má v našem případě 2 disky – sda a sdb. Pokud chceme disky vyměnit, máme několik možností:

  • z nových disků sestavit pole mimo server, obsah synchronizovat a disky pak vyměnit
  • přidat do serveru jeden či dva disky, sloučit je se stávajícím raidem a po synchronizaci staré disky odebrat

Podíváme se na druhou možnost s tím, že do serveru ale přidáme jen jeden disk z důvodu, že se nám tam ten čtvrtý nevejde.

Máme nyní tedy sda, sdb a sdc, z toho je sdc zcela nový disk o stejné velikosti, jako ostatní dva. Nejprve provedeme rozdělení sdc tak, aby odpovídalo rozdělení sda/b

sfdisk -d /dev/sda | sfdisk /dev/sdc

Takto jsme přenesli rozdělení partitions a jejich označení z sda na sdc.

V systému máme 3 md zařízení a tedy i 3 partitions na každém z disků.

md0 je složen z sda1, sdb1
md1 je složen z sda2, sdb2
md2 je složen z sda3, sdb3

Dále provedeme přidání disku sdc do raidu. Zde nestačí klasicky přidat disk přes mdadm /dev/md0 -a /dev/sdc1 (a ekvivalentně pro md1 a md2), disk by se tvářil jako Spare, tedy náhradní disk, a to nechceme (je samozřejmě možné ho přidat jako spare, poté failnout jeden ze starých disků a počkat na synchronizaci nicméně zde bychom si rádi ponechali staré dva disky jako funkční raid pro případ problémů). Provedeme tedy následující:

mdadm /dev/md0 --grow -n3 -a /dev/sdc1
mdadm /dev/md1 --grow -n3 -a /dev/sdc2
mdadm /dev/md2 --grow -n3 -a /dev/sdc3

Místo [UU] v /proc/mdstat nyní uvidíme [UU_] a stav, že se disky synchronizují.

POZOR: toto platí pro debian wheezy a vyšší. Na squeezym je nutno postupovat jinak:

mdadm /dev/md0 --grow -n3
mdadm /dev/md1 --grow -n3
mdadm /dev/md2 --grow -n3
mdadm /dev/md0 -a /dev/sdc1
mdadm /dev/md1 -a /dev/sdc2
mdadm /dev/md2 -a /dev/sdc3

Starší mdadm neumí zvýšit počet disků v jednom kroku.

 

Dále je potřeba nainstalovat grub na sdc a to proto, že budeme nyní odebírat staré disky a na sdc nemáme zavaděč.

Pro grub1 je postup následující:

  • v /boot/grub/device.map připíšeme nový disk jako (hd2) /dev/sdc
  • spustíme grub a zapíšeme konfiguraci:
grub --device-map=/boot/grub/device.map
root(hd2,0)
setup(hd2)
quit

hd2 znamená disk sdc a číslo 0 je číslo partition, kde se nachází /boot a zbytek grubu

Pro grub2, který je dnes již výchozí zavaděč můžeme použít grub-install /dev/sdc

Nyní můžeme server vypnout a vyndat staré disky a zamontovat poslední nový disk. Před startem je potřeba v biosu ověřit, že jako první bootovací disk je zvolen náš sdc.

Po bootu systém nastartuje v degraded režimu a v /proc/mdstat uvidíme [__U] („U“ a dvě podtržítka, font blogu to nezobrazuje ideálně 🙂 )

Nyní opět provedeme rozdělení disku pomocí sfdisk tak, jako jsme to dělali před tím. Před takovou akcí si vždy zkontrolujte, zda jste neotočili označení disků 🙂

Dále přidáme nový disk do raidu:

mdadm /dev/md0 -a /dev/sdb1

a obdobně pro md1 a 2.

Poté z raidu odstraníme chybějící třetí disk, vrátíme se tak na původní stav – raid 1 ze dvou disků:

mdadm /dev/md0 --grow -n2

a obdobně pro md1 a 2

 

pozn.: ve videích pracuji jen s dvoupartišnovým rozdělením disků, na postupu to ale nic nemění

Zbývá už jen opět nainstalovat grub na sdb a máme hotovo 🙂

Věnováno Mašině

3 thoughts on “Výměna disků v RAID 1

  1. WWlkodlak says:

    Paráda, jen ty videa máš nějaký nenastylovaný, je to široký. 😀

    Odpovědět
  2. Socl.cz says:

    Díky za super návod. Až bude prostor, vyzkouším si jej v praxi. 🙂

    Odpovědět

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Time limit is exhausted. Please reload the CAPTCHA.