RAID massiivi jälgimine reaalajas --------------------------------- selle võib avada eraldi konsoolis (nt tty2): watch cat /proc/mdstat või ka watch -n 10 cat /proc/mdstat -n aeg sekundites, millise perioodiga kuvatakse Käsu kasutamine varasemast ajaloost: CTRL+R otsi enter kasutab nooleklahv (paremale, vasakule) valib käsu edasiseks redigeerimiseks e2fsck http://linux.101hacks.com/unix/e2fsck/ e2fsck -p /dev/sdb1 #parandab automaatselt leitud vead e2fsck -y /dev/sdb1 #automaatne "jah" e2fsck -n /dev/sdb1 #ainult kontroll, midagi ei muuda e2fsck -f /dev/sdb1 #jõuga kontroll kui ka midagi viga ei ole 2fsck -f -C 0 /dev/sdb1 #-C 0 näitab edenemise riba (progress bar) Sünkroniseerimise kiirust saab muuta: cat /proc/sys/dev/raid/speed_limit_max #vaatame maksimumkiirust 200000 cat /proc/sys/dev/raid/speed_limit_min #vaatame miinimumkiirust 1000 echo 100000 > /proc/sys/dev/raid/speed_limit_min #tõstame miinimumkiirust mdadm sätete salvestamine ------------------------- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf Vaatame sõltuvusi: sudo apt-cache rdepends mdadm vajadusel: sudo apt-get --no-install-recommends install mdadm Ketaste vaatamine ----------------- df -h kettaruum df -T failisüsteemid lsblk #kettad lsblk -f #failisüsteemid lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT superbloki vaatamine ehk kas on seotud RAID'iga: mdadm -E /dev/sd[b-e] | mdadm --query /dev/sd[b-e] või ka: mdadm -E /dev/sd[b-e][1-4] | mdadm --query /dev/sd[b-e][1-4] kettajao tüüp kas on RAID (neli ketast): fdisk -l /dev/sd[b-e] | grep RAID RAID seisma: mdadm --stop /dev/md127 RAID käima: mdadm --assemble --scan (eeldab /etc/mdadm/mdadm.conf failis kirje olemasolu) Katkise ketta märkimine mittekatkiseks mdadm --remove /dev/md0 /dev/sdb1 #eemaldame esmalt katkiseks märgitud ketta mdadm --add /dev/md0 /dev/sdb1 #lisame taas Kettajagude tabeli kopeerimine sda -> sdb: sfdisk -d /dev/sda | sfdisk /dev/sdb Vana RAID'i kustutamine ----------------------- vaatame olemasolevaid RAID'i massiive: cat /proc/mdstat mount | grep md VANA RAID'I EEMALDAMINE kui seal on näiteks md0 massiiv siis eemaldamiseks: sudo mdadm --stop /dev/md0 #seiskame RAID massiivi sudo umount /dev/md0 #haagime lahti kui oli haagitud sudo mdadm --zero-superblock /dev/sd[b-e]1 #eemaldame RAID'i superbloki sudo mdadm --remove /dev/md0 #eemaldame RAID'i massiivi vt https://raid.wiki.kernel.org/index.php/RAID_superblock_formats kontrollime: mdadm -E /dev/sd[b-e][1-4] lsblk -f kui on vana RAID superblokk, mida ei saa enam eemaldada siis vorminda failisüsteem (siin neljal kettal korraga), eelnevalt kontrollida ega failisüsteem haagitud ei ole mount -t ext4 #näitab haagitud ext4 failisüsteeme sudo mkfs.ext4 /dev/sd[b-e]1 #vormindab 4 ketast esimesed kettajaod ext4 failisüsteemiga kettajao tüübi kontroll: fdisk -l /dev/sd[b-e] | grep RAID või ka: fdisk -l /dev/sd[b-e] | grep Linux 20 Linux filesystem 28 Linux RAID ka kettatüübid tuleb tagasi (fdisk, cfdisk vms abil) muuta juhul kui need olid muudetud failis /etc/fstab kommenteerida välja (kui oli lisatud) # /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0 ... ja RAID'i enda konfifailis (kui oli lisatud): sudo nano /etc/mdadm/mdadm.conf # ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91 uuenda initramfs: sudo update-initramfs -u Ketaste tüübi määramine ----------------------- cfdisk /dev/sdb -> Linux RAID (pärast tagasi: Linux filesystem) fdisk -> t -> 28 (pärast tagasi: 20) kettajagude tüübi kontroll (neli ketast): fdisk -l /dev/sd[b-e] | grep RAID # # # HARJUTUS Ülesanne 1:RAID1 LOOMINE ------------------------- võib luua kettajaod (fdisk, cfdisk), määrata kettajao tüübiks Linux RAID (28) S:RAID1 kettamassiivi loomine mdadm --create --verbose /dev/md127 --level=1 -n 2 /dev/sdb1 /dev/sdc1 #RAID1 loomine kui kettajagusid ei tee - ka siis saab luua RAID'i: mdadm --create --verbose /dev/md127 --level=1 -n 2 /dev/sdb /dev/sdc #RAID1 loomine teisel konsoolil (nt tty2) pidev jälgimine: watch cat /proc/mdstat kontroll: mdadm --detail /dev/md127 mdadm -E /dev/sd[b-e] #superbloki kontroll, kas on RAID lsblk -f #kettajaod, failisüsteemid S:Konfiguratsiooni salvestamine sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf S:RAIDi seiskamine mdadm --stop /dev/md127 S:RAIDi taaskäivitamine mdadm --assemble --scan S:Kettamassiivi vormindamine mkfs.ext4 /dev/md127 S:Kettagrupi külge ühendamine Ühenda loodud kettagrupp kausta /mnt/lab/raid/ mkdir -p /mnt/lab/raid/ #loome kataloogi mount /dev/md127 /mnt/lab/raid/ #haagime K: mount -t ext4 # näitab kõiki ext4 failisüsteemi haakimisi Ülesanne 2: RAIDi muutmine ---------------------------- S:Testfaili loomine Loo kettamassiivile fail test.txt, millesse kirjuta rida: "Töötab!" Hiljem saame vaadata selle faili säilimist. echo "Töötab!" > /mnt/lab/raid/text.txt S:Ketta "katki tegemine" Lõhu käsurealt üks kettamassiivi ketastest. Vaata, mis juhtus. Kas testfail on endiselt alles? mdadm /dev/md127 --fail /dev/sdb #märgime ketta katkiseks cat /mnt/lab/raid/text.txt #vaatame faili olemasolu S:Kettamassiivi taastamine Eemalda katkine ketas RAIDi massiivist ja lisa massiivi uus ketas. Võib ka sama tagasi panna (eeldusel, et see on välja vahetatud). mdadm /dev/md127 --remove /dev/sdb #eemaldame 2. ketta massiivist mdadm --zero-superblock /dev/sdb #eemaldame RAID'i superbloki ehk siis uus ketas kus ei ole RAID'i mdadm -E /dev/sdb #kontrollime kas superblokk sai eemaldatud mdadm /dev/md127 --add /dev/sdb #lisame "uue" ketta tagasi jälgime teisel konsoolil (nt tty2) massiivi uuestiehitamist watch cat /proc/mdstat S:Varuketta lisamine Lisa RAIDi kolmas ketas, mis jääb varuks. mdadm --add /dev/md127 /dev/sdd K: mdadm --detail /dev/md127 S:Varuketta kasutusele võtmine Tee üks töötavatest ketastest massiivis jälle katki. Vaata, mis juhtub. Seejärel võid eemaldada katkise ketta ja uuesti lisada, et see taas varukettana kasutusele võtta. mdadm --fail /dev/md127 /dev/sdc #märgime katkiseks mdadm --remove /dev/md127 /dev/sdc #eemaldame mdadm --add /dev/md127 /dev/sdc #lisame tagasi varukettaks võib ka korraga: mdadm /dev/md127 --fail /dev/sdc --remove /dev/sdc K: mdadm --detail jälgime teisel konsoolil (nt tty2) massiivi uuestiehitamist watch cat /proc/mdstat Ülesanne 3: RAIDi kasvatamine ------------------------------- S:RAIDi taseme muutmine Kasvata eelmises ülesandes tekitatud RAID1-st kõrgem kettagrupp RAID5. Esialgu jäta seadmete arv muutmata. Kas testfail jäi alles? umount /mnt/lab/raid/ #haagi lahti (kui oli haagitud) mdadm --grow --level=5 /dev/md127 #kasvata RAID'i taset K: mdadm --detail cat /proc/mdstat #vt teisele konsoolile S:Ketaste arvu suurendamine RAID5 massiivis Suurenda massiivis töötavate ketaste arvu ühe võrra (kolmeni). Laienda ka failisüsteemi. Kontrolli, kas testfail on alles. umount /mnt/lab/raid/ #haagi lahti (kui oli haagitud) mdadm --add /dev/md127 /dev/sdd #lisa ketas mdadm --grow --raid-devices=3 /dev/md127 #suurenda ketaste arvu resize2fs /dev/md127 #suurenda failisüsteemi e2fsck -f /dev/md127 #vajadusel paranda failisüsteem mount /dev/md127 /mnt/lab/raid/ #haagi külge tagasi cat /mnt/lab/raid/test.txt #vaatame testfaili sisu S:Neljanda ketta lisamine töötavasse RAID5 massiivi Lisa massiivi veel üks ketas ja suurenda aktiivsete ketaste arvu neljani. Seejärel ürita kahandada töötavate ketaste arvu taas ühe võrra. Kas õnnestus? Suurenda lõpetuseks failisüsteemi veel ühe ketta jagu. umount /mnt/lab/raid/ #haagi lahti (kui oli haagitud) mdadm --add /dev/md127 /dev/sde #lisa ketas mdadm --grow --raid-devices=4 /dev/md127 #suurenda ketaste arvu cat /proc/mdstat #vt teisele konsoolile resize2fs /dev/md127 #suurenda failisüsteemi e2fsck -f /dev/md127 #paranda vajadusel mount /dev/md127 /mnt/lab/raid/ #haagi külge tagasi S:Ketta lõhkumine RAID5 massiivis Lõhu üks töötavatest ketastest. Mis juhtus? Kas testfail on alles? mdadm /dev/md127 --fail /dev/sde K: mdadm --detail clean, degraded #veel töötab kuid halvenenud Ülesanne 4: RAIDi lõhkumine ----------------------- S:RAID5 kettagrupi lõhkumine Lõhu käsurealt ära teine RAID5 ketas. Mis juhtus? Kas testfail on alles? Ühenda RAID lahti ja proovi tagasi ühendada. Ürita katkised kettad vahetada. mdadm /dev/md127 --fail /dev/sdd S:RAIDi eemaldamine Seiska lõhutud RAID ja ürita see uuesti käivitada. Kas õnnestus? Seejärel kustuta raid süsteemist. umount /mnt/lab/raid #ühenda failisüsteem lahti, võivad tulla veateated mdadm --stop /dev/md127 #seiska RAID massiiv mdadm --assemble --scan #proovi uuesti käivitada kustutamine: mdadm --stop /dev/md127 #seiska kui veel ei ole tehtud, vt cat /proc/mdstat teisel konsoolil mdadm --zero-superblock /dev/sd[b-e] #kustuta superblokk vajadusel kasutada: partprobe /dev/sd[b-e] #sünkroniseerib kettajaod tuumaga, kasutada vajadusel K: mdadm --detail /dev/md127 mdadm -E /dev/sd[b-e] | mdadm -E /dev/sd[b-e][1-4] mdadm --query /dev/sd[b-e] | mdadm --query /dev/sd[b-e][1-4] S:RAIDi konfiguratsiooni kustutamine Kustuta lõhutud RAID'i andmed konfiguratsioonist. Ära unusta eemaldamast automaatset külgeühendamist, kui selle varem lisasid. nano /etc/mdadm/mdadm.conf kommenteeri välja või kustuta rida lõpus #ARRAY.... nano /etc/fstab #...... /mnt/lab/raid/ ..... # # # RAID0 tekitamine vaja on minimaalselt 2 ketast peamine kasu: jõudlus mida tähele panna: ole kindel, et andmetest on varukoopia - ühe ketta riknemisel on kõik andmed hävinud. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT abil vaatame kettaid veendumaks, et varasemast RAID'i paigaldusest ei ole jääke siis käivitame: mdadm --zero-superblock /dev/sda mdadm --zero-superblock /dev/sdb mdadm --zero-superblock /dev/sdc loome RAID0: sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb vaatame tulemust: cat /proc/mdstat või teisel konsoolil (nt tty2) pidev jälgimine: watch cat /proc/mdstat vormindame loodud RAID'i massiivi (F - force, vt man mkfs.ext4): sudo mkfs.ext4 -F /dev/md0 loome kataloogi haakimiseks: sudo mkdir -p /mnt/md0 failisüsteemi haakimiseks: sudo mount /dev/md0 /mnt/md0 vaatame kas uus massiiv on saadaval: df -h -x devtmpfs -x tmpfs salvestame massiivi: sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf uuendame initramfs'i, et massiiv oleks alglaadimise ajal varakult kättesaadav: sudo update-initramfs -u käivitame uue massiivi ka alglaadimisel, lisades vastava rea /etc/fstab faili: echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab man fstab: nofail do not report errors for this device if it does not exist. RAID1 vajalik 2 ketast minimaalselt peamine kasu: tõrkekindlus läbi liiasuse mida tähele panna: vaid pool ketate mahust on kasulik mahtuvus tuvastame kettad: lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT veendumaks, et varasemast RAID'i paigaldusest ei ole jääke siis käivitame: mdadm --zero-superblock /dev/sda mdadm --zero-superblock /dev/sdb loome RAID1: sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb vaatame tulemust: cat /proc/mdstat või teisel konsoolil (nt tty2) pidev jälgimine: watch cat /proc/mdstat vormindame loodud RAID'i massiivi (F - force, vt man mkfs.ext4): sudo mkfs.ext4 -F /dev/md0 loome kataloogi haakimiseks: sudo mkdir -p /mnt/md0 failisüsteemi haakimiseks: sudo mount /dev/md0 /mnt/md0 vaatame kas uus massiiv on saadaval: df -h -x devtmpfs -x tmpfs salvestame massiivi: sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf uuendame initramfs'i, et massiiv oleks alglaadimise ajal varakult kättesaadav: sudo update-initramfs -u käivitame uue massiivi ka laglaadimisel, lisades vastava rea /etc/fstab faili: echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab RAID5 vajalik 3 ketast minimaalselt tuvastame kettad: lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT veendumaks, et varasemast RAID'i paigaldusest ei ole jääke siis käivitame: mdadm --zero-superblock /dev/sda mdadm --zero-superblock /dev/sdb mdadm --zero-superblock /dev/sdc loome RAID5 massiivi: sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc vaatame tulemust: cat /proc/mdstat või teisel konsoolil (nt tty2) pidev jälgimine: watch cat /proc/mdstat vormindame loodud RAID'i massiivi (F - force, vt man mkfs.ext4): sudo mkfs.ext4 -F /dev/md0 loome kataloogi haakimiseks: sudo mkdir -p /mnt/md0 failisüsteemi haakimiseks: sudo mount /dev/md0 /mnt/md0 vaatame kas uus massiiv on saadaval: df -h -x devtmpfs -x tmpfs veendu, et RAID5 massiiv on valmis (kui ei ole siis on varuket: cat /proc/mdstat salvestame massiivi: sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf uuendame initramfs'i, et massiiv oleks alglaadimise ajal varakult kättesaadav: sudo update-initramfs -u käivitame uue massiivi ka laglaadimisel, lisades vastava rea /etc/fstab faili: echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab RAID6 kaitseb kuni 2 ketta hävimise eest vajalik 4 ketast minimaalselt mida tähele panna: jõudlus on väike tuvastame kettad: lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT veendumaks, et varasemast RAID'i paigaldusest ei ole jääke siis käivitame: mdadm --zero-superblock /dev/sda mdadm --zero-superblock /dev/sdb mdadm --zero-superblock /dev/sdc mdadm --zero-superblock /dev/sdd loome RAID6 massiivi: sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd vaatame tulemust: cat /proc/mdstat või teisel konsoolil (nt tty2) pidev jälgimine: watch cat /proc/mdstat vormindame loodud RAID'i massiivi (F - force, vt man mkfs.ext4): sudo mkfs.ext4 -F /dev/md0 loome kataloogi haakimiseks: sudo mkdir -p /mnt/md0 failisüsteemi haakimiseks: sudo mount /dev/md0 /mnt/md0 vaatame kas uus massiiv on saadaval: df -h -x devtmpfs -x tmpfs salvestame massiivi: sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf uuendame initramfs'i, et massiiv oleks alglaadimise ajal varakult kättesaadav: sudo update-initramfs -u käivitame uue massiivi ka laglaadimisel, lisades vastava rea /etc/fstab faili: echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab RAID 10 vajalik 4 ketast minimaalselt lisainfo: man 4 md vaikimisi kasutatakse 'near' laotust: near: The default arrangement. Copies of each chunk are written consecutively when striping, meaning that the copies of the data blocks will be written around the same part of multiple disks. far: The first and subsequent copies are written to different parts the storage devices in the array. For instance, the first chunk might be written near the beginning of a disk, while the second chunk would be written half way down on a different disk. This can give some read performance gains for traditional spinning disks at the expense of write performance. offset: Each stripe is copied, offset by one drive. This means that the copies are offset from one another, but still close together on the disk. This helps minimize excessive seeking during some workloads. tuvastame kettad: lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT veendumaks, et varasemast RAID'i paigaldusest ei ole jääke siis käivitame: mdadm --zero-superblock /dev/sda mdadm --zero-superblock /dev/sdb mdadm --zero-superblock /dev/sdc mdadm --zero-superblock /dev/sdd loome RAID10 massiivi: sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd kui soovitakse määratleda ka andmete paigutamist (layout) või koopiate arvu siis tuleb kasutada --layout= parameetrit kus n near, f far, o offset: sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd vaatame tulemust (massiivi loomine võib olla veel pooleli): cat /proc/mdstat või teisel konsoolil (nt tty2) pidev jälgimine: watch cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: vormindame loodud RAID'i massiivi (F - force, vt man mkfs.ext4): sudo mkfs.ext4 -F /dev/md0 loome kataloogi haakimiseks: sudo mkdir -p /mnt/md0 failisüsteemi haakimiseks: sudo mount /dev/md0 /mnt/md0 vaatame kas uus massiiv on saadaval: df -h -x devtmpfs -x tmpfs salvestame massiivi: sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf uuendame initramfs'i, et massiiv oleks alglaadimise ajal varakult kättesaadav: sudo update-initramfs -u käivitame uue massiivi ka laglaadimisel, lisades vastava rea /etc/fstab faili: echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab * * * ketta taastamine RAID'is https://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array * * * Tarkvaraline RAID Ubuntus https://help.ubuntu.com/community/Installation/SoftwareRAID https://wiki.ubuntu.com/Raid FakeRAID - https://help.ubuntu.com/community/FakeRaidHowto RAID serveris https://help.ubuntu.com/lts/serverguide/advanced-installation.html http://www.howtogeek.com/51873/how-to-setup-software-raid-for-a-simple-file-server-on-ubuntu/ https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04 https://raid.wiki.kernel.org/index.php/RAID_setup https://www.flynsarmy.com/2012/12/create-and-manage-a-raid-array-in-ubuntu/ http://www.tecmint.com/understanding-raid-setup-in-linux/ - artiklite seeria Part 1: Introduction to RAID, Concepts of RAID and RAID Levels Part 2: How to setup RAID0 (Stripe) in Linux Part 3: How to setup RAID1 (Mirror) in Linux Part 4: How to setup RAID5 (Striping with Distributed Parity) in Linux Part 5: How to setup RAID6 (Striping with Double Distributed Parity) in Linux Part 6: Setting Up RAID 10 or 1+0 (Nested) in Linux Part 7: Growing an Existing RAID Array and Removing Failed Disks in Raid Part 8: How to Recover Data and Rebuild Failed Software RAID’s Part 9: How to Manage Software RAID’s in Linux with ‘Mdadm’ Tool https://calomel.org/megacli_lsi_commands.html - LSI kontrollerite haldamiseks http://michal.karzynski.pl/blog/2009/11/18/mdadm-gui-via-webmin/ https://www.youtube.com/watch?v=Y4MIWzLwZy8 http://doxfer.webmin.com/Webmin/Linux_RAID https://www.howtoforge.com/install-ubuntu-with-software-raid-10 https://www.howtoforge.com -> otsi: RAID GRUB ja RAID http://askubuntu.com/questions/43036/how-do-i-install-grub-on-a-raid-system-installation How To Set Up Software RAID1 On A Running System (Incl. GRUB Configuration) https://www.howtoforge.com/software-raid1-grub-boot-debian-etch TRIM (SSD) ja RAID http://serverfault.com/questions/508459/implementing-linux-fstrim-on-ssd-with-software-md-raid http://askubuntu.com/questions/264625/how-to-set-up-ssd-raid-and-trim-support https://wiki.debian.org/SSDOptimization S.M.A.R.T. vahendid: sudo apt install smartmontools juhend: man smartctl näited: sudo smartctl -a /dev/sda Hardware RAID RAID Simulator Tool for Intel® Embedded Server RAID Technology II BIOS Console http://www.intel.com/content/www/us/en/support/boards-and-kits/000007159.html Windowsi rakendused Linuxis: Wine - https://www.winehq.org Ubuntu jt - https://wiki.winehq.org/Ubuntu