Nem biztos, hogy ez a legelegánsabb módszer, de a szóbajövő lehetőségeket megvizsgálva úgy láttam, hogy ez lesz a legegyszerűbb.
A metódusban relatíve kevés mágia van, és különböző fórumokról és wikiről össze lehet vadászni, én is inkább azért írom csak le, hogy meglegyen egyben, plusz hátha másnak is jól jön.
Adott volt egy szoftveres RAID10 kötet, lemezenként létrehozott partíciókkal, a partíciók összevonva md eszközzé
sd[abcd]1-ből lett md1, sd[abcd]2-ből md2, stb. Az egyszerűség kedvéért mondjuk azt, hogy nem erről a kötetről bootol a rendszerünk.
4db 500GB-s lemez, md4 összkapacitása 879GB volt, ez bizonyult szűkösnek, ezért cseréltem le 4x1TB-ra. md1,2,3 maradt ugyanakkora.
Az elmélet egyszerű: egyesével kicserélni a lemezeket, minden csere után hagyni a rendszernek, hogy a kieső lemez helyére beszinkronizálja az újat, majd a végén megnövelni a partíciókat a lehetséges maximum méretre.
Nézzük a gyakorlatot.
Először is minden lemez partíciós tábláját lementjük az egyszerű visszaállítás kedvéért.# sfdisk -d /dev/sda > ~/sda_part_table
Ezt ha akarjuk minden lemezre megcsinálhatjuk, bár elvileg teljesen egyformák a lemezeink, rátok bízom, én kimentettem mindet (persze ugyanaz lett az eredmény).
Kiejtjük egyesével a partíciókat, majd töröljük is őket a megfelelő kötetből# mdadm --fail /dev/md1 /dev/sda1
# mdadm -r /dev/md1 /dev/sda1
# mdadm --fail /dev/md2 /dev/sda2
# mdadm -r /dev/md2 /dev/sda2
# mdadm --fail /dev/md3 /dev/sda3
# mdadm -r /dev/md3 /dev/sda3
# mdadm --fail /dev/md4 /dev/sda4
# mdadm -r /dev/md4 /dev/sda4
Ezután megkapjuk az értesítő emailt a FAIL eventekről, kikapcsoljuk a gépet, kicseréljük a HDD-t és visszakapcsoljuk a gépet.
A kötetek összeszedik magukat három lábon, mi pedig nekiláthatunk az új lemez beillesztésének.
Először is nézzük meg, hogy megvan-e, hol van? Ezt ki-ki saját módszerei szerint, én az egyszerűség kedvéért egy ls -l /dev/sd*
paranccsal beértem, amelyik lemeznek nincs partíciója, az az új, ha ugyanoda dugtuk, ahol a régi volt, akkor jó eséllyel ugyanaz az eszköz is marad, jelen esetben sda.
Töltsük rá vissza a korábbi sda partíciós tábláját# sfdisk /dev/sda < ~/sda_part_table
Az sfdisk szólni fog, hogy az utolsó partíció vége nem blokkhatáron van, nem baj, úgyis mindjárt kezelésbe vesszük.
Én cfdisk-párti vagyok, ha partíciókezelésről van szó, egyszerű, jól működik és már szinte GUI-ja is van, de bármi más megteszi. Belépsz, törlöd az utolsó partíciót, létrehozol egy újat, a maximális mérettel és kész is.
Ezután az új lemezt beleadagoljuk a sánta köteteinkbe.# mdadm --add /dev/md1 /dev/sda1
# mdadm --add /dev/md2 /dev/sda2
# mdadm --add /dev/md3 /dev/sda3
# mdadm --add /dev/md4 /dev/sda4
cat /proc/mdstat
-tal tudjuk követni a resync állását, aki nagyon mozgóképfetisiszta, az a watch -n 1 cat /proc/mdstat
parancs segítségével, másodpercenkénti frissítéssel, élőben követheti az izgalmakkal teli eseményt.
Ha minden rendben lezajlott, akkor GOTO10 és ejthetjük is kifelé sdb-t...
Miután mind a négy lemezünket kicseréltük, jöhet az izgi rész: növeljük meg az md-ben lévő partíciót:# mdadm --grow /dev/md4 --size=max
(ugyebár én csak a hátsó partíciót növeltem)
Mielőtt a partíció fölött a fájlrendszer méretét is megnövelnénk, még egyszer utoljára nézzünk rá a régi méretre egy df -h
segítségével/dev/md4 879G 805G 75G 92% /media/Unity
Majd adjuk ki a parancsot, amire napok óta várunk:# resize2fs /dev/md4
Aki ideges fajta, az előtte válassza le a lemezt, én úgy hagytam, az ext4 online is megcsinálja.
Újabb df -h
és már láthatjuk is az eredményt/dev/md4 1.8T 805G 991G 45% /media/Unity
Ez egy újabb resyncet fog indítani, ne ijedjünk meg, ez normális.
Ha ez is rendben lefutott, akkor innentől örömbódottá, ismét van hová pornót tölteni.
Bónusznak itt egy kép az én alanyomról :)