Solaris Volume Manager

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

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 haldamistarkvara, sarnast lahendust tuntakse Linuxi ja BSD maailmas tarkvaralise RAID'ina. Traditsiooniliselt ei ole Sun arvutitel kasutataud riistvaralist RAID'i.

Sõna volume (ingl. k. ruumala) Peamiseks SVM ülesandeks on füüsilistest kõvaketastest tarkvaraliste RAID lülituste moodustamine, nt selle asemel, et kasutada vahetult füüsilisi kettaseadmeid, näiteks moodustada failisüsteem partitsioonile c0t0d0s0 või kasutada partitsiooni c0t0d0s1 saalealana, ühendatakse mitu füüsilist kõvakettaseadet või partitsiooni omavahel loogiliselt ning operatsioonisüsteem kasutab nii moodustunud loogilist seadet, mida nimetatakse metaseadmeks. Metaseadme nimi on näiteks kujul d10 või d20.

Kõvaketaste partitsioneerimine

Oleku andmebaasi moodustamine

Oleku andmebaasis on kirjas andmed SVM kontrolli all olevate kõvaketaste konfiguratsioon ning seda andmebaasi hoitakse reegline lülituses osalevatele kettaseadmetele moodustadus spetsiaalses partitsioonis.

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

 /dev/dsk/c0t1d0s0 - 35 GB
 /dev/dsk/c0t1d0s7 - 300 MB
 /dev/dsk/c1t1d0s0 - 35 GB
 /dev/dsk/c1t1d0s7 - 300 MB

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


Tavaliselt moodustatakse metaseadmed kõvaketta partitsioonidest, näiteks olgu lähtepunktiks kaks ühesugust ja ühtemoodi partitsioneeritud kõvaketast kusjuures töötava operatsioonisüsteemi juurfailisüsteem asub /dev/dsk/c6t11s0 partitsioonil

 /dev/dsk/c6t11d0s0,s1,d3
 /dev/dsk/c7t3d0s0,s1,d3

Enne metaseadmete tekitamist tuleb moodusta metaseadmete andmebaas, tavaliselt soovitatakse see tekitada vähemalt kahele füüsiliselt kõvakettale kolmes eksemplaris, loogiline on kasutada raid lülituses osalevaid kõvakettaid. Nt võiks jätta viimase partitsiooni suuruseks mõnisada MB, sellest piisab

 # metadb -a -f -c 3 c6t11d0s7
 # metadb -a -f -c 3 c7t3d0s7

Tulemust saab vaadata öeldes

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

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