2024. április 18., csütörtök

Gyorskeresés

Linux RAID10 kapacitásbővítése

Írta: | Kulcsszavak: Linux . RAID . extend . bővítés . RAID10

[ ÚJ BEJEGYZÉS ]

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 :)

Hozzászólások

(#1) Jim Tonic


Jim Tonic
nagyúr

Nice work. Megkérdezhetem, minek neked ilyen szerverbe RAID10? Mármint nem tűnik enterprise db szervernek. :)

Alcohol & calculus don't mix. Never drink & derive.

(#2) Lenry válasza Jim Tonic (#1) üzenetére


Lenry
félisten

ez a projektszerver, ide dolgozik mindenki, milliónyi kicsi fájllal, ezért egyszerre volt fontos a biztonság és a sebesség

Gvella Glan! | There are two types of people: Those who can extrapolate from incomplete data

(#3) Jim Tonic válasza Lenry (#2) üzenetére


Jim Tonic
nagyúr

De akkor miért nem valami server mobo? :)

Alcohol & calculus don't mix. Never drink & derive.

(#4) Lenry válasza Jim Tonic (#3) üzenetére


Lenry
félisten

mert ez is tudja azt, amire szükségünk van -> rá tudok kötni 8 HDD-t

Gvella Glan! | There are two types of people: Those who can extrapolate from incomplete data

(#5) egykettő válasza Jim Tonic (#3) üzenetére


egykettő
aktív tag

A legtöbb esetben azért mert olcsó, gyorsan lehet cserélni ha baj van, ez a helyzet a softraiddel is :)

(#6) Jester01


Jester01
veterán

Szerintem egyszerűbb és biztonságosabb lett volna 2 lemezt kivenni (ugye a raid10 ezt elbírja) és akkor a kivett lemezek rögtön biztonsági mentésként szolgálnak. 2 új lemezt betéve új degraded tömböt létrehozva és fájl szinten másolva időt lehet spórolni mivel egyszerre fogja a 2 lemezt írni. Ráadásul ezzel elkerülhető a fájlrendszer átméretezés amitől én mindig nagyon ódzkodom és még az esetleges fragmentációra is jó hatással lesz. Ezután a másik 2 lemezt kicserélve már mehet egy resync.

Jester

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.