RAID-massiivid NVMe-l

RAID-massiivid NVMe-l
Selles artiklis räägime erinevatest RAID-massiivide organiseerimise viisidest ning tutvustame üht esimesi riistvaralisi RAID-kontrollereid, mis toetab NVMe-d.

RAID-tehnoloogia erinevaid rakendusi kohtab serveri valdkonnas. Klientide seas kasutatakse kõige sagedamini vaid tarkvaralist RAID0 või RAID1 kahe kettaga.

Selles artiklis on lühike ülevaade RAID-tehnoloogiast, väikene juhend RAID-massiivide loomiseks kolme erineva tööriista abil ning virtuaalkettade jõudluse võrdlemine iga meetodi kasutamisel.

Mis on RAID?

Vikipeedia annab ammendava määratluse RAID-tehnoloogiale:

RAID (ingl. Redundant Array of Independent Disks — iseseisvate (iseseisvate) kettade üleliigne massiiv) — andmete virtualiseerimise tehnoloogia, mis ühendab mitu füüsilist ketta seadet loogiliseks mooduliks, et suurendada talitluspüsivust ja jõudlust.

Kettamassiivide konfiguratsioon ja kasutatavad tehnoloogiad sõltuvad valitud RAID tasemest (RAID level). RAID tasemed on standardiseeritud spetsifikatsioonis Common RAID Disk Data Format. See kirjeldab mitmeid RAID tasemeid, kuid kõige levinumad on RAID0, RAID1, RAID5 ja RAID6.

RAID0, või Stripes, — see on RAID tase, mis ühendab kaks või enam füüsilist ketast üheks loogiliseks. Loogilise ketta maht on sel juhul kõikide füüsiliste kettaste mahtude summa, mis on massiivis. Sellel RAID tasemel puudub üleliigsus ja ühe ketta rike võib põhjustada kõigi andmete kaotamist virtuaalses ketas.

Tase RAID1, või Mirror, loob andmete identsed koopiad kahes või enamas kettas. Virtuaalse ketta maht ei ületa füüsiliste kettaste minimaalset mahtu, mis on massiivis. RAID1 virtuaalkettal olevad andmed on kättesaadavad, kuni vähemalt üks füüsiline ketas massiivist töötab. RAID1 kasutamine lisab üleliigsust, kuid on piisavalt kallis lahendus, kuna kahest või enamat kettast koosnevates massiivides on saadaval mahutavus vaid ühe kettaga.

Tase RAID5 lahendab kalliduse probleemi. RAID5 taseme massiivi loomiseks on vajalik vähemalt 3 ketast, samas on massiiv ühes ketas rikke suhtes vastupidav. Andmeid hoitakse RAID5-s plokkidena koos kontrollsummadega. Ei ole ranget jaotust andmekettaste ja kontrollsummakettaste vahel. Kontrollsummad RAID5-s on tulemused XOR-operatsioonist, mis on rakendatud N-1 plokile, millest igaüks on saadud oma ketas.

Kuigi RAID-massiivid suurendavad üleliigset ja pakuvad varundamist, ei sobi nad varukoopiate salvestamiseks.

Pärast lühikest ülevaadet RAID-massiivide tüüpide kohta võime liikuda seadmete ja programmide juurde, mis võimaldavad ketasmassiive koguda ja kasutada.

RAID-kontrollerite tüübid

RAID-massiivide loomise ja kasutamise kaks meetodit on: riistvaraline ja tarkvaraline. Vaatame järgmisi lahendusi:

  • Linuxi tarkvaraline RAID.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Tähtis on märkida, et Intel® lahendus töötab kiibil, mistõttu tekib küsimus, kas see on riistvaraline või tarkvaraline lahendus. Näiteks arvab hüperviisori VMWare ESXi, et VROC on tarkvaraline ja ei toeta seda ametlikult.

Linuxi tarkvaraline RAID

Tarkvaralised RAID-massiivid Linuxi operatsioonisüsteemide seas on üsna levinud lahendus nii kliendisegmendis kui ka serverite seas. Kõik, mis on vajalik massiivi loomiseks, on utiliit mdadm ja mõned plokkseadmed. Ainus nõue, mille Linuxi tarkvaraline RAID esitavad kasutatavatele salvestusseadmetele, on olla plokkseade, mis on süsteemile kergesti ligipääsetav.

Seadmestiku ja tarkvara puudumisega seotud kulude puudumine on selle meetodi ilmne eelis. Linuxi tarkvaraline RAID organiseerib ketasmassiivid protsessori aja hinnaga. Toetatud RAID-taseme loetelu ja praeguste ketasmassiivide seisundi saab vaadata failist mdstat, mis asub procfs juures:

root@grindelwald:~# cat /proc/mdstat
Empty personalities: [linear] [multipath] [raid0] [raid1] [raid10]
unused devices:

RAID taseme tugi lisatakse vastava tuuma mooduli laadimisega, näiteks:

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

Kõik ketasmassiividega seotud toimingud viiakse läbi käsurea utiliidi mdadm kaudu. Ketasmassiivi kokkupanek toimub ühe käsuga:

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

Pärast selle käsu täitmist ilmub süsteemi blokeeritud seade /dev/md0, mis esindab virtuaalset ketast.

Intel® Virtuaalne RAID CPU-l

RAID-massiivid NVMe-lIntel® VROC Standard Hardware Key
Intel® Virtuaalne RAID CPU-l (VROC) on tarkvara-riistvara tehnoloogia, mis võimaldab luua RAID-massiive Intel® kiibistike põhjal. Seda tehnoloogiat kasutatakse peamiselt Intel® Xeon® Scalable protsessorit toetavatel emaplaatidel. VROC on vaikimisi mitteaktiivne. Selle aktiveerimiseks on vajalik installida riistvaraline litsentsivõti VROC.

VROC standardlitsents võimaldab luua salvestusmassive RAID-tasemetega 0, 1 ja 10. Premium versioon laiendab seda loetelu, lisades RAID5 toe.

Intel® VROC tehnoloogia kaasaegsetes emaplaatides töötab koos Intel® Volume Management Device (VMD) -ga, mis võimaldab kuumvahetust NVMe liidesele ühendatud seadmete jaoks.

RAID-massiivid NVMe-lIntel® VROC standardlitsentsiga Massiivide seadistamine toimub Setup Utility kaudu serveri käivitamisel. Vahekaardil Advanced ilmub valik Intel® Virtuaalne RAID CPU-l, kus saab seadistada salvestusmasse.

RAID-massiivid NVMe-lRAID1 massiivi loomine kahe salvestiga
Intel® VROC tehnoloogial on oma "trump kaardid". VROC-i abil loodud salvestusmassid on ühilduvad Linux Software RAID-iga. See tähendab, et masside olekut saab jälgida /proc/mdstat-s ja haldamiseks kasutada mdadm-i. See "omadus" on ametlikult toetatud Inteli poolt. Pärast RAID1 koostamist Setup Utility-s on võimalik jälgida salvestite sünkroonimist operatsioonisüsteemis:

root@grindelwald:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : aktiivne raid1 nvme2n1[1] nvme1n1[0]
      1855832064 plokki super väline:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) lõpp=148.2min kiirus=205933K/sec
      
md127 : mitteaktiivne nvme1n1[1](S) nvme2n1[0](S)
      10402 plokki super väline:imsm
       
kasutamata seadmed: <none>

Tuleb märkida, et mdadm kaudu ei saa VROC-l massiive luua (koostatud massiivid on Linux SW RAID), kuid nendes saab kettaid vahetada ja massiive lahti võtma.

LSI MegaRAID 9460-8i

RAID-massiivid NVMe-lKontrolleri LSI MegaRAID 9460-8i välimus
RAID-kontroller on iseseisev riistvara lahendus. Kontroller töötab ainult seadmetega, mis on temaga otse ühendatud. See RAID-kontroller toetab kuni 24 NVMe liidesele ühendatud seadmeid. NVMe toe toomine eristab seda kontrollerit paljusid teisi.

RAID-massiivid NVMe-lRiistvarakontrolleri peamenüü
UEFI režiimi kasutamisel integreeritakse kontrolleri seadistused Setup Utility'sse. Võrreldes VROC-iga näeb riistvarakontrolleri menüü oluliselt keerulisem välja.

RAID-massiivid NVMe-lRAID1 loomine kahel kettal
Diskimassiivide seadistamise selgitamine riistvarakontrolleril on piisavalt delikaatne teema ja see võiks olla aluseks täiskohalisele artiklile. Siin piirdume lihtsalt RAID0 ja RAID1 loomisega vaikeseadetega.

Riistvarakontrollerile ühendatud kettad ei ole operatsioonisüsteemile nähtavad. Selle asemel "maskeerib" kontroller kõik RAID-massiivid SAS-üllatusena. Kontrollerile ühendatud, kuid diskimassiivi mittekuuluvad kettad ei ole OS-ile kergesti kätte saadavad.

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.

Hoolimata sellest, et nad on SAS-üllatusena maskeeritud, töötavad NVMe massiivid PCIe kiirusel. Kuid see omadus võimaldab ka Legacy'lt NVMe-st käivitada.

Testseade

Iga ketasmassiivi organiseerimise meetodil on oma füüsilised eelised ja puudused. Kuid kas kettamassiivide kasutamisel on jõudluses erinevusi?

Maximaalsete õiguste saavutamiseks viiakse kõik testid läbi samal serveril. Selle konfiguratsioon:

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

Testitavad on P4510, millest üks pool on ühendatud emaplaadi, teine aga RAID-kontrolleriga. M.2-s on käivitusprotseduuriks Ubuntu 20.04 ning testid viiakse läbi fio versiooniga 3.16.

Testimine

Esmalt kontrollime viivitusi ketta kasutamisel. Test viiakse läbi ühes voos, ploki suurus 4 KB. Iga test kestab 5 minutit. Enne algust seotakse vastavale plokkseadmest none I/O plaanijana. Fio käsk näeb välja järgmine:

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

Fio tulemused viitavad clat 99.00%. Tulemused on esitatud allolevas tabelis.

Juhuslik lugemine, μs
Juhuslik kirjutamine, μs

Kettaruum
112
78

Linuxi SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linuxi SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

Lisaks andmete juurdepääsu latentsusele tahaks näha virtuaalsete salvestusseadetega seotud töökindlust ja võrrelda seda füüsilise ketta jõudlusega. Fio käivitamise käsk:

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

Jõudlust mõõdetakse sisend-väljundioperatsioonide arvu järgi. Tulemused on esitatud allolevas tabelis.

Juhuslik lugemine 1 voog, IOPS
Juhuslik kirjutamine 1 voog, IOPS
Juhuslik lugemine 128 voogu, IOPS
Juhuslik kirjutamine 128 voogu, IOPS

Kettaruum
11300
40700
453000
105000

Linuxi SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linuxi SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

On selgelt märgata, et riistvarakontrolleri kasutamine toob kaasa latentsuse suurenemise ja jõudluse languse, võrreldes tarkvaralahendustega.

Kokkuvõte

Riistvaralahenduste kasutamine kahe ketta raid-massiivi loomiseks näib olema mõttetu. Siiski on olemas ülesandeid, kus RAID-kontrollerite kasutamine on õigustatud. NVMe liidese toetavate kontrollerite tekkega saavad kasutajad kasutada kiiremaid SSD-sid oma projektides.

RAID-massiivid NVMe-l

Ainult registreeritud kasutajad saavad küsitluses osaleda. Logige sisse, palun.

Kasutate RAID-lahendusi?

  • 29,6%Jah, riistvaralahendused32

  • 50,0%Jah, tarkvaralahendused54

  • 16,7%Ei18

  • 3,7%RAID ei ole vajalik4

Hääletanud 108 kasutajat. Erakodudes 14 kasutajat.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster