RAID nizovi na NVMe

RAID nizovi na NVMe
V tem članku bomo predstavili različne načine organizacije RAID nizov ter pokazali enega od prvih strojnih RAID krmilnikov, ki podpira NVMe.

Vse raznolikosti uporabe tehnologije RAID se pojavljajo v strežniškem segmentu. V odjemalskem segmentu pa se najpogosteje uporablja le programski RAID0 ali RAID1 z dvema diskoma.

V tem članku bo kratek pregled tehnologije RAID, majhna navodila za ustvarjanje RAID nizov s tremi različnimi orodji in primerjava zmogljivosti virtualnih diskov pri uporabi vsake metode.

Kaj je RAID?

KB podjetja Fortinet natančno opredeljuje tehnologijo RAID:

RAID (angleščina: Redundant Array of Independent Disks — odvečna skupina neodvisnih (samostojnih) diskov) — tehnologija virtualizacije podatkov za združevanje več fizičnih diskovnih naprav v logični modul za povečanje odpornosti na napake in zmogljivosti.

Konfiguracija diskovnih nizov in uporabljene tehnologije so odvisne od izbranega ravni RAID (RAID level). Ravnine RAID so standardizirane v specifikaciji Common RAID Disk Data Format. Ta opisuje številne ravni RAID, vendar se za najpogostejše štejejo RAID0, RAID1, RAID5 in RAID6.

RAID0, ali Stripes, je raven RAID, ki združuje dva ali več fizičnih diskov v en logični disk. Prostornina logičnega diska je enaka vsoti prostornin fizičnih diskov, ki so vključeni v niz. Na tej ravni RAID ni odvečnosti, izpad enega diska pa lahko privede do izgube vseh podatkov v virtualnem disku.

Raven RAID1, ali Mirror, ustvarja identične kopije podatkov na dveh ali več diskih. Prostornina virtualnega diska pri tem ne presega prostornine najmanjšega fizičnega diska. Podatki na virtualnem disku RAID1 bodo dostopni, dokler deluje vsaj en fizični disk iz niza. Uporaba RAID1 dodaja odvečnost, vendar je precej draga rešitev, saj je v nizih z dvema ali več diski na voljo prostornina le enega.

Raven RAID5 rešuje težavo draginje. Za ustvarjanje RAID5 polja so potrebni vsaj 3 diski, pri čemer je polje odporna na odpoved enega diska. Podatki v RAID5 se shranjujejo v blokih s kontrolnimi vsotami. Ni stroge ločitve med diski s podatki in diski s kontrolnimi vsotami. Kontrolne vsote v RAID5 so rezultat operacije XOR, uporabljene na N-1 blokih, pri čemer je vsak iz njegovih diskov.

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

Po kratkem pregledu vrst RAID polj lahko preidemo na naprav in programov, ki omogočajo zbiranje in uporabo diskovnih polj.

Vrste RAID kontrolerjev

Obstajata dva načina za ustvarjanje in uporabo RAID polj: strojna in programska. Razmislili bomo o naslednjih rešitvah:

  • Linux Software RAID.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Opazimo, da rešitev Intel® deluje na čipovju, kar postavlja vprašanje, ali gre za strojno ali programsko rešitev. Na primer, hipervizor VMWare ESXi šteje VROC za programsko in ga ne podpira uradno.

Linux Software RAID

Programska RAID polja v družini operacijskih sistemov Linux so dovolj razširjena rešitev tako v odjemalskem kot strežniškem segmentu. Vse, kar potrebujete za ustvarjanje polja, je orodje mdadm in nekaj blokovnih naprav. Edini pogoj, ki ga Linux Software RAID postavlja za uporabljene naprave, je, da morajo biti blokovne naprave, dostopne sistemu.

Pomanjkanje stroškov za strojno opremo in programsko opremo je očitna prednost tega pristopa. Linux Software RAID organizira diskovna polja po ceni procesorskega časa. 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:

Podpora ravni RAID se doda z nalaganjem ustreznega jedrskega modula, na primer:

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

Vse operacije z diskovnimi polji se izvajajo preko ukazne vrstice mdadm. Zbiranje diskovnega polja se izvede z enim ukazom:

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

Po izvedbi te ukaze, v sistemu bo nastalo blokovno napravo /dev/md0, ki predstavlja virtualni disk.

Intel® Virtual RAID On CPU

RAID nizovi na NVMeIntel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) je programsko-strojna tehnologija za ustvarjanje RAID-masivov na osnovi Intel® čipov. Ta tehnologija je na voljo predvsem za matične plošče, ki podpirajo procesorje Intel® Xeon® Scalable. Privzeto VROC ni na voljo. Za njegovo aktivacijo je potrebno namestiti strojni licenčni ključ VROC.

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

Tehnologija Intel® VROC na sodobnih matičnih ploščah deluje skupaj z Intel® Volume Management Device (VMD), ki omogoča toplo zamenjavo za naprave z vmesnikom NVMe.

RAID nizovi na NVMeIntel® VROC s standardno licenco Nastavitev masivov se izvede preko Setup Utility ob zagonu strežnika. Na zavihku Napredno se pojavi točka Intel® Virtual RAID on CPU, kjer lahko nastavite diskovne masive.

RAID nizovi na NVMeUstvarjanje RAID1 masiva na dveh napravah
Tehnologija Intel® VROC ima svoje 'ase v rokavu'. Diskovni masivi, zgrajeni s pomočjo VROC, so združljivi z Linux Software RAID. To pomeni, da je stanje masivov mogoče spremljati v /proc/mdstat, upravljati pa preko mdadm. Ta 'lastnost' uradno podpira Intel. Po zgradnji RAID1 v Setup Utility lahko opazujete sinhronizacijo naprav v OS:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : aktivni raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blokov super zunanje:/md127/0 [2/2] [UU]
      [>....................]  resynhronizacija =  1.3% (24207232/1855832064) končano=148.2min hitrost=205933K/sec
      
md127 : neaktiven nvme1n1[1](S) nvme2n1[0](S)
      10402 blokov super zunanje:imsm
       
neuporabne naprave: <none>

Omeniti je treba, da prek mdadm ni mogoče zgraditi masivov na VROC (zgrajeni masivi bodo Linux SW RAID), vendar jih je mogoče spreminjati in razstaviti.

LSI MegaRAID 9460-8i

RAID nizovi na NVMeZunanjost krmilnika LSI MegaRAID 9460-8i
RAID-kontroler je samostojna strojna rešitev. Krmilnik deluje samo z napravami, ki so neposredno povezane z njim. Ta RAID-kontroler podpira do 24 naprav z vmesnikom NVMe. Podpora NVMe izstopa tega kontrolerja iz množice drugih.

RAID nizovi na NVMeGlavni meni strojnega krmilnika
Pri uporabi načina UEFI se nastavitve krmilnika integrirajo v Setup Utility. V primerjavi z VROC je meni strojnega krmilnika videti precej bolj zapleten.

RAID nizovi na NVMeUstvarjanje RAID1 na dveh diskih
Razlaga nastavitev diskovnih nizov na strojni krmilnik je dokaj zahtevna tema in bi lahko postala osnova za celoten članek. Tukaj se bomo omejili na ustvarjanje RAID0 in RAID1 s privzetimi nastavitvami.

Diski, povezani na strojni krmilnik, niso vidni operacijskemu sistemu. Namesto tega krmilnik 'maskira' vse RAID-nize pod SAS-naprave. Naprave, povezane na krmilnik, vendar niso del diskovnega niza, ne bodo dostopne OS.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (lokalna gradnja)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== ZAČETEK ODDELKA Z INFORMACIJAMI ===
Proizvajalec:          AVAGO
Izdelek:             MR9460-8i
Revizija:            5.14
Usklajenost:          SPC-3
Uporabniška kapaciteta: 1,999,844,147,200 bajtov [1.99 TB]
Logična velikost bloka:  512 bajtov
Hitrost vrtenja:        Trdna stanje naprave
ID logične enote:      0x000000000000000000000000000000
Serijska številka:     00000000000000000000000000000000
Tip naprave:          disk
Lokalni čas:          Ned, 11. okt 2020 16:27:59 MSK
SMART podpora:       Nedostopno - naprava nima SMART zmogljivosti.

Kljub maskiranju pod SAS-naprave bodo nizi z NVMe delovali s hitrostjo PCIe. Vendar ta lastnost omogoča zagon iz NVMe v Legacy.

Testni postavitev

Vsak od načinov organizacije diskovnih nizov ima svoje fizične prednosti in slabosti. Ampak ali obstaja razlika v zmogljivosti pri delovanju z diskovnimi nizami?

Za dosego največje poštenosti bodo vsi testi izvedeni na istem strežniku. Njegova konfiguracija je:

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

Testirani so P4510, od katerih je ena polovica povezana z matično ploščo, druga pa z RAID-krmilnikom. Na M.2 je nameščen operacijski sistem Ubuntu 20.04, testi pa bodo potekali z fio različice 3.16.

Testiranje

Najprej bomo preverili zakasnitve pri delu z diskom. Test se izvaja v enem toku, velikost bloka je 4 KB. Vsak test traja 5 minut. Pred začetkom se ustreznemu blokovnemu napravi nastavi none kot načrtovalnik I/O. Ukaz fio izgleda takole:

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

Iz rezultatov fio vzemamo clat 99,00%. Rezultati so navedeni v spodnji tabeli.

Naključno branje, µs
Naključni zapis, µ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 zakasnitve pri dostopu do podatkov želim videti zmogljivost virtualnih osnov in jo primerjati z zmogljivostjo fizičnega diska. Ukaz za zagon fio:

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

Zmogljivost se meri v številu vhodno/izhodnih operacij. Rezultati so predstavljeni v spodnji tabeli.

Naključno branje 1 tok, IOPS
Naključni zapis 1 tok, IOPS
Naključno branje 128 tokov, IOPS
Naključni zapis 128 tokov, 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

Enostavno opazno je, da uporaba strojnega krmilnika povečuje zakasnitve in upad zmogljivosti v primerjavi s programski rešitvami.

Zaključek

Uporaba strojnih rešitev za ustvarjanje diskovnih struktur iz dveh diskov se zdi nerazumna. Vendar pa obstajajo naloge, kjer je uporaba RAID krmilnikov upravičena. Z pojavom krmilnikov s podporo za vmesnik NVMe imajo uporabniki možnost, da v svojih projektih uporabijo hitrejše SSD.

RAID nizovi na NVMe

Samo registrovani korisnici mogu učestvovati u anketi. Prijavite se, molim vas.

Uporabljate RAID rešitve?

  • 29,6%Da, strojne rešitve32

  • 50,0%Da, programske rešitve54

  • 16,7%Ne18

  • 3,7%RAID ni potreben4

Oddalo je glas 108 uporabnikov. 14 uporabnikov se je vzdržalo.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster