Ohjelmistopohjainen RAID
Linuxin kernelissä on ohjelmistopohjainen RAID-toteutus, md (multidisk). Linuxissa RAID-pakkoja ovat /dev/mdX -laitteet, jotka käyttäytyvät kuten normaalitkin levyasemat. Jos järjestelmän juurihakemisto on raidilla, saattaa käynnistäminen aiheuttaa päänvaivaa. On suositeltavaa sijoittaa /boot-hakemisto erilliselle osiolle.
RAIDin asentaminen on verrattain helppoa. Aluksi koneeseen asennetaan kiintolevyt joita RAIDiin on tarkoitus käyttää. Kiintolevyt osioidaan omien mieltymysten ja valitun RAID-järjestelmän rajoitusten mukaan (esim. peilattaessa luodaan kahdelle eri levylle yhtä suuret osiot). Osioiden tyypiksi asetetaan Linux raid autodetect (heksakoodi fd). Lisäksi ytimessä on oltava tuki RAID-järjestelmälle. Nykyisten jakeluiden valmiit ytimet tukevat käytännössä aina RAIDia suoraan.
Aluksi 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 raidtoolsista mm. siten, että mdadm on yksi ohjelma jossa on yleinen syntaksi lähes kaikkien toimintojen suorittamiseen.
mdadm:n käyttö on sangen yksinkertaista, sillä komennon parametrit kuvaavat hyvin kutakin suoritettavaa toimintoa ja ohjelman oma ohjeistus on erittäin selkeä. Komento mdadm --help auttaa hyvin alkuun.
Esimerkkitapaus: Levyosiot /dev/sda1 ja /dev/sdc1 halutaan asettaa RAID-1-pakaksi (peilaus) /dev/md0. Sopiva komento olisi tällöin
mdadm --create --level=1 --raid-devices=2 /dev/md0 /dev/sda1 /dev/sdc1
Jos /dev/md0-laitetta ei löydy, sen voi luoda komennolla
mknod /dev/md0 b 9 0
Tarkastetaan sitten mitä uudelle RAID-pakalle kuuluu:
mdadm --detail /dev/md0
Tämän jälkeen levyosiolle (/dev/md0) voitaisiin luoda tiedostojärjestelmä normaaliin tapaan, esimerkiksi ext3-järjestelmä komennolla
mkfs.ext3 /dev/md0
Esimerkki mdadm:n käytöstä löytyy artikkelista Ohjelmistopohjainen RAID ja LVM.
RAID-laitteen tekeminen raidtools-työkaluilla
raidtools-paketista löytyvät vanhat työkalut md:n säätämiseen, jotka mdadm on pitkälti korvannut.
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.
/proc/mdstat
Tiedosto /proc/mdstat sisältää ajantasaiset tiedot käytössä olevien md-laitteiden tilasta. Esimerkissä käytössä on kaksi md-laitetta, jotka molemmat ovat aktiivisia.
pentti@kone:~$ cat /proc/mdstat Personalities : [raid1] md1 : active raid1 hdc1[0] hdh1[1] 156288256 blocks [2/2] [UU] md0 : active raid1 hda1[0] hdd1[1] 244195904 blocks [2/2] [UU] unused devices: <none>
Katso myös
- LVM
- Ohjelmistopohjainen RAID ja LVM - käyttöesimerkki ohjelmistopohjaisesta RAIDista ja LVM:stä yhteiskäytössä