DocRev 1.0 2015-02-09 / Arto Jääskeläinen

Software RAID ---  Ubuntu

  • Johdanto

    SoftaRAID: n etuna on riippumattomuus laitteista.  Jos kone hajoaa voi levyt siirtää toiseen koneeseen.  Tuo ei välttämättä onnistu käytettäessä levyohjaimiin integroitua RAIDia tai välimuotoa jossa osa koodista on levyohjaimessa ja osa softana.  RAIDin asentaminen softana Ubuntuun / Linux Minttiin ei ole tolkuttoman monimutkaista.

    Mitä tarvitaan

    Lähtötilanteeksi tässä oletetaan valmiiksi asennettu kone jossa systeemilevyllä on jo toimiva Ubuntu/Linux Mint/vastaava  ja RAIDia varten on erikseen levyt. Tässä esimerkissä käsittelen vain RAID5 toteutusta 4 levyllä jotka yhdessä muodostavat RAID-pakan.  Nämä 4 levyä ovat liitetty tavanomaiseen SATA-ohjaimeen. Tässä 4 levyn tapauksessa hyötytilaksi saadaan 3 levyn määrä ja vikasietoisuus yhden levyn rikkoutumisen varalta. Malli on helposti sovellettavissa muihinkin levymääriin ja RAID-tasoihin.

    Toimintaperiaate

    Toiminnan tekninen idea on siinä että RAID-pakan koko levytilasta muodostetaan uusi laite ”/dev/md0” joka näyttää koko pakasta hyödyksi jäävän tilan yhtenä isona levynä joka on myös vikasietoinen.

    Asennus

    Asennus on täysin päätetyöskentelyä. Asennuksessa tarvitaan osiointiohjelmia jotka osaavat GPT-osiotaulun käsittelyn kuten ”gdisk” ja ”parted”.  Jälkimmäinen löytyy yleensä valmiina koneesta mutta ”gdisk” enimmäkseen ei eli asennetaan se.  Tarvitset hieman näiden ohjelmien käytön osaamista.  Lisäksi tarvitaan ”mdadm” ohjelma RAID-määritysten tekoon.

  • sudo apt-get install gdisk 

  • sudo apt-get install mdadm 

     

    1) Valmistellaan kukin RAID-pakkaan tuleva levy ”gdisk” ja/tai ”parted” ohjelmilla.  Määritetään: 

  • Osio 2048---> levyn loppu 

  • Osion tyypiksi FD00  (=Linux RAID) 

  • Osion nimeksi sopiva selitys esim. RAID5_hd1, RAID5_hd2, jne. 

     

    2) Määritellään RAID-pakan rakenne ”mdadm” ohjelmalla.  

     

  • sudo mdadm  --create  /dev/md0  --level=5  --raid-device=4  /dev/sdb1  /dev/sdc1  /dev/sdd1  /dev/sde1  --verbose 

     

    Yllä määritetään RAID-taso 5, levyjä 4 kpl ja pakkaan kuuluvien laitteiden nimet.  Tarkasta kuitenkin ennen tätä että nuo laitenimet ovat oikeat ja tilanteesi mukaiset. Ei ole ainutlaatuista jos levyjen laitenimet ovatkin eri järjestyksessä kuin kuvittelit. Ylläoleva rivi on esimerkki. 

    Levyjen synkronointi alkaa heti ja kestää useita tunteja yleensä.  Voit seurata etenemistä: 

     

  • watch -d cat /proc/mdstat 

     

    3) Kun valmista voit kokeilla  

     

  • sudo mdadm --examine --scan 

     

    ARRAY /dev/md/0 metadata=1.2 UUID=ff3c3b0b:3165c80f:cde8ddab:3574773e name=fs1:0 

     

    Ja tallettaa tuon tulosteen /etc/mdadm/mdadm.conf tiedoston loppuun: 

     

  • sudo bash  -c  'mdadm --examine --scan >> /etc/mdadm/mdadm.conf' 

     

    4) Päivitä ”initramfs” jotta pakka latautuu oikein myös koneen käynnistyksen jälkeen: 

     

  • sudo update-initramfs -u 

     

    Jos unohdit tämän vaiheen niin huomaat ongelman myöhemmin mahdollisesti ”/dev/md126” tai ”/dev/md127” tiedostoina vaikka RAID-laitteen pitäisi näkyä nimellä ”/dev/md0” kun kaikki on hyvin.  Käynnistä kone uudestaan ja varmista että ”/dev/md0” on olemassa. 

     

    5) Formatoi pakka 

     

  • sudo mkfs.ext4  /dev/md0 

     

    Huomaa että nykyään formatointi on kaksiosainen.  Tämä näkyvä vaihe jonka teet tekee osan yksi päästäen nopeasti ”loppuun”.  Taustalla käynnistyy kuitenkin formatoinnin loppuun suoritus vasta siinä vaiheessa kun levypakka mountataan tuolla hieman myöhemmin.  Tämä kakkosvaihe vie aikaa.  Tiedät että toinen vaihe on käynnissä kun näet ”ext4lazyinit” nimisen prosessin käynnissä. 

    Lisätietoja löydät hakutermillä ”ext4 lazy init” Googlesta. 

     

    6) Luo ”mount point” 

     

  • sudo mkdir -p /mnt/md_0   

     

    7) Katso UUID tunnus RAID-pakallesi  

     

  • sudo blkid /dev/md0 

     

    /dev/md0: UUID="29cdc9c5-52a0-45c3-bef0-99497c5c53b6" TYPE="ext4" 

     

    ja määritä ”/etc/fstab”: iin rivi sille korvaten alla olevassa ”sinun_UUID” sillä oikealla: 

     

  • sudo bash  -c  'echo UUID=sinun_UUID  /mnt/md_0  ext4  errors=remount-ro  0  1  >>  /etc/fstab' 

     

    8) Tarkasta että kaikki näkyy oikein ja selitystekstit osioiden kohdalla löytyvät.  Tässä esimerkki: 

     

  • sudo parted -l 

     

    Model: ATA WD5003ABYX-88 (scsi) 

    Disk /dev/sda: 500GB 

    Sector size (logical/physical): 512B/512B 

    Partition Table: gpt 

     

    Number  Start   End     Size    File system     Name                 Flags 

     3      17,4kB  1049kB  1031kB                  BIOS boot partition  bios_grub 

     1      1049kB  500GB   500GB   ext4            Linux filesystem 

     2      500GB   500GB   64,0MB  linux-swap(v1)  Linux swap 

     

     

    Model: ATA TOSHIBA DT01ACA2 (scsi) 

    Disk /dev/sdb: 2000GB 

    Sector size (logical/physical): 512B/4096B 

    Partition Table: gpt 

     

    Number  Start   End     Size    File system  Name       Flags 

     1      1049kB  2000GB  2000GB               RAID5_hd1  raid 

     

     

    Model: ATA TOSHIBA DT01ACA2 (scsi) 

    Disk /dev/sdc: 2000GB 

    Sector size (logical/physical): 512B/4096B 

    Partition Table: gpt 

     

    Number  Start   End     Size    File system  Name       Flags 

     1      1049kB  2000GB  2000GB               RAID5_hd2  raid 

     

     

    Model: ATA TOSHIBA DT01ACA2 (scsi) 

    Disk /dev/sdd: 2000GB 

    Sector size (logical/physical): 512B/4096B 

    Partition Table: gpt 

     

    Number  Start   End     Size    File system  Name       Flags 

     1      1049kB  2000GB  2000GB               RAID5_hd3  raid 

     

     

    Model: ATA TOSHIBA DT01ACA2 (scsi) 

    Disk /dev/sde: 2000GB 

    Sector size (logical/physical): 512B/4096B 

    Partition Table: gpt 

     

    Number  Start   End     Size    File system  Name       Flags 

     1      1049kB  2000GB  2000GB               RAID5_hd4  raid 

     

     

    Model: Linux Software RAID Array (md) 

    Disk /dev/md0: 6001GB 

    Sector size (logical/physical): 512B/4096B 

    Partition Table: gpt 

     

    Number  Start   End     Size    File system  Name         Flags 

     1      1049kB  6001GB  6001GB  ext4         RAID5_array  raid 

     

     

    Jotain hämärää, ohjeessa vikaa tai jokin hankaluus ? 

  • Täällä voi kysyä: http://forum.ubuntu-fi.org