Rêzên RAID li ser NVMe

Rêzên RAID li ser NVMe
Di vê gotarê de em ê li ser awayên cihêreng ên organîzekirina rêzikên RAID-ê biaxivin, û di heman demê de yek ji yekem kontrolkerên RAID-ê yên hardware bi piştgiriya NVMe re jî nîşan bidin.

Hemî cûrbecûr serîlêdanên teknolojiya RAID di beşa serverê de têne dîtin. Di beşa xerîdar de, tenê nermalava RAID0 an RAID1 li ser du dîskê pir caran tê bikar anîn.

Ev gotar dê kurteyek li ser teknolojiya RAID-ê, dersek kurt li ser meriv çawa bi karanîna sê amûrên cihêreng arrayên RAID-ê biafirîne, û berhevdana performansa dîska virtual bi karanîna her rêbazê peyda bike.

RAID çi ye?

Wikipedia pênaseyek berfireh a teknolojiya RAID dide:

RAID (Eng. Array Redundant of Disks Independent - Rêzeya zêde ya dîskên serbixwe (serbixwe)) - Teknolojiya virtualkirina daneyê ji bo berhevkirina çend amûrên dîska laşî di modulek mentiqî de da ku tolerans û performansê zêde bike.

Veavakirina rêzikên dîskê û teknolojiyên ku têne bikar anîn bi bijartî ve girêdayî ye asta RAID. Asta RAID di taybetmendiyê de têne standard kirin Forma Daneyên Dîska RAID ya hevpar. Ew gelek astên RAID-ê diyar dike, lê ya herî gelemperî RAID0, RAID1, RAID5 û RAID6 ne.

RAID0an Stripes, astek RAID e ku du an bêtir ajokarên laşî di yek ajokerek mentiqî de berhev dike. Hêjmara dîska mentiqî bi berhevoka cildên dîskên fizîkî yên ku di nav rêzê de ne wekhev e. Di vê asta RAID-ê de zêdebûnek tune, û têkçûna yek ajokerê dikare bibe sedema windabûna hemî daneyên di dîska virtual de.

Asta RAID1an neynik, li ser du an jî zêdetir dîskê kopiyên daneyan yeksan diafirîne. Mezinahiya dîska virtual ji mezinahiya herî kêm a dîskên laşî derbas nabe. Daneyên li ser dîska virtual RAID1 dê heya ku bi kêmî ve dîskek laşî ya ji rêzê xebitîne hebe. Bikaranîna RAID1 zêde dike, lê çareseriyek pir biha ye, ji ber ku di rêzikên du an bêtir dîskan de kapasîteya yek tenê heye.

Asta RAID5 pirsgirêka lêçûna bilind çareser dike. Ji bo afirandina rêzek bi asta RAID5, hûn bi kêmî ve 3 dîskê hewce ne, û array ji têkçûna yek dîskê re berxwedêr e. Daneyên di RAID5 de di blokên bi kontrolê de têne hilanîn. Di navbera dîskên daneyê û dîskên kontrolê de dabeşek hişk tune. Kontrolên di RAID5 de encama operasyonek XOR-ê ye ku li ser blokên N-1 hatî sepandin, ku her yek ji dîskek cûda hatî girtin.

Her çend rêzikên RAID zêdebûnê zêde dikin û beredayî peyda dikin, ew ji bo hilanîna paşgiran ne guncan in.

Piştî gerokek kurt di nav cûreyên rêzikên RAID-ê de, hûn dikarin biçin ser amûr û bernameyên ku destûrê didin we ku hûn rêzikên dîskê berhev bikin û bikar bînin.

Cureyên kontrolkerên RAID

Du awayên afirandina û karanîna arrayên RAID hene: hardware û nermalavê. Em ê çareseriyên jêrîn bifikirin:

  • Linux Software RAID.
  • Intel® RAID Virtual Li ser CPU.
  • LSI MegaRAID 9460-8i.

Têbînî ku çareseriya Intel® li ser chipsetek dimeşîne, ku ev pirsê dike ka gelo ew çareseriyek hardware an nermalavê ye. Mînakî, hypervisor VMWare ESXi nermalava VROC dihesibîne û bi fermî piştgirî nade.

Linux Software RAID

Rêzeyên RAID-ê yên nermalava di malbata Linux OS de hem di beşên xerîdar û hem jî serverê de çareseriyek pir hevpar e. Tişta ku hûn hewce ne ji bo afirandina arrayek amûra mdadm û çend amûrên blokê ne. Tenê pêdivî ye ku Linux Software RAID li ser ajokarên ku ew bikar tîne cîh dike ev e ku bibe amûrek blokê ku ji pergalê re bigihîje.

Nebûna lêçûnên ji bo amûr û nermalavê avantajek eşkere ya vê rêbazê ye. Linux Software RAID rêzikên dîskê bi lêçûna dema CPU organîze dike. Navnîşa astên RAID-ê yên piştgirî û statûya rêzikên dîskê yên heyî dikarin di pelê mdstat de, ku di roka procfs-ê de ye, werin dîtin:

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

Piştgiriya ji bo astên RAID-ê bi girêdana modula kernelê ya guncan tê zêdekirin, mînakî:

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

Hemî operasyonên bi rêzikên dîskê bi navgîniya rêzika fermanê mdadm têne kirin. Rêzeya dîskê di yek fermanê de tê berhev kirin:

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

Piştî bicihanîna vê fermanê, amûra blokê / dev/md0 dê di pergalê de xuya bibe, ku we wekî dîskek virtual temsîl dike.

Intel® RAID Virtual Li ser CPU

Rêzên RAID li ser NVMeIntel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) teknolojiyek hardware û nermalavê ye ku ji bo afirandina rêzikên RAID-ê yên li ser bingeha chipsetên Intel® têne çêkirin. Ev teknolojî di serî de ji bo motherboardên ku pêvajoyên Intel® Xeon® Scalable piştgirî dikin heye. Bi xwerû, VROC ne berdest e. Ji bo çalakkirina wê, divê hûn mifteya lîsansa hardware ya VROC saz bikin.

Lîsansa standard VROC destûrê dide we ku hûn bi astên 0, 1 û 10 RAID-ên dîskê biafirînin. Guhertoya premium vê navnîşê bi piştgiriya RAID5 berfireh dike.

Teknolojiya Intel® VROC li ser motherboardên nûjen bi Amûra Rêvebiriya Volume ya Intel® (VMD) re dixebite, ku ji bo ajokarên NVMe kapasîteya guheztina germ peyda dike.

Rêzên RAID li ser NVMeIntel® VROC Standard License Dema ku server boot dibe, array bi navgîniya Setup Utility têne mîheng kirin. Li ser tabê Pêşveçû Intel® Virtual RAID li ser babeta CPU xuya dibe, ku hûn dikarin rêzikên dîskê mîheng bikin.

Rêzên RAID li ser NVMeAfirandina array RAID1 li ser du ajokaran
Teknolojiya Intel® VROC di lingê xwe de astên xwe hene. Rêzikên dîskê yên ku bi karanîna VROC-ê hatine çêkirin bi nermalava Linux RAID re hevaheng in. Ev tê vê wateyê ku rewşa rêzan dikare di /proc/mdstat de were şopandin û bi mdadm ve were rêvebirin. Ev "taybetmendî" bi fermî ji hêla Intel ve tê piştgirî kirin. Piştî komkirina RAID1 di Setup Utility de, hûn dikarin hevdemkirina ajokarên di OS-ê de bişopînin:

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>

Bala xwe bidinê ku hûn nikanin rêzikên li ser VROC bi karanîna mdadm bicivînin (rêzikên berhevkirî dê Linux SW RAID bin), lê hûn dikarin dîskên di wan de biguhezînin û rêzan ji hev derxînin.

LSI MegaRAID 9460-8i

Rêzên RAID li ser NVMeXuyabûna kontrola LSI MegaRAID 9460-8i
Kontrolkerê RAID çareseriyek hardware ya serbixwe ye. Kontrolker tenê bi ajokarên ku rasterast bi wê ve girêdayî ne re dixebite. Ev kontrolkerê RAID heta 24 ajokarên NVMe piştgirî dike. Ew piştgiriya NVMe ye ku vê kontrolker ji gelekên din cuda dike.

Rêzên RAID li ser NVMeMenuya sereke ya kontrolkera hardware
Dema ku moda UEFI bikar tînin, mîhengên kontrolker di Setup Utility de têne yek kirin. Li gorî VROC, menuya kontrolkera hardware pir tevlihevtir xuya dike.

Rêzên RAID li ser NVMeAfirandina RAID1 li ser du dîskê
Ravekirina meriv çawa rêzikên dîskê li ser kontrolkerek hardware mîheng dike mijarek pir nazik e û dibe ku bibe sedema gotarek bêkêmasî. Li vir em ê tenê xwe bi çêkirina RAID0 û RAID1 bi mîhengên xwerû re sînordar bikin.

Dîskên ku bi kontrolkera hardware ve girêdayî ne ji pergala xebitandinê re nayên dîtin. Di şûna wê de, kontrolker hemî rêzikên RAID wekî ajokarên SAS "maske" dike. Dê ajokarên ku bi kontrolkerê ve girêdayî ne, lê ne beşek ji rêzika dîskê ne, ji hêla OS-ê ve neyên gihîştin.

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.

Tevî ku ew wekî ajokarên SAS têne veşartin, arrayên NVMe dê bi leza PCIe bixebitin. Lêbelê, ev taybetmendî dihêle hûn ji NVMe di Legacy de boot bikin.

Stand testê

Her rêbazek organîzekirina rêzikên dîskê xwedî erênî û neyînîyên xwe yên laşî hene. Lê dema ku bi rêzikên dîskê re dixebitin cûdahiyek performansê heye?

Ji bo bidestxistina dadmendiya herî zêde, hemî ceribandin dê li ser heman serverê bêne kirin. Veavakirina wê:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC Standard Hardware Key;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Yekîneyên testê P4510 ne, nîvê wê bi motherboard ve girêdayî ye, û nîvê din jî bi kontrolkerê RAID-ê ve girêdayî ye. M.2 Ubuntu 20.04 dimeşîne û ceribandin dê bi guhertoya fio 3.16-ê were xebitandin.

Îmtîhanê

Berî her tiştî, em derengan dema ku bi dîskê re dixebitin kontrol bikin. Îmtîhan di yek mijarê de tê meşandin, mezinahiya blokê 4 KB ye. Her îmtîhanek 5 hûrdem berdewam dike. Berî ku dest pê bike, cîhaza blokê ya têkildar wekî nexşerêya I/O wekî yek nayê danîn. Fermana fio wiha xuya dike:

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

Ji encamên fio em klata 99.00% digirin. Encam di tabloya jêrîn de têne destnîşan kirin.

Xwendina rasthatî, μs
Tomarkirina rasthatî, μs

dîskê
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

Digel derengiya gihîştina daneyê, ez dixwazim performansa ajokarên virtual bibînim û wan bi performansa dîskêşek laşî re berhev bikim. Fermana xebitandina fio:

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

Performans di çarçoveya operasyonên I/O de tê pîvandin. Encam di tabloya jêrîn de têne pêşkêş kirin.

Xwendina rasthatî 1 mijar, IOPS
Rasthatî 1 Mijarek binivîse, IOPS
Random xwendin 128 mijarên, IOPS
Random nivîsandina 128 mijarên, IOPS

dîskê
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

Zêdetir e ku meriv bibîne ku karanîna kontrolkerek hardware li gorî çareseriyên nermalavê dibe sedema zêdekirina dereng û performansê.

encamê

Bikaranîna çareseriyên hardware ji bo afirandina rêzikên dîskê ji du dîskan bêaqil xuya dike. Lêbelê, peywir hene ku karanîna kontrolkerên RAID rastdar e. Bi hatina kontrolkerên ku pêwendiya NVMe piştgirî dikin, bikarhêner xwedî derfet in ku di projeyên xwe de SSD-yên zûtir bikar bînin.

Rêzên RAID li ser NVMe

Tenê bikarhênerên qeydkirî dikarin beşdarî anketê bibin. Têketinji kerema xwe.

Ma hûn çareseriyên RAID bikar tînin?

  • 29,6%Erê, çareseriyên hardware32

  • 50,0%Erê, çareseriyên nermalavê54

  • 16,7%No18

  • 3,7%Ne hewce ye RAID4

108 bikarhêneran deng dan. 14 bikarhêner jî betal bûn.

Source: www.habr.com

Add a comment