Solaris Volume Manager

Allikas: Kuutõrvaja

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 tagada 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).

Metaseadmete nimetamine

Füüsilise ketta partitsioonile vastab kaks seadet, näiteks

  • /dev/rdsk/c2t8d0s0
  • /dev/dsk/c2t8d0s0

Metaseame nimi esineb aga näiteks kujul

  • /dev/md/rdsk/d10
  • /dev/md/dsk/d10

Kus d järel olev arv on praktiliselt metaseadme tekitaja suva järgi.

Oleku andmebaasi moodustamine

Kõvaketta SVM kontrolli all kasutusele võtmiseks 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

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

Vöödi (RAID0) moodustamine

Vööditatud (ingl. k. stripe) volume ehk RAID0 ei paku töökindlust kui võimaldab suurendada kiirust ning moodustada suuremaid loogilisi voluume kui ükski kasutatav kõvaketas ise on. Lisaks on vööt eelduseks peegli tekitamisele.

Näiteks kahe partitsiooni vöödiks ühendamine toimub öeldes

 bash# metainit d10 1 2 c0t1d0s0 c1t1d0s0

Peegli (RAID1) moodustamine

Peegel ei paku kirjutamise kiirust, kuid suurendab töökindlust. Peegel koosneb tavaliselt kahest vöödist. Esmalt tuleb vöödid moodustada näiteks käsuga

 bash# metainit d11 1 1 c0t1d0s0
 bash# metainit d12 1 1 c1t1d0s0

Ning seejärel ühendada vöödid kokku peegliks öeldes

 bash# metainit d10 -m d11 
 bash# metattach d10 d12

Peegli d12 poole lahtiühendamine toimub käsuga, kusjuures kui on nt kavatsus lahtiühendatud poolt kasutada varukoopiana, siis tuleks seda teha ühekasutaja režiimis (ingl. k. single user mode) ning öelda ennem mõned korrad sync failisüsteemide puhvrite kettale jõudmiseks

 bash# init s
 bash# sync
 ...
 bash# metadetach d10 d12
 d10: submirror d12 is detached

Kusjuures mitmekasutaja režiimi tagasijõudmiseks tuleb öelda näiteks

 bash# init 3

Olemasolevate metaseadmete vaatamine toimub käsuga

bash# metastat

Metaseadme kasutamine

Peale metaseadme moodustamist toimub metaseadme kasutamine sarnaselt füüsilise kõvaketta partitsiooni kasutamisele, nt saab sinna moodustada käsuga newfs failisüsteemi

 bash# newfs /dev/md/rdsk/d10

Külgeühendamine toimub käsu mount või faili /etc/vfstab abil.

Metaseadme eemaldamine

Metaseadme eemaldamisel hävinevad seal paiknevad andmed. Enne metaseadme eemaldamist tuleb failisüsteem või saaleala kasutusest kõrvaldada, nt failisüsteem lahti ühendada ning seejärel öelda

bash# metaclear -r d10
d10: Mirror is cleared
d11: Concat/Stripe is cleared
d12: Concat/Stripe is cleared

-r võti kustutab SVM oleku andmebaasist vastavad sissekanded metaseadme d10 ning kõigi tema koosseisu kuulunud komponentide kohta.

Töötava süsteemi juurfailisüsteemi lülitamine peeglile (RAID1)

Olgu arvutis kasutusel kaks ühesugust ja ühteviisi partitsioneeritud kõvaketast c0t0d0 ja c1t0d0, kusjuures operatsioonisüsteem on paigaldatud ühe kõvaketta esimesele partitsioonile (/dev/dsk/c0t0d0s0) ja sama kõvaketta teisele partitsioon on kasutusel saalealana ning kolmas partitsioon on reserveeritud oleku andmebaasi jaoks, näiteks selliselt

 /dev/dsk/c0t0d0s0 - juurfailisüsteem
 /dev/dsk/c0t0d0s1 - saaleala
 /dev/dsk/c0t0d0s7 - oleku andmebaasi jaoks reserveeritud

Eesmärgiks on viia sellelt kõvakettalt töötav süsteem uude olekusse, kus juurfailisüsteem ning saaleala asuvad peegeldatud metaseadmetel, sulgudes on toodud metaseadmele vastavad füüsilised partitsioonid ja omakorda sulgudes vööditatud seadme nimi

 /dev/md/dsk/d10 (c0t0d0s0 (d11), c1t0d0s0 (d12)) - juurfailisüsteem
 /dev/md/dsk/d20 (c0t0d0s1 (d21), c1t0d0s1 (d22)) - saaleala

Sellise tulemuse saavutamiseks tuleb sooritada selline järgnevus

  • Moodustame oleku andmebaasid mõlemale kettale
 bash# metadb -a -f -c 3 /dev/dsk/c0t0d0s7
 bash# metadb -a -f -c 3 /dev/dsk/c1t0d0s7 
  • Moodustame vaid ühest partitsioonist koosnevad vöödid, kusjuures töötavale süsteemile vastavate partitsioonide puhul tuleb kasutada -f võtit, kuna need on kasutuses
 bash# metainit -f d11 1 1 /dev/dsk/c0t0d0s0
 bash# metainit -f d12 1 1 /dev/dsk/c1t0d0s0
 bash# metainit d21 1 1 /dev/dsk/c0t0d0s1
 bash# metainit d22 1 1 /dev/dsk/c1t0d0s1
  • Moodustame juurfailisüsteemile vastatava peegeldatud metaseadme d10 ning ühendame selle külge tema ühe peegli poole d11
 bash# metainit d10 -m d11
 d10: Mirror is setup
  • Õpetame süsteemile, et juurfailisüsteem asub metaseadmel d10 ning teeme algkäivituse (selle käigus kirjutatakse ümber /etc/vfstab ning lisatakse failis /etc/system rida 'rootdev:/pseudo/md@0:0,10,bl')
 bash# metaroot d10
 bash# lockfs -fa
 bash# reboot
  • Ühendame juurfailisüsteemile vastavale peegeldatud metaseadmele d10 külge tema peegli teise poole d12
 bash# metattach d10 d12
 d10: submirror d12 is attached

Seejärel saab käsuga metastat jälgida kuidas toimub peegli poolte sünkroniseerimine

 bash# metastat d10
 d10: Mirror
     Submirror 0: d11
       State: Okay         
     Submirror 1: d12
       State: Resyncing    
     Resync in progress: 2 % done
     Pass: 1
     Read option: roundrobin (default)
     Write option: parallel (default)
     Size: 32154688 blocks (15 GB)

Töötava süsteemi saaleala lülitamine peeglile (RAID1)

Saaleala lülitamiseks peeglile peavad olema moodustatud eelmises punktis kirjeldatud moel partitsioonid ja vöödid ning moodustada peegel

 bash# metainit d20 -m d12

Seejärel asendada /etc/vfstab failis swap seadmele vastavas reas seadmenimi metaseadme omaga

 /dev/md/dsk/d20 -       -       swap    -       no      -

ning teha arvutile alglaadimine

 bash# reboot

Lõpuks ühendada külge peegli teine pool

 bash# metattach d20 d22

Tavaliselt on dump seade saalealal, et tehtud muudatus ka selle seadme jaoks kajastuks tuleb öelda

 bash# dumpadm -d swap
       Dump content: kernel pages
        Dump device: /dev/md/dsk/d20 (swap)
 Savecore directory: /var/crash/loomaaed
   Savecore enabled: yes

Töötava süsteemi juurfailisüsteemi peegli lahtiühendamine

Kui töötava süsteemi juurfailisüsteem asub peeglil, nt

# metastat d10
d10: Mirror
    Submirror 0: d11 (c0t0d0s0)
      State: Okay         
    Submirror 1: d12 (c1t0d0s0)
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 32154688 blocks (15 GB)

siis süsteemi lülitamiseks käima selliselt, et juurfailisüsteem kasutab plokkseadme d10 asemel seadel c0t0d0s0 tuleb öelda

 # metadetach d10 d12
 # metaroot /dev/dsk/c0t0d0s0

ning veenduda, et /etc/vfstab failis on juurfailisüsteemiga seotud seade /dev/dsk/c0t0d0s0. Muudatuste kehtestamiseks tuleb arvuti alglaadida öeldes

 # reboot

Lõpuks võiks segaduste vältimiseks metaclear käsu abil metaseadmed eemaldada.

Kasulikud lisamaterjalid