Vargjet RAID në NVMe

Vargjet RAID në NVMe
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?

Wikipedia jep një përkufizim të plotë të teknologjisë 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 Formati i zakonshëm i të dhënave të diskut RAID. Ai përshkruan shumë nivele RAID, por më të zakonshmet janë RAID0, RAID1, RAID5 dhe RAID6.

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

Vargjet RAID në NVMeÇ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.

Vargjet RAID në NVMeLicenca 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.

Vargjet RAID në NVMeKrijimi 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

Vargjet RAID në NVMePamja 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ë.

Vargjet RAID në NVMeMenyja 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.

Vargjet RAID në NVMeKrijimi 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.

Vargjet RAID në NVMe

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, te lutem

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

Shto një koment