NVMeдеги RAID массивдери

NVMeдеги RAID массивдери
Бул макалада биз RAID массивдерин уюштуруунун ар кандай жолдору жөнүндө сүйлөшөбүз, ошондой эле NVMe колдоосу менен биринчи аппараттык RAID контроллерлорунун бирин көрсөтөбүз.

RAID технологиясынын бардык тиркемелери сервер сегментинде табылган. Кардар сегментинде көбүнчө эки дисктеги RAID0 же RAID1 программасы гана колдонулат.

Бул макалада RAID технологиясы тууралуу кыскача баяндама, үч түрдүү инструментти колдонуу менен RAID массивдерин кантип түзүү боюнча кыскача окуу куралы жана ар бир ыкманы колдонуу менен виртуалдык дисктин иштешин салыштыруу каралат.

RAID деген эмне?

Wikipedia RAID технологиясынын толук аныктамасын берет:

RAID (Eng. Көзкарандысыз дисктердин ашыкча массиви - көз карандысыз (көз карандысыз) дисктердин ашыкча массивдери) - катага чыдамдуулукту жана өндүрүмдүүлүктү жогорулатуу үчүн бир нече физикалык диск түзүлүштөрүн логикалык модулга бириктирүү үчүн маалыматтарды виртуалдаштыруу технологиясы.

Диск массивдеринин конфигурациясы жана колдонулган технологиялар тандалганга жараша болот RAID деңгээли. RAID деңгээли спецификацияда стандартташтырылган Жалпы RAID диск маалымат форматы. Ал көптөгөн RAID деңгээлин сүрөттөйт, бирок эң кеңири таралгандары RAID0, RAID1, RAID5 жана RAID6.

RAID0же Stripes, эки же андан көп физикалык дисктерди бир логикалык дискке бириктирген RAID деңгээли. Логикалык дисктин көлөмү массивге кирген физикалык дисктердин томдорунун суммасына барабар. Бул RAID деңгээлинде ашыкчалык жок жана бир дисктин иштебей калышы виртуалдык дисктеги бардык маалыматтардын жоголушуна алып келиши мүмкүн.

деңгээл RAID1же күзгү, эки же андан көп дисктерде маалыматтардын окшош көчүрмөлөрүн түзөт. Виртуалдык дисктин өлчөмү физикалык дисктердин минималдуу өлчөмүнөн ашпайт. RAID1 виртуалдык дискиндеги маалыматтар массивден жок дегенде бир физикалык диск иштеп турганда жеткиликтүү болот. RAID1ди колдонуу ашыкча көбөйтөт, бирок өтө кымбат чечим, анткени эки же андан көп дисктердин массивдеринде бирөөнүн гана сыйымдуулугу бар.

деңгээл RAID5 жогорку наркын чечет. RAID5 деңгээли менен массивди түзүү үчүн сизге кеминде 3 диск керек жана массив бир дисктин бузулушуна туруштук берет. RAID5теги маалыматтар текшерүү суммасы менен блоктордо сакталат. Маалымат дисктери менен текшерүү суммасы дисктеринин ортосунда катуу бөлүнүү жок. RAID5теги текшерүү суммалары ар бири башка дисктен алынган N-1 блокторуна колдонулган XOR операциясынын натыйжасы.

RAID массивдери ашыкчаны көбөйтсө да, резервдик көчүрмөлөрдү сактоого ылайыктуу эмес.

RAID массивдеринин түрлөрүнө кыскача экскурсиядан кийин, сиз диск массивдерин чогултууга жана колдонууга мүмкүндүк берүүчү түзүлүштөргө жана программаларга өтсөңүз болот.

RAID контроллерлорунун түрлөрү

RAID массивдерин түзүүнүн жана колдонуунун эки жолу бар: аппараттык жана программалык камсыздоо. Биз төмөнкү чечимдерди карап чыгабыз:

  • Linux Программалык камсыздоо RAID.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Белгилей кетсек, Intel® чечими чипсетте иштейт, бул аппараттык же программалык чечимби деген суроону жаратат. Мисалы, VMWare ESXi гипервизору VROC программалык камсыздоосун карайт жана аны расмий түрдө колдобойт.

Linux Программалык камсыздоо RAID

Linux OS үй-бүлөсүндө программалык камсыздоонун RAID массивдери кардар жана сервер сегменттеринде кеңири таралган чечим болуп саналат. Массивди түзүү үчүн сизге керек болгон нерсе - mdadm утилитасы жана бир нече блоктук түзмөктөр. Linux Программалык камсыздоо RAIDдин ал колдонгон дисктерге койгон жалгыз талабы бул системага жеткиликтүү блок түзмөгү болуу.

Жабдуулар жана программалык камсыздоо үчүн чыгымдардын жоктугу бул ыкманын ачык артыкчылыгы болуп саналат. Linux Software RAID диск массивдерин CPU убактысынын баасы боюнча уюштурат. Колдоого алынган RAID деңгээлдеринин тизмеси жана учурдагы диск массивдеринин абалын procfs тамырында жайгашкан mdstat файлында көрүүгө болот:

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

RAID деңгээлдерине колдоо тиешелүү ядро ​​модулун туташтыруу менен кошулат, мисалы:

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

Диск массивдери менен бардык операциялар mdadm буйрук сабынын утилитасы аркылуу аткарылат. Диск массиви бир буйрукта чогултулган:

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

Бул буйрукту аткаргандан кийин, /dev/md0 блок түзмөгү системада пайда болот, ал сизди виртуалдык диск катары көрсөтөт.

Intel® Virtual RAID On CPU

NVMeдеги RAID массивдериIntel® VROC стандарттык аппараттык ачкычы
Intel® Virtual RAID On CPU (VROC) - Intel® чипсеттеринин негизинде RAID массивдерин түзүү үчүн аппараттык жана программалык камсыздоо технологиясы. Бул технология негизинен Intel® Xeon® Scalable процессорлорун колдогон энелик платалар үчүн жеткиликтүү. Демейки боюнча, VROC жеткиликтүү эмес. Аны иштетүү үчүн VROC жабдык лицензия ачкычын орнотуу керек.

Стандарттык VROC лицензиясы 0, 1 жана 10 RAID деңгээли бар диск массивдерин түзүүгө мүмкүндүк берет. Премиум версия бул тизмени RAID5 колдоосу менен кеңейтет.

Заманбап энелик платалардагы Intel® VROC технологиясы NVMe дисктери үчүн ысык алмаштыруу мүмкүнчүлүгүн камсыз кылган Intel® Volume Management Device (VMD) менен бирге иштейт.

NVMeдеги RAID массивдериIntel® VROC стандарттык лицензиясы Сервер жүктөлгөндө массивдер Setup Utility аркылуу конфигурацияланат. Өтмөктө алдынкы Intel® Virtual RAID on CPU пункту пайда болот, анда сиз диск массивдерин конфигурациялай аласыз.

NVMeдеги RAID массивдериЭки дискте RAID1 массивин түзүү
Intel® VROC технологиясынын өзүнүн эйстери бар. VROC аркылуу курулган диск массивдери Linux Software RAID менен шайкеш келет. Бул массивдердин абалын /proc/mdstat ичинде көзөмөлдөөгө жана mdadm аркылуу башкарууга болот дегенди билдирет. Бул "функция" расмий түрдө Intel тарабынан колдоого алынган. Setup Utility программасында RAID1ди чогулткандан кийин, сиз 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>

mdadm аркылуу VROCте массивдерди чогулта албай турганыңызды эске алыңыз (чогулган массивдер Linux SW RAID болот), бирок алардагы дисктерди өзгөртүп, массивдерди демонтаждасаңыз болот.

LSI MegaRAID 9460-8i

NVMeдеги RAID массивдериLSI MegaRAID 9460-8i контролерунун көрүнүшү
RAID контроллери өзүнчө аппараттык чечим болуп саналат. Контроллер ага түз туташкан дисктер менен гана иштейт. Бул RAID контроллери 24 NVMe дисктерин колдойт. Бул контроллерди көптөгөн башкалардан айырмалап турган NVMe колдоосу.

NVMeдеги RAID массивдериАппараттык контроллердин негизги менюсу
UEFI режимин колдонууда контроллердин жөндөөлөрү Setup Utility программасына бириктирилген. VROC менен салыштырганда, аппараттык контроллердин менюсу алда канча татаал көрүнөт.

NVMeдеги RAID массивдериЭки дискте RAID1 түзүү
Аппараттык контроллерде диск массивдерин кантип конфигурациялоону түшүндүрүү өтө назик тема жана толук кандуу макаланын себеби болушу мүмкүн. Бул жерде биз жөн гана демейки жөндөөлөр менен RAID0 жана RAID1 түзүү менен чектелебиз.

Аппараттык контроллерге туташкан дисктер операциялык системага көрүнбөйт. Анын ордуна, контроллер бардык RAID массивдерин SAS дисктери катары "маскалайт". Контроллерге туташкан, бирок диск массивинин бир бөлүгү эмес, ОС тарабынан жеткиликтүү болбойт.

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.

SAS дисктери катары жашырылганына карабастан, NVMe массивдери PCIe ылдамдыгында иштейт. Бирок, бул функция Legacy ичиндеги NVMeден жүктөөгө мүмкүндүк берет.

Сыноочу стенд

Диск массивдерин уюштуруунун ар бир ыкмасы өзүнүн физикалык жакшы жана жаман жактарына ээ. Бирок диск массивдери менен иштөөдө айырмачылык барбы?

Максималдуу адилеттүүлүккө жетүү үчүн бардык тесттер бир серверде өткөрүлөт. Анын конфигурациясы:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 ГБ;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC стандарттык аппараттык ачкычы;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Сыноо бирдиктери P4510 болуп саналат, анын жарымы энелик платага, экинчи жарымы RAID контроллерине туташкан. M.2 Ubuntu 20.04 иштеп жатат жана тесттер fio 3.16 версиясын колдонуу менен ишке ашырылат.

тестирлөө

Биринчиден, диск менен иштөөдө кечигүүлөрдү текшерип көрөлү. Тест бир жипте аткарылат, блоктун көлөмү 4 КБ. Ар бир сыноо 5 мүнөткө созулат. Баштоодон мурун, тиешелүү блок түзмөгү I/O пландоочусу катары эч кимге коюлбайт. fio буйругу төмөнкүдөй көрүнөт:

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

Fio натыйжаларынан биз clat 99.00% алабыз. Натыйжалар төмөнкү таблицада көрсөтүлгөн.

Кокус окуу, μs
Кокус жазуу, μ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

Маалыматтарга жетүүдөгү кечигүүлөрдөн тышкары, мен виртуалдык дисктердин иштешин көрүп, аларды физикалык дисктин иштеши менен салыштыргым келет. fio иштетүү үчүн буйрук:

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

Өндүрүмдүүлүк киргизүү/чыгаруу операциялары менен өлчөнөт. Жыйынтыктар төмөнкү таблицада берилген.

Кокус окуу 1 жип, IOPS
Кокус жазуу 1 жип, IOPS
Кокус окуу 128 жип, IOPS
Кокус жазуу 128 жип, 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

Аппараттык контроллерди колдонуу программалык чечимдерге салыштырмалуу кечигүү убактысынын көбөйүшүнө жана натыйжалуулукка алып келерин көрүү оңой.

жыйынтыктоо

Эки дисктен диск массивдерин түзүү үчүн аппараттык чечимдерди колдонуу акылга сыйбаган көрүнүш. Бирок, RAID контроллерлорун колдонуу негиздүү болгон милдеттер бар. NVMe интерфейсин колдогон контроллерлордун пайда болушу менен колдонуучулар өз долбоорлорунда тезирээк SSDлерди колдонууга мүмкүнчүлүк алышты.

NVMeдеги RAID массивдери

Сурамжылоого катталган колдонуучулар гана катыша алышат. Кирүү, өтүнөмүн.

RAID чечимдерин колдонуп жатасызбы?

  • 29,6%Ооба, аппараттык чечимдер32

  • 50,0%Ооба, программалык чечимдер54

  • 16,7%No18

  • 3,7%RAID кереги жок4

108 колдонуучу добуш берди. 14 колдонуучу добуш берүүдөн баш тартты.

Source: www.habr.com

Комментарий кошуу