Matrice RAID pe NVMe

Matrice RAID pe NVMe
În acest articol vom vorbi despre diferite moduri de organizare a matricelor RAID și vom arăta, de asemenea, unul dintre primele controlere RAID hardware cu suport NVMe.

Toată varietatea de aplicații ale tehnologiei RAID se regăsește în segmentul serverelor. În segmentul de clienți, cel mai des este folosit doar software-ul RAID0 sau RAID1 pe două discuri.

Acest articol va oferi o scurtă prezentare generală a tehnologiei RAID, un scurt tutorial despre cum să creați matrice RAID folosind trei instrumente diferite și o comparație a performanței discului virtual folosind fiecare metodă.

Ce este RAID?

Wikipedia oferă o definiție cuprinzătoare a tehnologiei RAID:

RAID (Limba engleză Matrice redundantă de discuri independente - matrice redundantă de discuri independente (independente) - tehnologie de virtualizare a datelor pentru combinarea mai multor dispozitive de disc fizice într-un modul logic pentru a crește toleranța la erori și performanța.

Configurația matricelor de discuri și tehnologiile utilizate depind de cele selectate Nivel RAID. Nivelurile RAID sunt standardizate în specificație Format comun de date de disc RAID. Descrie multe niveluri RAID, dar cele mai comune sunt RAID0, RAID1, RAID5 și RAID6.

RAID0Sau dungi, este un nivel RAID care combină două sau mai multe unități fizice într-o singură unitate logică. Volumul discului logic este egal cu suma volumelor discurilor fizice incluse în matrice. Nu există redundanță la acest nivel RAID, iar defecțiunea unei unități poate duce la pierderea tuturor datelor de pe discul virtual.

nivel RAID1Sau Oglindă, creează copii identice ale datelor pe două sau mai multe discuri. Dimensiunea discului virtual nu depășește dimensiunea minimă a discurilor fizice. Datele de pe discul virtual RAID1 vor fi disponibile atâta timp cât cel puțin un disc fizic din matrice este operațional. Utilizarea RAID1 adaugă redundanță, dar este o soluție destul de costisitoare, deoarece în matrice de două sau mai multe discuri este disponibilă capacitatea unui singur disc.

nivel RAID5 rezolvă problema costurilor ridicate. Pentru a crea o matrice cu nivel RAID5, aveți nevoie de cel puțin 3 discuri, iar matricea este rezistentă la defecțiunea unui singur disc. Datele din RAID5 sunt stocate în blocuri cu sume de control. Nu există o divizare strictă între discurile de date și discurile cu sumă de control. Sumele de control în RAID5 sunt rezultatul unei operațiuni XOR aplicate la N-1 blocuri, fiecare luat de pe un disc diferit.

Deși matricele RAID măresc redundanța și oferă redundanță, ele nu sunt potrivite pentru stocarea backup-urilor.

După o scurtă excursie în tipurile de matrice RAID, puteți trece la dispozitive și programe care vă permit să asamblați și să utilizați matrice de discuri.

Tipuri de controlere RAID

Există două moduri de a crea și utiliza matrice RAID: hardware și software. Vom lua în considerare următoarele soluții:

  • RAID software Linux.
  • Intel® Virtual RAID pe CPU.
  • LSI MegaRAID 9460-8i.

Rețineți că soluția Intel® rulează pe un chipset, ceea ce ridică întrebarea dacă este o soluție hardware sau software. De exemplu, hypervisorul VMWare ESXi ia în considerare software-ul VROC și nu îl acceptă oficial.

RAID software Linux

Matricele RAID software din familia de sisteme de operare Linux sunt o soluție destul de comună atât în ​​segmentul client, cât și în cel al serverului. Tot ce aveți nevoie pentru a crea o matrice este utilitarul mdadm și câteva dispozitive bloc. Singura cerință pe care o plasează Linux Software RAID pe unitățile pe care le utilizează este să fie un dispozitiv bloc accesibil sistemului.

Absența costurilor pentru echipamente și software este un avantaj evident al acestei metode. Linux Software RAID organizează matrice de discuri cu prețul timpului CPU. Lista nivelurilor RAID acceptate și starea matricelor de discuri curente pot fi vizualizate în fișierul mdstat, care se află în rădăcina procfs:

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

Suportul pentru nivelurile RAID este adăugat prin conectarea modulului de kernel corespunzător, de exemplu:

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

Toate operațiunile cu matrice de discuri sunt efectuate prin utilitarul de linie de comandă mdadm. Matricea de discuri este asamblată într-o singură comandă:

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

După executarea acestei comenzi, dispozitivul bloc /dev/md0 va apărea în sistem, care vă reprezintă ca pe un disc virtual.

Intel® Virtual RAID pe CPU

Matrice RAID pe NVMeCheie hardware standard Intel® VROC
Intel® Virtual RAID On CPU (VROC) este o tehnologie hardware și software pentru crearea de matrice RAID bazate pe chipset-uri Intel®. Această tehnologie este disponibilă în principal pentru plăcile de bază care acceptă procesoare scalabile Intel® Xeon®. În mod implicit, VROC nu este disponibil. Pentru a-l activa, trebuie să instalați o cheie de licență hardware VROC.

Licența standard VROC vă permite să creați matrice de discuri cu niveluri RAID 0, 1 și 10. Versiunea premium extinde această listă cu suport RAID5.

Tehnologia Intel® VROC pe plăcile de bază moderne funcționează împreună cu Intel® Volume Management Device (VMD), care oferă capacitate de înlocuire la cald pentru unitățile NVMe.

Matrice RAID pe NVMeLicență standard Intel® VROC Matricele sunt configurate prin utilitarul de configurare atunci când serverul pornește. Pe fila Avansat Apare elementul Intel® Virtual RAID on CPU, unde puteți configura matrice de discuri.

Matrice RAID pe NVMeCrearea unei matrice RAID1 pe două unități
Tehnologia Intel® VROC are propriii ași în mânecă. Matricele de discuri construite folosind VROC sunt compatibile cu Linux Software RAID. Aceasta înseamnă că starea matricelor poate fi monitorizată în /proc/mdstat și administrată prin mdadm. Această „funcție” este susținută oficial de Intel. După asamblarea RAID1 în utilitarul de configurare, puteți observa sincronizarea unităților în sistemul de operare:

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>

Rețineți că nu puteți asambla matrice pe VROC folosind mdadm (matricele asamblate vor fi Linux SW RAID), dar puteți schimba discurile din ele și dezasambla matricele.

LSI MegaRAID 9460-8i

Matrice RAID pe NVMeAspectul controlerului LSI MegaRAID 9460-8i
Controlerul RAID este o soluție hardware autonomă. Controlerul funcționează numai cu unități conectate direct la el. Acest controler RAID acceptă până la 24 de unități NVMe. Suportul NVMe este cel care diferențiază acest controler de multe altele.

Matrice RAID pe NVMeMeniul principal al controlerului hardware
Când utilizați modul UEFI, setările controlerului sunt integrate în utilitarul de configurare. În comparație cu VROC, meniul controlerului hardware pare mult mai complex.

Matrice RAID pe NVMeSe creează RAID1 pe două discuri
Explicarea modului de configurare a matricelor de discuri pe un controler hardware este un subiect destul de delicat și ar putea fi motivul unui articol cu ​​drepturi depline. Aici ne vom limita pur și simplu la crearea RAID0 și RAID1 cu setări implicite.

Discurile conectate la controlerul hardware nu sunt vizibile pentru sistemul de operare. În schimb, controlerul „maschează” toate matricele RAID ca unități SAS. Unitățile conectate la controler, dar care nu fac parte din matricea de discuri, nu vor fi accesibile de către sistemul de operare.

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.

În ciuda faptului că sunt deghizate în unități SAS, matricele NVMe vor funcționa la viteze PCIe. Cu toate acestea, această caracteristică vă permite să porniți de pe NVMe în Legacy.

stand de testare

Fiecare metodă de organizare a matricelor de discuri are propriile sale avantaje și dezavantaje fizice. Dar există o diferență de performanță atunci când lucrați cu matrice de discuri?

Pentru a obține o corectitudine maximă, toate testele vor fi efectuate pe același server. Configurația sa:

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

Unitățile de testare sunt P4510, dintre care jumătate este conectată la placa de bază, iar cealaltă jumătate la controlerul RAID. M.2 rulează Ubuntu 20.04 și testele vor fi rulate folosind versiunea fio 3.16.

Testarea

În primul rând, să verificăm întârzierile când lucrăm cu discul. Testul este executat într-un singur fir, dimensiunea blocului este de 4 KB. Fiecare test durează 5 minute. Înainte de a începe, dispozitivul bloc corespunzător este setat la niciunul ca programator I/O. Comanda fio arată astfel:

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

Din rezultatele fio luăm clat 99.00%. Rezultatele sunt prezentate în tabelul de mai jos.

Citire aleatorie, μs
Înregistrare aleatorie, μs

disc
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

Pe lângă întârzierile la accesarea datelor, aș dori să văd performanța unităților virtuale și să le compar cu performanța unui disc fizic. Comanda pentru a rula fio:

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

Performanța este măsurată în termeni de operațiuni I/O. Rezultatele sunt prezentate în tabelul de mai jos.

Citire aleatorie 1 fir, IOPS
Scriere aleatorie 1 fir, IOPS
Citire aleatorie 128 de fire, IOPS
Scriere aleatorie 128 fire, IOPS

disc
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

Este ușor de observat că utilizarea unui controler hardware are ca rezultat o latență crescută și o performanță redusă în comparație cu soluțiile software.

Concluzie

Utilizarea soluțiilor hardware pentru a crea matrice de discuri de pe două discuri pare irațională. Cu toate acestea, există sarcini în care utilizarea controlerelor RAID este justificată. Odată cu apariția controlerelor care acceptă interfața NVMe, utilizatorii au posibilitatea de a folosi SSD-uri mai rapide în proiectele lor.

Matrice RAID pe NVMe

Numai utilizatorii înregistrați pot participa la sondaj. Loghează-te, Vă rog.

Folosiți soluții RAID?

  • 29,6%Da, soluții hardware32

  • 50,0%Da, soluții software54

  • 16,7%Nr.18

  • 3,7%Nu este nevoie de RAID4

Au votat 108 utilizatori. 14 utilizatori s-au abținut.

Sursa: www.habr.com

Adauga un comentariu