ZFS Root Pool tárhelybővítés

Aki ZFS-el dolgozik, és van olyan bátor, hogy root filesystem-nek is azt választ, az hamar bele kell hogy fusson a következő problémába. Ugyanis mi van, akkor ha a root zpoolunkat szeretnénk bővíteni. Persze egyszerű, hozzácsapunk egy új disket a poolhoz, és el van intézve a gond. Csak sajnos ez nem olyan egyszerű.

Az egész ott kezdődik, hogyha megpróbáljuk, akkor a következő hibaüzenetet fogjuk kapni:

    # zpool add rpool c1t1d0
    cannot add to ‘rpool’: root pool can not have multiple vdevs or separate logs

Tehát a gond, az, hogy a root zpool nem állhat több disk-ből. Na de most akkor mit lehet tenni? Lehet újrainstallálni, és végigszívni az egészet az elejéről? Nem feltétlenül. Ugyanis egy kis trükk segítségével a zpool replace parancsot használhatjuk, a kivitelezéshez. Ami sajnos elkerülhetetlen, hogy egy új disk-re lesz szükségünk. Méghozzá pontosan akkorára, amekkorának az új root zpoolt szeretnénk hogy legyen. Ezek után pedig át fogunk rá online migrálni mindent.

A zpool parancs esetében alapvetően a replace a poolba lévő hibás diskek cseréjére szoktuk használni. Viszont arra is képes, hogy akármilyen pool-t, még a root zpool-t is, egy az egybe átrakja (az alatta lévő disket kicserélje) egy másikra, működés közben! Lássuk, hogyan.

Felkészülés

Vegyül kiindulási alapnak a következő állapotot:

    # zpool status –v
    # zpool list


Mint látszik, egy 10GB-os diskből álló rpool nevű zpoolunk van.

Ezek után gondoskodjunk a második leendő rendszer lemezről, ami már 20GB nagyságú az én példámban.

Tegyük elérhetővé a Solaris 10 számára is:

    # devfsadm –Cv
    # format

Bizonyosodjunk meg róla, hogy a 0-s slice megfelelőképpen elő van készítve az új disken, és meg van label-ezve:


zpool migrálása

Ezek után az egész folyamatot egy egyszerű parancs fogja végrehajtani nekünk. Mindenképp használnunk kell a -f (force) kapcsolót, meg kell adnunk a root zpool nevét, és azt, hogy mit mire akarunk cserélni:

    # zpool replace –f rpool c1t0d0s0 c1t1d0s0
    # zpool status -v

Amennyiben befejeződött a csere ezt kell látnunk:

Grub és MBR problémák

Ha ebben az állapotban újraindítjuk a rendszert, akkor a következőt fogjuk tapasztalni:


Sajnos az első disk-ünk tartalmazza a MBR (master boot record)-t, az viszont már nem tagja a root zpoolunknak. Hogy felbootoljuk, a mostmár második disken lévő root zpoolunkat a következőket kell bepötyögni:

    > root=(hd1,0,a)
    > kernel=/boot/multiboot root=(hd1,0,a)

Ugye a hd0,0,a jelöli az első disk első slice-át, a hd1,0,a pedig a második disk 0. slice-át. Ha mindkét sort beütöttük, nyomjuk ESC-pet, mire beugrik a grafikus menü már.

Válasszuk ki most a normál bootolást, és láss csodát, feláll a rendszerünk a második (átmigrált) diskről. Ezt viszont most minden reboot esetében meg kell tennünk.

Permanens grub frissítés
Sajnost csak a következő két lépéses megoldást tudtam sikeresen alkalmazni. Először is a most működő második diskről betöltött rendszerünknek kell létrehozni a MBR-ját.

    # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0

Most állítsuk le a gépünket, és távolítsuk el a régi, első disk-t a rendszerünkből. Így az eddigi második disk lesz az egyetlen tehát az első. Mivel betöltöttük erre a disk-re is az MBR-t, már lesz szép GRUB menünk, de mivel azt még akkor tettük, amikor az még második disk volt, ezért betöltődni a rendszer nem fog tudni. Ezért a bootnál válasszuk a FAILSAFE módot.

Most szépen elindul a recovery mód, aminek fel kell ismernie, hogy van egy zpoolunk, amit mountoltassunk is fel a /a mountpoint alá vele.

Most már nincs más dolgunk, mint az előző MBR frissítő parancsot kiadni:

    # installgrub /a/boot/grub/stage1 /a/boot/grub/stage2 /dev/rsdk/c1t0d0s0

Befejeztük ezzel a migrációt. Indítsuk újra a gépet, és már automatikusan el kell indulnia rendszerünknek.

A cél ellenőrzése

Természetesen ne feledkezzünk el az eredeti célról, a megnövelt root zpool tárterületéről. Természetesen ennek már 20GB-nak kell lennie.

    # zpool list
    # zpool status

ZFS Root Pool tárhelybővítés” bejegyzéshez 2 hozzászólás

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük