Máte softwarový mirror (mdadm --level 1
) a dochází vám místo? Tento článek poskytne návod, jak vyměnit pevné disky za chodu systému za větší bez ztráty dat. Pochopitelně jako vždy, doporučuji aktualizovat zálohu – to už snad berete jako samozřejmost.
Výchozí stav
Máme vytvořený SW mirror na dvou diskách. Například příkazem:
mdadm --create /dev/md0 --level mirror --raid-devices 2 /dev/sdb1 /dev/sdc1
Tedy disky sdb, sdc
jsou staré a malé, budeme je nahrazovat většími disky sdd, sde
.
Přidání nových disků
Nejprve přidáme nové disky do pole (jako hot-spare). Tedy na diskách sdd
a sde
vytvoříme oddíly typu raid autodetect např nástrojem fdisk
:
fdisk /dev/sdd
n – vytvoření partition (primární, číslo 1, zbytek odklepat – začátek na prvním sektoru, konec na posledním)
t – výběr ID, zadat fd
w – uložení partition tabulky na disk a aktualizace v kernelu.
Totéž pro disk sde
. Pak přidáme nové oddíly do pole jako hot-spare:
mdadm /dev/md0 --add /dev/sdd1 /dev/sde1
Postupná výměna disků
Do pole máme přidané větší disky. Teď je možné odebrat původní disky. POSTUPNĚ, tedy odebrat jeden disk, počkat na synchronizaci pole a poté odebrat druhý disk.
Označení disku jako vadný. Toto způsobí resynchronizaci pole na jeden s hot-spare disků.
mdadm /dev/md0 --fail /dev/sdb1
Po resynchronizaci označíme i druhý z malých disků jako vadný:
mdadm /dev/md0 --fail /dev/sdc1
A staré disky z mirroru odstraníme:
mdadm /dev/md0 --remove /dev/sdb1 /dev/sdc1
Zvětšení pole
Teď přichází na řadu zvětšení pole. U mě z nějakého důvodu nefungovala automatická detekce velikosti nových disků, bylo tedy nutno zadat novou velikost pomocí parametru size. Velikost se zadává v KiB. A to je vše. Po té stačí zvětšil LVM případně systém souborů na daném poli.
mdadm /dev/md0 --grow --size 2096128