Në këtë artikull do të flasim për mënyra të ndryshme për të organizuar grupe RAID, dhe gjithashtu do të tregojmë një nga kontrollorët e parë të harduerit RAID me mbështetje NVMe.
E gjithë shumëllojshmëria e aplikacioneve të teknologjisë RAID gjendet në segmentin e serverit. Në segmentin e klientit, më së shpeshti përdoret vetëm softueri RAID0 ose RAID1 në dy disqe.
Ky artikull do të ofrojë një përmbledhje të shkurtër të teknologjisë RAID, një tutorial të shkurtër se si të krijoni grupe RAID duke përdorur tre mjete të ndryshme dhe një krahasim të performancës së diskut virtual duke përdorur secilën metodë.
Whatfarë është RAID?
RAID (Anglisht Array i tepërt i disqeve të pavarura - grup i tepërt disqesh të pavarur (të pavarur)) - teknologji e virtualizimit të të dhënave për kombinimin e disa pajisjeve fizike të diskut në një modul logjik për të rritur tolerancën dhe performancën e gabimeve.
Konfigurimi i grupeve të diskut dhe teknologjitë e përdorura varen nga përzgjedhja Niveli RAID. Nivelet RAID janë të standardizuara në specifikim
RAID 0Ose Stripes, është një nivel RAID që kombinon dy ose më shumë disqe fizike në një disk logjik. Vëllimi i diskut logjik është i barabartë me shumën e vëllimeve të disqeve fizike të përfshira në grup. Nuk ka tepricë në këtë nivel RAID dhe dështimi i një disku mund të rezultojë në humbjen e të gjitha të dhënave në diskun virtual.
Nivel RAID 1Ose pasqyrë, krijon kopje identike të të dhënave në dy ose më shumë disqe. Madhësia e diskut virtual nuk e kalon madhësinë minimale të disqeve fizike. Të dhënat në diskun virtual RAID1 do të jenë të disponueshme për sa kohë që të paktën një disk fizik nga grupi është në funksion. Përdorimi i RAID1 shton tepricë, por është një zgjidhje mjaft e shtrenjtë, pasi në grupet e dy ose më shumë disqeve kapaciteti i vetëm një është i disponueshëm.
Nivel RAID 5 zgjidh problemin e kostos së lartë. Për të krijuar një grup me nivel RAID5, ju nevojiten të paktën 3 disqe, dhe grupi është rezistent ndaj dështimit të një disku. Të dhënat në RAID5 ruhen në blloqe me kontrolle. Nuk ka ndarje të rreptë midis disqeve të të dhënave dhe disqeve të kontrollit. Shumat e kontrollit në RAID5 janë rezultat i një operacioni XOR të aplikuar në blloqet N-1, secili i marrë nga një disk i ndryshëm.
Megjithëse vargjet RAID rrisin tepricën dhe ofrojnë tepricë, ato nuk janë të përshtatshme për ruajtjen e kopjeve rezervë.
Pas një ekskursioni të shkurtër në llojet e grupeve RAID, mund të kaloni te pajisjet dhe programet që ju lejojnë të grumbulloni dhe përdorni grupe disqesh.
Llojet e kontrollorëve RAID
Ka dy mënyra për të krijuar dhe përdorur vargje RAID: harduer dhe softuer. Ne do të shqyrtojmë zgjidhjet e mëposhtme:
- Softueri Linux RAID.
- Intel® Virtual RAID në CPU.
- LSI MegaRAID 9460-8i.
Vini re se zgjidhja Intel® funksionon në një chipset, gjë që ngre pyetjen nëse është një zgjidhje harduerike apo softuerike. Për shembull, hipervizori VMWare ESXi e konsideron softuerin VROC dhe nuk e mbështet zyrtarisht atë.
Softueri Linux RAID
Vargjet RAID të softuerit në familjen Linux OS janë një zgjidhje mjaft e zakonshme si në segmentin e klientit ashtu edhe në atë të serverit. Gjithçka që ju nevojitet për të krijuar një grup është mjeti mdadm dhe disa pajisje bllokuese. Kërkesa e vetme që Linux Software RAID vendos në disqet që përdor është të jetë një pajisje bllok e aksesueshme për sistemin.
Mungesa e kostove për pajisje dhe softuer është një avantazh i dukshëm i kësaj metode. Linux Software RAID organizon grupe disqesh me koston e kohës së CPU. Lista e niveleve të mbështetura RAID dhe statusi i grupeve aktuale të diskut mund të shihen në skedarin mdstat, i cili ndodhet në rrënjën procfs:
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10]
unused devices: <none>
Mbështetja për nivelet RAID shtohet duke lidhur modulin e duhur të kernelit, për shembull:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
unused devices: <none>
Të gjitha operacionet me vargje të diskut kryhen përmes mjetit të linjës së komandës mdadm. Vargu i diskut është mbledhur në një komandë:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1
Pas ekzekutimit të kësaj komande, në sistem do të shfaqet pajisja e bllokut /dev/md0, e cila ju përfaqëson si një disk virtual.
Intel® Virtual RAID në CPU
Çelësi standard i harduerit Intel® VROC
Intel® Virtual RAID On CPU (VROC) është një teknologji harduerike dhe softuerike për krijimin e vargjeve RAID bazuar në chipset Intel®. Kjo teknologji është e disponueshme kryesisht për pllakat amë që mbështesin procesorët Intel® Xeon® Scalable. Si parazgjedhje, VROC nuk është i disponueshëm. Për ta aktivizuar, duhet të instaloni një çelës licence hardueri VROC.
Licenca standarde VROC ju lejon të krijoni grupe disqesh me nivele 0, 1 dhe 10 RAID. Versioni premium e zgjeron këtë listë me mbështetjen e RAID5.
Teknologjia Intel® VROC në pllakat moderne amë funksionon në lidhje me pajisjen e menaxhimit të volumit Intel® (VMD), e cila ofron aftësinë e shkëmbimit të nxehtësisë për disqet NVMe.
Licenca standarde Intel® VROC Vargjet konfigurohen nëpërmjet Setup Utility kur serveri niset. Në skedën Avancuar Shfaqet artikulli Intel® Virtual RAID në CPU, ku mund të konfiguroni grupet e diskut.
Krijimi i një grupi RAID1 në dy disqe
Teknologjia Intel® VROC ka aset e saj në mëngë. Vargjet e diskut të ndërtuara duke përdorur VROC janë të pajtueshme me Linux Software RAID. Kjo do të thotë që gjendja e vargjeve mund të monitorohet në /proc/mdstat dhe të administrohet përmes mdadm. Kjo "veçori" mbështetet zyrtarisht nga Intel. Pas montimit të RAID1 në Setup Utility, mund të vëzhgoni sinkronizimin e disqeve në OS:
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>
Vini re se nuk mund të montoni vargje në VROC duke përdorur mdadm (vargjet e montuara do të jenë Linux SW RAID), por mund të ndryshoni disqet në to dhe të çmontoni vargjet.
LSI MegaRAID 9460-8i
Pamja e kontrolluesit LSI MegaRAID 9460-8i
Kontrolluesi RAID është një zgjidhje e pavarur harduerike. Kontrolluesi funksionon vetëm me disqet e lidhur drejtpërdrejt me të. Ky kontrollues RAID mbështet deri në 24 disqe NVMe. Është mbështetja NVMe që e veçon këtë kontrollues nga shumë të tjerë.
Menyja kryesore e kontrolluesit të harduerit
Kur përdorni modalitetin UEFI, cilësimet e kontrolluesit integrohen në Setup Utility. Krahasuar me VROC, menyja e kontrolluesit të harduerit duket shumë më komplekse.
Krijimi i RAID1 në dy disqe
Shpjegimi se si të konfiguroni grupet e diskut në një kontrollues harduerësh është një temë mjaft delikate dhe mund të jetë arsyeja për një artikull të plotë. Këtu thjesht do të kufizohemi në krijimin e RAID0 dhe RAID1 me cilësimet e paracaktuara.
Disqet e lidhur me kontrolluesin e harduerit nuk janë të dukshëm për sistemin operativ. Në vend të kësaj, kontrolluesi "maskon" të gjitha grupet RAID si disqe SAS. Disqet e lidhur me kontrolluesin, por jo pjesë e grupit të diskut, nuk do të jenë të aksesueshme nga OS.
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.
Pavarësisht se janë të maskuar si disqe SAS, grupet NVMe do të funksionojnë me shpejtësi PCIe. Sidoqoftë, kjo veçori ju lejon të nisni nga NVMe në Legacy.
Stand testimi
Secila nga metodat e organizimit të grupeve të diskut ka të mirat dhe të këqijat e veta fizike. Por a ka ndonjë ndryshim të performancës kur punoni me grupe disqesh?
Për të arritur drejtësi maksimale, të gjitha testet do të kryhen në të njëjtin server. Konfigurimi i tij:
- 2x Intel® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- Çelësi standard i harduerit Intel® VROC;
- 4x Intel® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500 GB.
Njësitë e provës janë P4510, gjysma e së cilës është e lidhur me motherboard dhe gjysma tjetër me kontrolluesin RAID. M.2 po ekzekuton Ubuntu 20.04 dhe testet do të ekzekutohen duke përdorur versionin fio 3.16.
Testimi
Para së gjithash, le të kontrollojmë vonesat gjatë punës me diskun. Testi kryhet në një fill, madhësia e bllokut është 4 KB. Çdo test zgjat 5 minuta. Përpara fillimit, pajisja përkatëse e bllokut vendoset në asnjë si programues I/O. Komanda fio duket si kjo:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw=<mode> --filename=<blkdev>
Nga rezultatet fio marrim klat 99.00%. Rezultatet janë paraqitur në tabelën e mëposhtme.
Lexim i rastësishëm, μs
Regjistrim i rastësishëm, μs
Диск
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
Përveç vonesave gjatë aksesimit të të dhënave, do të doja të shikoja performancën e disqeve virtuale dhe t'i krahasoja ato me performancën e një disku fizik. Komanda për të ekzekutuar fio:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth=<threads> --rw=<mode> --filename=<blkdev>
Performanca matet në terma të operacioneve I/O. Rezultatet janë paraqitur në tabelën e mëposhtme.
Leximi i rastësishëm 1 fill, IOPS
Shkrimi i rastësishëm 1 fije, IOPS
Leximi i rastësishëm 128 tema, IOPS
Shkrimi i rastësishëm 128 fije, IOPS
Диск
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
Është e lehtë të shihet se përdorimi i një kontrolluesi harduer rezulton në rritje të vonesës dhe një goditje të performancës në krahasim me zgjidhjet softuerike.
Përfundim
Përdorimi i zgjidhjeve harduerike për të krijuar vargje disqesh nga dy disqe duket irracional. Megjithatë, ka detyra ku përdorimi i kontrolluesve RAID është i justifikuar. Me ardhjen e kontrollorëve që mbështesin ndërfaqen NVMe, përdoruesit kanë mundësinë të përdorin SSD më të shpejtë në projektet e tyre.
Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë.
A po përdorni zgjidhje RAID?
-
29,6%Po, zgjidhje harduerike32
-
50,0%Po, zgjidhje softuerike54
-
16,7%Nr 18
-
3,7%Nuk nevojitet RAID4
108 përdorues votuan. 14 përdorues abstenuan.
Burimi: www.habr.com