RAID masyvai NVMe

RAID masyvai NVMe
Š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?

Vikipedija 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 Įprastas RAID disko duomenų formatas. 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ės įrangos RAID

Programinės įrangos RAID masyvai Linux OS šeimoje yra gana dažnas sprendimas tiek kliento, tiek serverio segmentuose. Viskas, ko jums reikia norint sukurti masyvą, yra „mdadm“ programa ir keli blokuoti įrenginiai. Vienintelis reikalavimas, kurį „Linux Software RAID“ kelia naudojamiems diskams, yra blokuoti įrenginys, pasiekiamas sistemai.

Išlaidų įrangai ir programinei įrangai nebuvimas yra akivaizdus šio metodo pranašumas. „Linux Software RAID“ sutvarko diskų matricas procesoriaus laiko kaina. Palaikomų RAID lygių sąrašą ir dabartinių diskų masyvų būseną galima peržiūrėti mdstat faile, kuris yra procfs šaknyje:

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

RAID masyvai NVMe„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ę.

RAID masyvai NVMe„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.

RAID masyvai NVMeRAID1 masyvo sukūrimas dviejuose diskuose
„Intel® VROC“ technologija turi savo tūzus. Disko masyvai, sukurti naudojant VROC, yra suderinami su Linux programinės įrangos RAID. Tai reiškia, kad masyvų būseną galima stebėti /proc/mdstat ir administruoti per mdadm. Šią „funkciją“ oficialiai palaiko „Intel“. Surinkę RAID1 sąrankos priemonėje, galite stebėti diskų sinchronizavimą OS:

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 masyvai VROC negalite surinkti naudodami mdadm (surinkti masyvai bus Linux SW RAID), tačiau galite pakeisti juose esančius diskus ir išardyti masyvus.

LSI MegaRAID 9460-8i

RAID masyvai NVMeLSI 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ų.

RAID masyvai NVMePagrindinis 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.

RAID masyvai NVMeRAID1 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 blokai yra P4510, kurių viena pusė yra prijungta prie pagrindinės plokštės, o kita pusė - prie RAID valdiklio. M.2 veikia Ubuntu 20.04, o testai bus vykdomi 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 SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linux SW 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 SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linux SW 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.

RAID masyvai NVMe

Apklausoje gali dalyvauti tik registruoti vartotojai. Prisijungti, 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

Добавить комментарий