RAID nizovi na NVMe

RAID nizovi na NVMe
U ovom članku ćemo govoriti o različitim načinima organiziranja RAID nizova, a također ćemo prikazati jedan od prvih hardverskih RAID kontrolera sa NVMe podrškom.

Sva raznolikost primjena RAID tehnologije nalazi se u segmentu servera. U segmentu klijenata najčešće se koristi samo softverski RAID0 ili RAID1 na dva diska.

Ovaj članak će pružiti kratak pregled RAID tehnologije, kratak vodič o tome kako kreirati RAID nizove pomoću tri različita alata i usporedbu performansi virtualnog diska korištenjem svake metode.

Šta je RAID?

Wikipedia daje sveobuhvatnu definiciju RAID tehnologije:

RAID (Eng. Redundantni niz nezavisnih diskova - redundantni niz nezavisnih (nezavisnih) diskova) - tehnologija virtuelizacije podataka za kombinovanje nekoliko fizičkih disk uređaja u logički modul radi povećanja tolerancije grešaka i performansi.

Konfiguracija diskovnih nizova i korištene tehnologije zavise od odabranog RAID nivo. RAID nivoi su standardizovani u specifikaciji Uobičajeni format podataka RAID diska. Opisuje mnoge RAID nivoe, ali najčešći su RAID0, RAID1, RAID5 i RAID6.

RAID0ili Stripes, je RAID nivo koji kombinuje dva ili više fizičkih diskova u jedan logički disk. Volumen logičkog diska jednak je zbroju volumena fizičkih diskova uključenih u niz. Ne postoji redundantnost na ovom RAID nivou, a kvar jednog diska može dovesti do gubitka svih podataka na virtuelnom disku.

nivo RAID1ili Ogledalo, kreira identične kopije podataka na dva ili više diskova. Veličina virtualnog diska ne prelazi minimalnu veličinu fizičkih diskova. Podaci na RAID1 virtuelnom disku biće dostupni sve dok je barem jedan fizički disk iz niza operativan. Upotreba RAID1 dodaje redundantnost, ali je prilično skupo rješenje, budući da je u nizovima od dva ili više diskova dostupan kapacitet samo jednog.

nivo RAID5 rješava problem visoke cijene. Za kreiranje niza sa RAID5 nivoom potrebna su vam najmanje 3 diska, a niz je otporan na kvar jednog diska. Podaci u RAID5 se pohranjuju u blokove sa kontrolnim zbrojima. Ne postoji stroga podjela između diskova s ​​podacima i diskova sa kontrolnim zbrojem. Kontrolne sume u RAID5 rezultat su operacije XOR primijenjene na N-1 blokove, svaki preuzet sa drugog diska.

Iako RAID nizovi povećavaju redundantnost i pružaju redundantnost, oni nisu prikladni za pohranjivanje rezervnih kopija.

Nakon kratkog izleta u tipove RAID nizova, možete prijeći na uređaje i programe koji vam omogućavaju sastavljanje i korištenje diskovnih nizova.

Vrste RAID kontrolera

Postoje dva načina za kreiranje i korištenje RAID nizova: hardverski i softverski. Razmotrićemo sledeća rešenja:

  • Linux softverski RAID.
  • Intel® virtuelni RAID na CPU-u.
  • LSI MegaRAID 9460-8i.

Imajte na umu da Intel® rešenje radi na čipsetu, što postavlja pitanje da li je to hardversko ili softversko rešenje. Na primjer, hipervizor VMWare ESXi uzima u obzir VROC softver i ne podržava ga službeno.

Linux softverski RAID

Softverski RAID nizovi u Linux OS porodici su prilično uobičajeno rješenje i u segmentu klijenta i servera. Sve što vam je potrebno za kreiranje niza je mdadm uslužni program i nekoliko blok uređaja. Jedini uslov koji Linux softverski RAID postavlja na diskove koje koristi je da bude blok uređaj dostupan sistemu.

Odsustvo troškova za opremu i softver je očigledna prednost ove metode. Linux softverski RAID organizira nizove diskova po cijeni CPU vremena. Spisak podržanih nivoa RAID-a i status trenutnih diskova mogu se videti u datoteci mdstat, koja se nalazi u korenu procfs-a:

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

Podrška za RAID nivoe se dodaje povezivanjem odgovarajućeg modula kernela, na primjer:

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

Sve operacije sa diskovnim nizovima se izvode preko uslužnog programa komandne linije mdadm. Niz diskova se sastavlja u jednoj naredbi:

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

Nakon izvršenja ove komande, u sistemu će se pojaviti blok uređaj /dev/md0 koji vas predstavlja kao virtuelni disk.

Intel® virtuelni RAID na CPU-u

RAID nizovi na NVMeIntel® VROC standardni hardverski ključ
Intel® Virtual RAID On CPU (VROC) je hardverska i softverska tehnologija za kreiranje RAID nizova zasnovanih na Intel® skupovima čipova. Ova tehnologija je prvenstveno dostupna za matične ploče koje podržavaju Intel® Xeon® Scalable procesore. Podrazumevano, VROC nije dostupan. Da biste ga aktivirali, morate instalirati VROC hardverski licencni ključ.

Standardna VROC licenca vam omogućava da kreirate nizove diskova sa 0, 1 i 10 RAID nivoa. Premijum verzija proširuje ovu listu podrškom za RAID5.

Intel® VROC tehnologija na modernim matičnim pločama radi zajedno sa Intel® uređajem za upravljanje volumenom (VMD), koji pruža mogućnost hot-swap-a za NVMe diskove.

RAID nizovi na NVMeIntel® VROC standardna licenca Nizovi se konfigurišu kroz Setup Utility kada se server pokrene. Na kartici Napredan Pojavljuje se Intel® virtuelni RAID na CPU-u, gde možete da konfigurišete nizove diskova.

RAID nizovi na NVMeKreiranje RAID1 niza na dva diska
Intel® VROC tehnologija ima svoje asove u rukavu. Nizovi diskova napravljeni pomoću VROC-a su kompatibilni sa Linux softverskim RAID-om. To znači da se stanje nizova može pratiti u /proc/mdstat i administrirati preko mdadm-a. Ovu "karakteristiku" službeno podržava Intel. Nakon sastavljanja RAID1 u uslužnom programu za podešavanje, možete pratiti sinhronizaciju diskova u OS-u:

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>

Imajte na umu da ne možete sastaviti nizove na VROC koristeći mdadm (sastavljeni nizovi će biti Linux SW RAID), ali možete promijeniti diskove u njima i rastaviti nizove.

LSI MegaRAID 9460-8i

RAID nizovi na NVMeIzgled LSI MegaRAID 9460-8i kontrolera
RAID kontroler je samostalno hardversko rješenje. Kontroler radi samo sa drajvovima koji su direktno povezani na njega. Ovaj RAID kontroler podržava do 24 NVMe diska. NVMe podrška je ono što ovaj kontroler izdvaja od mnogih drugih.

RAID nizovi na NVMeGlavni meni hardverskog kontrolera
Kada koristite UEFI način rada, postavke kontrolera su integrirane u Setup Utility. U poređenju sa VROC-om, meni hardverskog kontrolera izgleda mnogo složenije.

RAID nizovi na NVMeKreiranje RAID1 na dva diska
Objašnjenje kako konfigurirati nizove diskova na hardverskom kontroleru je prilično delikatna tema i mogla bi biti razlog za cjeloviti članak. Ovdje ćemo se jednostavno ograničiti na kreiranje RAID0 i RAID1 sa zadanim postavkama.

Diskovi povezani na hardverski kontroler nisu vidljivi za operativni sistem. Umjesto toga, kontroler "maskira" sve RAID nizove kao SAS diskove. Operativni sistem neće moći da pristupi diskovima koji su povezani na kontroler, ali nisu deo niza diskova.

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.

Uprkos tome što su maskirani kao SAS diskovi, NVMe nizovi će raditi na PCIe brzinama. Međutim, ova funkcija vam omogućava da pokrenete sistem sa NVMe u Legacy.

Test stalak

Svaka metoda organiziranja diskovnih nizova ima svoje fizičke prednosti i nedostatke. Ali postoji li razlika u performansama kada radite sa diskovnim nizovima?

Kako bi se postigla maksimalna pravednost, svi testovi će se provoditi na istom serveru. Njegova konfiguracija:

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

Jedinice za testiranje su P4510, od kojih je jedna polovina povezana na matičnu ploču, a druga polovina na RAID kontroler. M.2 pokreće Ubuntu 20.04 i testovi će se izvoditi koristeći fio verziju 3.16.

Testiranje

Prije svega, provjerimo kašnjenja pri radu s diskom. Test se izvodi u jednoj niti, veličina bloka je 4 KB. Svaki test traje 5 minuta. Prije pokretanja, odgovarajući blok uređaj je postavljen na none kao I/O planer. Naredba fio izgleda ovako:

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

Od fio rezultata uzimamo klat 99.00%. Rezultati su prikazani u tabeli ispod.

Nasumično očitavanje, μs
Nasumično snimanje, μ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

Pored kašnjenja pri pristupu podacima, želeo bih da vidim performanse virtuelnih diskova i uporedim ih sa performansama fizičkog diska. Naredba za pokretanje fio:

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

Performanse se mjere u smislu I/O operacija. Rezultati su prikazani u tabeli ispod.

Nasumično pročitana 1 nit, IOPS
Nasumično upisivanje 1 niti, IOPS
Nasumično pročitano 128 niti, IOPS
Nasumično upisivanje 128 niti, 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

Lako je uočiti da korištenje hardverskog kontrolera rezultira povećanom latencijom i smanjenjem performansi u poređenju sa softverskim rješenjima.

zaključak

Korištenje hardverskih rješenja za kreiranje nizova diskova od dva diska izgleda neracionalno. Međutim, postoje zadaci kod kojih je upotreba RAID kontrolera opravdana. Sa pojavom kontrolera koji podržavaju NVMe interfejs, korisnici imaju priliku da koriste brže SSD-ove u svojim projektima.

RAID nizovi na NVMe

Samo registrovani korisnici mogu učestvovati u anketi. Prijavite semolim.

Koristite li RAID rješenja?

  • 29,6%Da, hardverska rješenja32

  • 50,0%Da, softverska rješenja54

  • 16,7%No18

  • 3,7%Nije potreban RAID4

Glasalo je 108 korisnika. Uzdržano je bilo 14 korisnika.

izvor: www.habr.com

Dodajte komentar