Nizi RAID na NVMe

Nizi RAID na NVMe
V tem članku bomo govorili o različnih načinih organiziranja nizov RAID in prikazali tudi enega prvih krmilnikov strojne opreme RAID s podporo za NVMe.

Vso pestrost uporabe tehnologije RAID najdemo v segmentu strežnikov. V odjemalskem segmentu se največkrat uporablja samo programski RAID0 ali RAID1 na dveh diskih.

Ta članek bo podal kratek pregled tehnologije RAID, kratko vadnico o tem, kako ustvariti polja RAID s tremi različnimi orodji, in primerjavo zmogljivosti virtualnega diska z vsako metodo.

Kaj je RAID?

Wikipedia daje celovito definicijo tehnologije RAID:

RAID (Angleščina Odvečna vrsta neodvisnih diskov - redundantno polje neodvisnih (neodvisnih) diskov) - tehnologija virtualizacije podatkov za združevanje več fizičnih diskovnih naprav v logični modul za povečanje tolerance napak in zmogljivosti.

Konfiguracija diskovnih polj in uporabljene tehnologije so odvisne od izbranega raven RAID. Ravni RAID so standardizirane v specifikaciji Običajni format podatkov diska RAID. Opisuje veliko ravni RAID, vendar so najpogostejše RAID0, RAID1, RAID5 in RAID6.

RAID0Ali Stripes, je raven RAID, ki združuje dva ali več fizičnih pogonov v en logični pogon. Prostornina logičnega diska je enaka vsoti prostornin fizičnih diskov, vključenih v polje. Na tej ravni RAID ni redundance in okvara enega pogona lahko povzroči izgubo vseh podatkov na virtualnem disku.

Raven RAID1Ali Mirror, ustvari enake kopije podatkov na dveh ali več diskih. Velikost navideznega diska ne presega najmanjše velikosti fizičnih diskov. Podatki na virtualnem disku RAID1 bodo na voljo, dokler deluje vsaj en fizični disk iz polja. Uporaba RAID1 dodaja redundanco, vendar je precej draga rešitev, saj je v nizu dveh ali več diskov na voljo zmogljivost samo enega.

Raven RAID5 rešuje problem visokih stroškov. Za ustvarjanje polja z nivojem RAID5 potrebujete vsaj 3 diske, polje pa je odporno na okvaro enega diska. Podatki v RAID5 so shranjeni v blokih s kontrolnimi vsotami. Med podatkovnimi diski in diski s kontrolno vsoto ni stroge delitve. Kontrolne vsote v RAID5 so rezultat operacije XOR, uporabljene za bloke N-1, od katerih je vsak vzet z drugega diska.

Čeprav polja RAID povečujejo redundanco in zagotavljajo redundanco, niso primerna za shranjevanje varnostnih kopij.

Po kratkem izletu v vrste polj RAID lahko nadaljujete z napravami in programi, ki vam omogočajo sestavljanje in uporabo diskovnih polj.

Vrste krmilnikov RAID

Obstajata dva načina za ustvarjanje in uporabo RAID nizov: strojna in programska oprema. Upoštevali bomo naslednje rešitve:

  • RAID programske opreme za Linux.
  • Intel® Virtual RAID na procesorju.
  • LSI MegaRAID 9460-8i.

Upoštevajte, da rešitev Intel® deluje na naboru čipov, zaradi česar se postavlja vprašanje, ali gre za strojno ali programsko rešitev. Na primer, hipervizor VMWare ESXi upošteva programsko opremo VROC in je uradno ne podpira.

RAID programske opreme za Linux

Programski RAID nizi v družini OS Linux so dokaj pogosta rešitev tako v odjemalskem kot strežniškem segmentu. Vse, kar potrebujete za ustvarjanje matrike, je pripomoček mdadm in nekaj blokovnih naprav. Edina zahteva, ki jo RAID programske opreme Linux postavlja na pogone, ki jih uporablja, je, da so blokovna naprava, dostopna sistemu.

Odsotnost stroškov za opremo in programsko opremo je očitna prednost te metode. Programska oprema Linux RAID organizira diskovna polja na račun časa procesorja. Seznam podprtih ravni RAID in stanje trenutnih diskovnih polj si lahko ogledate v datoteki mdstat, ki se nahaja v korenu procfs:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

Podpora za ravni RAID je dodana s povezavo ustreznega modula jedra, na primer:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

Vse operacije z diskovnimi polji se izvajajo prek pripomočka ukazne vrstice mdadm. Diskovno polje se sestavi v enem ukazu:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

Po izvedbi tega ukaza se bo v sistemu pojavila blokovna naprava /dev/md0, ki vas predstavlja kot virtualni disk.

Intel® Virtual RAID na procesorju

Nizi RAID na NVMeStandardni strojni ključ Intel® VROC
Intel® Virtual RAID On CPE (VROC) je tehnologija strojne in programske opreme za ustvarjanje polj RAID na osnovi naborov čipov Intel®. Ta tehnologija je na voljo predvsem za matične plošče, ki podpirajo procesorje Intel® Xeon® Scalable. Privzeto VROC ni na voljo. Če ga želite aktivirati, morate namestiti licenčni ključ strojne opreme VROC.

Standardna licenca VROC vam omogoča ustvarjanje diskovnih polj z 0, 1 in 10 nivoji RAID. Premium različica ta seznam razširi s podporo za RAID5.

Tehnologija Intel® VROC na sodobnih matičnih ploščah deluje v povezavi z napravo Intel® Volume Management Device (VMD), ki omogoča vročo zamenjavo za pogone NVMe.

Nizi RAID na NVMeStandardna licenca Intel® VROC Nizi se konfigurirajo s pripomočkom za nastavitev, ko se strežnik zažene. Na zavihku Napredno Prikaže se element Intel® Virtual RAID on CPE, kjer lahko konfigurirate diskovna polja.

Nizi RAID na NVMeUstvarjanje polja RAID1 na dveh pogonih
Tehnologija Intel® VROC ima svoje ase v rokavu. Diskovna polja, izdelana z uporabo VROC, so združljiva s programsko opremo Linux RAID. To pomeni, da je mogoče stanje matrik spremljati v /proc/mdstat in upravljati prek mdadm. To "funkcijo" uradno podpira Intel. Po sestavljanju RAID1 v pripomočku za nastavitev lahko opazujete sinhronizacijo pogonov v 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>

Upoštevajte, da ne morete sestaviti polj na VROC z uporabo mdadm (sestavljena polja bodo Linux SW RAID), lahko pa zamenjate diske v njih in razstavite polja.

LSI MegaRAID 9460-8i

Nizi RAID na NVMeVidez krmilnika LSI MegaRAID 9460-8i
Krmilnik RAID je samostojna strojna rešitev. Krmilnik deluje samo z diski, ki so neposredno priključeni nanj. Ta krmilnik RAID podpira do 24 pogonov NVMe. Podpora za NVMe je tisto, kar ločuje ta krmilnik od mnogih drugih.

Nizi RAID na NVMeGlavni meni krmilnika strojne opreme
Ko uporabljate način UEFI, so nastavitve krmilnika integrirane v Setup Utility. V primerjavi z VROC je meni krmilnika strojne opreme videti veliko bolj zapleten.

Nizi RAID na NVMeUstvarjanje RAID1 na dveh diskih
Razlaga, kako konfigurirati diskovna polja na krmilniku strojne opreme, je precej občutljiva tema in bi lahko bila razlog za celovit članek. Tu se bomo preprosto omejili na ustvarjanje RAID0 in RAID1 s privzetimi nastavitvami.

Diski, povezani s krmilnikom strojne opreme, niso vidni operacijskemu sistemu. Namesto tega krmilnik "maskira" vsa polja RAID kot pogone SAS. Pogoni, ki so povezani s krmilnikom, vendar niso del diskovnega polja, operacijskemu sistemu ne bodo dostopni.

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.

Kljub temu, da so zamaskirana kot pogoni SAS, bodo polja NVMe delovala pri hitrostih PCIe. Vendar vam ta funkcija omogoča zagon iz NVMe v Legacy.

Testno stojalo

Vsak način organiziranja diskovnih polj ima svoje fizične prednosti in slabosti. Toda ali obstaja razlika v zmogljivosti pri delu z diskovnimi polji?

Da bi dosegli največjo pravičnost, bodo vsi testi izvedeni na istem strežniku. Njegova konfiguracija:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Standardni strojni ključ Intel® VROC;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Testne enote so P4510, katerih polovica je povezana z matično ploščo, druga polovica pa s krmilnikom RAID. M.2 uporablja Ubuntu 20.04 in testi se bodo izvajali z različico fio 3.16.

Testiranje

Najprej preverimo zamude pri delu z diskom. Test se izvaja v eni niti, velikost bloka je 4 KB. Vsak test traja 5 minut. Pred zagonom je ustrezna blokovna naprava kot V/I razporejevalnik nastavljena na nič. Ukaz fio izgleda takole:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

Iz fio rezultatov vzamemo klat 99.00%. Rezultati so prikazani v spodnji tabeli.

Naključni odčitek, μs
Naključno snemanje, μs

disk
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

Poleg zamud pri dostopu do podatkov bi rad videl delovanje virtualnih pogonov in jih primerjal z delovanjem fizičnega diska. Ukaz za zagon fio:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

Zmogljivost se meri glede na V/I operacije. Rezultati so predstavljeni v spodnji tabeli.

Naključno branje 1 niti, IOPS
Naključno pisanje 1 nit, IOPS
Naključno branje 128 niti, IOPS
Naključno pisanje 128 niti, IOPS

disk
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

Preprosto je videti, da uporaba krmilnika strojne opreme povzroči povečano zakasnitev in nižjo zmogljivost v primerjavi s programskimi rešitvami.

Zaključek

Uporaba strojnih rešitev za ustvarjanje diskovnih polj iz dveh diskov je videti neracionalna. Vendar pa obstajajo naloge, kjer je uporaba krmilnikov RAID upravičena. S prihodom krmilnikov, ki podpirajo vmesnik NVMe, imajo uporabniki možnost, da v svojih projektih uporabljajo hitrejše diske SSD.

Nizi RAID na NVMe

V anketi lahko sodelujejo samo registrirani uporabniki. Prijaviti se, prosim.

Ali uporabljate rešitve RAID?

  • 29,6%Da, strojne rešitve32

  • 50,0%Da, programske rešitve54

  • 16,7%št.18

  • 3,7%RAID ni potreben4

Glasovalo je 108 uporabnikov. 14 uporabnikov se je vzdržalo.

Vir: www.habr.com

Dodaj komentar