Ohjelmistopohjainen RAID

Linux.fista
Versio hetkellä 10. toukokuuta 2007 kello 14.47 – tehnyt Maakuth (keskustelu | muokkaukset) (detail)
Siirry navigaatioon Siirry hakuun

Linuxin kernelissä on ohjelmistopohjainen RAID -toteutus, md (multidisk). Linuxissa RAID-pakkoja ovat /dev/mdX -laitteet, jotka käyttäytyvät kuten normaalitkin levyasemat. Tällä hetkellä Linux-jakelut eivät vielä tue root-osion asentamista ohjelmistopohjaisella RAIDilla tehdylle pakalle kovin hyvin, mutta asiaan näyttäisi olevan tulossa parannus.

RAIDin asentaminen on verrattain helppoa. Aluksi koneeseen asennetaan kiintolevyt joita RAIDiin on tarkoitus käyttää. Kiintolevyt osioidaan omien mieltymysten ja valitun RAID-konfiguraation rajoitusten mukaan. Osioiden tyypiksi asetetaan Linux raid autodetect (heksakoodi fd). Lisäksi tarvittaessa käännetään ytimeen tuki halutuille RAID-tasoille (ks. Kernelin kääntäminen).

Seuraavaksi muodostetaan RAID-pakka sopivalla työkalulla. RAID-työkaluja on tällä hetkellä yleisesti käytössä kaksi -- vanha raidtools ja uudempi mdadm. Näistä mm. Software-RAID-HOWTO suosittelee jälkimmäistä. Lopuksi RAID-pakalle tehdään tiedostojärjestelmä normaaliin tapaan, minkä jälkeen pakka on käytettävissä. RAID-pakan tilaa voi yleensä tutkia katselemalla tiedoston /proc/mdstat sisältöä. Tilan tarkastelu onnistuu myös mdadm-ohjelmalla.

mdadm

mdadm eroaa raidtools:sta mm. siten, että mdadm on yksi ohjelma jossa on yleinen syntaksi lähes kaikkien toimintojen suorittamiseen. mdadm ei myöskään tarvitse konfiguraatiotiedostoa. HUOM: Konfiguraatiotiedoston tarve on voinut muuttua. Esimerkiksi Debianissa tarvitaan mdadm.conf versiosta 2.5.3 alkaen - katso ohje

mdadm:n käyttö on sangen yksinkertaista, sillä komennon parametrit kuvaavat hyvin kutakin suoritettavaa toimintoa ja ohjelman oma ohjeistus on erittäin hyvää. Komento mdadm --help auttaa hyvin alkuun.

Esimerkkitapaus: Levyosiot /dev/hda1 ja /dev/hdc1 halutaan asettaa RAID-1-pakaksi /dev/md0. Sopiva komento olisi tällöin

mdadm --create --level=1 --raid-devices=2 /dev/md0 /dev/hda1 /dev/hdc1

Tarkastetaan sitten mitä uudelle RAID-pakalle kuuluu:

mdadm --detail /dev/md0

raidtools

RAID-työkalut (raidtools) on syytä olla asennettuna. Seuraavaksi kirjoitetaan /etc/raidtab -tiedosto, joka kuvaa mitkä levyt kuuluvat RAIDiin, ja millaisen md-laitteen ne muodostavat.

Esimerkkitapaus, jossa laitteet /dev/hde1 ja /dev/hdh1 muodostavat peilatun laitteen (RAID-1), joka on siis yhtä iso kuin kumpikin yksittäinen levy, ja joka selviää toisen levyn rikkoutumisesta tietojen häviämättä. Raid-level kohdan arvoa muuttamalla voi tehdä erilaisia RAID-tasoja edustavia laitteita: esimerkiksi RAID-0:lla saa kahdesta levystä tehtyä yhden ison, ja RAID-5:llä kolmesta tai useammasta saadaan yhtä levyä sekä vikasietoisempi, suurempi, että nopeampi laite.

       raiddev /dev/md0
               raid-level      1
               nr-raid-disks   2
               nr-spare-disks  0
               persistent-superblock 1
               device          /dev/hde1
               raid-disk       0
               device          /dev/hdh1
               raid-disk       1

Lopuksi tehdään laite komentamalla:

           mkraid /dev/md0

Tämän jälkeen /dev/md0 on käsiteltävissä siinä missä mikä tahansa levyosio: sille voi luoda minkä tahansa tiedostojärjestelmän.

Linkkejä

The Linux Documentation Project: Software RAID HowTo