Solaris Volume Manager

Allikas: Kuutõrvaja
Redaktsioon seisuga 4. juuli 2008, kell 23:10 kasutajalt Imre (arutelu | kaastöö)

Sissejuhatus

Lihtsamal juhul kasutab operatsioonisüsteem salvestusseadmena füüsilist kõvaketast, mis on jagatud partitsioonideks ning partitsioonidele on moodustatud failisüsteemid või saaleala (ingl. k. swap). Sõltuvalt operatsioonisüsteemi kasutusalast võib olla vajalik tekitada olukord, kus peab olema tagatud süsteemi toimimine ka siis kui mõni riistvaraline komponent on riknenud. Selleks, et kindlustada failisüsteemi või saaleala töötamine vaatamata üksiku süsteemi kuuluva kõvaketta riknemisele sobib kasutada Solaris Volume Manager'i (SVM) poolt pakutavaid vahendeid. Solaris Volume Manageri moodustab komplekt kõvaketaste haldamise tarkvara, sarnast lahendust tuntakse Linuxi ja BSD maailmas tarkvaralise RAID'ina. Traditsiooniliselt ei ole Sun arvutitel kasutusel riistvaralist RAID'i.

Sõna volume (ingl. k. ruumala) tähistab kõvaketaste kontekstis mingil moel ettevalmistatud salvestusressurssi, mida saab kasutatada nt failisüsteemi või saaleala jaoks. Sõltuvalt sellest, kuidas on kõvakettaid kombineeritud võib volume olla nt suurema kiiruse või parema töökindlusega.

SVM abil saab ühendada mitu füüsilist kõvakettaseadet või partitsiooni omavahel ning operatsioonisüsteem kasutab nii moodustunud loogilist seadet, mida nimetatakse metaseadmeks (ingl. k. metadevice).

Info kõvaketta SVM kontrolli all toimuva kasutuse kohta on reeglina salvestatud samale kõvakettale moodustatud spetsiaalsele mõnesaja MB suurusele partitsioonile, mida nimetatakse oleku andmebaasiks (ingl. k. state database).


Oleku andmebaasi moodustamine

Kõvaketta kasutuselevõtuks SVM kontrolli alla tuleb kõvaketas eelnevalt sobivalt partitsioneerida kusjuures moodustada nt 200 MB suurune seitsmes partitsioon. Kui näiteks konkreetsel on eesmärgiks kahest kõvakettast moodustada peegel (ingl. k. mirror), siis tuleks kasutada samasuguseid füüsilisi kõvakettaid, ühendada nad erinevate kontrollerite külge ning partitsioneerida ühtemoodi.

Näiteks olgu arvutis lisaks sellele kõvakettale, millel asub operatsioonisüsteem kaks kasutamata kõvaketast selliste partitsioonidega

 /dev/dsk/c0t1d0s0 - 35 GB - andmed
 /dev/dsk/c0t1d0s7 - 200 MB - oleku andmebaas
 /dev/dsk/c1t1d0s0 - 35 GB - andmed
 /dev/dsk/c1t1d0s7 - 200 MB - oleku andmebaas

ja olgu eesmärgiks moodustada partitsioonidest c0t1d0s0 ja c1t1d0s0 RAID1 lülitus.

Oleku andmebaaside moodustamiseks tuleb öelda

 # metadb -a -f -c 3 c0t1d0s7
 # metadb -a -f -c 3 c1t1d0s7

Tulemust saab vaadata öeldes

 # metadb   
       flags           first blk       block count
    a        u         16              8192            /dev/dsk/c0t1d0s7
    a        u         8208            8192            /dev/dsk/c0t1d0s7
    a        u         16400           8192            /dev/dsk/c0t1d0s7
    a        u         16              8192            /dev/dsk/c1t1d0s7
    a        u         8208            8192            /dev/dsk/c1t1d0s7
    a        u         16400           8192            /dev/dsk/c1t1d0s7

Peegli moodustamine

Peegel koosneb üldiselt kahest raid0 skeemist, esmalt tuleb need moodustada

 # metainit -f d11 1 1 c6t11d0s0
 # metainit d12 1 1 c7t3d0s0

RAID5 skeemi moodustamine toimub käsuga


Peegli lahtiühendamine toimub käsuga

Olemasolevate metaseadmete vaatamine toimub käsuga

bash# metastat

Süsteemi lülitamine peegeldatud (RAID1) juurikale

Olgu arvutis kasutusel kaks ühesugust ja ühteviisi partitsioneeritud kõvaketast kusjuures operatsioonisüsteem on paigaldatud ühe kõvaketta esimesele partitsioonile (/dev/dsk/c0t0d0s0) ja teisele saaleala, lisaks on muuks kasututseks moodustatud kaks partitsiooni, selliselt

 /dev/dsk/c0t0d0s0 - juurikas
 /dev/dsk/c0t0d0s1 - swap
 /dev/dsk/c0t0d0s3 - ei ole kasutuses
 /dev/dsk/c0t0d0s7 - ei ole kasutuses

Eesmärgiks on viia töötav süsteem uude olekusse, kus kriitilised kataloogid ning swap asuvad mirrordatud metaseadmel, sulgudes on toodud metaseadmele vastavad füüsilised partitsioonid

 /dev/md/dsk/d10 (c0t0d0s0, c1t0d0s0) - juurikas
 /dev/md/dsk/d20 (c0t0d0s1, c1t0d0s1) - swap

Sellise tulemuse saavutamiseks tuleb sooritada järnevus

  1. metadb -a -f -c 3 /dev/dsk/c0t0d0s7 && metadb -a -f -c 3 /dev/dsk/c0t0d0s7 - kirjeldame metaseadmete andmebaasid mõnesaja MB suurusele kasutuses mitte olevale partitsioonile
  2. metainit -f d11 1 1 /dev/dsk/c0t0d0s0 - moodustame vööditatud (ingk. k. stripe) metaseadme d11, mis on stripe erijuht koosnedes vaid ühest partitsioonist
  3. metainit d12 1 1 /dev/dsk/c1t0d0s0 - moodustame vööditatud (ingk. k. stripe) metaseadme d12, mis on stripe erijuht koosnedes vaid ühest partitsioonist
  4. metainit d10 -m d11 - moodustame juurikale vastatava peegeldatud metaseadme d10 ning ühendame selle külge tema ühe peegli poole d11
  5. metaroot d10 - kirjutame /etc/vfstab'i uue juurika
  6. lockfs -fa
  7. reboot - reboodime süsteemi metaseadmelt
  8. metattach d10 d12 - ühendame juurikale vatavavale peegeldatud metaseadmele d10 külge tema peegli teise poole d12, seejärel saab käsuga metastat jälgida kuidas toimub peegli poolte sünkroniseerimine

Metaseadme eemaldamine

bash-3.00# metaclear -r d7
d7: Mirror is cleared
d81: Concat/Stripe is cleared
d71: Concat/Stripe is cleared
bash-3.00# metadetach d8 d82
d8: submirror d82 is detached
bash-3.00# metainit d70 1 1 /dev/dsk/c5t2d0s1

metainit: tuuslar: c5t2d0s1: is swapped on

bash-3.00# metainit -f d70 1 1 /dev/dsk/c5t2d0s1 d70: Concat/Stripe is setup

Probleemid

  • Kui kõvaketas oli kasutusel eelnevalt ZFS skeemis, siis on seal kasutusel EFI label, mille üheks tunnuseks on format disk käsu väljundis üheksa partitsiooni (Sun Sparc arvutitel on muidu kaheksa partitsiooni).