NVMe жүйесіндегі RAID массивтері

NVMe жүйесіндегі RAID массивтері
Бұл мақалада біз RAID массивтерін ұйымдастырудың әртүрлі тәсілдері туралы сөйлесетін боламыз, сонымен қатар NVMe қолдауы бар алғашқы аппараттық RAID контроллерінің бірін көрсетеміз.

RAID технологиясының барлық түрлі қолданбалары сервер сегментінде кездеседі. Клиент сегментінде көбінесе екі дискідегі RAID0 немесе RAID1 бағдарламалық құралы ғана қолданылады.

Бұл мақалада RAID технологиясына қысқаша шолу, үш түрлі құралды пайдаланып RAID массивтерін жасау туралы қысқаша оқулық және әрбір әдісті пайдаланып виртуалды диск өнімділігін салыстыру қарастырылады.

RAID дегеніміз не?

Уикипедия RAID технологиясының толық анықтамасын береді:

RAID (Eng. Тәуелсіз дискілердің артық массиві - тәуелсіз (тәуелсіз) дискілердің артық массиві) - ақауларға төзімділік пен өнімділікті арттыру үшін бірнеше физикалық диск құрылғыларын логикалық модульге біріктіруге арналған деректерді виртуалдандыру технологиясы.

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

RAID0, немесе Жолақтар, екі немесе одан да көп физикалық дискілерді бір логикалық дискіге біріктіретін RAID деңгейі. Логикалық дискінің көлемі массивке кіретін физикалық дискілердің көлемдерінің қосындысына тең. Бұл RAID деңгейінде артықшылық жоқ және бір дискінің істен шығуы виртуалды дискідегі барлық деректердің жоғалуына әкелуі мүмкін.

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

деңгей RAID5 жоғары шығын мәселесін шешеді. RAID5 деңгейі бар массив жасау үшін сізге кемінде 3 диск қажет және массив бір дискінің істен шығуына төзімді. RAID5 ішіндегі деректер бақылау сомасы бар блоктарда сақталады. Деректер дискілері мен бақылау сомасы дискілері арасында қатаң бөлу жоқ. RAID5 жүйесіндегі бақылау сомасы N-1 блоктарына қолданылатын XOR операциясының нәтижесі болып табылады, олардың әрқайсысы басқа дискіден алынған.

RAID массивтері артықшылықты арттырып, артықшылықты қамтамасыз еткенімен, олар сақтық көшірмелерді сақтауға жарамайды.

RAID массивтерінің түрлеріне қысқаша экскурсиядан кейін диск массивтерін жинауға және пайдалануға мүмкіндік беретін құрылғылар мен бағдарламаларға көшуге болады.

RAID контроллерлерінің түрлері

RAID массивтерін жасаудың және пайдаланудың екі жолы бар: аппараттық және бағдарламалық құрал. Біз келесі шешімдерді қарастырамыз:

  • Linux бағдарламалық құралының RAID.
  • Intel® виртуалды RAID процессорында.
  • LSI MegaRAID 9460-8i.

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

Linux бағдарламалық құралының RAID

Linux ОЖ отбасындағы бағдарламалық қамтамасыз етудің RAID массивтері клиент пен сервер сегменттерінде өте кең таралған шешім болып табылады. Массив жасау үшін mdadm утилитасы және бірнеше блоктық құрылғылар қажет. Linux бағдарламалық құралының RAID пайдаланатын дискілерге қоятын жалғыз талабы жүйеге қолжетімді блок құрылғысы болуы.

Жабдық пен бағдарламалық қамтамасыз ету үшін шығындардың болмауы бұл әдістің айқын артықшылығы болып табылады. Linux бағдарламалық жасақтамасы 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® виртуалды RAID процессорында

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 құрастырғаннан кейін ОЖ-да дискілердің синхрондалуын байқауға болады:

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 500 ГБ.

Сынақ блоктары P4510 болып табылады, оның жартысы аналық платаға, ал екінші жартысы RAID контроллеріне қосылған. M.2 Ubuntu 20.04 нұсқасымен жұмыс істейді және сынақтар fio 3.16 нұсқасы арқылы орындалады.

Тестілеу

Ең алдымен, дискімен жұмыс істеу кезіндегі кідірістерді тексерейік. Тест бір ағында орындалады, блок өлшемі 4 КБ. Әр сынақ 5 минутқа созылады. Бастамас бұрын сәйкес блок құрылғысы енгізу/шығару жоспарлаушысы ретінде ешбір күйге орнатылады. 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
Кездейсоқ жазу, мкс

диск
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%№18

  • 3,7%RAID қажет емес4

108 пайдаланушы дауыс берді. 14 пайдаланушы қалыс қалды.

Ақпарат көзі: www.habr.com

пікір қалдыру