safu za RAID kwenye NVMe

safu za RAID kwenye NVMe
Katika makala hii tutazungumzia kuhusu njia tofauti za kuandaa safu za RAID, na pia kuonyesha moja ya watawala wa kwanza wa vifaa vya RAID na usaidizi wa NVMe.

Aina zote za matumizi ya teknolojia ya RAID hupatikana katika sehemu ya seva. Katika sehemu ya mteja, programu tu RAID0 au RAID1 kwenye diski mbili hutumiwa mara nyingi.

Makala haya yatatoa muhtasari mfupi wa teknolojia ya RAID, mafunzo mafupi ya jinsi ya kuunda safu za RAID kwa kutumia zana tatu tofauti, na kulinganisha utendaji wa diski pepe kwa kutumia kila njia.

RAID ni nini?

Wikipedia inatoa ufafanuzi wa kina wa teknolojia ya RAID:

Uvamizi (Kiingereza Upangaji Mbaya wa Disks za Kujitegemea - safu isiyo ya kawaida ya diski za kujitegemea (huru) - teknolojia ya virtualization ya data kwa kuchanganya vifaa kadhaa vya disk kimwili katika moduli ya mantiki ili kuongeza uvumilivu wa makosa na utendaji.

Mpangilio wa safu za disk na teknolojia zinazotumiwa hutegemea kuchaguliwa Kiwango cha RAID. Viwango vya RAID vimesawazishwa katika vipimo Umbizo la kawaida la data ya RAID Disk. Inaelezea viwango vingi vya RAID, lakini vinavyojulikana zaidi ni RAID0, RAID1, RAID5 na RAID6.

RAID0Au Kupigwa, ni kiwango cha RAID ambacho huchanganya viendeshi viwili au zaidi vya kimwili kwenye kiendeshi kimoja cha kimantiki. Kiasi cha diski ya mantiki ni sawa na jumla ya kiasi cha disks za kimwili zilizojumuishwa kwenye safu. Hakuna upungufu katika kiwango hiki cha RAID, na kushindwa kwa gari moja kunaweza kusababisha kupoteza data zote kwenye diski ya kawaida.

Kiwango RAID1Au Mirror, huunda nakala zinazofanana za data kwenye diski mbili au zaidi. Ukubwa wa diski ya kawaida hauzidi ukubwa wa chini wa diski za kimwili. Data kwenye diski pepe ya RAID1 itapatikana mradi angalau diski moja halisi kutoka kwa safu inafanya kazi. Kutumia RAID1 kunaongeza upungufu, lakini ni suluhisho la gharama kubwa, kwani katika safu za diski mbili au zaidi uwezo wa moja tu unapatikana.

Kiwango RAID5 kutatua tatizo la gharama kubwa. Ili kuunda safu na kiwango cha RAID5, unahitaji angalau diski 3, na safu inakabiliwa na kushindwa kwa diski moja. Data katika RAID5 huhifadhiwa katika vizuizi vilivyo na hundi. Hakuna mgawanyiko mkali kati ya diski za data na diski za hundi. Cheki katika RAID5 ni matokeo ya operesheni ya XOR iliyotumika kwa vitalu vya N-1, kila moja ikichukuliwa kutoka kwa diski tofauti.

Ingawa safu za RAID huongeza upunguzaji wa matumizi na kutoa upungufu, hazifai kuhifadhi nakala.

Baada ya safari fupi katika aina za safu za RAID, unaweza kuendelea na vifaa na programu zinazokuwezesha kukusanyika na kutumia safu za disk.

Aina za vidhibiti vya RAID

Kuna njia mbili za kuunda na kutumia safu za RAID: maunzi na programu. Tutazingatia suluhisho zifuatazo:

  • Linux Uvamizi wa Programu.
  • IntelĀ® Virtual RAID Kwenye CPU.
  • LSI MegaRAID 9460-8i.

Kumbuka kuwa suluhisho la IntelĀ® linaendeshwa kwenye chipset, ambayo inazua swali la ikiwa ni suluhisho la maunzi au programu. Kwa mfano, hypervisor ya VMWare ESXi inazingatia programu ya VROC na haiungi mkono rasmi.

Linux Programu uvamizi

Safu za RAID za programu katika familia ya OS Linux — suluhisho la kawaida katika sehemu zote mbili za mteja na seva. Kinachohitajika kuunda safu ni huduma ya mdadm na vifaa kadhaa vya kuzuia. Sharti pekee ni Linux Programu ya RAID kwa diski zinazotumika - kuwa kifaa cha kuzuia kinachoweza kupatikana kwa mfumo.

Kutokuwepo kwa gharama za vifaa na programu ni faida dhahiri ya njia hii. Linux Programu ya RAID hupanga safu za diski kwa gharama ya muda wa CPU. Orodha ya viwango vya RAID vinavyotumika na hali ya safu za diski za sasa zinaweza kutazamwa katika faili ya mdstat, ambayo iko kwenye mzizi wa procfs:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

Usaidizi wa viwango vya RAID huongezwa kwa kuunganisha moduli inayofaa ya kernel, kwa mfano:

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

Shughuli zote zilizo na safu za diski zinafanywa kupitia matumizi ya mstari wa amri ya mdadm. Safu ya diski imekusanywa kwa amri moja:

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

Baada ya kutekeleza amri hii, kifaa cha kuzuia /dev/md0 kitaonekana kwenye mfumo, ambacho kinakuwakilisha kama diski pepe.

IntelĀ® Virtual RAID Kwenye CPU

safu za RAID kwenye NVMeUfunguo wa Maunzi wa Kawaida wa IntelĀ® VROC
IntelĀ® Virtual RAID On CPU (VROC) ni teknolojia ya maunzi na programu kwa ajili ya kuunda mkusanyiko wa RAID kulingana na chipsets za IntelĀ®. Teknolojia hii inapatikana kwa ajili ya mbao mama zinazotumia vichakataji vya IntelĀ® XeonĀ® Scalable. Kwa chaguo-msingi, VROC haipatikani. Ili kuiwasha, lazima usakinishe ufunguo wa leseni ya maunzi ya VROC.

Leseni ya kawaida ya VROC inakuwezesha kuunda safu za disk na viwango vya 0, 1 na 10 vya RAID. Toleo la malipo hupanua orodha hii kwa usaidizi wa RAID5.

Teknolojia ya IntelĀ® VROC kwenye ubao-mama wa kisasa hufanya kazi kwa kushirikiana na Kifaa cha Kudhibiti Kiasi cha IntelĀ® (VMD), ambacho hutoa uwezo wa kubadilishana kwa kasi kwa viendeshi vya NVMe.

safu za RAID kwenye NVMeLeseni ya Kawaida ya IntelĀ® VROC Safu husanidiwa kupitia Huduma ya Usanidi wakati seva inapowasha. Kwenye kichupo Ya juu IntelĀ® Virtual RAID kwenye kipengee cha CPU inaonekana, ambapo unaweza kusanidi safu za diski.

safu za RAID kwenye NVMeKuunda safu ya RAID1 kwenye viendeshi viwili
Teknolojia ya IntelĀ® VROC ina ekari zake pekee. Safu za diski zilizokusanywa kwa kutumia VROC zinaendana na Linux Uvamizi wa Programu. Hii ina maana kwamba hali ya safu inaweza kufuatiliwa katika /proc/mdstat na kusimamiwa kupitia mdadm. Kipengele hiki kinaungwa mkono rasmi na Intel. Baada ya kujenga RAID1, unaweza kuona viendeshi vikilinganishwa katika Mfumo wa Uendeshaji katika Usanidi wa Huduma:

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>

Kumbuka kwamba huwezi kukusanya safu kwenye VROC kupitia mdadm (safu zilizokusanywa zitakuwa Linux SW RAID), lakini unaweza kubadilisha diski ndani yake na kutenganisha safu.

LSI MegaRAID 9460-8i

safu za RAID kwenye NVMeKuonekana kwa mtawala wa LSI MegaRAID 9460-8i
Mdhibiti wa RAID ni suluhisho la vifaa vya kusimama pekee. Mdhibiti hufanya kazi tu na anatoa zilizounganishwa moja kwa moja nayo. Kidhibiti hiki cha RAID kinaauni hadi viendeshi 24 vya NVMe. Ni usaidizi wa NVMe ambao huweka kidhibiti hiki kando na wengine wengi.

safu za RAID kwenye NVMeMenyu kuu ya kidhibiti cha vifaa
Unapotumia hali ya UEFI, mipangilio ya kidhibiti inaunganishwa kwenye Huduma ya Kuweka. Ikilinganishwa na VROC, menyu ya kidhibiti cha vifaa inaonekana ngumu zaidi.

safu za RAID kwenye NVMeKuunda RAID1 kwenye diski mbili
Kuelezea jinsi ya kusanidi safu za diski kwenye kidhibiti cha maunzi ni mada nyeti na inaweza kuwa sababu ya nakala kamili. Hapa tutajiwekea kikomo kwa kuunda RAID0 na RAID1 na mipangilio chaguo-msingi.

Disks zilizounganishwa na mtawala wa vifaa hazionekani kwa mfumo wa uendeshaji. Badala yake, kidhibiti "hufunika" safu zote za RAID kama SAS anatoa. Hifadhi zilizounganishwa na kidhibiti, lakini sio sehemu ya safu ya diski, hazitafikiwa na 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.

Licha ya kufichwa kama viendeshi vya SAS, safu za NVMe zitafanya kazi kwa kasi ya PCIe. Walakini, huduma hii hukuruhusu kuanza kutoka NVMe katika Urithi.

benchi ya mtihani

Kila njia ya kuandaa safu za disk ina faida na hasara zake za kimwili. Lakini kuna tofauti ya utendaji wakati wa kufanya kazi na safu za diski?

Ili kufikia usawa wa juu, majaribio yote yatafanywa kwenye seva moja. Mpangilio wake:

  • 2x IntelĀ® XeonĀ® 6240;
  • 12x DDR4-2666 GB 16;
  • LSI MegaRAID 9460-8i;
  • Ufunguo wa Vifaa vya Kawaida vya IntelĀ® VROC;
  • 4x IntelĀ® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Vitengo vya majaribio ni P4510, huku nusu moja ikiwa imeunganishwa kwenye ubao mama na nyingine kwenye kidhibiti cha RAID. Mfumo endeshi umewekwa kwenye kiendeshi cha M.2. Ubuntu 20.04, na majaribio yatafanywa kwa kutumia toleo la fio 3.16.

Upimaji

Kwanza kabisa, hebu tuangalie ucheleweshaji wakati wa kufanya kazi na diski. Jaribio linafanywa kwa thread moja, ukubwa wa kuzuia ni 4 KB. Kila mtihani huchukua dakika 5. Kabla ya kuanza, kifaa kinacholingana cha kuzuia hakijawekwa kama kipanga ratiba cha I/O. Amri ya fio inaonekana kama hii:

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

Kutoka kwa matokeo ya fio tunachukua clat 99.00%. Matokeo yanaonyeshwa kwenye jedwali hapa chini.

Kusoma bila mpangilio, μs
Kurekodi bila mpangilio, μs

disk
112
78

Linux UVAMIZI WA SW, UVAMIZI0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linux UVAMIZI WA SW, UVAMIZI1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

Mbali na ucheleweshaji wakati wa kupata data, ningependa kuona utendaji wa viendeshi vya kawaida na kulinganisha na utendaji wa diski halisi. Amri ya kukimbia fio:

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

Utendaji hupimwa kulingana na shughuli za I/O. Matokeo yanawasilishwa katika jedwali hapa chini.

Soma bila mpangilio mazungumzo 1, IOPS
Andika bila mpangilio thread 1, IOPS
Soma bila mpangilio nyuzi 128, IOPS
Andika bila mpangilio nyuzi 128, IOPS

disk
11300
40700
453000
105000

Linux UVAMIZI WA SW, UVAMIZI0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linux UVAMIZI WA SW, UVAMIZI1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

Ni rahisi kuona kwamba kutumia kidhibiti cha maunzi husababisha kuongezeka kwa latency na utendaji kazi ikilinganishwa na ufumbuzi wa programu.

Hitimisho

Kutumia suluhisho za vifaa kuunda safu za diski kutoka kwa diski mbili inaonekana kuwa isiyo na maana. Hata hivyo, kuna kazi ambapo matumizi ya vidhibiti vya RAID ni haki. Pamoja na ujio wa vidhibiti vinavyotumia kiolesura cha NVMe, watumiaji wana fursa ya kutumia SSD za haraka katika miradi yao.

safu za RAID kwenye NVMe

Watumiaji waliojiandikisha pekee ndio wanaweza kushiriki katika utafiti. Weka sahihitafadhali.

Je, unatumia suluhu za RAID?

  • 29,6%Ndio, suluhisho za vifaa32

  • 50,0%Ndio, suluhisho za programu54

  • 16,7%No18

  • 3,7%Hakuna RAID inahitajika4

Watumiaji 108 walipiga kura. Watumiaji 14 walijizuia.

Chanzo: mapenzi.com

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS šŸ”„ Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster