Softi RAID Ubuntu baasil.

From ICO wiki
Jump to navigationJump to search

Autor

Taavo Siimer (AK41)

Versioon

Versioon 0.1 - Softi RAIDi - RAID1 taseme installeerimise / konfigureerimise näide (19.11.2011a.)
Versioon 0.2 - Softi RAIDi haldamine. RAIDi taseme katkitegemise ja taastamise näide (21.11.2011a.)
Versioon 0.3 - Softi RAIDi kettakiiruste mõõtmise näited (22.11.2011a.)
Versioon 0.4 - Softi RAIDi eemaldamine (26.11.2011a.)
Versioon 0.5 - Softi RAIDi RAID5 taseme konfigureerimine (26.11.2011a.)
Versioon 1.0 - Valmis (26.11.2011a.)

Sissejuhatus

Loodan, et selle artikli lugeja on juba eelnevalt installeerinud Ubuntu serverit ja selles osas ei ole vajadust kogu installatsiooni protsessi kirjeldada vaid piirdume olulisema – Softi RAIDi kettasüsteemi konfigureerimisega.
Juhul, kui tekib küsimusi Ubuntu serveri installeerimise osas, siis loodetavasti leiab vastused näiteks sellest juhendist:
https://help.ubuntu.com/11.10/installation-guide/i386/index.html

Antud RAID süsteemi juhend on tehtud võimalikult illustratiivne ja "puust ette ja punaseks", et ei tekiks ülearuseid küsimusi ning arusaamatusi.

Samuti ei hakka ma lahkama RAID tasemeid ja RAID arhitektuuri, kui selles osas on küsimusi, siis siit võib leida vastuse:
http://tigma.ee/artiklid/raid-arhitektuur-ja-kettasusteemid/

Softi RAIDi installeerimise juhend (RAID1, mirror näitega)

Teen läbi graafilise kasutajaliidesega installeerimis ja konfigureerimis läbides partitsioneerimise RAID protseduurid Ubuntu installatsiooni osas.

2. Installeerime Ubuntu serveri, valisin selleks viimase Ubuntu 11.10 x86 (32bit) versiooni (kui arvutil on mälu üle 4GB ja riistvara toetab 64bit OS’i, siis vali 64bit versioon).
Installeerimisel tuleb algul tuttav Ubuntu menüü allpool.

Vali "Install Ubuntu Server" ning tee läbi valikud - keel -> regioon -> klaviatuur -> võrgukaart(did) -> ajavöönd.

2.1 Kuni jõuad menüüni - "Partitioning method“. Vali selle alt "Manual"





2.2 Järgmisena kuvatakse kõvakettad, mis on süsteemis kasutusel.

Allpool menüüs on näha, et on kaks 1TB ketast mida Linux kuvab kui SCSIx ja ATA (kuigi sda ja sdb ütleb, et tegu on SATA ketastega).

Vali ühe SCSIx ketta allpool olevast menüü valikust "pri/log xxGB/TB FREE SPACE" ja pressi enterit.





2.3 Nüüd vali järgmisest menüüst "Automatically partiton the free space":

2.4 Tulemus peaks olema selline nagu allpool toodud pildil.

Tekkisid Primary ja Swap partitsioonid.

2.5 Mine "#1 primary xxxGB" kettajao peale ning järgnevaga tuleb allpool menüü „Partition settings“.

Siit vali "Bootable flag: on" ja vali alt "Done setting up the partition"

2.6 Tulemus on järgmine, nagu näha ilmus "#1 primary xxxGB" lõppu B, mis tähendab boot partitsiooni:

2.7 Tee täpselt sama läbi ka allpool toodud teise SCSIx tähistusega kettaga, antud pildil on see SCSI4.

Tee läbi ennem näidatud protseduurid - "Automatically partiton the free space" + "Bootable flag: on" -> "Done setting up the partition".

Tulemus peaks olema selline:

2.8 Nagu eelmist pilti vaadata on näha, et on kadunud esimesel kettal root mounting!

Linux kaotab selle automaatselt ära, kuna ei saa olla, et kaks kõvaketast korraga boodivad. Kuid RAID süsteemis juures võib see olla kasulik, et mõlemad kettad on all root mountinguga, kuna kui üks RAIDis olevatest ketastest läheb rikki, siis sisuliselt RAID süsteem lakkab olemas ning booditakse tervelt kettalt süsteem ülesse. Kui aga tervel kettal pole ennem defineeritud bootingut root mounti, siis see ketas ei suuda bootida ka!

Ehk läheme veel esimese kette peale, antud juhul on see meil SCSI3 ja valime allpool toodud valikust "pri/log xxGB/TB FREE SPACE"

Järgnevaga pressi „Use as: do not use“ valikut.

2.9 Valime Ext4 faili süsteemi:

2.10 Ning lõpetame selle ketta partitsioneerimise „Done setting up the partition“

2.11 Järgnevaga on vaja valida "Configure software RAID" ja valida sobiv RAID tase mida teha:

2.12 Nüüd tuleb hoiatus menüü, et kas sa soovid ikka teha muudatusi jne, vali alt "Yes":

2.13 Peale seda tuleb menüü kus vali "Create MD Device":

2.14 Vali sobiv RAID tase, kuna antud juhul oli meil kasutusel 2 kõvaketast, siis nendega on võimalik valida kas RAID1 (mirror) või RAID0 (stripe) RAIDi tasemete vahel!

Meeldetuletuseks - RAID5 nõuaks vähemalt 3 kõvaketast ja RAID10 taseme juures oleks vaja minimaalselt 4 ketast (kaks mirrorit stripetuna).

Valime RAID1 (mirrori):

2.15 Järgnevaga küsitakse, et mitu ketast me soovime RAIDi panna (kuna on mirror, siis kahest piisab) ja valime etteantud 2:

2.16 Edasi küsitakse kas soovime nn varuketast ehk "spare" kasutada.

See oleks väga mõistlik valik, kui on tegu kriitilise tähtsusega serveriga, kuna sellega võimalusega on lihtne võtta kasutusele uus "spare" varuketas.
Antud varuketas oleks kui üks RAID süsteemi osa, mis on ootel, et kui juhul üks peamistest RAID süsteemi ketastest rikneb, siis saab selle võtta kiirelt kasutusse. Selleks ei pea arvutit välja lülitama ega uut ketast poodi ostma minema...

Meil seda ketast kahjuks ei ole, ehk see väärtus jääb 0!

2.17 Edasi küsitakse missugused on "active devices" üldjuhul, kui on kahe kettaga tegu antakse valida sda1 ja sdb1 vahel. Tähistame sda1 ja sdb1 tärniga ja läheme edasi „continue“.


2.18 Nüüd tuleb hoiatus menüü, kas taha ikka partitsiooni tabelit muuta - jah tahame, valime "yes":

2.19 Ja lõpetame RAIDi konfimise "Finish":

2.20 Näeme järgnevaga, et on moodustatud RAID1 tase kahe kettad #0 ja #1.

Samuti on näha, et SCSI3 (sda) ja SCSI4 (sdb) füüsiliste ketaste juures on primary kettajao taga märge „raid“.

2.21 Vaja on RAID muuta booditavaks, siseneme RAID device #1 jao alt sisse ning siseneme „use as: do not use“ menüüsse:


2.22 Liidame RAID taseme ext4 failisüsteemiga.


2.23 Ja mount point peab olema root / ehk valime selle ja lõpetame siin konfimise "Done setting up the partition"


2.24 Lõpptulemus on allpool näha.

Lõpetame partitsioneerimise ja pressime "Finish partitioning and write changes to disk"

2.25 Järgmisena küsitakse kas soovid bootida süsteemi, kui RAID läheb "degraded" olekusse. Vali "Yes".

See tähendab seda, et kui üks füüsiline ketas läheb rikki, siis Ubuntu softi RAID süsteem läheb "initramfs" olekusse ja 30 sekundi pärast antakse valik kas bootida süsteem ülesse või käsitsi taastada (manual recovery):


2.26 Küsitakse, et kas soovid minna tagasi partitsioneerima? Vali „No“.
Järgmisena küsitakse (allpool) kas muutused kirjutatakse kettale, vali "Yes":

Sellega on partitsioneerimise ja Softi RAIDi taseme RAID1 osas läbitud Ubuntu Serveri installatsioonis.



Softi RAID - RAID5 taseme konfigureerimine

3. Tee läbi Ubuntu installatsioon ja konfigureerimine eelmise peatüki näidete varal punktide 2 - 2.2 osas.
Kolme kõvaketta puhul on pilt analoogne nagu allpool toodud:




3.1 Tee läbi ketaste konfigureerimine p 2.2 - 2.11 näidetel, kuid seda kolme ketta osas.
Tulemus peaks olema analoogne allpool tooduga:




3.2 Konfigureerime RAID5 taseme kolmele kettale (vali allpool toodud valikust "Yes":




3.3 Järgmisest valikust vali "Create MD Device"




3.4 Vali RAIDi tasemeks RAID5 .




3.5 Vali 3 ketast, vähemaga RAID5 taset pole võimalik teha.
Peale seda menüüd küsitakse kas varuketast tahad juurde lisada? Kuna seda ei ole, siis vali suuruseks 0.




3.6 Valime 3 ennem ettevalmistatud partitsiooni allpool .




3.7 Salvestame muudatused RAIDi konfis .




3.8 Lõpetame RAIDi konfimise .




3.9 Praeguseks on seis selline allpool.
Kui nüüd tahta lõpetada partitsioneerimine ja väljuda, siis saame veateate, et root mounti ei ole tehtud, teeme selle RAID tasemele.




3.10 Konfime RAIDi tasemele ext4 failisüsteemi kasutatavuse ja root mount .




3.11 Lõpetame RAID5 taseme konfigureerimise ja kirjutame muudatused .




Softi RAIDi monitooring ja haldamine

4.1 Jälgime äsja RAID1 tasemesse liidetud ketaste staatust allpool toodud käsuga:

cat /proc/mdstat 

Allpool pildil on näha selle käsu väljund.
Näeme, et veel käib RAID süsteemi liidetud ketaste sünkroniseerimine (allpool pildilt võib välja lugeda, et sünkroniseeritud on 37,9% kogu kettamahust, kiirusel ca 126Mbit/s ja töö lõpetamiseni on jäänud 79 min).


Analüüsime saadud infot:
" md0 : active raid1 sdb1[1] sda1[0] ", siit saame teada, et on moodustatud "meta device" nimega "md0".
Ning kasutusel on füüsiline ketas sdb /dev/sdb partitsiooniga 1 ja RAID partitsiooniga 0 ja ketas sda /dev/sda partitsiooniga 1 ja RAID partitsiooniga 0.

Kui soovid jälgida RAID taseme sünkroniseerimise protsessi reaalajas, siis selleks on käsk:

watch -n .1 cat /proc/mdstat 

Siis uuendatakse 1 millisekundi tagant kuvatavat protsessi.


4.2 Järgneva käsuga saab täpsema info md0 RAID massiivi kohta:

sudo mdadm --query --detail /dev/md0 


Analüüsime saadud infot:
Näha on millal RAIDi tase on tehtud, mis RAIDi tase on kasutusel (antud juhul RAID1 tase), mitu ketast on RAIDi massiivis, mis seisus on RAID (antud juhul sünkroniseeritakse massiive), ning kas RAID kettad on elus või, mis on nende staatus.



Softi RAIDi katki tegemine ja taastamine

5. Laseme punktis 2 tehtud RAIDi taseme õhku - tõmbame ühel kettal toite tagant ja püüame uuelt kettalt RAID süsteemi taastada.

5.1 Algne Softi RAIDi olek (RAID1 tasemes, mirror) käsuga "sudo mdadm --query --detail /dev/md0":

Nagu näha kõik on ok, RAID tase on sünkroniseeritud, probleeme ei ole!

5.2 Tegime RAIDi katki, tõmbasin ühelt kettalt toite tagant.
Kuna algselt oli Softi RAID konfigureeritud "degraded" oleku toega, siis ca 30 sekundi jooksul mängiti RAID tase ümber ja allpool on näha tulemus:



5.3 Teen reboodi katsetamaks, kas süsteem boodib ka ühelt kettalt mis nüüd enam RAIDi tasemes ei ole, allpool on näha, et kõik töötab ilusti ühe kettaga.
Ehk tänu sellel, et ketastele sai tehtud root mount boooditavateks, saab ühe kettaga teha edasi tööd seniks, kui on kuskilt leitud asendusketas!



5.4 Teen shutdowni ja ühendan ketta tagasi. Üles bootides on sama info mis eelmisel pildil, ehk on raid1 tasemes ainult sda1 füüsiline ketas.
Lisan RAID tasemesse md0 füüsilise ketta sdb1, käsuga:

sudo mdadm --add /dev/md0 /dev/sdb1


5.5 Nagu allpool on näha võeti pärast käsku "sudo mdadm --add /dev/md0 /dev/sdb1" uus füüsiline ketas sbd1 kasutusele kui varuketas "spare" ja sünkroniseeritakse see RAID1 tasemesse - seda on näha allpool "spare rebuilding /dev/sdb1" all!



5.6 Vaadates RAID taseme seisu käsuga:

cat /proc/mdstat 

Näeme täpsemalt kaua läheb RAID taseme taastamiseks ja mis toimub (antud juhul on taastatud 6,2%, taastamise lõpuni on jäänud ca 120min).



5.7 RAID1 tase on taastatud, vaatame eelpool tutvustatud käskudega, mis seis on:

Näeme, et kasutusel on uus füüsiline ketas /dev/sdb1 partitsiooniga 2.
Kui vaatame tagasi punkti 4.1, kus vaatlesime äsja moodustatud RAID1 taset, siis on näha, et praegu lisatud uuele sdb1 kettale on tekitatud ka uus partitsioon numbriga 2 (ennem 1).

Käsklusega "sudo mdadm --query --detail /dev/md0" näeme, et uus sdb1 ketas on võetud RAID1 tasemesse juurde, on aktiivne ja sünkroniseerimis protseduur on lõpetatud.

Softi RAIDi massiivi kiiruse test

6.1 Järgneva käsuga on võimalik testida RAID massiivi kiirust:

 sudo hdparm -tT /dev/md0 

Hdparm käsustik lahtiseletatuna:

   -t :perform device read timings  
-T : perform cache read timings
/dev/md0 : meta device

Tulemus võiks olla järgnev (tänapäevaste SATA-2 ketastega on lugemiskiirus ca 100Mbit/s ja üle selle, kui numbrid on alla selle, siis on miskit mäda...)

Nagu on näha on kahe 1TB ketta lugemise kiirus ca 122Mbit/s.
Antud testi võiks korrata mitu korda, et saada adekvaatsem tulemus, selleks võib ka kasutada allpool toodud tsüklit (tsükkel käiakse läbi 5x):

 for i in 1 2 3 4 5; do hdparm -tT /dev/md0; done 



6.2 Lisaks on võimalik kasutada dd käsku RAID massiivi kiiruse hindamiseks:

 dd if=/dev/zero of=/tmp/output.img bs=8k count=256k 

Väljund on alljärgnev:

Peale testi tegemist võiks kustutada /tmp/output.img ajutiselt tekitatud faili:

rm /tmp/output.img 



6.3 Et teha veel põhjalikum test, installeerin programmi bonnie++

 sudo apt-get install bonnie++ 

Bonnie++ käsustik:

   -d = directory for testing  
-s = size of files for IO test. To skip this test use zero. To have realistic test, use size that is double of RAM.
-n = Number of files for file creation test (measured in multiples of 1024 files)
-m = hostname for display purpose
-r = your RAM, you can skip this since you don't need Bonnie to determine RAM, you pay attention on -s to be 2 x RAM
-x = number of tests
-u/g = run Bonnie as user/group. Specify only user and his primary group will be chosen. Recommended not to run as root.
-q = quite mode so you may miss some messages
-f = fast mode (skip per-character IO test = write/read single character, use only block IO test)
-b = no write buffering
-p = number of processes used by semaphores


6.4 Testin Bonnie++ programmiga RAID1 tasemes massiivi kiirust:

 sudo bonnie++ -d /tmp -s 16g -n 0 -m server_name -f -b -u root 

RAID1 kiirusetesti tulemus on alljärgnev:

Tulemusest loeb välja, et kokku kirjutati ketta massiivile 16GB fail, millest "sequential write" faili oli kiirusel ca 133Mbit/s, "sequential re-write" faili oli kiirusel ca 62Mbit/s ja "sequential read" failist oli kiirusel ca 149Mbit/s .
Viimane testi rida, kus on pikk numbrijada on kokkuvõte testi tulemustest, ehk andmed mida saab salvestada andmebaasi ja hiljem vajadusel analüüsida.

Võrdluseks RAID5 tasemel ketaste kiirusetesti tulemus, mis on alljärgnev:

Sellest testist näeme, et RAID5 taseme osas on ketta kiirused - "sequential write" ca 91Mbit/s, "sequential re-write" ca 47Mbit/s ja "sequential read" 260Mbit/s.
Kokkuvõtlikult on RAID5 tasems kirjutamise kiirus ca 1/3 aeglasem, aga lugemise kiirus selle eest ca 2x kiirem, kui RAID1 tasemega võrrelda !!




Softi RAIDi maha võtmine

7.1 Et softi RAID'st lahti saada, siis kõige lihtsam meetod oleks, et kõigepealt antaks RAID massiivile teada, et kõik kettad on rikkis (faild). Selleks tuleks kasutada allpool toodud käske (Vaata ennem üle mis kettad on külge mounditud! Allpool on näide kui oleks masiiv /dev/md0 ja kettad /dev/sda1 ja /dev/sdb1 vaja lahti ühendada):

 mdadm --manage /dev/md0 --fail /dev/sda1 
 mdadm --manage /dev/md0 --fail /dev/sdb1 

Kuna sisuliselt on tegu kogu RAID süsteemi kokku kukkumisega, siis antakse veateateid ja mõneks sekundiks või isegi minutiks võib süsteem hanguda, kuid kannata ja oota ära!

7.2 Järgneva käsuga eemaldame kettad füüsiliselt nn "kuumalt eemaldame - hot remove" RAIDi tasemest md0 (Meta Device 0):

 mdadm --manage /dev/md0 --remove /dev/sda1 
 mdadm --manage /dev/md0 --remove /dev/sdb1 


7.3 Lõpuks eemaldame kõvaketta MBR'st RAIDi info ehk superblock'i:

 mdadm --zero-superblock /dev/sda1 
 mdadm --zero-superblock /dev/sdb1 


7.4 Lõpuks võiks partitsioneerida kettad ja formateerida uue failisüsteemi, kuid seda saab lugeda näiteks järgnevast artiklist:



Lingid

  • Ubuntu saidist põhjalik Soft RAID õpetus [2]
  • Ubuntu saidist veel üks hea Soft RAID õpetus [3]
  • Ubuntu wiki RAID artikkel [4]
  • Debian Soft RAID installeerimise juhend [5]
  • Ketaste ja RAID süsteemi testimine, hdparm ja dd [6], bonnie++ [7], [8]
  • Veel mõned kasulikud softi RAIDi ja mdadm juhendite lingid [9], [10]