Výměna disků v serveru “za živa”.

Středa, Únor 11th, 2009 | Linux

Text určen pro lidi znalé a pro mě jako tahák pro příště……. Pro ostatní informační hodnota nulová.

U celého postupu je potřeba trošku přemýšlet, přeci jen udělat blbý krok, hrozí poškození filesystému nebo ztráta dat.

Popis situace: server s dvěma 160GB SATA disky v raid 1 (mirror) a potřeba vyměnit disky za 2x 500GB SATA disky.

Stručný postup:

1) Zapsání GRUBu na oba disky pro jistotu, kdyby to tak nebylo:

grub> root (hd0,1)
grub> setup (hd1)

Přeci jen, k restartu v nepravou chvíli může dojít vždy.

2) Odebrání prvního disku z raidu:

mdadm –manage /dev/md1 –fail /dev/sda3
mdadm –manage /dev/md1 –remove /dev/sda3
mdadm –manage /dev/md0 –fail /dev/sda2
mdadm –manage /dev/md0 –remove /dev/sda2

Odíly a písmenka u diskových polí má každý jiné, je potřeba odebrat z raidu všechny odíly daného disku. Ověřit si to můžeme pomocí cat /proc/mdstat.

3) Zjištění informací o disku a odpojení sata disku:

# lsscsi

výstup: [1:0:0:0]    disk    ATA      ST3500410AS      CC31  /dev/sda

# echo “scsi remove-single-device 1 0 0 0″ > /proc/scsi/scsi

Poté disk již v lsscsi vidět není, v klidu tedy disk odpojíme a připojíme do rámečku disk nový, pokud nemáte lsscsi a nechce se vám instalovat, informaci o disku lze vyčíst také z hdparm.

4) Počkáme až se disk detekuje a objeví v /dev/ (stav lze zjistit příkazem dmesg, nový disk se objevil místo /dev/sda na /dev/sdc ale to nám nevadí v tuto chvíli)

Update: Byl jsem informován (thx. Anydot), že pokud by se disk sám nenačetl po připojení, je nutné ručně proskenovat řadič, konkrétně:

# echo “- - -” > scan v /sys u řadiče

5) Poté zkopírujeme partition tabulky ze stávajícího disku na nový:

#  sfdisk -d /dev/sdb | sfdisk /dev/sdc

Pokud nemáme v systému sfdisk, je možní odíly vytvořit ručně pomocí fdisku, případně jiného nástroje pro práci z disky.

6) Připojíme nový disk do RAIDU:

mdadm /dev/md0 -a /dev/sdc2
mdadm /dev/md1 -a /dev/sdc3

Zkontroluje stav přes: cat /proc/mdstat (již by mělo být vidět že se diskové polé synchronizuje)

Nyní počkáme než se pole synchronizuje. Poté na nový disk zapíšeme GRUB a můžeme kroky opakovat s druhým diskem.

Ve stručnosti:

# grub> root (hd1,1)
# grub> setup (hd1)
# mdadm –manage /dev/md1 –fail /dev/sda3
# mdadm –manage /dev/md1 –remove /dev/sda3
# mdadm –manage /dev/md1 –fail /dev/sda2
# mdadm –manage /dev/md1 –remove /dev/sda2
# lsscsi
# echo “scsi remove-single-device 1 0 0 0″ > /proc/scsi/scsi

Nyní zapojíme druhý nový disk a pokračujeme:

# sfdisk -d /dev/sdc | sfdisk /dev/sdd
# partprobe
# mdadm /dev/md0 -a /dev/sdd2
# mdadm /dev/md1 -a /dev/sdd3
# cat /proc/mdstat
# grub> root (hd1,1)
# grub> setup (hd1)

Nyní je přehozený systém na nových diskách bez výpadku systému.

Poznámky:

Pokud se po připojení disku do systému a vytvoření odílů nevytvoří zařízení v /dev (/dev/sdb1, sdb2 atd..).

Je nejsnažší způsob použít program partprobe, který je součástí parted.

Použití partprobe je jednoduché, ve většině případů stačí pouze spustit:

# partprobe

Nebo druhá možnost:

# blockdev –rereadpt

To by snad ve stručnosti mělo být vše, pokud by někdo měl takovýto krok před sebou a potřeboval poradit, klidně mě kontaktujte.

Líbil se vám článek? Linkujte

Dosud žádné komentáře.

Napsat komentář

Search

Ručně stručně (twitter.com/haaja)