Ohjelmistopohjainen RAID ja LVM

Linux.fista
Versio hetkellä 11. syyskuuta 2008 kello 21.56 – tehnyt Heikki (keskustelu | muokkaukset) (→‎Perustietoa: kuvatiedosto)
Siirry navigaatioon Siirry hakuun

Tässä artikkelissa luodaan ohjelmistopohjaisella RAIDilla varmistettu levyjärjestelmä, jossa osioita hallitaan LVM:llä. LVM:n ansiosta tallennuslaitteet näkyvät abstraktimpina kokonaisuuksina, taltioryhminä (volume groups) ja loogisina taltioina (logical volumes). Näiden kokoja voidaan muutella liittämällä niihin lisää fyysisiä taltioita tai poistamalla vanhoja tai muokkaamalla loogisten taltioiden kokoja suhteessa toisiinsa. Kun tähän yhdistetään RAID-ratkaisu, saadaan monipuolinen järjestelmä, jossa tietojen varmistaminen ja esimerkiksi tallennuskapasiteetin lisäys onnistuu helposti.

Perustietoa

RAID 5-pakan luomiseen tarvitaan vähintään kolme kiintolevyä, ja siihen voidaan liittää maksimissaan 32 kiintolevyä. Käyttöön saatava levytila saadaan laskettua kaavalla levyjenmäärä * pienimmän levynkoko - yhden levyn koko. Tällaisessajärjestelmässä mikä tahansa levyistä saa hajota ilman, että tietoja katoaa.

Järjestelmän suurin hyöty on siinä, että levypakkaan voidaan lisätä kiintolevyjä ja LVM-osiot saadaan sisältämään uusi kiintolevy suoraan eikä osiointia tarvitse muuttaa eikä tietoja häviä.

Tässä ohjeessa käytössä on kolme tyhjää kiintolevyä (laitetiedostot /dev/sda, /dev/sdb, ja /dev/sdc).

Tässä artikkelissa rakennettava Software-RAID 5:n ja LVM2:n yhdistelmä koostuu seuraavista osista:
 

Valmistelut

Aluksi on asennettava RAID-järjestelmän hallintaan käytettävä mdadm-sovellus ja LVM 2 -järjestelmän vaatima lvm2-sovellus. Nämä paketit löytyvät useimpien jakeluiden paketinhallinnasta paketeista mdadm ja lvm2. Lisätietoja ohjelmien asentamiseen löydä artikkelista ohjelmien asentaminen.

Joissain järjestelmissä mdadm pyytää asennettaessa sähköpostiosoitetta, johon ilmoitukset mm. levyjen hajoamisista lähetetään. Sen voi asettaa myös muokkaamalla ohjelman asetustiedostoa /etc/mdadm/mdadm.conf.

Levyjen osiointi

Aluksi on osioitava kiintolevyt. Tämä onnistuu esimerkiksi gparted- tai fdisk-sovelluksilla. Jokaiselle levylle luodaan yksi koko levyn kokoinen ensisijainen osio (primary partition). Esimerkiksi fdiskiä käyttämällä tämä tapahtuisi seuraavasti:

  1. Käynnistetään fdisk pääkäyttäjän oikeuksin: fdisk /dev/sda
  2. Painetaan n-näppäintä
  3. Muutetaan osion tyyppi painamalla t:tä ja asetetaan tyypiksi fd
  4. Tallennetaan muutokset painamalla w
  5. Suoritetaan sama toimenpide myös /dev/sdb- ja /dev/sdc-levyille.

Tämän jälkeen komennon fdisk -l tulosteen tulisi näyttää jotakuinkin tältä:

Disk /dev/sda: 400.0 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       48641   390708801   fd  Linux raid autodetect

Disk /dev/sdb: 400.0 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       48641   390708801   fd  Linux raid autodetect

Disk /dev/sdc: 400.0 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *           1       48641   390708801   fd  Linux raid autodetect

RAID 5 -pakan rakentaminen

Seuraavat toimenpiteet vaativat pääkäyttäjän oikeudet.
Jos laitetiedostoa /dev/md0 ei ole olemassa luodaan se aluksi komennolla:

mknod /dev/md0 b 9 0

Luodaan seuraavaksi RAID 5 -pakka komennolla:

mdadm --create /dev/md0 --level 5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1

RAID-pakan rakentumista voit seurata komennolla

mdadm --query --detail /dev/md0

Jotta RAID-pakka tulisi käyttöön järjestelmän käynnistyksen yhteydessä on laitettava mdadm:n asetukset kuntoon komennolla

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

RAID pakka on suhteellisen hidas RAIDin rakennusvaiheessa, mutta sitä voi käyttää jo silloin.

LVM:n rakentaminen

Nyt kun RAID-pakka on valmis, on aika ottaa LVM käyttöön virtuaalisten levyjen luomiseksi. Otetataan aluksi RAID-laite (/dev/md0) käyttöön LVM:n fyysiseksi levyksi komennolla

pvcreate /dev/md0

Jos pvcreate-komento ei toimi vaan järjestelmä valittaa, että komento ei ole käytettävissä tässä järjestelmässä, onnistuu korjaus komennolla

cp -r /lib/lvm-200/ /lib/lvm-0

Tämä virhe esiintyy ainakin joissain Ubuntu-järjestelmissä.

Luodaan seuraavaksi osioryhmä (volume group) RAID-laitteesta/laitteista komennolla

vgcreate oma_volume_grouppi /dev/md0

Joissakin Debianin versiossa tämän komennon antaminen tuottaa tällaisen virheen

/dev/nbd0: read failed after 0 of 4096 at 0: Input/output error

Tämän ongelman pystyy korjaamaan lisää tiedostoon /etc/lvm/lvm.conf suodattimen (rivin)

filter = [ "r|/dev/cdrom|", "r/nbd*/" ]


Seuraavaksi luodaan loogiset osiot (logical volumes) komennoilla

lvcreate -L 20000 -n musiclv oma_volume_grouppi
lvcreate -L 20000 -n videoslv oma_volume_grouppi

20000 on osion koko megatavuina.

Lopuksi on vielä luotava tiedostojärjestelmät osioille:

mke2fs -j /dev/oma_volume_grouppi/musiclv
mkreiserfs /dev/oma_volume_grouppi/videoslv

Katso myös

Aiheesta muualla