
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?
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 . 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/nvme2n1Po izvedbi te ukaze, v sistemu bo nastalo blokovno napravo /dev/md0, ki predstavlja virtualni disk.
Intel® Virtual RAID On CPU
Intel® 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.
Intel® 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.
Ustvarjanje 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
Zunanjost 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.
Glavni 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.
Ustvarjanje 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.
Samo registrovani korisnici mogu učestvovati u anketi. , 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
