NVMe-da RAID massivlari

NVMe-da RAID massivlari
Ushbu maqolada biz RAID massivlarini tashkil qilishning turli usullari haqida gaplashamiz, shuningdek, NVMe-ni qo'llab-quvvatlaydigan birinchi apparat RAID kontrollerlaridan birini ko'rsatamiz.

RAID texnologiyasining barcha xilma-xil ilovalari server segmentida joylashgan. Mijoz segmentida faqat ikkita diskdagi RAID0 yoki RAID1 dasturiy ta'minoti ko'pincha ishlatiladi.

Ushbu maqolada RAID texnologiyasi haqida qisqacha ma'lumot, uch xil vositadan foydalangan holda RAID massivlarini yaratish bo'yicha qisqacha qo'llanma va har bir usul yordamida virtual diskning ishlashini taqqoslash ko'rsatiladi.

RAID nima?

Vikipediya RAID texnologiyasining keng qamrovli ta'rifini beradi:

RAID (Eng. Mustaqil disklarning ortiqcha massivi - mustaqil (mustaqil) disklarning ortiqcha massivi) - xatolarga chidamlilik va ishlashni oshirish uchun bir nechta jismoniy disk qurilmalarini mantiqiy modulga birlashtirish uchun ma'lumotlarni virtualizatsiya qilish texnologiyasi.

Disk massivlarining konfiguratsiyasi va ishlatiladigan texnologiyalar tanlanganiga bog'liq RAID darajasi. RAID darajalari spetsifikatsiyada standartlashtirilgan Umumiy RAID disk ma'lumotlar formati. U ko'plab RAID darajalarini tavsiflaydi, lekin eng keng tarqalganlari RAID0, RAID1, RAID5 va RAID6.

RAID0yoki Stripes, ikki yoki undan ortiq jismoniy drayverlarni bitta mantiqiy diskka birlashtirgan RAID darajasi. Mantiqiy diskning hajmi massivga kiritilgan jismoniy disklar hajmlarining yig'indisiga teng. Ushbu RAID darajasida ortiqcha narsa yo'q va bitta drayverning ishdan chiqishi virtual diskdagi barcha ma'lumotlarning yo'qolishiga olib kelishi mumkin.

daraja RAID1yoki oyna, ikki yoki undan ortiq diskda ma'lumotlarning bir xil nusxalarini yaratadi. Virtual diskning o'lchami jismoniy disklarning minimal hajmidan oshmaydi. RAID1 virtual diskidagi ma'lumotlar massivdagi kamida bitta jismoniy disk ishlayotgan ekan, mavjud bo'ladi. RAID1-dan foydalanish ortiqcha miqdorni oshiradi, ammo bu juda qimmat echimdir, chunki ikki yoki undan ortiq disklar massivlarida faqat bittasining sig'imi mavjud.

daraja RAID5 yuqori narx muammosini hal qiladi. RAID5 darajasidagi massivni yaratish uchun sizga kamida 3 ta disk kerak bo'ladi va massiv bitta diskning ishdan chiqishiga chidamli. RAID5-dagi ma'lumotlar nazorat summalari bilan bloklarda saqlanadi. Ma'lumotlar disklari va nazorat summasi disklari o'rtasida qat'iy bo'linish yo'q. RAID5-dagi nazorat summalari har biri boshqa diskdan olingan N-1 bloklariga qo'llaniladigan XOR operatsiyasining natijasidir.

RAID massivlari ortiqchalikni oshirib, ortiqchalikni ta'minlasa-da, ular zaxira nusxalarini saqlash uchun mos emas.

RAID massivlarining turlari bo'yicha qisqacha ekskursiyadan so'ng siz disk massivlarini yig'ish va ulardan foydalanish imkonini beruvchi qurilmalar va dasturlarga o'tishingiz mumkin.

RAID kontrollerlarining turlari

RAID massivlarini yaratish va ulardan foydalanishning ikki yo'li mavjud: apparat va dasturiy ta'minot. Biz quyidagi echimlarni ko'rib chiqamiz:

  • Linux dasturiy ta'minoti RAID.
  • Intel® Virtual RAID protsessorida.
  • LSI MegaRAID 9460-8i.

Esda tutingki, Intel® yechimi chipsetda ishlaydi, bu apparat yoki dasturiy yechimmi degan savolni tug'diradi. Masalan, VMWare ESXi gipervizori VROC dasturiy ta'minotini ko'rib chiqadi va uni rasman qo'llab-quvvatlamaydi.

Linux dasturiy ta'minoti RAID

Linux OS oilasidagi dasturiy ta'minot RAID massivlari mijoz va server segmentlarida juda keng tarqalgan echimdir. Massiv yaratish uchun mdadm yordam dasturi va bir nechta blokli qurilmalar kerak bo'ladi. Linux dasturiy ta'minoti RAID foydalanadigan drayverlarga qo'yadigan yagona talab tizimga kirish mumkin bo'lgan blokli qurilma bo'lishidir.

Uskunalar va dasturiy ta'minot uchun xarajatlarning yo'qligi bu usulning aniq afzalligi hisoblanadi. Linux Software RAID disk massivlarini protsessor vaqti evaziga tashkil qiladi. Qo'llab-quvvatlanadigan RAID darajalari ro'yxati va joriy disk massivlarining holatini procfs ildizida joylashgan mdstat faylida ko'rish mumkin:

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

RAID darajalarini qo'llab-quvvatlash tegishli yadro modulini ulash orqali qo'shiladi, masalan:

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

Disk massivlari bilan barcha operatsiyalar mdadm buyruq qatori yordam dasturi orqali amalga oshiriladi. Disk massivi bitta buyruqda yig'iladi:

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

Ushbu buyruq bajarilgandan so'ng, tizimda sizni virtual disk sifatida ifodalovchi /dev/md0 blok qurilmasi paydo bo'ladi.

Intel® Virtual RAID protsessorida

NVMe-da RAID massivlariIntel® VROC standart apparat kaliti
Intel® Virtual RAID On CPU (VROC) - bu Intel® chipsetlari asosida RAID massivlarini yaratish uchun apparat va dasturiy ta'minot texnologiyasi. Ushbu texnologiya asosan Intel® Xeon® Scalable protsessorlarini qo'llab-quvvatlaydigan anakartlar uchun mavjud. Odatiy bo'lib, VROC mavjud emas. Uni faollashtirish uchun siz VROC apparat litsenziya kalitini o'rnatishingiz kerak.

Standart VROC litsenziyasi 0, 1 va 10 RAID darajali disk massivlarini yaratishga imkon beradi. Premium versiya ushbu ro'yxatni RAID5 qo'llab-quvvatlashi bilan kengaytiradi.

Zamonaviy anakartlardagi Intel® VROC texnologiyasi NVMe drayverlari uchun hot-swap imkoniyatini ta'minlovchi Intel® Volume Management Device (VMD) bilan birgalikda ishlaydi.

NVMe-da RAID massivlariIntel® VROC standart litsenziyasi Massivlar server ishga tushganda Setup Utility orqali sozlanadi. Yorliqda ilg'or Disk massivlarini sozlashingiz mumkin bo'lgan Intel® Virtual RAID on CPU elementi paydo bo'ladi.

NVMe-da RAID massivlariIkki diskda RAID1 massivini yaratish
Intel® VROC texnologiyasining o'ziga xos xususiyatlari bor. VROC yordamida yaratilgan disk massivlari Linux Software RAID bilan mos keladi. Bu shuni anglatadiki, massivlarning holati /proc/mdstat da kuzatilishi va mdadm orqali boshqarilishi mumkin. Ushbu "xususiyat" rasmiy ravishda Intel tomonidan qo'llab-quvvatlanadi. RAID1-ni Setup Utility-da yig'ganingizdan so'ng, siz OSda drayverlarning sinxronizatsiyasini kuzatishingiz mumkin:

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>

Esda tutingki, siz mdadm yordamida VROC-da massivlarni yig'a olmaysiz (yig'ilgan massivlar Linux SW RAID bo'ladi), lekin siz ulardagi disklarni o'zgartirishingiz va massivlarni qismlarga ajratishingiz mumkin.

LSI MegaRAID 9460-8i

NVMe-da RAID massivlariLSI MegaRAID 9460-8i kontrollerining ko'rinishi
RAID tekshirgichi mustaqil apparat yechimidir. Tekshirish moslamasi faqat unga to'g'ridan-to'g'ri ulangan drayvlar bilan ishlaydi. Ushbu RAID kontrolleri 24 tagacha NVMe drayverlarini qo'llab-quvvatlaydi. NVMe qo'llab-quvvatlashi ushbu kontrollerni boshqalardan ajratib turadi.

NVMe-da RAID massivlariUskuna boshqaruvchisining asosiy menyusi
UEFI rejimidan foydalanganda kontroller sozlamalari Setup Utility dasturiga birlashtirilgan. VROC bilan solishtirganda, apparat boshqaruvchisi menyusi ancha murakkab ko'rinadi.

NVMe-da RAID massivlariIkki diskda RAID1 yaratish
Uskuna boshqaruvchisida disk massivlarini qanday sozlashni tushuntirish juda nozik mavzu va to'liq huquqli maqolaning sababi bo'lishi mumkin. Bu erda biz faqat standart sozlamalar bilan RAID0 va RAID1 yaratish bilan cheklanamiz.

Uskuna boshqaruvchisiga ulangan disklar operatsion tizimga ko'rinmaydi. Buning o'rniga, boshqaruvchi barcha RAID massivlarini SAS drayvlari sifatida "maskalaydi". Disk massivining bir qismi bo'lmagan, lekin boshqaruvchiga ulangan drayvlar operatsion tizim tomonidan foydalanilmaydi.

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 drayverlari sifatida yashiringan bo'lishiga qaramay, NVMe massivlari PCIe tezligida ishlaydi. Biroq, bu xususiyat Legacy-da NVMe-dan yuklash imkonini beradi.

Sinov stend

Disk massivlarini tashkil qilishning har bir usuli o'zining jismoniy ijobiy va salbiy tomonlariga ega. Ammo disk massivlari bilan ishlashda ishlash farqi bormi?

Maksimal adolatga erishish uchun barcha testlar bitta serverda o'tkaziladi. Uning konfiguratsiyasi:

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

Sinov bloklari P4510 bo'lib, ularning yarmi anakartga, ikkinchi yarmi esa RAID kontrolleriga ulangan. M.2 Ubuntu 20.04 da ishlaydi va testlar fio 3.16 versiyasi yordamida amalga oshiriladi.

Viktorina

Avvalo, disk bilan ishlashda kechikishlarni tekshiramiz. Sinov bitta ipda bajariladi, blok hajmi 4 KB. Har bir test 5 daqiqa davom etadi. Ishni boshlashdan oldin, mos keladigan blok qurilmasi I/U rejalashtiruvchisi sifatida hech kimga o'rnatiladi. fio buyrug'i quyidagicha ko'rinadi:

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

Fio natijalaridan biz 99.00% clatni olamiz. Natijalar quyidagi jadvalda keltirilgan.

Tasodifiy o'qish, ms
Tasodifiy yozib olish, ms

disk
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

Ma'lumotlarga kirishda kechikishlarga qo'shimcha ravishda, men virtual drayverlarning ishlashini ko'rishni va ularni jismoniy diskning ishlashi bilan solishtirishni xohlayman. fio-ni ishga tushirish uchun buyruq:

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

Ishlash kiritish-chiqarish operatsiyalari nuqtai nazaridan o'lchanadi. Natijalar quyidagi jadvalda keltirilgan.

Tasodifiy o'qish 1 ta mavzu, IOPS
Tasodifiy yozish 1 ta mavzu, IOPS
Tasodifiy o'qilgan 128 mavzu, IOPS
Tasodifiy yozish 128 ta mavzu, IOPS

disk
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

Uskuna boshqaruvchisidan foydalanish dasturiy echimlarga nisbatan kechikish va unumdorlikni oshirishga olib kelishini tushunish oson.

xulosa

Ikki diskdan disk massivlarini yaratish uchun apparat echimlaridan foydalanish mantiqsiz ko'rinadi. Biroq, RAID kontrollerlaridan foydalanish oqlangan vazifalar mavjud. NVMe interfeysini qo'llab-quvvatlaydigan kontrollerlarning paydo bo'lishi bilan foydalanuvchilar o'z loyihalarida tezroq SSD-lardan foydalanish imkoniyatiga ega.

NVMe-da RAID massivlari

So'rovda faqat ro'yxatdan o'tgan foydalanuvchilar ishtirok etishlari mumkin. tizimga kirishiltimos.

RAID yechimlaridan foydalanasizmi?

  • 29,6%Ha, apparat yechimlari32

  • 50,0%Ha, dasturiy yechimlar54

  • 16,7%№18

  • 3,7%RAID kerak emas4

108 foydalanuvchi ovoz berdi. 14 nafar foydalanuvchi betaraf qolgan.

Manba: www.habr.com

a Izoh qo'shish