
Šiame straipsnyje kalbėsime apie įvairius RAID masyvų organizavimo būdus, taip pat parodysime vieną iš pirmųjų aparatinės įrangos RAID valdiklių su NVMe palaikymu.
Visa RAID technologijos pritaikymo įvairovė yra serverių segmente. Klientų segmente dažniausiai naudojama tik programinė įranga RAID0 arba RAID1 dviejuose diskuose.
Šiame straipsnyje bus pateikta trumpa RAID technologijos apžvalga, trumpa pamoka, kaip sukurti RAID matricas naudojant tris skirtingus įrankius, ir virtualaus disko našumo palyginimas naudojant kiekvieną metodą.
Kas yra RAID?
pateikia išsamų RAID technologijos apibrėžimą:
RAID (Anglų k. Perteklinis nepriklausomų diskų rinkinys - perteklinis nepriklausomų (nepriklausomų) diskų masyvas) - duomenų virtualizacijos technologija, skirta sujungti kelis fizinius disko įrenginius į loginį modulį, siekiant padidinti atsparumą gedimams ir našumą.
Disko masyvų konfigūracija ir naudojamos technologijos priklauso nuo pasirinkto RAID lygis. RAID lygiai yra standartizuoti specifikacijoje . Jame aprašoma daug RAID lygių, tačiau dažniausiai naudojami RAID0, RAID1, RAID5 ir RAID6.
RAID0Arba Juostelės, yra RAID lygis, sujungiantis du ar daugiau fizinių diskų į vieną loginį diską. Loginio disko tūris yra lygus į masyvą įtrauktų fizinių diskų tūrių sumai. Šiame RAID lygyje pertekliaus nėra, o vieno disko gedimas gali sukelti visų virtualiojo disko duomenų praradimą.
Lygis RAID1Arba veidrodis, sukuria identiškas duomenų kopijas dviejuose ar daugiau diskų. Virtualaus disko dydis neviršija minimalaus fizinių diskų dydžio. Duomenys RAID1 virtualiame diske bus pasiekiami tol, kol veiks bent vienas fizinis diskas iš masyvo. RAID1 naudojimas padidina dubliavimą, tačiau yra gana brangus sprendimas, nes dviejų ar daugiau diskų masyvuose yra tik vieno talpa.
Lygis RAID5 išsprendžia didelių išlaidų problemą. Norint sukurti masyvą su RAID5 lygiu, reikia mažiausiai 3 diskų, o masyvas yra atsparus vieno disko gedimui. Duomenys RAID5 saugomi blokuose su kontrolinėmis sumomis. Nėra griežto padalijimo tarp duomenų diskų ir kontrolinių sumų diskų. Kontrolinės sumos RAID5 yra XOR operacijos, taikomos N-1 blokams, kurių kiekvienas paimtas iš skirtingo disko, rezultatas.
Nors RAID masyvai padidina dubliavimą ir užtikrina dubliavimą, jie nėra tinkami atsarginėms kopijoms saugoti.
Trumpai susipažinę su RAID masyvų tipais, galite pereiti prie įrenginių ir programų, leidžiančių surinkti ir naudoti diskų matricas.
RAID valdiklių tipai
Yra du būdai sukurti ir naudoti RAID matricas: aparatinę ir programinę įrangą. Mes apsvarstysime šiuos sprendimus:
- Linux Programinės įrangos RAID.
- „Intel®“ virtualusis RAID procesoriaus viduje.
- LSI MegaRAID 9460-8i.
Atkreipkite dėmesį, kad „Intel®“ sprendimas veikia su mikroschemų rinkiniu, todėl kyla klausimas, ar tai aparatinės ar programinės įrangos sprendimas. Pavyzdžiui, VMWare ESXi hipervizorius atsižvelgia į VROC programinę įrangą ir oficialiai jos nepalaiko.
Linux Programinė įranga RAID
Programinės įrangos RAID masyvai OS šeimoje Linux — gana įprastas sprendimas tiek kliento, tiek serverio segmentuose. Norint sukurti masyvą, tereikia „mdadm“ įrankio ir kelių blokinių įrenginių. Vienintelis reikalavimas yra Linux Programinės įrangos RAID naudojamiems diskams – tai turi būti sistemai prieinamas blokinis įrenginys.
Įrangos ir programinės įrangos kainų nebuvimas yra akivaizdus šio metodo privalumas. Linux Programinės įrangos RAID tvarko diskų masyvus procesoriaus laiko sąskaita. Palaikomų RAID lygių sąrašą ir dabartinių diskų masyvų būseną galima peržiūrėti mdstat faile, esančiame procfs šakniniame kataloge:
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10]
unused devices: <none>
RAID lygių palaikymas pridedamas prijungus atitinkamą branduolio modulį, pavyzdžiui:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
unused devices: <none>Visos operacijos su diskų masyvais atliekamos naudojant komandų eilutės programą mdadm. Disko masyvas surenkamas viena komanda:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1Įvykdžius šią komandą, sistemoje atsiras /dev/md0 bloko įrenginys, kuris atstoja jus kaip virtualų diską.
„Intel®“ virtualusis RAID procesoriaus viduje
„Intel® VROC“ standartinis aparatinės įrangos raktas
„Intel® Virtual RAID On CPU“ (VROC) yra aparatinės ir programinės įrangos technologija, skirta „Intel®“ mikroschemų rinkinių pagrindu sukurti RAID matricas. Ši technologija visų pirma prieinama pagrindinėms plokštėms, kurios palaiko Intel® Xeon® Scalable procesorius. Pagal numatytuosius nustatymus VROC nepasiekiamas. Norėdami jį suaktyvinti, turite įdiegti VROC aparatinės įrangos licencijos raktą.
Standartinė VROC licencija leidžia kurti diskų matricas su 0, 1 ir 10 RAID lygių. Aukščiausios kokybės versija išplečia šį sąrašą su RAID5 palaikymu.
„Intel® VROC“ technologija šiuolaikinėse pagrindinėse plokštėse veikia kartu su „Intel® Volume Management Device“ (VMD), kuris suteikia NVMe diskų karštojo keitimo galimybę.
„Intel® VROC“ standartinė licencija Masyvai konfigūruojami naudojant sąrankos priemonę, kai serveris paleidžiamas. Skirtuke pažangus Pasirodo elementas „Intel® Virtual RAID on CPU“, kuriame galite konfigūruoti diskų matricas.
RAID1 masyvo sukūrimas dviejuose diskuose
„Intel® VROC“ technologija turi savų privalumų. Naudojant VROC surinkti diskų masyvai yra suderinami su Linux Programinės įrangos RAID. Tai reiškia, kad masyvo būseną galima stebėti /proc/mdstat faile ir administruoti naudojant mdadm. Šią funkciją oficialiai palaiko „Intel“. Sukūrus RAID1, galite matyti sinchronizuotus diskus OS sąrankos priemonėje:
root@grindelwald:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 nvme2n1[1] nvme1n1[0]
1855832064 blocks super external:/md127/0 [2/2] [UU]
[>....................] resync = 1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
10402 blocks super external:imsm
unused devices: <none>Atkreipkite dėmesį, kad negalite surinkti masyvų VROC sistemoje per mdadm (surinkti masyvai bus Linux SW RAID), bet juose galite keisti diskus ir išardyti masyvus.
LSI MegaRAID 9460-8i
LSI MegaRAID 9460-8i valdiklio išvaizda
RAID valdiklis yra atskiras techninės įrangos sprendimas. Valdiklis veikia tik su tiesiogiai prie jo prijungtais diskais. Šis RAID valdiklis palaiko iki 24 NVMe diskų. Būtent NVMe palaikymas išskiria šį valdiklį iš daugelio kitų.
Pagrindinis aparatūros valdiklio meniu
Naudojant UEFI režimą, valdiklio nustatymai yra integruoti į sąrankos priemonę. Palyginti su VROC, aparatūros valdiklio meniu atrodo daug sudėtingesnis.
RAID1 sukūrimas dviejuose diskuose
Paaiškinimas, kaip sukonfigūruoti disko masyvus aparatinės įrangos valdiklyje, yra gana subtili tema ir gali būti visaverčio straipsnio priežastis. Čia mes tiesiog apsiribosime RAID0 ir RAID1 sukūrimu su numatytaisiais nustatymais.
Prie aparatūros valdiklio prijungtų diskų operacinė sistema nemato. Vietoj to, valdiklis „užmaskuoja“ visas RAID matricas kaip SAS diskus. Prie valdiklio prijungti diskai, kurie nėra disko masyvo dalis, nebus pasiekiami OS.
root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: AVAGO
Product: MR9460-8i
Revision: 5.14
Compliance: SPC-3
User Capacity: 1,999,844,147,200 bytes [1.99 TB]
Logical block size: 512 bytes
Rotation Rate: Solid State Device
Logical Unit id: 0x000000000000000000000000000000
Serial number: 00000000000000000000000000000000
Device type: disk
Local Time is: Sun Oct 11 16:27:59 2020 MSK
SMART support is: Unavailable - device lacks SMART capability.Nepaisant to, kad yra užmaskuoti kaip SAS diskai, NVMe masyvai veiks PCIe greičiu. Tačiau ši funkcija leidžia paleisti iš NVMe „Legacy“.
Bandymo stendas
Kiekvienas disko masyvų organizavimo būdas turi savo fizinių privalumų ir trūkumų. Bet ar yra našumo skirtumų dirbant su diskų masyvais?
Siekiant maksimalaus sąžiningumo, visi testai bus atliekami tame pačiame serveryje. Jo konfigūracija:
- 2x Intel® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- „Intel® VROC“ standartinis aparatinės įrangos raktas;
- 4x Intel® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500GB.
Bandomieji įrenginiai yra P4510, kurių viena pusė prijungta prie pagrindinės plokštės, o kita – prie RAID valdiklio. Operacinė sistema įdiegta M.2 diske. Ubuntu 20.04, o bandymai bus atliekami naudojant „fio“ 3.16 versiją.
Bandymai
Pirmiausia patikrinkime vėlavimus dirbant su disku. Testas vykdomas viena gija, bloko dydis 4 KB. Kiekvienas testas trunka 5 minutes. Prieš pradedant atitinkamo bloko įtaiso kaip įvesties/išvesties planavimo priemonė nustatoma į None. Komanda fio atrodo taip:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw=<mode> --filename=<blkdev>Iš fio rezultatų imame clat 99.00%. Rezultatai pateikti toliau esančioje lentelėje.
Atsitiktinis skaitymas, μs
Atsitiktinis įrašymas, μs
diskas
112
78
Linux Programinės įrangos RAID, RAID0
113
45
VROC, RAID0
112
46
LSI, RAID0
122
63
Linux Programinės įrangos RAID, RAID1
113
48
VROC, RAID1
113
45
LSI, RAID1
128
89
Be vėlavimų pasiekiant duomenis, norėčiau pamatyti virtualių diskų našumą ir palyginti juos su fizinio disko našumu. Komanda paleisti fio:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth=<threads> --rw=<mode> --filename=<blkdev>Našumas matuojamas I/O operacijomis. Rezultatai pateikti žemiau esančioje lentelėje.
Atsitiktinai nuskaityta 1 gija, IOPS
Atsitiktinai rašyti 1 giją, IOPS
Atsitiktinai nuskaityta 128 gijos, IOPS
Atsitiktinis rašymas 128 gijos, IOPS
diskas
11300
40700
453000
105000
Linux Programinės įrangos RAID, RAID0
11200
52000
429000
232000
VROC, RAID0
11200
52300
441000
162000
LSI, RAID0
10900
44200
311000
160000
Linux Programinės įrangos RAID, RAID1
10000
48600
395000
147000
VROC, RAID1
10000
54400
378000
244000
LSI, RAID1
11000
34300
229000
248000
Nesunku pastebėti, kad naudojant aparatūros valdiklį padidėja delsa ir sumažėja našumas, palyginti su programinės įrangos sprendimais.
išvada
Aparatinės įrangos sprendimų naudojimas kuriant disko masyvus iš dviejų diskų atrodo neracionalu. Tačiau yra užduočių, kuriose RAID valdiklių naudojimas yra pateisinamas. Atsiradus valdikliams, kurie palaiko NVMe sąsają, vartotojai turi galimybę savo projektuose naudoti greitesnius SSD diskus.
Apklausoje gali dalyvauti tik registruoti vartotojai. , Prašau.
Ar naudojate RAID sprendimus?
29,6%Taip, techninės įrangos sprendimai32
50,0%Taip, programinės įrangos sprendimai54
16,7%Nr.18
3,7%Nereikia RAID4
Balsavo 108 vartotojų. 14 vartotojai susilaikė.
Šaltinis: www.habr.com
