RAID-skikkings op NVMe

RAID-skikkings op NVMe
In hierdie artikel sal ons praat oor verskillende maniere om RAID-skikkings te organiseer, en ook een van die eerste hardeware RAID-beheerders met NVMe-ondersteuning wys.

Al die verskeidenheid toepassings van RAID-tegnologie word in die bedienersegment gevind. In die kliëntsegment word slegs sagteware RAID0 of RAID1 op twee skywe meestal gebruik.

Hierdie artikel sal 'n kort oorsig van RAID-tegnologie verskaf, 'n kort handleiding oor hoe om RAID-skikkings te skep deur drie verskillende instrumente te gebruik, en 'n vergelyking van virtuele skyfwerkverrigting met elke metode.

Wat is RAID?

Wikipedia gee 'n omvattende definisie van RAID-tegnologie:

RAID (Afrikaans Oortollige reeks onafhanklike skywe - oortollige reeks onafhanklike (onafhanklike) skywe) - datavirtualiseringstegnologie vir die kombinasie van verskeie fisiese skyftoestelle in 'n logiese module om fouttoleransie en werkverrigting te verhoog.

Die konfigurasie van skyfskikkings en die tegnologieë wat gebruik word hang af van die geselekteerde RAID vlak. RAID-vlakke word in die spesifikasie gestandaardiseer Algemene RAID-skyfdataformaat. Dit beskryf baie RAID-vlakke, maar die algemeenste is RAID0, RAID1, RAID5 en RAID6.

RAID0Of Strepe, is 'n RAID-vlak wat twee of meer fisiese dryf in een logiese dryf kombineer. Die volume van die logiese skyf is gelyk aan die som van die volumes van die fisiese skywe wat in die skikking ingesluit is. Daar is geen oortolligheid op hierdie RAID-vlak nie, en mislukking van een aandrywer kan lei tot die verlies van alle data in die virtuele skyf.

Vlak RAID1Of spieël, skep identiese kopieë van data op twee of meer skywe. Die grootte van die virtuele skyf oorskry nie die minimum grootte van die fisiese skywe nie. Die data op die RAID1 virtuele skyf sal beskikbaar wees solank as wat ten minste een fisiese skyf vanaf die skikking in werking is. Die gebruik van RAID1 voeg oortolligheid by, maar is 'n taamlik duur oplossing, aangesien in skikkings van twee of meer skywe die kapasiteit van slegs een beskikbaar is.

Vlak RAID5 los die probleem van hoë koste op. Om 'n skikking met RAID5-vlak te skep, benodig jy ten minste 3 skywe, en die skikking is bestand teen die mislukking van een skyf. Data in RAID5 word in blokke met kontrolesomme gestoor. Daar is geen streng verdeling tussen dataskywe en kontrolesomskywe nie. Kontrolesomme in RAID5 is die resultaat van 'n XOR-bewerking wat op N-1-blokke toegepas word, elk van 'n ander skyf geneem.

Alhoewel RAID-skikkings oortolligheid verhoog en oortolligheid verskaf, is hulle nie geskik vir die stoor van rugsteun nie.

Na 'n kort uitstappie na die tipes RAID-skikkings, kan u aanbeweeg na toestelle en programme wat u toelaat om skyfskikkings saam te stel en te gebruik.

Tipes RAID-beheerders

Daar is twee maniere om RAID-skikkings te skep en te gebruik: hardeware en sagteware. Ons sal die volgende oplossings oorweeg:

  • Linux sagteware RAID.
  • Intel® Virtual RAID Op SVE.
  • LSI MegaRAID 9460-8i.

Let daarop dat die Intel®-oplossing op 'n skyfiestel werk, wat die vraag laat ontstaan ​​of dit 'n hardeware- of sagteware-oplossing is. Byvoorbeeld, die VMWare ESXi-hipervisor oorweeg VROC-sagteware en ondersteun dit nie amptelik nie.

Linux sagteware RAID

Sagteware RAID-skikkings in die Linux OS-familie is 'n redelik algemene oplossing in beide die kliënt- en bedienersegmente. Al wat jy nodig het om 'n skikking te skep, is die mdadm-nutsding en 'n paar bloktoestelle. Die enigste vereiste wat Linux Software RAID op die aandrywers wat dit gebruik stel, is om 'n bloktoestel te wees wat toeganklik is vir die stelsel.

Die afwesigheid van koste vir toerusting en sagteware is 'n ooglopende voordeel van hierdie metode. Linux Software RAID organiseer skyfskikkings ten koste van SVE tyd. Die lys van ondersteunde RAID-vlakke en die status van die huidige skyfskikkings kan bekyk word in die mdstat-lêer, wat in die procfs-wortel geleë is:

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

Ondersteuning vir RAID-vlakke word bygevoeg deur die toepaslike kernmodule te koppel, byvoorbeeld:

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

Alle bewerkings met skyfskikkings word uitgevoer deur die mdadm-opdragreëlnutsding. Die skyfskikking word saamgestel in een opdrag:

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

Nadat hierdie opdrag uitgevoer is, sal 'n bloktoestel /dev/md0 in die stelsel verskyn, wat 'n virtuele skyf verteenwoordig.

Intel® Virtual RAID Op SVE

RAID-skikkings op NVMeIntel® VROC Standaard Hardeware Sleutel
Intel® Virtual RAID On CPU (VROC) is 'n hardeware- en sagtewaretegnologie vir die skep van RAID-skikkings gebaseer op Intel®-skyfiestelle. Hierdie tegnologie is hoofsaaklik beskikbaar vir moederborde wat Intel® Xeon® Scalable verwerkers ondersteun. By verstek is VROC nie beskikbaar nie. Om dit te aktiveer, moet jy 'n VROC hardeware lisensie sleutel installeer.

Die standaard VROC-lisensie laat jou toe om skyfskikkings met 0, 1 en 10 RAID-vlakke te skep. Die premium weergawe brei hierdie lys uit met RAID5-ondersteuning.

Intel® VROC-tegnologie op moderne moederborde werk saam met die Intel® Volume Management Device (VMD), wat hot-swap-vermoë vir NVMe-aandrywers bied.

RAID-skikkings op NVMeIntel® VROC-standaardlisensie Skikkings word gekonfigureer deur die Setup Utility wanneer die bediener selflaai. Op die blad Gevorderde Die Intel® Virtual RAID op CPU-item verskyn, waar jy skyfskikkings kan konfigureer.

RAID-skikkings op NVMeSkep 'n RAID1-skikking op twee aandrywers
Intel® VROC-tegnologie het sy eie aces in sy mou. Skyfskikkings wat met VROC gebou is, is versoenbaar met Linux Software RAID. Dit beteken dat die toestand van die skikkings gemonitor kan word in /proc/mdstat en deur mdadm geadministreer kan word. Hierdie "funksie" word amptelik deur Intel ondersteun. Nadat u RAID1 in Setup Utility saamgestel het, kan u die sinchronisasie van aandrywers in die bedryfstelsel waarneem:

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>

Let daarop dat jy nie skikkings op VROC kan saamstel met mdadm nie (die saamgestelde skikkings sal Linux SW RAID wees), maar jy kan skywe daarin verander en die skikkings uitmekaar haal.

LSI MegaRAID 9460-8i

RAID-skikkings op NVMeVoorkoms van die LSI MegaRAID 9460-8i kontroleerder
Die RAID-beheerder is 'n selfstandige hardeware-oplossing. Die beheerder werk slegs met aandrywers wat direk daaraan gekoppel is. Hierdie RAID-beheerder ondersteun tot 24 NVMe-aandrywers. Dit is die NVMe-ondersteuning wat hierdie beheerder van baie ander onderskei.

RAID-skikkings op NVMeHoofkieslys van die hardeware kontroleerder
Wanneer UEFI-modus gebruik word, word kontroleerderinstellings in Setup Utility geïntegreer. In vergelyking met VROC, lyk die hardeware kontroleerder spyskaart baie meer kompleks.

RAID-skikkings op NVMeSkep RAID1 op twee skywe
Om te verduidelik hoe om skyfskikkings op 'n hardewarebeheerder op te stel, is 'n taamlik delikate onderwerp en kan die rede wees vir 'n volwaardige artikel. Hier sal ons ons eenvoudig beperk tot die skep van RAID0 en RAID1 met verstek instellings.

Skywe wat aan die hardewarebeheerder gekoppel is, is nie sigbaar vir die bedryfstelsel nie. In plaas daarvan "masker" die beheerder alle RAID-skikkings as SAS-aandrywers. Aandrywers wat aan die beheerder gekoppel is, maar nie deel van die skyfskikking nie, sal nie deur die bedryfstelsel toeganklik wees nie.

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.

Ten spyte daarvan dat dit as SAS-aandrywers vermom is, sal NVMe-skikkings teen PCIe-spoed werk. Hierdie kenmerk laat jou egter toe om vanaf NVMe in Legacy te begin.

toetsbank

Elke metode om skyfskikkings te organiseer het sy eie fisiese voor- en nadele. Maar is daar 'n prestasieverskil wanneer daar met skyfskikkings gewerk word?

Om maksimum regverdigheid te bereik, sal alle toetse op dieselfde bediener uitgevoer word. Sy konfigurasie:

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

Die toetseenhede is P4510, waarvan die een helfte aan die moederbord gekoppel is, en die ander helfte aan die RAID-beheerder. Die M.2 loop Ubuntu 20.04 en die toetse sal met behulp van fio weergawe 3.16 uitgevoer word.

toets

Eerstens, laat ons die vertragings nagaan wanneer ons met die skyf werk. Die toets word in een draad uitgevoer, die blokgrootte is 4 KB. Elke toets duur 5 minute. Voordat jy begin, is die ooreenstemmende bloktoestel op geen gestel as die I/O-skeduleerder. Die fio-opdrag lyk soos volg:

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

Uit fio resultate neem ons clat 99.00%. Die resultate word in die tabel hieronder getoon.

Ewekansige lesing, μs
Ewekansige opname, μs

skyf
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

Benewens vertragings met toegang tot data, wil ek graag die werkverrigting van virtuele aandrywers sien en dit vergelyk met die werkverrigting van 'n fisiese skyf. Opdrag om fio uit te voer:

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

Prestasie word gemeet in terme van I/O-bewerkings. Die resultate word in die tabel hieronder aangebied.

Ewekansige lees 1 draad, IOPS
Ewekansige skryf 1 draad, IOPS
Willekeurig gelees 128 drade, IOPS
Skryf ewekansig 128 drade, IOPS

skyf
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

Dit is maklik om te sien dat die gebruik van 'n hardewarebeheerder verhoogde latensie en 'n prestasietreffer in vergelyking met sagteware-oplossings tot gevolg het.

Gevolgtrekking

Die gebruik van hardeware-oplossings om skyfskikkings vanaf twee skywe te skep, lyk irrasioneel. Daar is egter take waar die gebruik van RAID-beheerders geregverdig is. Met die koms van beheerders wat die NVMe-koppelvlak ondersteun, het gebruikers die geleentheid om vinniger SSD's in hul projekte te gebruik.

RAID-skikkings op NVMe

Slegs geregistreerde gebruikers kan aan die opname deelneem. Meld aan, asseblief.

Gebruik jy RAID-oplossings?

  • 29,6%Ja, hardeware oplossings32

  • 50,0%Ja, sagteware-oplossings54

  • 16,7%No18

  • 3,7%Geen RAID nodig nie4

108 gebruikers het gestem. 14 gebruikers het buite stemming gebly.

Bron: will.com

Voeg 'n opmerking