ZFS migrálás?

 ( Rhiannon | 2013. február 11., hétfő - 11:24 )

Sziasztok,

van egy nas4free alapú storage (szerver + DAS).

NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
DATA 2.72T 1.50T 1.22T 55% 1.00x ONLINE -
mirror 464G 288G 176G -
da4 - - - -
da9 - - - -
da8 464G 250G 214G -
mirror 464G 293G 171G -
da2 - - - -
da7 - - - -
mirror 464G 294G 170G -
da1 - - - -
da6 - - - -
mirror 464G 294G 170G -
da5 - - - -
da10 - - - -
da3 464G 112G 352G -

A bibi a da8 és a da3 disk. Sikerult nem mirrorba tenni. Át lehet valahogy ezt migrálni mirrorba vagy raidz-be adatvesztés nélkül? Esetleg le lehet róluk menteni az adatokat?

Előre is köszi az ötleteket :)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Én létrehoznék lehetőség szerint egy másik zpool-t a kívánt layout-tal, majd abba replikálnám át snapshot-okkal az adatokat dataset-enként. Meglehet, hogy van egyszerűbb megoldás csak én nem tudom, ezt majd tapasztaltabb, mélyebb rálátással bíró kollégák megmondják. _Szerintem_ nemigen lesz.

/etc/lib/lu/plugins/lupi_bebasic

Hát én két lehetőséget látok.

1. Van 8 ilyen diszked és felépíted az új poolt, majd snapshotokkal átviszed az FS-eket.

2. Van még 2 felesleges ilyen diszked és mirror-ba teszed azokat amik kimaradtak.

A második opció az hogy működne? Csinálok egy mirror-t 2 másik diszkből és snapsot-tal átviszem a két single tartalmát?

Nem. Tegyük fel van még da11 és da12 diszked. A da11-et a da3-al, a da12-t a da8-al mirrorozod össze. Így legalább visszaállítod a redundanciát. Ha így marad és megpusztul a 3-as, vagy 8-as diszk, akkor lehet visszaállítani mentésből. A két single tartalmát nem fogod tudni egy helyre vinni. Az OS elkezdte stripe-olni az adatokat a háttérben.

Az első lehetőséghez 10 diszket akartam írni.

Ez az "összemonitorozás" érdekelne, hogyan lehet kivitelezni?

"összemirrorozás"

A "zfs attach" lesz a te parancsod. Ennek a segítségével lehet egy mirror nélküli diszkhez egy másik lábat tenni.
A link:
http://docs.oracle.com/cd/E19082-01/817-2271/gcfhe/index.html

A példa:
zfs attach data da11 da3
zfs attach data da12 da8

De ne hidd el, amit mondok, olvasd át a linken lévő doksit, nehogy elbeszéljünk egymás mellett és elkeféljük mégjobban a dolgokat.

Bocsi, hogy magamra válaszolok.

Van még egy lehetőség.

1. "zfs detach" paranccsal leszeded a mirrorok egyik lábát.
2. A felszabaduló diszkekből csinálsz egy másik zpool-t.
3. Átviszel minden dataset-et az új zpoolra.
4. A régi zpool-t lebontod.
5. Még egy diszket hozzá stripe-olsz az új zpool-hoz, hogy meg legyen az 5 diszked.
6. "zfs attach" paranccsal mirror-ba párosítod a diszkeket.
7. megpihensz

szerintem. De előtte tervezd meg. :-)

Köszönöm a tanácsokat. Most először amit lehet lemásolok a pool-ból. Azután megpróbálok a mirrorokból kikapott diszkekből létrehozni egy másik pool-t és oda átemelni a két single disk tartalmát.

Szerintem elbeszelunk egymas mellett. Mindent at kell masolnod. Nem csak a single diszkek tartalmat. Azzal nem mesz semmire. A ZFS mar elkezdte az adatcsikokat szetrakosgatni a diszkek kozott. Ez azt jelenti, hogy a ket single diszken nincs olyan adat amit onnaloan tudsz olvasni, vagy mountolhatod esetleg mashova. A fajlrendszered azokkal kepez egy egyseget. A leendo poolba a regibol mozgatsd at a zfseket. Utana torold a regi poolt, aztan az ujhoz amiben csak 4 diszk lesz ugyebar adj hozza zfs add parancvsal megegyet. Ezutan mar mirrorozhatod a diszkeket egyenkent parba allitva.

Hú, ezt magam sem értem. :( Fogalmam nincs mit akartam mondani. Természetesen a létrehozott új pool-ba viszek át minden adatot. Azért másoltam le más helyre a fontos dolgokat, hogy egy esetleges adatvesztést elkerüljek, illetve csökkentsem a migrálandó adatmennyiséget.

Megnyugtattál. ;-)

Ez szép, de van benne "pár perc" amíg eléggé lehet aggódni az adatokért :)
--
Gábriel Ákos
http://i-logic.hu

Van bizony. Elotte nem art egy backup. A mostani allapot sem eletbiztositas.

Ha ennyire nincs gyakorlatod a dologban, járható út lehet az eredetivel azonos rendszer (vagy bármilyen egyéb, az adott zfs-hez közeli verziót használó) telepítése pl Virtualbox-ba, majd mondjuk file-okból létrehozni az eredetivel megegyező "zfs-szerkezetet", és azokon gyakorolni.
Néhány 10-100MB-s "virtuális lemezekről" beszélek, hogy haladjon is a dolog. :) Írogatsz rájuk, olvasol róluk, majd kipróbálod, hogyan lehet migrálni, szintén file-okkal, vagy esetleg kisebb zvol-okkal.
Ennyi egy laptopon is elmegy, kockázat nincs, viszonylag gyorsan meg is vagy vele.
Ha nagyon való élet-közeli akarsz lenni, készítesz a virtualizációs megoldáson belül "fizikai lemezeket", majd azokat használod a guest-en belül. kb mindegy, de ez utóbbi nehézkesebb, talán.
<-------
You can't grep on dead trees.

Ugyis kint van a Solaris 1/13 (update 11). Azon lehet gyakorolni. ;-)

Ezt volt az éjszakai program :)

Csak kicsit off, első kézből származó tapasztalat: legutolsó SRU alatti Solaris 11-en importált zpool-okba _ne_ rakjatok L2ARC eszközt! :) (...és igen, amit mindig mondani szokás: napi mentés legyen!)

/etc/lib/lu/plugins/lupi_bebasic

" _ne_ rakjatok L2ARC eszközt"

konkrétan miért? (Azon kívül, hogy valószínűleg valami gonosz dolog történik.)

Van egy b00g ami inkonzisztenssé teszi a metaslabeket (leak) és onnantól vagy r/o import vagy panic.

/etc/lib/lu/plugins/lupi_bebasic

Na szóval a következőt csinálom:

- kiszedtem a meglévő mirrorok-ból 4 db diszket és csináltam belőlük egy raidz pool-t.
- snapshot a meglévő pool-ban
- send | receive snapshot
- régi pool destroy
- új pool umount
- új pool átnevez
- új pool mount
- a régi pool-ból megmaradt diszkeket hozzáadom az új pool-hoz

Kb. erre jutottam.

umount/mount/rename nem is kell, elég az export/import.

A destroy után elegendő egy "zfs set mountpoint= <újzpoolneve>" parancs.