
Në këtë artikull, ne do të flasim për mënyra të ndryshme organizimi të masave RAID dhe do të tregojmë një nga kontrollorët RAID më të parë me mbështetje për NVMe.
Të gjitha aplikimet e teknologjisë RAID janë të pranishme në segmentin e serverëve. Në segmentin e klientëve, më së shpeshti përdoret ekskluzivisht RAID0 ose RAID1 me dy diskë.
Ky artikull do të ofrojë një përmbledhje të shkurtër të teknologjisë RAID, një udhëzues të vogël për krijimin e masave RAID me tre mjete të ndryshme, dhe krahasimin e performancës së disqeve virtualë për secilin mënyrë përdorimi.
Çfarë është RAID?
jep një përkufizim të plotë të teknologjisë RAID:
RAID (angl. Redundant Array of Independent Disks — array i pavarur i disqeve) — teknologji e virtualizimit të të dhënave për të kombinuar disa pajisje fizike të diskëve në një modul logjik për të rritur qëndrueshmërinë dhe performancën.
Konfigurimi i masave të disqeve dhe teknologjitë e përdorura varen nga niveli i RAID (RAID level). Nivelet e RAID janë standardizuar në specifikimin . Ajo përshkruan shumë nivele RAID, megjithatë nivelet më të zakonshme janë RAID0, RAID1, RAID5 dhe RAID6.
RAID0, ose Stripes, është një nivel RAID që bashkon dy ose më shumë disqe fizike në një të vetëm logjik. Kapaciteti i diskut logjik është i barabartë me shumën e kapacitetit të disqeve fizike që përbëjnë grupin. Në këtë nivel RAID nuk ka tepërti, dhe një defekt në një disk mund të çojë në humbjen e të gjitha të dhënave në diskun virtual.
Niveli RAID1, ose Mirror, krijon kopje identike të të dhënave në dy ose më shumë disqe. Kapaciteti i diskut virtual nuk kalon kapacitetin më të vogël nga disqet fizike. Të dhënat në diskun virtual RAID1 do të jenë të aksesueshme derisa të paktën një disk fizik nga grupi të funksionojë. Përdorimi i RAID1 shton tepërt, por është një zgjidhje mjaft e shtrenjtë, pasi në grupet me dy ose më shumë disqe, kapaciteti është vetëm i njërit.
Niveli RAID5 zgjidh problemin e çmimit të lartë. Për krijimin e një matrice me nivel RAID5 kërkohen të paktën 3 diskë, ndërsa matrica është e qëndrueshme ndaj dështimit të një disku. Të dhënat në RAID5 ruhen në blloqe me kontrollsumë. Nuk ka një ndarje të rreptë midis disqeve të dhënave dhe disqeve me kontrollsumë. Kontrollsumat në RAID5 janë rezultati i operacionit XOR, i aplikuar mbi N-1 blloqe, secili nga të cilat merret nga disku i saj.
Megjithëse matrica RAID rrit redundancën dhe ofron rezervim, ato nuk janë të përshtatshme për ruajtjen e kopjeve rezervë.
Pas një ekskursi të shkurtër në llojet e matriceve RAID, mund të kalojmë te pajisjet dhe programet që lejojnë krijimin dhe përdorimin e grupeve të disqeve.
Llojet e kontrolleve RAID
Ka dy mënyra për të krijuar dhe përdorur matrica RAID: harduerike dhe softuerike. Ne do të shqyrtojmë zgjidhjet e mëposhtme:
- Linux Software RAID.
- Intel® Virtual RAID On CPU.
- LSI MegaRAID 9460-8i.
Vlen të theksohet se zgjidhja Intel® funksionon në chipset, prandaj lind pyetja nëse kjo është një zgjidhje harduerike apo softuerike. Për shembull, hipervizori VMWare ESXi e trajton VROC si softuerik dhe nuk e mbështet zyrtarisht.
Linux Software RAID
RAID softuerike në familjen e sistemeve operative Linux është një zgjidhje mjaft e zakonshme si në segmentin e klientëve ashtu edhe në atë server. E gjithë çfarë nevojitet për të krijuar një RAID është utilitari mdadm dhe disa pajisje bllokuese. Kërkesa e vetme që ka Linux Software RAID për disqet e përdorura është që ato të jenë pajisje bllokuese, të aksesueshme nga sistemi.
Mungesa e shpenzimeve për pajisje dhe software është një avantazh i qartë i këtij mënyre. Linux Software RAID organizon grupe diskësh me koston e kohës së procesorit. Lista e niveleve të mbështetur të RAID dhe gjendja e grupeve aktuale të diskëve mund të shikohet në skedarin mdstat, i cili ndodhet në rrënjën e procfs:
root@grindelwald:~# cat /proc/mdstat
Personalitetet : [linear] [multipath] [raid0] [raid1] [raid10]
pajisje të pashfrytëzuara:
Mbështetje për nivelet e RAID shtohet duke u lidhur me modulin përkatës të bërthamës, për shembull:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalitetet : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
pajisje të pashfrytëzuara:Të gjitha operacionet me grupet e disqeve kryhen përmes utilitarit të komandës mdadm. Ndërtimi i një grupi disku bëhet me një komandë:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1Pas kryerjes së këtij komandimi, në sistem do të shfaqet një pajisje blloku /dev/md0, e cila paraqet një disk virtual.
Intel® Virtual RAID On CPU
Intel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) është një teknologji programore dhe harduerike për krijimin e grupeve RAID mbi bazën e çipsetëve Intel®. Kjo teknologji është kryesisht e disponueshme për pllakëza amë që mbështesin procesorët Intel® Xeon® Scalable. Nga e ardhmja, VROC nuk është në dispozicion. Për ta aktivizuar atë, është e nevojshme të instaloni një çelës licencë harduerike VROC.
Licenca standarde VROC lejon krijimin e grupeve të diskëve me nivelet RAID 0, 1 dhe 10. Versioni Premium zgjeron këtë listë me mbështetje për RAID5.
Teknologjia Intel® VROC në pllakat amë moderne funksionon së bashku me Intel® Volume Management Device (VMD), e cila ofron mundësinë e zëvendësimit të nxehtë për pajisjet me ndërfaqe NVMe.
Intel® VROC me licencë standarde Caktimi i grupeve bëhet përmes Setup Utility gjatë ngarkimit të serverit. Në skedën Advanced shtohet pika Intel® Virtual RAID on CPU, ku mund të konfigurohen grupet e diskëve.
Krijimi i grupit RAID1 mbi dy pajisje
Teknologjia Intel® VROC ka “aspekte” që e diferencojnë. Arrays e diskëve të ndërtuar me VROC janë të pajtueshme me Linux Software RAID. Kjo do të thotë se gjendja e arrays mund të ndiqet në /proc/mdstat, ndërsa administrimi bëhet përmes mdadm. Ky “veçori” mbështetet zyrtarisht nga Intel. Pas ndërtimit të RAID1 në Setup Utility, mund të vërehen sinkronizimi i disqeve në OS:
root@grindelwald:~# cat /proc/mdstat
Personalitetet : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : aktiv raid1 nvme2n1[1] nvme1n1[0]
1855832064 blloqe super jashtë: /md127/0 [2/2] [UU]
[>....................] resync = 1.3% (24207232/1855832064) përfundon=148.2min shpejtësia=205933K/sec
md127 : inaktiv nvme1n1[1](S) nvme2n1[0](S)
10402 blloqe super jashtë: imsm
disqe të papërdorura:Vlen të theksohet se përmes mdadm nuk mund të ndërtohen arrays në VROC (arrays e ndërtuara do të jenë Linux SW RAID), por mund të ndryshohen disqet në to dhe të ç'ndërtohen arrays.
LSI MegaRAID 9460-8i
Pamja e kontrolluesit LSI MegaRAID 9460-8i
Kontrolluesi RAID është një zgjidhje harduerike e pavarur. Kontrolluesi punon vetëm me disqet e lidhura drejtpërdrejt me të. Ky kontrollues RAID mbështet deri në 24 disqe me ndërfaqe NVMe. Pikërisht mbështetja NVMe e ndan këtë kontrollues nga shumë të tjerë.
Menuja kryesore e kontrolluesit harduerik
Në përdorimin e modit UEFI, konfigurimet e kontrollorit integrohen në Setup Utility. Krahasuar me VROC, menuja e kontrollorit hardueror duket ndjeshëm më e komplikuar.
Krijimi i RAID1 në dy disqe
Shpjegimi i konfigurimit të sistemeve të treguesve në kontrollorin hardueror është një temë mjaft e ndjeshme dhe mund të jetë arsye e një artikulli të plotë. Këtu, ne thjesht do të kufizohemi në krijimin e RAID0 dhe RAID1 me konfigurime të paracaktuara.
Disqet e lidhura me kontrollorin hardueror nuk duken në sistemin operativ. Në vend të kësaj, kontrollori "maskon" të gjitha array-t RAID si disqe SAS. Disqet e lidhura në kontrollor, por që nuk janë pjesë e array-t të diskut, nuk do të jenë të qasshme në OS.
root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (ndërtimi lokal)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== FILLIMI I SEKCIONIT TË INFORMACIONIT ===
Prodhuesi: AVAGO
Produkti: MR9460-8i
Revizioni: 5.14
Kushtueshmëria: SPC-3
Kapaciteti i Përdoruesit: 1,999,844,147,200 bytes [1.99 TB]
Madhësia e blokut logjik: 512 bytes
Shpejtësia e Rotacionit: Pajisje Solid State
ID e Njësisë Logjike: 0x000000000000000000000000000000
Numri Serial: 00000000000000000000000000000000
Lloji i Pajisjes: disk
Koha Lokale është: Diel 11 Tetor 16:27:59 2020 MSK
Mbështetje SMART është: E Pamundur - pajisja nuk ka kapacitet SMART.Pavarësisht nga maskimi si drive të SAS, grupet me NVMe do të punojnë me shpejtësi PCIe. Megjithatë, ky veçorë lejon booting nga NVMe në Legacy.
Njësia e testimit
Çdo metodë e organizimit të grupeve të disqeve ka avantazhet dhe disavantazhet e saj fizike. Po, ka ndonjë ndryshim në performancë gjatë punës me grupe disqesh?
Për të arritur drejtësi maksimale, të gjitha testet do të kryhen në të njëjtin server. Konfigurimi i tij është:
- 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 500GB.
Produktet testuese janë P4510, prej të cilave një gjysmë është e lidhur me bordin e nënshkrimit dhe tjetra me kontrolluesin RAID. Në M.2 është instaluar sistemi operativ Ubuntu 20.04, dhe testet do të kryhen me ndihmën e fio version 3.16.
Testimi
Së pari, do të verifikojmë vonesat gjatë punës me diskun. Testi kryhet në një rrjedhë, madhësia e bllokut 4 KB. Çdo test zgjat 5 minuta. Para fillimit, për pajisjen përkatëse bllokuese, caktohet none si planifikues i I/O. Komanda fio është si në vijim:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw= --filename=Nga rezultatet e fio, marrim clat 99.00%. Rezultatet janë paraqitur në tabelën më poshtë.
Leximi i rastit, µs
Shkrimi i rastit, µs
Disku
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 në qasjen në të dhëna, dëshirojmë të shohim performancën e memorjeve virtuale dhe ta krahasojmë me performancën e diskut fizik. Komanda për të ekzekutuar fio:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth= --rw= --filename=Performanca matet në numrin e operacioneve të hyrje-daljes. Rezultatet janë paraqitur në tabelën më poshtë.
Leximi i rastit 1 rrjedhë, IOPS
Shkrimi i rastit 1 rrjedhë, IOPS
Leximi i rastit 128 rrjedha, IOPS
Shkrimi i rastit 128 rrjedha, IOPS
Disku
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ë vërehet se përdorimi i kontrolluesit harduerik sjell rritje të vonesave dhe rënie të performancës krahasuar me zgjidhjet programore.
Përfundimi
Përdorimi i zgjidhjeve hardware për të krijuar grupe disku prej dy disqesh duket i papërshtatshëm. Megjithatë, ekzistojnë detyra ku përdorimi i kontrolerëve RAID justifikohet. Me shfaqjen e kontrolerëve që mbështesin interfisin NVMe, përdoruesit tani 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ë. , ju lutemi.
A përdorni zgjidhje RAID?
29,6%Po, zgjidhje harduerike32
50,0%Po, zgjidhje software54
16,7%Jo18
3,7%RAID nuk është i nevojshëm4
Anonim, 108 përdorues votuan. 14 përdorës u abstenuan.
Burimi: habr.com
