RAID masīvi vietnē NVMe

RAID masīvi vietnē NVMe
Å ajā rakstā mēs runāsim par dažādiem RAID masÄ«vu organizÄ“Å”anas veidiem, kā arÄ« parādÄ«sim vienu no pirmajiem aparatÅ«ras RAID kontrolleriem ar NVMe atbalstu.

Serveru segmentā ir atrodami visi RAID tehnoloģijas pielietojumi. Klientu segmentā visbiežāk tiek izmantota tikai programmatūra RAID0 vai RAID1 divos diskos.

Šajā rakstā tiks sniegts īss pārskats par RAID tehnoloģiju, īsa apmācība par to, kā izveidot RAID masīvus, izmantojot trīs dažādus rīkus, un virtuālā diska veiktspējas salīdzinājums, izmantojot katru metodi.

Kas ir RAID?

Wikipedia sniedz visaptveroŔu RAID tehnoloģijas definīciju:

RAID (Angļu NeatkarÄ«go disku liekais masÄ«vs - redundants neatkarÄ«gu (neatkarÄ«gu) disku masÄ«vs) - datu virtualizācijas tehnoloÄ£ija vairāku fizisko disku ierīču apvienoÅ”anai loÄ£iskā modulÄ«, lai palielinātu kļūdu toleranci un veiktspēju.

Disku masīvu konfigurācija un izmantotās tehnoloģijas ir atkarīgas no izvēlētā RAID līmenis. RAID līmeņi ir standartizēti specifikācijā Kopējais RAID diska datu formāts. Tas apraksta daudzus RAID līmeņus, bet visizplatītākie ir RAID0, RAID1, RAID5 un RAID6.

RAID0Vai Stripes, ir RAID lÄ«menis, kas apvieno divus vai vairākus fiziskos diskus vienā loÄ£iskā diskdzinÄ«. LoÄ£iskā diska apjoms ir vienāds ar masÄ«vā iekļauto fizisko disku apjomu summu. Å ajā RAID lÄ«menÄ« nav dublÄ“Å”anas, un viena diskdziņa kļūme var izraisÄ«t visu virtuālā diska datu zudumu.

LÄ«menis RAID1Vai spogulis, izveido identiskas datu kopijas divos vai vairākos diskos. Virtuālā diska izmērs nepārsniedz fizisko disku minimālo izmēru. Dati RAID1 virtuālajā diskā bÅ«s pieejami tik ilgi, kamēr darbosies vismaz viens fiziskais disks no masÄ«va. RAID1 izmantoÅ”ana palielina dublÄ“Å”anos, taču ir diezgan dārgs risinājums, jo divu vai vairāku disku masÄ«vos ir pieejama tikai viena diska ietilpÄ«ba.

LÄ«menis RAID5 atrisina augsto izmaksu problēmu. Lai izveidotu masÄ«vu ar RAID5 lÄ«meni, ir nepiecieÅ”ami vismaz 3 diski, un masÄ«vs ir izturÄ«gs pret viena diska atteici. Dati RAID5 tiek glabāti blokos ar kontrolsummām. Nav stingra dalÄ«juma starp datu diskiem un kontrolsummas diskiem. Kontrolsummas RAID5 ir XOR darbÄ«bas rezultāts, kas tiek lietots N-1 blokiem, katrs ņemts no cita diska.

Lai gan RAID masÄ«vi palielina dublÄ“Å”anu un nodroÅ”ina dublÄ“Å”anu, tie nav piemēroti dublējumu glabāŔanai.

Pēc Ä«sas iepazÄ«Å”anās ar RAID masÄ«vu veidiem varat pāriet uz ierÄ«cēm un programmām, kas ļauj apkopot un izmantot disku masÄ«vus.

RAID kontrolleru veidi

Ir divi veidi, kā izveidot un izmantot RAID masÄ«vus: aparatÅ«ru un programmatÅ«ru. Mēs apsvērsim Ŕādus risinājumus:

  • Linux programmatÅ«ras RAID.
  • IntelĀ® virtuālais RAID CPU.
  • LSI MegaRAID 9460-8i.

Ņemiet vērā, ka IntelĀ® risinājums darbojas ar mikroshēmojumu, kas rada jautājumu, vai tas ir aparatÅ«ras vai programmatÅ«ras risinājums. Piemēram, VMWare ESXi hipervizors ņem vērā VROC programmatÅ«ru un oficiāli to neatbalsta.

Linux programmatūras RAID

ProgrammatÅ«ras RAID masÄ«vi Linux OS saimē ir diezgan izplatÄ«ts risinājums gan klienta, gan servera segmentā. Viss, kas jums nepiecieÅ”ams, lai izveidotu masÄ«vu, ir mdadm utilÄ«ta un dažas bloku ierÄ«ces. VienÄ«gā prasÄ«ba, ko Linux programmatÅ«ras RAID izvirza izmantotajiem diskdziņiem, ir sistēmai pieejama blokierÄ«ce.

Iekārtas un programmatÅ«ras izmaksu neesamÄ«ba ir acÄ«mredzama Ŕīs metodes priekÅ”rocÄ«ba. Linux programmatÅ«ras RAID organizē disku masÄ«vus uz CPU laika rēķina. AtbalstÄ«to RAID lÄ«meņu sarakstu un paÅ”reizējo disku masÄ«vu statusu var skatÄ«t mdstat failā, kas atrodas procfs saknē:

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

RAID lÄ«meņu atbalsts tiek pievienots, pievienojot atbilstoÅ”o kodola moduli, piemēram:

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

Visas darbības ar disku masīviem tiek veiktas, izmantojot komandrindas utilītu mdadm. Diska masīvs ir salikts vienā komandā:

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

Pēc Ŕīs komandas izpildes sistēmā parādÄ«sies /dev/md0 bloka ierÄ«ce, kas apzÄ«mē virtuālo disku.

IntelĀ® virtuālais RAID CPU

RAID masÄ«vi vietnē NVMeIntelĀ® VROC standarta aparatÅ«ras atslēga
IntelĀ® Virtual RAID On CPU (VROC) ir aparatÅ«ras un programmatÅ«ras tehnoloÄ£ija RAID masÄ«vu izveidei, pamatojoties uz IntelĀ® mikroshēmojumiem. Å Ä« tehnoloÄ£ija galvenokārt ir pieejama mātesplatēm, kas atbalsta IntelĀ® XeonĀ® Scalable procesorus. Pēc noklusējuma VROC nav pieejams. Lai to aktivizētu, jāinstalē VROC aparatÅ«ras licences atslēga.

Standarta VROC licence ļauj izveidot disku masÄ«vus ar 0, 1 un 10 RAID lÄ«meņiem. Premium versija paplaÅ”ina Å”o sarakstu ar RAID5 atbalstu.

IntelĀ® VROC tehnoloÄ£ija mÅ«sdienu mātesplatēs darbojas kopā ar IntelĀ® Volume Management Device (VMD), kas nodroÅ”ina karstās maiņas iespēju NVMe diskdziņiem.

RAID masÄ«vi vietnē NVMeIntelĀ® VROC standarta licence MasÄ«vi tiek konfigurēti, izmantojot iestatÄ«Å”anas utilÄ«tu, kad serveris sāk sāknēties. Uz cilnes uzlabots Tiek parādÄ«ts vienums IntelĀ® Virtual RAID uz CPU, kurā varat konfigurēt disku masÄ«vus.

RAID masīvi vietnē NVMeRAID1 masīva izveide uz diviem diskdziņiem
IntelĀ® VROC tehnoloÄ£ijai ir savi dūži. Disku masÄ«vi, kas izveidoti, izmantojot VROC, ir saderÄ«gi ar Linux programmatÅ«ras RAID. Tas nozÄ«mē, ka masÄ«vu stāvokli var pārraudzÄ«t mapē /proc/mdstat un pārvaldÄ«t, izmantojot mdadm. Å o "funkciju" oficiāli atbalsta Intel. Pēc RAID1 montāžas iestatÄ«Å”anas utilÄ«tprogrammā varat novērot disku sinhronizāciju operētājsistēmā:

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>

Ņemiet vērā, ka jÅ«s nevarat salikt masÄ«vus uz VROC, izmantojot mdadm (samontētie masÄ«vi bÅ«s Linux SW RAID), taču jÅ«s varat mainÄ«t tajos esoÅ”os diskus un izjaukt masÄ«vus.

LSI MegaRAID 9460-8i

RAID masīvi vietnē NVMeLSI MegaRAID 9460-8i kontrollera izskats
RAID kontrolieris ir atseviŔķs aparatÅ«ras risinājums. Kontrolieris darbojas tikai ar diskdziņiem, kas tam ir tieÅ”i pievienoti. Å is RAID kontrolleris atbalsta lÄ«dz 24 NVMe diskdziņiem. Tas ir NVMe atbalsts, kas izceļ Å”o kontrolieri no daudziem citiem.

RAID masīvi vietnē NVMeAparatūras kontrollera galvenā izvēlne
Izmantojot UEFI režīmu, kontrollera iestatÄ«jumi ir integrēti iestatÄ«Å”anas utilÄ«tprogrammā. SalÄ«dzinot ar VROC, aparatÅ«ras kontrollera izvēlne izskatās daudz sarežģītāka.

RAID masīvi vietnē NVMeRAID1 izveide divos diskos
Paskaidrojums, kā konfigurēt disku masÄ«vus aparatÅ«ras kontrollerÄ«, ir diezgan delikāts temats, un tas varētu bÅ«t iemesls pilnvērtÄ«gam rakstam. Å eit mēs vienkārÅ”i aprobežosimies ar RAID0 un RAID1 izveidi ar noklusējuma iestatÄ«jumiem.

Aparatūras kontrollerim pievienotie diski operētājsistēmai nav redzami. Tā vietā kontrolieris "maskē" visus RAID masīvus kā SAS diskus. Diskdziņi, kas savienoti ar kontrolieri, bet nav daļa no disku masīva, OS nebūs pieejami.

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.

Neskatoties uz to, ka NVMe masÄ«vi ir maskēti kā SAS diskdziņi, tie darbosies ar PCIe ātrumu. Tomēr Ŕī funkcija ļauj sāknēt no NVMe mantojumā.

Testa stends

Katrai disku masÄ«vu organizÄ“Å”anas metodei ir savi fiziski plusi un mÄ«nusi. Bet vai pastāv veiktspējas atŔķirÄ«ba, strādājot ar disku masÄ«viem?

Lai panāktu maksimālu godīgumu, visi testi tiks veikti vienā serverī. Tās konfigurācija:

  • 2x IntelĀ® XeonĀ® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • IntelĀ® VROC standarta aparatÅ«ras atslēga;
  • 4x IntelĀ® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Testa vienības ir P4510, no kurām viena puse ir savienota ar mātesplati, bet otra puse ar RAID kontrolieri. M.2 darbojas Ubuntu 20.04, un testi tiks palaisti, izmantojot fio versiju 3.16.

TestēŔana

Pirmkārt, pārbaudÄ«sim aizkaves, strādājot ar disku. Tests tiek izpildÄ«ts vienā pavedienā, bloka izmērs ir 4 KB. Katrs tests ilgst 5 minÅ«tes. Pirms palaiÅ”anas atbilstoŔā bloka ierÄ«ce kā I/O plānotājs ir iestatÄ«ta uz None. Komanda fio izskatās Ŕādi:

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

No fio rezultātiem ņemam clat 99.00%. Rezultāti ir parādīti tabulā zemāk.

Izlases nolasÄ«Å”ana, Ī¼s
NejauÅ”s ieraksts, Ī¼s

disks
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

Papildus aizkavei, piekļūstot datiem, es vēlētos redzēt virtuālo disku veiktspēju un salīdzināt tos ar fiziskā diska veiktspēju. Komanda, lai palaistu fio:

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

Veiktspēju mēra I/O darbÄ«bu izteiksmē. Rezultāti ir parādÄ«ti zemāk esoÅ”ajā tabulā.

NejauŔi nolasīts 1 pavediens, IOPS
NejauŔi ierakstiet 1 pavedienu, IOPS
NejauŔi nolasīti 128 pavedieni, IOPS
NejauŔi rakstiet 128 pavedienus, IOPS

disks
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

Ir viegli saprast, ka aparatÅ«ras kontrollera izmantoÅ”ana palielina latentumu un samazina veiktspēju salÄ«dzinājumā ar programmatÅ«ras risinājumiem.

Secinājums

AparatÅ«ras risinājumu izmantoÅ”ana, lai izveidotu disku masÄ«vus no diviem diskiem, izskatās neracionāli. Tomēr ir uzdevumi, kuros RAID kontrolleru izmantoÅ”ana ir pamatota. LÄ«dz ar kontrolieru parādÄ«Å”anos, kas atbalsta NVMe saskarni, lietotājiem ir iespēja savos projektos izmantot ātrākus SSD.

RAID masīvi vietnē NVMe

Aptaujā var piedalīties tikai reģistrēti lietotāji. Ielogoties, lūdzu.

Vai izmantojat RAID risinājumus?

  • 29,6%Jā, aparatÅ«ras risinājumi32

  • 50,0%Jā, programmatÅ«ras risinājumi54

  • 16,7%Nr.18

  • 3,7%Nav nepiecieÅ”ams RAID4

Nobalsoja 108 lietotāji. 14 lietotāji atturējās.

Avots: www.habr.com

Pievieno komentāru