NVMe-də RAID massivləri

NVMe-də RAID massivləri
Bu yazıda RAID massivlərini təşkil etməyin müxtəlif yolları haqqında danışacağıq, həmçinin NVMe dəstəyi ilə ilk aparat RAID nəzarətçilərindən birini göstərəcəyik.

RAID texnologiyasının bütün müxtəlif tətbiqləri server seqmentində mövcuddur. Müştəri seqmentində yalnız iki diskdə RAID0 və ya RAID1 proqram təminatı ən çox istifadə olunur.

Bu məqalədə RAID texnologiyasının qısa icmalı, üç müxtəlif alətdən istifadə edərək RAID massivlərinin yaradılması haqqında qısa təlimat və hər bir metoddan istifadə edərək virtual disk performansının müqayisəsi təqdim olunacaq.

RAID nədir?

Wikipedia RAID texnologiyasının hərtərəfli tərifini verir:

RAID (İngilis dili Müstəqil Disklərin Ehtiyatsız Arrayı - müstəqil (müstəqil) disklərin lazımsız massivi) - nasazlığa dözümlülüyü və performansı artırmaq üçün bir neçə fiziki disk cihazını məntiqi modulda birləşdirmək üçün məlumatların virtuallaşdırılması texnologiyası.

Disk massivlərinin konfiqurasiyası və istifadə olunan texnologiyalar seçilmişlərdən asılıdır RAID səviyyəsi. RAID səviyyələri spesifikasiyada standartlaşdırılıb Ümumi RAID Disk Məlumat Formatı. O, bir çox RAID səviyyələrini təsvir edir, lakin ən çox yayılmışları RAID0, RAID1, RAID5 və RAID6-dır.

RAID0Və ya Parçanın zolaqları, iki və ya daha çox fiziki diski bir məntiqi diskdə birləşdirən RAID səviyyəsidir. Məntiqi diskin həcmi massivə daxil olan fiziki disklərin həcmlərinin cəminə bərabərdir. Bu RAID səviyyəsində artıqlıq yoxdur və bir sürücünün uğursuzluğu virtual diskdəki bütün məlumatların itirilməsi ilə nəticələnə bilər.

Səviyyə RAID1Və ya Güzgü, iki və ya daha çox diskdə verilənlərin eyni nüsxələrini yaradır. Virtual diskin ölçüsü fiziki disklərin minimum ölçüsündən çox deyil. RAID1 virtual diskindəki məlumatlar massivdən ən azı bir fiziki disk işlək olduğu müddətdə mövcud olacaq. RAID1-dən istifadə ehtiyat əlavə edir, lakin kifayət qədər bahalı bir həlldir, çünki iki və ya daha çox diskdən ibarət massivlərdə yalnız birinin tutumu mövcuddur.

Səviyyə RAID5 yüksək qiymət problemini həll edir. RAID5 səviyyəli bir massiv yaratmaq üçün ən azı 3 disk lazımdır və massiv bir diskin sıradan çıxmasına davamlıdır. RAID5-də məlumatlar yoxlama məbləğləri olan bloklarda saxlanılır. Məlumat diskləri və yoxlama diskləri arasında ciddi bölgü yoxdur. RAID5-də yoxlama məbləğləri hər biri fərqli diskdən götürülmüş N-1 bloklarına tətbiq edilən XOR əməliyyatının nəticəsidir.

RAID massivləri artıqlığı artırsa da, ehtiyat nüsxələrini saxlamaq üçün uyğun deyil.

RAID massivlərinin növlərinə qısa ekskursiya etdikdən sonra siz disk massivlərini yığmağa və istifadə etməyə imkan verən qurğulara və proqramlara keçə bilərsiniz.

RAID nəzarətçilərinin növləri

RAID massivlərini yaratmağın və istifadə etməyin iki yolu var: hardware və proqram təminatı. Aşağıdakı həll yollarını nəzərdən keçirəcəyik:

  • Linux Proqram təminatı RAID.
  • CPU-da Intel® Virtual RAID.
  • LSI MegaRAID 9460-8i.

Qeyd edək ki, Intel® həlli çipset üzərində işləyir və bu, onun hardware və ya proqram təminatı həlli olması sualını doğurur. Məsələn, VMWare ESXi hipervizoru VROC proqram təminatı hesab edir və onu rəsmi olaraq dəstəkləmir.

Linux Proqram təminatı RAID

Linux OS ailəsindəki proqram təminatı RAID massivləri həm müştəri, həm də server seqmentlərində kifayət qədər ümumi həlldir. Massiv yaratmaq üçün sizə lazım olan tək şey mdadm yardım proqramı və bir neçə blok cihazıdır. Linux Software RAID-in istifadə etdiyi sürücülərə qoyduğu yeganə tələb sistem üçün əlçatan blok cihazı olmasıdır.

Avadanlıq və proqram təminatı üçün xərclərin olmaması bu metodun açıq üstünlüyüdür. Linux Software RAID, CPU vaxtının bahasına disk massivlərini təşkil edir. Dəstəklənən RAID səviyyələrinin siyahısına və cari disk massivlərinin statusuna procfs kökündə yerləşən mdstat faylında baxmaq olar:

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

RAID səviyyələri üçün dəstək müvafiq kernel modulunu birləşdirərək əlavə edilir, məsələn:

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

Disk massivləri ilə bütün əməliyyatlar mdadm komanda xətti yardım proqramı vasitəsilə həyata keçirilir. Disk massivi bir komandada yığılır:

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

Bu əmri yerinə yetirdikdən sonra sistemdə virtual diski təmsil edən /dev/md0 blok cihazı görünəcək.

CPU-da Intel® Virtual RAID

NVMe-də RAID massivləriIntel® VROC Standart Avadanlıq Açarı
Intel® Virtual RAID On CPU (VROC) Intel® çipsetləri əsasında RAID massivləri yaratmaq üçün aparat və proqram təminatı texnologiyasıdır. Bu texnologiya əsasən Intel® Xeon® Scalable prosessorlarını dəstəkləyən ana platalar üçün mövcuddur. Varsayılan olaraq, VROC mövcud deyil. Onu aktivləşdirmək üçün siz VROC hardware lisenziya açarını quraşdırmalısınız.

Standart VROC lisenziyası 0, 1 və 10 RAID səviyyəli disk massivləri yaratmağa imkan verir. Premium versiya bu siyahını RAID5 dəstəyi ilə genişləndirir.

Müasir anakartlarda Intel® VROC texnologiyası NVMe diskləri üçün isti dəyişdirmə qabiliyyətini təmin edən Intel® Həcmi İdarəetmə Cihazı (VMD) ilə birlikdə işləyir.

NVMe-də RAID massivləriIntel® VROC Standart Lisenziyası Server işə salındıqda massivlər Setup Utility vasitəsilə konfiqurasiya edilir. Nişanda Qabaqcıl Disk massivlərini konfiqurasiya edə biləcəyiniz CPU-da Intel® Virtual RAID elementi görünür.

NVMe-də RAID massivləriİki sürücüdə RAID1 massivinin yaradılması
Intel® VROC texnologiyasının öz aceləri var. VROC istifadə edərək qurulan disk massivləri Linux Software RAID ilə uyğun gəlir. Bu o deməkdir ki, massivlərin vəziyyətini /proc/mdstat-da izləmək və mdadm vasitəsilə idarə etmək olar. Bu "xüsusiyyət" rəsmi olaraq Intel tərəfindən dəstəklənir. RAID1-i Setup Utility-də yığdıqdan sonra OS-də sürücülərin sinxronizasiyasını müşahidə edə bilərsiniz:

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>

Qeyd edək ki, siz mdadm istifadə edərək VROC-da massivləri yığa bilməzsiniz (yığılmış massivlər Linux SW RAID olacaq), lakin siz onlarda diskləri dəyişdirə və massivləri sökə bilərsiniz.

LSI MegaRAID 9460-8i

NVMe-də RAID massivləriLSI MegaRAID 9460-8i nəzarətçisinin görünüşü
RAID nəzarətçisi müstəqil bir aparat həllidir. Nəzarətçi yalnız ona birbaşa qoşulmuş sürücülərlə işləyir. Bu RAID nəzarətçisi 24-ə qədər NVMe sürücüsünü dəstəkləyir. Bu nəzarətçini bir çox digərlərindən fərqləndirən NVMe dəstəyidir.

NVMe-də RAID massivləriAparat nəzarətçisinin əsas menyusu
UEFI rejimindən istifadə edərkən nəzarətçi parametrləri Setup Utility proqramına inteqrasiya olunur. VROC ilə müqayisədə aparat nəzarətçi menyusu daha mürəkkəb görünür.

NVMe-də RAID massivləriİki diskdə RAID1 yaradılması
Bir aparat nəzarətçisində disk massivlərinin necə konfiqurasiya olunacağını izah etmək olduqca incə bir mövzudur və tam hüquqlu bir məqalənin səbəbi ola bilər. Burada sadəcə olaraq standart parametrlərlə RAID0 və RAID1 yaratmaqla məhdudlaşacağıq.

Aparat nəzarətçisinə qoşulmuş disklər əməliyyat sisteminə görünmür. Bunun əvəzinə nəzarətçi bütün RAID massivlərini SAS diskləri kimi “maskalayır”. Nəzarətçiyə qoşulmuş, lakin disk massivinin bir hissəsi olmayan disklər OS tərəfindən əlçatan olmayacaq.

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 diskləri kimi maskalanmasına baxmayaraq, NVMe massivləri PCIe sürətlərində işləyəcək. Bununla belə, bu xüsusiyyət Legacy-də NVMe-dən yükləməyə imkan verir.

Test stendi

Disk massivlərini təşkil etməyin hər bir metodunun öz fiziki üstünlükləri və mənfi cəhətləri var. Bəs disk massivləri ilə işləyərkən performans fərqi varmı?

Maksimum ədalətliliyə nail olmaq üçün bütün testlər eyni serverdə aparılacaq. Onun konfiqurasiyası:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC Standart Avadanlıq Açarı;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Test vahidləri P4510-dur, yarısı ana plataya, digər yarısı isə RAID nəzarətçisinə bağlıdır. M.2 Ubuntu 20.04 ilə işləyir və sınaqlar fio 3.16 versiyasından istifadə etməklə həyata keçiriləcək.

Test

Əvvəlcə disklə işləyərkən gecikmələri yoxlayaq. Test bir ipdə aparılır, blokun ölçüsü 4 KB-dir. Hər imtahan 5 dəqiqə davam edir. Başlamazdan əvvəl müvafiq blok cihazı I/O planlaşdırıcısı olaraq heç biri kimi təyin edilir. fio əmri belə görünür:

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

Fio nəticələrindən biz 99.00% klat alırıq. Nəticələr aşağıdakı cədvəldə göstərilmişdir.

Təsadüfi oxu, μs
Təsadüfi qeyd, μs

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

Məlumatlara giriş zamanı gecikmələrə əlavə olaraq, virtual sürücülərin işini görmək və onları fiziki diskin performansı ilə müqayisə etmək istərdim. fio-nu işə salmaq əmri:

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

Performans I/O əməliyyatları baxımından ölçülür. Nəticələr aşağıdakı cədvəldə təqdim olunur.

Təsadüfi oxunan 1 mövzu, IOPS
Təsadüfi yazma 1 mövzu, IOPS
Təsadüfi oxunan 128 mövzu, IOPS
Təsadüfi yazın 128 mövzu, 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

Aparat nəzarətçisindən istifadənin proqram həlləri ilə müqayisədə gecikmənin artmasına və performansın artmasına səbəb olduğunu görmək asandır.

Nəticə

İki diskdən disk massivləri yaratmaq üçün aparat həllərindən istifadə irrasional görünür. Bununla belə, RAID nəzarətçilərinin istifadəsinin əsaslandırıldığı vəzifələr var. NVMe interfeysini dəstəkləyən nəzarətçilərin meydana çıxması ilə istifadəçilər öz layihələrində daha sürətli SSD-lərdən istifadə etmək imkanı əldə edirlər.

NVMe-də RAID massivləri

Sorğuda yalnız qeydiyyatdan keçmiş istifadəçilər iştirak edə bilər. Daxil olunxahiş edirəm.

RAID həllərindən istifadə edirsiniz?

  • 29,6%Bəli, aparat həlləri32

  • 50,0%Bəli, proqram həlləri54

  • 16,7%№18

  • 3,7%RAID tələb olunmur4

108 istifadəçi səs verib. 14 istifadəçi bitərəf qalıb.

Mənbə: www.habr.com

Добавить комментарий