RAID matrizeak NVMe-n

RAID matrizeak NVMe-n
Artikulu honetan RAID arrayak antolatzeko modu ezberdinei buruz hitz egingo dugu, eta NVMe euskarria duen hardware RAID kontroladoreetako bat ere erakutsiko dugu.

RAID teknologiaren askotariko aplikazioak zerbitzarien segmentuan aurkitzen dira. Bezeroen segmentuan, bi diskotan RAID0 edo RAID1 softwarea bakarrik erabiltzen da gehien.

Artikulu honek RAID teknologiaren ikuspegi labur bat emango du, hiru tresna ezberdin erabiliz RAID arrayak sortzeko tutorial labur bat eta metodo bakoitza erabiliz disko birtualen errendimenduaren konparazioa emango du.

Zer da RAID?

Wikipedia RAID teknologiaren definizio integrala ematen du:

RAID (English Disko independenteen matrize erredundantea - Disko independenteen (independenteen) sorta erredundantea) - Datuen birtualizazio teknologia hainbat disko fisiko gailu modulu logiko batean konbinatzeko akatsen tolerantzia eta errendimendua areagotzeko.

Disko-matrizeen konfigurazioa eta erabilitako teknologiak hautatutakoaren araberakoak dira RAID maila. RAID mailak zehaztapenean estandarizatuta daude RAID diskoaren datu-formatu arrunta. RAID maila asko deskribatzen ditu, baina ohikoenak RAID0, RAID1, RAID5 eta RAID6 dira.

RAID0Edo Stripes, bi disko fisiko edo gehiago unitate logiko batean konbinatzen dituen RAID maila da. Disko logikoaren bolumena matrizean sartutako disko fisikoen bolumenen baturaren berdina da. RAID maila honetan ez dago erredundantziarik, eta disko baten hutsegiteak disko birtualeko datu guztiak galtzea eragin dezake.

Maila RAID1Edo Mirror, bi disko edo gehiagotan datuen kopia berdinak sortzen ditu. Disko birtualaren tamainak ez du disko fisikoen gutxieneko tamaina gainditzen. RAID1 disko birtualeko datuak eskuragarri egongo dira matrizeko disko fisiko bat gutxienez funtzionatzen duen bitartean. RAID1 erabiltzeak erredundantzia gehitzen du, baina nahiko konponbide garestia da, bi disko edo gehiagoko arrayetan bakarraren edukiera eskuragarri baitago.

Maila RAID5 kostu handiko arazoa konpontzen du. RAID5 maila duen array bat sortzeko, gutxienez 3 disko behar dituzu, eta array-a disko baten hutsegitearekiko erresistentea da. RAID5eko datuak blokeetan gordetzen dira checksumak dituztenak. Ez dago zatiketa zorrotzik datu-diskoen eta checksum diskoen artean. RAID5-en checksumak N-1 blokeei aplikatutako XOR eragiketa baten emaitza dira, bakoitza disko ezberdin batetik hartuta.

RAID array-ek erredundantzia areagotu eta erredundantzia ematen badute ere, ez dira egokiak babeskopiak gordetzeko.

RAID array motetan txango labur baten ondoren, disko arrayak muntatu eta erabiltzeko aukera ematen duten gailu eta programetara pasa zaitezke.

RAID kontrolagailu motak

RAID arrayak sortzeko eta erabiltzeko bi modu daude: hardwarea eta softwarea. Konponbide hauek hartuko ditugu kontuan:

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

Kontuan izan Intel® irtenbidea chipset batean exekutatzen dela, eta horrek hardware edo software irtenbide bat den zalantzan jartzen du. Adibidez, VMWare ESXi hipervisoreak VROC softwarea hartzen du kontuan eta ez du ofizialki onartzen.

Linux Software RAID

Linux OS familiako software RAID arrayak nahiko ohikoak dira bezeroaren eta zerbitzariaren segmentuetan. Array bat sortzeko behar duzun guztia mdadm utilitatea eta bloke gailu batzuk dira. Erabiltzen dituen unitateetan Linux Software RAID-ek jartzen duen baldintza bakarra sistemarako sarbidea duen bloke-gailu bat izatea da.

Ekipoen eta softwarearen kosturik eza metodo honen abantaila nabaria da. Linux Software RAID-ek disko-matrizeak antolatzen ditu CPU denboraren kostuarekin. Onartutako RAID mailen zerrenda eta uneko disko-matrizeen egoera mdstat fitxategian ikus daitezke, procfs erroan dagoena:

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

RAID mailen laguntza gehitzen da nukleoaren modulu egokia konektatuz, adibidez:

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

Disko-matrizeekin eragiketa guztiak mdadm komando-lerroko utilitatearen bidez egiten dira. Disko-matrizea komando batean muntatzen da:

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

Komando hau exekutatu ondoren, /dev/md0 bloke-gailua agertuko da sisteman, disko birtual bat adierazten duena.

Intel® Virtual RAID CPUan

RAID matrizeak NVMe-nIntel® VROC Hardware-gako estandarra
Intel® Virtual RAID On CPU (VROC) Intel® chipsetetan oinarritutako RAID matrizeak sortzeko hardware eta software teknologia da. Teknologia hau Intel® Xeon® Scalable prozesadoreak onartzen dituzten plaketarako eskuragarri dago batez ere. Lehenespenez, VROC ez dago erabilgarri. Aktibatzeko, VROC hardware lizentzia-gako bat instalatu behar duzu.

VROC lizentzia estandarrak 0, 1 eta 10 RAID maila duten disko-matrizeak sortzeko aukera ematen du. Premium bertsioak zerrenda hau zabaltzen du RAID5 laguntzarekin.

Plaka nagusi modernoetako Intel® VROC teknologiak Intel® Bolumen Kudeaketa Gailuarekin (VMD) batera funtzionatzen du, NVMe diskoetarako bero-truke gaitasuna eskaintzen duena.

RAID matrizeak NVMe-nIntel® VROC lizentzia estandarra Zerbitzaria abiaraztean matrizeak Konfigurazio Utilitatearen bidez konfiguratzen dira. Fitxan Aurreratua Intel® Virtual RAID on CPU elementua agertzen da, non disko-matrizeak konfigura ditzakezun.

RAID matrizeak NVMe-nBi unitatetan RAID1 array bat sortzea
Intel® VROC teknologiak bere batekoak ditu mahukan. VROC erabiliz eraikitako disko-matrizeak bateragarriak dira Linux Software RAID-ekin. Horrek esan nahi du matrizeen egoera /proc/mdstat-en kontrolatu eta mdadm bidez administratu daitekeela. "Ezaugarri" hau Intel-ek onartzen du ofizialki. RAID1 konfigurazio utilitatean muntatu ondoren, sistema eragilean unitateen sinkronizazioa ikus dezakezu:

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>

Kontuan izan ezin duzula VROC-en matrizeak mdadm erabiliz muntatu (muntatutako matrizeak Linux SW RAID izango dira), baina horietan diskoak alda ditzakezula eta arrayak desmuntatu ditzakezu.

LSI MegaRAID 9460-8i

RAID matrizeak NVMe-nLSI MegaRAID 9460-8i kontrolagailuaren itxura
RAID kontrolagailua hardware soluzio autonomoa da. Kontrolagailuak zuzenean hari konektatutako unitateekin bakarrik funtzionatzen du. RAID kontrolagailu honek 24 NVMe unitate onartzen ditu. NVMe euskarria da kontrolagailu hau beste askotatik bereizten duena.

RAID matrizeak NVMe-nHardware kontrolagailuaren menu nagusia
UEFI modua erabiltzean, kontrolagailuaren ezarpenak Konfigurazio Utilitatean integratzen dira. VROC-rekin alderatuta, hardware kontrolagailuaren menuak askoz konplexuagoa dirudi.

RAID matrizeak NVMe-nRAID1 bi diskotan sortzea
Hardware kontrolagailu batean disko-matrizeak nola konfiguratu azaltzea gai nahiko delikatua da eta artikulu oso baten arrazoia izan daiteke. Hemen, besterik gabe, ezarpen lehenetsiekin RAID0 eta RAID1 sortzera mugatuko gara.

Hardware kontrolagailura konektatutako diskoak ez dira sistema eragileak ikusten. Horren ordez, kontrolatzaileak RAID array guztiak SAS unitate gisa "maskuratzen ditu". Kontrolagailura konektatutako unitateak, baina ez disko-matrizearen zatiak, ezin izango ditu sistema eragileak atzitu.

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.

SAS unitatez mozorrotuta egon arren, NVMe matrizeek PCIe abiaduran funtzionatuko dute. Hala ere, funtzio honek Legacy-n NVMe-tik abiarazteko aukera ematen du.

proba-bankua

Disko-matrizeak antolatzeko metodo bakoitzak bere abantailak eta txarrak ditu. Baina ba al dago errendimendu-desberdintasunik disko-matrizeekin lan egitean?

Gehienezko zuzentasuna lortzeko, proba guztiak zerbitzari berean egingo dira. Bere konfigurazioa:

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

Proba-unitateak P4510 dira, erdia plakara konektatuta dago eta beste erdia RAID kontrolagailura. M.2 Ubuntu 20.04 exekutatzen ari da eta probak fio 3.16 bertsioa erabiliz egingo dira.

Testing

Lehenik eta behin, egiaztatu ditzagun atzerapenak diskoarekin lan egitean. Proba hari batean exekutatzen da, blokearen tamaina 4 KB da. Proba bakoitzak 5 minutu irauten du. Hasi baino lehen, dagokion bloke-gailua none ezartzen da I/O programatzaile gisa. fio komandoak honela dauka:

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

Fio emaitzetatik clat %99.00 hartzen dugu. Emaitzak beheko taulan agertzen dira.

Ausazko irakurketa, μs
Ausazko grabaketa, μs

diskoan
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

Datuak sartzerakoan atzerapenez gain, disko birtualen errendimendua ikusi eta disko fisiko baten errendimenduarekin alderatu nahiko nuke. Fio exekutatzeko komandoa:

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

Errendimendua I/O eragiketen arabera neurtzen da. Emaitzak beheko taulan aurkezten dira.

Ausazko irakurri 1 hari, IOPS
Ausazko idatzi 1 hari, IOPS
Ausazko irakurritako 128 hari, IOPS
Ausazko idatzi 128 hari, IOPS

diskoan
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

Erraz ikusten da hardware-kontrolagailu bat erabiltzeak latentzia areagotzen duela eta errendimenduaren arrakasta izaten duela software-soluzioekin alderatuta.

Ondorioa

Bi diskoetatik disko-arrayak sortzeko hardware-soluzioak erabiltzeak irrazionala dirudi. Hala ere, badaude RAID kontrolagailuen erabilera justifikatzen duten zereginak. NVMe interfazea onartzen duten kontrolagailuen etorrerarekin, erabiltzaileek SSD azkarragoak erabiltzeko aukera dute beren proiektuetan.

RAID matrizeak NVMe-n

Erregistratutako erabiltzaileek soilik parte hartu dezakete inkestan. Hasi saioa, mesedez.

RAID irtenbideak erabiltzen ari al zara?

  • 29,6%Bai, hardware irtenbideak32

  • 50,0%Bai, software irtenbideak54

  • 16,7%18. zenbakia

  • 3,7%Ez da RAID behar 4

108 erabiltzailek eman dute botoa. 14 erabiltzaile abstenitu ziren.

Iturria: www.habr.com

Gehitu iruzkin berria