raid1 root devicekent, opensolaris alatt

elkezdtem osszerakni a hetfoi demohoz a szervert, ami tegnap este erkezett meg. direkt desktop gep, hogy mindenki lassa, lehet "dzsunka" (ertsd nem brand) gepbol is jo dolgokat osszerakni. (q8200, 4g ram, 2x500g WD vinyo)

gondoltam, ha mar sokan vannak, akik nem tudnak eljonni, irok ide is egy osszefoglalot, szep sorban :) ez az elso resz.

ugye az elso dolog mikor az ember meghallja a "storage" szot, az a redundancia. zfs is tud mirroringot, azonban az opensolaris installer nem (a legujabb, 110es build sem ajanlja ezt fel). viszont semmi gond, menet kozben is lehet csinalni ilyet :-) lassuk hogy.

bootoljunk be a telepitorol, majd adjuk oda neki az egyik teljes diszket. telepitsuk fel, reboot, majd lepjunk be ra.

nezzuk meg mit csinalt az installer:


root@storage:~# zpool status
  pool: rpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c3t0d0s0  ONLINE       0     0     0

errors: No known data errors
root@storage:~#

egy diszk, semmi extra. ahoz, hogy a masik diszket betudjuk venni a poolba, raadasul mirrorkent, meg kell, hogy egyezzenek a particios tablak mindket diszken. ehez nem kell mast tennunk, mint a "format" parancsot kiadnunk, ami letrehozza az ures diszken a megfelelo particios tablat.

ezutan at kell masolnunk a mar poolban bevo diszkrol a particios tablat:


root@storage:~# prtvtoc /dev/rdsk/c3t0d0s2 | fmthard -s - /dev/rdsk/c3t1d0s2
fmthard:  New volume table of contents now in place.
root@storage:~#

nezzuk meg, megegyeznek-e a particios tablak:


root@storage:~# prtvtoc /dev/rdsk/c3t0d0s2
* /dev/rdsk/c3t0d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*   60800 cylinders
*   60798 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector
*           0     16065     16064
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      16065 976687740 976703804
       2      5    01          0 976719870 976719869
       8      1    01          0     16065     16064
root@storage:~# prtvtoc /dev/rdsk/c3t1d0s2
* /dev/rdsk/c3t1d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*   60800 cylinders
*   60798 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector
*           0     16065     16064
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      16065 976687740 976703804
       2      5    01          0 976719870 976719869
       8      1    01          0     16065     16064
root@storage:~#

csodas. mostmar csak hozza kell vennunk a poolhoz:


root@storage:~# zpool attach -f rpool c3t0d0s0 c3t1d0s0
Please be sure to invoke installgrub(1M) to make 'c3t1d0s0' bootable.
root@storage:~#

es voila:


root@storage:~# zpool status
  pool: rpool
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h1m, 46.52% done, 0h1m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c3t0d0s0  ONLINE       0     0     0  18.0M resilvered
            c3t1d0s0  ONLINE       0     0     0  1.98G resilvered

errors: No known data errors
root@storage:~#

megvarjuk, amig vegez a resilveringgel (azaz az adatok replikalasaval), es a kesz eredmeny:


root@storage:~# zpool status
  pool: rpool
 state: ONLINE
 scrub: resilver completed after 0h2m with 0 errors on Sat Apr  4 13:01:09 2009
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c3t0d0s0  ONLINE       0     0     0  20.0M resilvered
            c3t1d0s0  ONLINE       0     0     0  4.26G resilvered

errors: No known data errors
root@storage:~#

latszik, hogy 4.26g adatot kellett replikalnia az uj diszkre (ennyi az uj install merete).

a scrub mezohoz azert irja, hogy vegzett, mert ha egy mirrorbol kiesik egy diszk vagy berakunk egy ujat, erdemes scrubolni. ez lenyegeben osszeveti a diszken tarolt adatokat a metaadatkent tarolt checksummal, igy biztositva az integritasat a rendszernek)

csinaljuk meg:


root@storage:~# zpool scrub rpool
root@storage:~# zpool status
  pool: rpool
 state: ONLINE
 scrub: scrub in progress for 0h0m, 2.31% done, 0h9m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c3t0d0s0  ONLINE       0     0     0
            c3t1d0s0  ONLINE       0     0     0

errors: No known data errors
root@storage:~#

majd elkezd dolgozni, de nagyon :-)

meg egy lepes van hatra, hogy telepitsunk grubot a masik diszkre is, hogyha elhalna az elso, arrol is tudjunk bootolni:


root@storage:~# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c3t1d0s0
stage1 written to partition 0 sector 0 (abs 16065)
stage2 written to partition 0, 267 sectors starting at 50 (abs 16115)
root@storage:~#

es kesz is! :)

Hozzászólások

subscribe
__________________________________________________________
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 12.1 | 2.6.26.7-janos

Engem érdekelnének a zfs titkosítási képességei!
Valami olyanban gondolkozom, hogy egy pendrive-on lenne a kulcs, és lenne egy storage pool, ami titkosított, evvel a kulccsal.
A storage pool felcsatolás után el/újra kéne indítani azokat a szolgáltatásokat, amik a titkosított pool-on tárolják az adatokat (pl. samba, apache, sql, stb.stb.)
Mondjuk ez mehetne scriptből.
De bónusz lenne, ha mindez távolról, ssh-n keresztül is megoldható lenne, hogy egy esetleges újraindítás után ne kelljen odamenni fizikailag a géphez bedugni a kulcsot tartalmazó pendrive-ot - bár biztonsági szempontból ezen kell gondolkozni egy kicsit...

zfs-nél snapshot készítés, és visszaállítás példa érdekes lenne
ill. zónás bevezető