RAID1 Ubuntu-asennuksessani

Last updated $Date: 2008-08-31 04:38:02 $

Martti Kuparinen <martti.kuparinen@iki.fi>

http://www.iki.fi/kuparine/comp/ubuntu/fi/raid.html

Tiivistelmä

Tässä kerrotaan miten asensin PC:ni jossa käytän Ubuntu 8.04 käyttöjärjestelmää. PC:ssä on kaksi identtistä SATA-kiintolevyä asetettuna RAID1 -tilaan jotta olen turvassa yhden kiintolevyn hajoamiselta. Vaikka käytänkin RAID1:tä kaikkialla teen silti säännöllisesti varmuuskopioita koska RAID ei ole varmuuskopionnin korvike.


[ Please note that this page is also available in English ]


Sisällysluettelo

1. Asentaminen
2. Testaaminen
3. Palautuminen levyrikon jälkeen

1. Asentaminen

Käynnistin asennuksen "Alternate install CD"-levyltä ja levyosioinnin alussa valitsin "Osioi itse" (kuva 1). Varmistin että molemmat kiintolevyt löytyivät asennusohjelmassa (kuvassa 2 näkyy kaksi identtistä kiintolevyä). Seuraavaksi poistin kaikki nykyiset levyosiot (jotka olivat aikaisemmin olleet Microsoft Windows-käytössä). Kiintolevyn kaikki osiot saa helposti poistettua painamalla Enter kiintolevyn nimen päällä (painoin Enter sda:n ja sdb:n päällä -- yksi rivi kuvan 2 punaisen rivin ylä- ja alapuolella).

Kuva 1
Kuva 1 - Levyosioinnin aloittaminen

Kuva 2
Kuva 2 - Kaksi tyhjää kiintolevyä

Seuraavaksi loin kolme osiota kummallekin kiintolevylle: 8 GB /:lle, 500 MB swap:lle ja loput /home:lle. Huomaa että tässä vaiheessa levyjen osiotyyppien pitää olla "fyysinen nide RAIDia varten" (0xFD fdisk:ssä) eikä "Ext3 tapahtumakirjanpidon sisältävä tiedostojärjestelmä". Huomaa myös miten kummankin levyn ensimmäinen osiolle on laitettu käynnistyskelpoisuuden ilmaisin päälle (B kirjain kuvassa 4). Ilman käynnistyskelpoisuuden ilmaisimen päällelaittamista tietokone ei ehkä lähde käyntiin ilman CD-levyä!

Kuva 3
Kuva 3 - Osion tyypin asettaminen ja käynnistyskelpoisuuden ilmaisin

Seuraavaksi menin ylöspäin ja valitsin "Tee ohjelmallisesti toteutetun RAID-laitteen asetukset" (kuva 4).

Kuva 4
Kuva 4 - Kaksi kiintolevyä joilla osiot RAID1 -laitteille

Seuraavaksi tallensin tehdyt muutokset osiotauluihin (kuva 5).

Kuva 5
Kuva 5 - Muutosten tallentaminen

Seuraavaksi loin kolme (3) MD-laitetta (RAID1 jossa on 2 käytettävää ja 0 varalla olevaa osiota -- kuvat 6-9).

Kuva 6
Kuva 6 - Uuden MD-laitteen luominen

Kuva 7
Kuva 7 - RAID1 eli peilaaminen

Kuva 8
Kuva 8 - Kaksi varsinaista osiota

Kuva 9
Kuva 9 - Ei yhtään varalla olevaa osiota

Seuraavaksi valitsin molemmilta kiintolevyiltä osiot jotka kuuluvat RAID1-pakkaan (kuva 10). On tärkeää valita kaksi samankokoista osiota, joten minun tapauksessani md0=sda1+sbd1, md1=sda2+sdb2 ja md2=sda3+sdb3.

Kuva 10
Kuva 10 - RAID1-pakan jäsenten valitseminen

Seuraavaksi määritin tietostojärjestelmät ja liitoskohdat jokaiselle RAID-laitteelle. Minun tapauksessani "RAID1 laite n:ro 0" on ext3 liitettynä /-hakemistoon, "RAID1 laite n:ro 1" on swap ja "RAID1 laite n:ro 2" on ext3 liitettynä /home-hakemistoon (kuvat 11-15).

Kuva 11
Kuva 11 - RAID-laitteille luodut tiedostojärjestelmät

Kuva 12
Kuva 12 - RAID1 laite n:ro 0:lle luoto /-tiedostojärjestelmä

Kuva 13
Kuva 13 - RAID1 laite n:ro 1:lle luotu swap

Kuva 14
Kuva 14 - RAID1 laite n:ro 2:lle luotu /home-tiedostojärjestelmä

Kuva 15
Kuva 15 - Kaikki tiedostojärjestelmät luotuna

Lopuksi menin sivun alaosaan, valitsin "Lopeta osioiden teko ja tallenna muutokset levylle" ja valitsin "Kyllä" tallentaakseni osiotauluihin tehdyt muutokset (kuva 16). Tästä eteenpäin Ubuntun asennus on aivan normaali asennus.

Kuva 16
Kuva 16 - Muutosten tallentaminen

Asennuksen ja PC:n uudelleenkäynnistämisen jälkeen asensin grubin myös toiselle (/dev/sdb) kiintolevylle. Ilman tätä PC ei käynnisty jos ensimmäinen (/dev/sda) kiintolevy hajoaa ja poistetaan PC:stä.

martti@ubuntu:~$ sudo grub-install /dev/sda

martti@ubuntu:~$ sudo grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

VAROITUS: Ubuntussa on vakava virhe jonka seurauksena uudelleenkäynnistäminen epäonnistuu jos yksi kiintolevy RAID1:stä puuttuu. Oheinen pätsi auttoi minua.

martti@ubuntu:~$ cd /tmp
martti@ubuntu:~$ wget http://www.iki.fi/kuparine/comp/ubuntu/en/local.diff
martti@ubuntu:~$ cd /usr/share/initramfs-tools/scripts
martti@ubuntu:~$ sudo patch -p0 < /tmp/local.diff
martti@ubuntu:~$ sudo update-initramfs -k all -u

Huomioi että sinun täytyy suorittaa tämä joka kerta kun initramfs-tools paketti päivitetään tai asennetaan uudelleen.

2. Testaaminen

Asennuksen jälkeen tarkistin että kaikki tiedostojärjestelmät (/, swap ja /home) todellakin ovat RAID1 levyillä.

martti@ubuntu:~$ grep /dev/md /etc/fstab
/dev/md0        /               ext3    defaults,errors=remount-ro 0       1
/dev/md2        /home           ext3    defaults        0       2
/dev/md1        none            swap    sw              0       0

martti@ubuntu:~$ df -h / /home
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0              7.4G  586M  6.4G   9% /
/dev/md2               12G  159M   12G   2% /home

Kaikkien RAID-laitteiden tilan voi tarkistaa /proc/mdstat tiedostosta. Jokainen mdN laite sisältää kaksi sdXN levyä ja jokaisen mdN laitteen tulee näyttää "2/2" ja "UU". Lisätietoja saa mdadm ohjelmalla.

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[0] sdb3[1]
      12659136 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      489856 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      7815488 blocks [2/2] [UU]

unused devices: <none>

martti@ubuntu:~$ sudo mdadm --query --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Wed Oct 17 16:45:59 2007
     Raid Level : raid1
     Array Size : 7815488 (7.45 GiB 8.00 GB)
  Used Dev Size : 7815488 (7.45 GiB 8.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Wed Oct 17 15:16:18 2007
          State : active
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : 1760de71:d6ca4125:8324c8dc:300ec7e1
         Events : 0.11

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

3. Palautuminen levyrikon jälkeen

Seuraavaksi simuloin /dev/sdb levyn hajoamisen irroittamalla kyseisen levyn. Systeemi käynnistyy edelleen mutta RAID-laitteiden tila näyttää että /dev/sdb1, /dev/sdb2 ja /dev/sdb3 ovat kadonneet järjestelmästä ja että /dev/mdN on "degraded" tilassa.

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[0]
      12659136 blocks [2/2] [U_]

md1 : active raid1 sda2[0]
      489856 blocks [2/2] [U_]

md0 : active raid1 sda1[0]
      7815488 blocks [2/2] [U_]

unused devices: <none>

martti@ubuntu:~$ sudo mdadm --query --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Wed Oct 17 16:45:59 2007
     Raid Level : raid1
     Array Size : 7815488 (7.45 GiB 8.00 GB)
  Used Dev Size : 7815488 (7.45 GiB 8.00 GB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Wed Oct 17 15:16:18 2007
          State : active, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           UUID : 1760de71:d6ca4125:8324c8dc:300ec7e1
         Events : 0.11

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       0        0        -      removed

Next I reconnected the disk and instructed the system to rebuild itself. After rebuild everything was ok again.

martti@ubuntu:~$ sudo mdadm --add /dev/md0 /dev/sdb1
mdadm: hot added /dev/sdb1

martti@ubuntu:~$ sudo mdadm --add /dev/md1 /dev/sdb2
mdadm: hot added /dev/sdb2

martti@ubuntu:~$ sudo mdadm --add /dev/md2 /dev/sdb3
mdadm: hot added /dev/sdb3

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[2] sda3[0]
      12659136 blocks [2/1] [U_]
       resync=DELAYED

md1 : active raid1 sda2[0] sdb2[1]
      489856 blocks [2/2] [UU]

md0 : active raid1 sdb1[2] sda1[0]
      7815488 blocks [2/1] [U_]
      [>....................]  recovery =  2.8% (215168/7815488) finish=16.2min speed=9780K/sec

unused devices: <none>

Siinä kaikki. Nyt voit mennä takaisin Ubuntu-asennukseni -oppaaseen ja katsoa miten voit helposti viimeisteillä uuden asennuksesi.