Selles artiklis räägime erinevatest viisidest RAID-massiivide korraldamiseks ja näitame ka üht esimestest NVMe-toega riistvara-RAID-kontrollereid.
Serverite segmendis leidub kõiki RAID-tehnoloogia rakendusi. Kliendisegmendis kasutatakse kõige sagedamini ainult tarkvara RAID0 või RAID1 kahel kettal.
Selles artiklis antakse lühike ülevaade RAID-tehnoloogiast, lühike õpetus RAID-massiivide loomise kohta kolme erineva tööriista abil ja virtuaalse ketta jõudluse võrdlus iga meetodi abil.
Mis on RAID?
RAID (Inglise Sõltumatute ketaste üleliigne massiiv - sõltumatute (sõltumatute) ketaste üleliigne massiiv) - andmete virtualiseerimise tehnoloogia mitme füüsilise kettaseadme ühendamiseks loogiliseks mooduliks, et suurendada tõrketaluvust ja jõudlust.
Kettamassiivide konfiguratsioon ja kasutatavad tehnoloogiad sõltuvad valitud valikust RAID tase. RAID tasemed on spetsifikatsioonis standarditud
RAID0Või Stripes, on RAID-tase, mis ühendab kaks või enam füüsilist draivi üheks loogiliseks draiviks. Loogilise ketta maht võrdub massiivi kaasatud füüsiliste ketaste mahtude summaga. Sellel RAID-tasemel pole liiasust ja ühe draivi rike võib põhjustada kõigi virtuaalse ketta andmete kadumise.
Tase RAID1Või Peegel, loob kahel või enamal kettal andmetest identsed koopiad. Virtuaalse ketta suurus ei ületa füüsiliste ketaste minimaalset suurust. RAID1 virtuaalkettal olevad andmed on saadaval seni, kuni vähemalt üks massiivi füüsiline ketas töötab. RAID1 kasutamine lisab liiasust, kuid on üsna kallis lahendus, kuna kahest või enamast kettast koosnevates massiivides on saadaval ainult ühe ketta maht.
Tase RAID5 lahendab kõrge hinna probleemi. RAID5 tasemega massiivi loomiseks vajate vähemalt 3 ketast ja massiiv on vastupidav ühe ketta rikke suhtes. RAID5 andmed salvestatakse kontrollsummadega plokkidesse. Andmeketaste ja kontrollsummaketaste vahel pole ranget jaotust. RAID5 kontrollsummad on XOR-operatsiooni tulemus, mida rakendatakse N-1 plokkidele, millest igaüks on võetud erinevalt kettalt.
Kuigi RAID-massiivid suurendavad liiasust ja pakuvad liiasust, ei sobi need varukoopiate salvestamiseks.
Pärast lühikest tutvumist RAID-massiivide tüüpidega saate liikuda seadmete ja programmide juurde, mis võimaldavad teil kettamassiivid kokku panna ja kasutada.
RAID-kontrollerite tüübid
RAID-massiivide loomiseks ja kasutamiseks on kaks võimalust: riistvara ja tarkvara. Kaalume järgmisi lahendusi:
- Linuxi tarkvara RAID.
- Intel® Virtual RAID protsessoril.
- LSI MegaRAID 9460-8i.
Pange tähele, et Intel® lahendus töötab kiibistikul, mistõttu tekib küsimus, kas tegemist on riist- või tarkvaralahendusega. Näiteks VMWare ESXi hüperviisor arvestab VROC tarkvaraga ega toeta seda ametlikult.
Linuxi tarkvara RAID
Linuxi OS-i perekonna tarkvara RAID-massiivid on üsna levinud lahendus nii kliendi kui ka serveri segmendis. Massiivi loomiseks vajate ainult mdadm-i utiliiti ja mõnda plokkseadet. Ainus nõue, mille Linuxi tarkvara RAID oma kasutatavatele draividele esitab, on see, et see peab olema süsteemile juurdepääsetav plokkseade.
Seadmete ja tarkvara kulude puudumine on selle meetodi ilmne eelis. Linuxi tarkvara RAID korraldab kettamassiivid protsessori aja arvelt. Toetatud RAID-tasemete loendit ja praeguste kettamassiivide olekut saab vaadata failist mdstat, mis asub procfs-i juures:
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10]
unused devices: <none>
RAID-tasemete tugi lisatakse sobiva kerneli mooduli ühendamisega, näiteks:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
unused devices: <none>
Kõik kettamassiividega tehtavad toimingud tehakse käsurea utiliidi mdadm kaudu. Ketta massiiv on kokku pandud ü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 /dev/md0 plokkseade, mis esindab teid virtuaalse kettana.
Intel® Virtual RAID protsessoril
Intel® VROC standardne riistvaravõti
Intel® Virtual RAID On CPU (VROC) on riist- ja tarkvaratehnoloogia Intel® kiibistikul põhinevate RAID-massiivide loomiseks. See tehnoloogia on saadaval peamiselt emaplaatidele, mis toetavad Intel® Xeon® Scalable protsessoreid. Vaikimisi pole VROC saadaval. Selle aktiveerimiseks peate installima VROC riistvara litsentsivõtme.
Standardne VROC-litsents võimaldab luua 0, 1 ja 10 RAID-tasemega kettamassiive. Premium versioon laiendab seda loendit RAID5 toega.
Intel® VROC tehnoloogia kaasaegsetel emaplaatidel töötab koos Intel® Volume Management Device (VMD) seadmega, mis pakub NVMe-draividele kiirvahetuse võimalust.
Intel® VROC standardlitsents Massiivid konfigureeritakse serveri käivitumisel häälestusutiliidi kaudu. Vahekaardil edasijõudnud Ilmub üksus Intel® Virtual RAID on CPU, kus saate kettamassiivid konfigureerida.
RAID1 massiivi loomine kahel draivil
Intel® VROC tehnoloogial on omad ässad. VROC-i abil ehitatud kettamassiivid ühilduvad Linuxi tarkvara RAID-iga. See tähendab, et massiivide olekut saab jälgida failis /proc/mdstat ja hallata mdadm-i kaudu. Seda "funktsiooni" toetab ametlikult Intel. Pärast RAID1 kokkupanekut häälestusutiliidis saate jälgida draivide sünkroonimist operatsioonisüsteemis:
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>
Pange tähele, et VROC-is ei saa massiive koostada mdadm-i abil (kokkupandud massiivid on Linuxi SW RAID), kuid saate neis olevaid kettaid vahetada ja massiive lahti võtta.
LSI MegaRAID 9460-8i
LSI MegaRAID 9460-8i kontrolleri välimus
RAID-kontroller on iseseisev riistvaralahendus. Kontroller töötab ainult sellega otse ühendatud draividega. See RAID-kontroller toetab kuni 24 NVMe-draivi. Just NVMe tugi eristab seda kontrollerit paljudest teistest.
Riistvarakontrolleri peamenüü
UEFI-režiimi kasutamisel on kontrolleri sätted integreeritud häälestusutiliidi. Võrreldes VROC-ga näeb riistvarakontrolleri menüü välja palju keerulisem.
RAID1 loomine kahel kettal
Riistvarakontrolleri kettamassiivide konfigureerimise selgitamine on üsna delikaatne teema ja võib olla täisväärtusliku artikli põhjuseks. Siin piirdume lihtsalt vaikesätetega RAID0 ja RAID1 loomisega.
Riistvarakontrolleriga ühendatud kettad ei ole operatsioonisüsteemile nähtavad. Selle asemel maskeerib kontroller kõik RAID-massiivid SAS-draivideks. OS ei pääse juurde kontrolleriga ühendatud draividele, mis ei kuulu kettamassiivi.
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.
Vaatamata sellele, et NVMe massiivid on maskeeritud SAS-draivideks, töötavad need PCIe kiirustel. See funktsioon võimaldab teil aga pärandvaras NVMe-st alglaadida.
Katselaud
Igal kettamassiivide korraldamise meetodil on oma füüsilised plussid ja miinused. Kuid kas kettamassiividega töötades on jõudluse erinevus?
Maksimaalse õigluse saavutamiseks viiakse kõik testid läbi samas serveris. Selle konfiguratsioon:
- 2x Intel® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- Intel® VROC standardne riistvaravõti;
- 4x Intel® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500GB.
Testplokkideks on P4510, millest üks pool on ühendatud emaplaadiga, teine pool RAID-kontrolleriga. M.2 töötab Ubuntu 20.04 ja testid käivitatakse fio versiooniga 3.16.
Katsetamine
Kõigepealt kontrollime kettaga töötamise viivitusi. Test teostatakse ühes lõimes, ploki suurus on 4 KB. Iga test kestab 5 minutit. Enne käivitamist määratakse vastav plokiseade I/O planeerijana olekusse None. Käsk fio näeb välja selline:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw=<mode> --filename=<blkdev>
Fio tulemustest võtame klat 99.00%. Tulemused on näidatud allolevas tabelis.
Juhuslik lugemine, μs
Juhuslik salvestamine, μs
ketas
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 andmetele juurdepääsu viivitustele tahaksin näha virtuaalsete draivide jõudlust ja võrrelda neid füüsilise ketta jõudlusega. Käsk fio käivitamiseks:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth=<threads> --rw=<mode> --filename=<blkdev>
Jõudlust mõõdetakse I/O operatsioonide kaudu. Tulemused on toodud allolevas tabelis.
Juhuslik lugemine 1 lõim, IOPS
Juhuslik kirjutamine 1 lõim, IOPS
Juhuslik lugemine 128 lõime, IOPS
Juhuslik kirjutamine 128 lõime, IOPS
ketas
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 lihtne mõista, et riistvarakontrolleri kasutamine suurendab latentsust ja suurendab jõudlust võrreldes tarkvaralahendustega.
Järeldus
Riistvaralahenduste kasutamine kahest kettast kettamassiivide loomiseks tundub irratsionaalne. Siiski on ülesandeid, kus RAID-kontrollerite kasutamine on õigustatud. NVMe liidest toetavate kontrollerite tulekuga on kasutajatel võimalus kasutada oma projektides kiiremaid SSD-sid.
Küsitluses saavad osaleda ainult registreerunud kasutajad.
Kas kasutate RAID-lahendusi?
-
29,6%Jah, riistvaralahendused32
-
50,0%Jah, tarkvaralahendused54
-
16,7%Ei 18
-
3,7%RAID-i pole vaja 4
108 kasutajat hääletas. 14 kasutajat jäi erapooletuks.
Allikas: www.habr.com