RAID polia na NVMe

RAID polia na NVMe
V tomto článku budeme hovoriť o rôznych spôsoboch usporiadania polí RAID a tiež ukážeme jeden z prvých hardvérových radičov RAID s podporou NVMe.

Všetka rozmanitosť aplikácií technológie RAID sa nachádza v segmente serverov. V klientskom segmente sa najčastejšie používa iba softvérový RAID0 alebo RAID1 na dvoch diskoch.

Tento článok poskytne stručný prehľad technológie RAID, krátky návod, ako vytvoriť polia RAID pomocou troch rôznych nástrojov, a porovnanie výkonu virtuálnych diskov pomocou jednotlivých metód.

Čo je to RAID?

Wikipedia poskytuje komplexnú definíciu technológie RAID:

RAID (Slovensky Redundantné pole nezávislých diskov - redundantné pole nezávislých (nezávislých) diskov) - technológia virtualizácie dát na spojenie niekoľkých fyzických diskových zariadení do logického modulu na zvýšenie odolnosti voči chybám a výkonu.

Konfigurácia diskových polí a použité technológie závisia od zvoleného úroveň RAID. Úrovne RAID sú štandardizované v špecifikácii Common RAID Disk Data Format. Popisuje veľa úrovní RAID, ale najbežnejšie sú RAID0, RAID1, RAID5 a RAID6.

RAID0Alebo Stripes, je úroveň RAID, ktorá kombinuje dva alebo viac fyzických diskov do jedného logického disku. Objem logického disku sa rovná súčtu objemov fyzických diskov zahrnutých v poli. Na tejto úrovni RAID neexistuje žiadna redundancia a zlyhanie jedného disku môže viesť k strate všetkých údajov na virtuálnom disku.

Úroveň RAID1Alebo zrkadlo, vytvára identické kópie údajov na dvoch alebo viacerých diskoch. Veľkosť virtuálneho disku nepresahuje minimálnu veľkosť fyzických diskov. Údaje na virtuálnom disku RAID1 budú dostupné, pokiaľ bude funkčný aspoň jeden fyzický disk z poľa. Použitie RAID1 pridáva redundanciu, ale je dosť drahé riešenie, pretože v poliach dvoch alebo viacerých diskov je k dispozícii kapacita iba jedného.

Úroveň RAID5 rieši problém vysokých nákladov. Na vytvorenie poľa s úrovňou RAID5 potrebujete minimálne 3 disky a pole je odolné voči výpadku jedného disku. Dáta v RAID5 sú uložené v blokoch s kontrolnými súčtami. Neexistuje striktné rozdelenie medzi diskami s údajmi a diskami s kontrolným súčtom. Kontrolné súčty v RAID5 sú výsledkom operácie XOR aplikovanej na N-1 blokov, pričom každý je prevzatý z iného disku.

Hoci polia RAID zvyšujú redundanciu a poskytujú redundanciu, nie sú vhodné na ukladanie záloh.

Po krátkej exkurzii do typov RAID polí môžete prejsť k zariadeniam a programom, ktoré umožňujú zostavovať a používať diskové polia.

Typy radičov RAID

Existujú dva spôsoby vytvárania a používania polí RAID: hardvér a softvér. Budeme uvažovať o nasledujúcich riešeniach:

  • Linuxový softvérový RAID.
  • Intel® Virtual RAID na CPU.
  • LSI MegaRAID 9460-8i.

Všimnite si, že riešenie Intel® beží na čipovej súprave, čo vyvoláva otázku, či ide o hardvérové ​​alebo softvérové ​​riešenie. Napríklad hypervízor VMWare ESXi považuje softvér VROC a oficiálne ho nepodporuje.

Linuxový softvérový RAID

Softvérové ​​polia RAID v rodine OS Linux sú pomerne bežným riešením v klientskom aj serverovom segmente. Všetko, čo potrebujete na vytvorenie poľa, je nástroj mdadm a niekoľko blokových zariadení. Jedinou požiadavkou Linux Software RAID na disky, ktoré používa, je byť blokovým zariadením prístupným pre systém.

Zjavnou výhodou tejto metódy je absencia nákladov na vybavenie a softvér. Linux Software RAID organizuje diskové polia na úkor času CPU. Zoznam podporovaných úrovní RAID a stav aktuálnych diskových polí je možné zobraziť v súbore mdstat, ktorý sa nachádza v koreňovom adresári procfs:

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

Podpora úrovní RAID sa pridáva pripojením príslušného modulu jadra, napríklad:

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

Všetky operácie s diskovými poľami sa vykonávajú cez obslužný program príkazového riadka mdadm. Diskové pole je zostavené jedným príkazom:

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

Po vykonaní tohto príkazu sa v systéme objaví blokové zariadenie /dev/md0, ktoré vás predstavuje ako virtuálny disk.

Intel® Virtual RAID na CPU

RAID polia na NVMeŠtandardný hardvérový kľúč Intel® VROC
Intel® Virtual RAID On CPU (VROC) je hardvérová a softvérová technológia na vytváranie polí RAID založených na čipsetoch Intel®. Táto technológia je dostupná predovšetkým pre základné dosky, ktoré podporujú procesory Intel® Xeon® Scalable. Štandardne nie je VROC k dispozícii. Ak ju chcete aktivovať, musíte nainštalovať hardvérový licenčný kľúč VROC.

Štandardná licencia VROC umožňuje vytvárať diskové polia s 0, 1 a 10 úrovňami RAID. Prémiová verzia rozširuje tento zoznam o podporu RAID5.

Technológia Intel® VROC na moderných základných doskách funguje v spojení so zariadením Intel® Volume Management Device (VMD), ktoré poskytuje možnosť rýchlej výmeny diskov NVMe.

RAID polia na NVMeŠtandardná licencia Intel® VROC Polia sa konfigurujú prostredníctvom pomôcky Setup Utility pri zavádzaní servera. Na karte pokročilý Zobrazí sa položka Intel® Virtual RAID na CPU, kde môžete konfigurovať diskové polia.

RAID polia na NVMeVytvorenie poľa RAID1 na dvoch diskoch
Technológia Intel® VROC má v rukáve svoje vlastné esá. Diskové polia vytvorené pomocou VROC sú kompatibilné s Linux Software RAID. To znamená, že stav polí možno monitorovať v /proc/mdstat a spravovať cez mdadm. Táto „funkcia“ je oficiálne podporovaná spoločnosťou Intel. Po zostavení poľa RAID1 v pomôcke Setup Utility môžete sledovať synchronizáciu jednotiek v operačnom systéme:

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>

Všimnite si, že nemôžete zostaviť polia na VROC pomocou mdadm (zostavené polia budú Linux SW RAID), ale môžete v nich vymeniť disky a polia rozobrať.

LSI MegaRAID 9460-8i

RAID polia na NVMeVzhľad radiča LSI MegaRAID 9460-8i
Radič RAID je samostatné hardvérové ​​riešenie. Ovládač funguje len s priamo k nemu pripojenými pohonmi. Tento radič RAID podporuje až 24 jednotiek NVMe. Práve podpora NVMe odlišuje tento ovládač od mnohých iných.

RAID polia na NVMeHlavné menu hardvérového ovládača
Pri používaní režimu UEFI sú nastavenia ovládača integrované do pomôcky Setup. V porovnaní s VROC vyzerá ponuka hardvérového ovládača oveľa komplexnejšie.

RAID polia na NVMeVytvorenie RAID1 na dvoch diskoch
Vysvetlenie konfigurácie diskových polí na hardvérovom radiči je pomerne chúlostivá téma a mohla by byť dôvodom na plnohodnotný článok. Tu sa jednoducho obmedzíme na vytvorenie RAID0 a RAID1 s predvolenými nastaveniami.

Disky pripojené k hardvérovému ovládaču nie sú viditeľné pre operačný systém. Namiesto toho radič „maskuje“ všetky polia RAID ako disky SAS. Jednotky pripojené k radiču, ktoré však nie sú súčasťou diskového poľa, nebudú dostupné pre operačný systém.

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.

Napriek tomu, že sú maskované ako disky SAS, polia NVMe budú fungovať pri rýchlostiach PCIe. Táto funkcia vám však umožňuje zaviesť systém z NVMe v Legacy.

skúšobná stolica

Každý spôsob organizácie diskových polí má svoje fyzické klady a zápory. Existuje však výkonnostný rozdiel pri práci s diskovými poľami?

Na dosiahnutie maximálnej spravodlivosti budú všetky testy vykonávané na rovnakom serveri. Jeho konfigurácia:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Štandardný hardvérový kľúč Intel® VROC;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Testovacími jednotkami sú P4510, z ktorých jedna polovica je pripojená k základnej doske a druhá polovica k radiču RAID. M.2 používa Ubuntu 20.04 a testy budú spustené pomocou fio verzie 3.16.

Testovanie

V prvom rade si skontrolujme oneskorenia pri práci s diskom. Test sa vykonáva v jednom vlákne, veľkosť bloku je 4 KB. Každý test trvá 5 minút. Pred spustením je príslušné blokové zariadenie nastavené na žiadne ako plánovač I/O. Príkaz fio vyzerá takto:

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

Z výsledkov fio berieme clat 99.00%. Výsledky sú uvedené v tabuľke nižšie.

Náhodné čítanie, μs
Náhodný záznam, μs

disk
112
78

Linuxový SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linuxový SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

Okrem oneskorení pri prístupe k dátam by som rád videl výkon virtuálnych jednotiek a porovnal ich s výkonom fyzického disku. Príkaz na spustenie fio:

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

Výkon sa meria z hľadiska I/O operácií. Výsledky sú uvedené v tabuľke nižšie.

Náhodné čítanie 1 vlákno, IOPS
Náhodný zápis 1 vlákna, IOPS
Náhodné čítanie 128 vlákien, IOPS
Náhodný zápis 128 vlákien, IOPS

disk
11300
40700
453000
105000

Linuxový SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linuxový SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

Je ľahké vidieť, že používanie hardvérového ovládača má za následok zvýšenú latenciu a zníženie výkonu v porovnaní so softvérovými riešeniami.

Záver

Používanie hardvérových riešení na vytváranie diskových polí z dvoch diskov vyzerá iracionálne. Sú však úlohy, kde je použitie RAID radičov opodstatnené. S príchodom ovládačov, ktoré podporujú rozhranie NVMe, majú používatelia možnosť využívať vo svojich projektoch rýchlejšie SSD disky.

RAID polia na NVMe

Do prieskumu sa môžu zapojiť iba registrovaní užívatelia. Prihlásiť saProsím.

Používate riešenia RAID?

  • 29,6%Áno, hardvérové ​​riešenia32

  • 50,0%Áno, softvérové ​​riešenia54

  • 16,7%č.18

  • 3,7%Nie je potrebný žiadny RAID 4

Hlasovalo 108 užívateľov. 14 užívateľov sa zdržalo hlasovania.

Zdroj: hab.com

Pridať komentár