RAID nizovi na NVMe

RAID nizovi na NVMe
U ovom članku ćemo predstaviti različite metode organizacije RAID nizova, kao i pokazati jedan od prvih hardverskih RAID kontrolera sa podrškom za NVMe.

Sve raznolikosti primene RAID tehnologije može se naći u serverskom segmentu. U klijentskom segmentu najčešće se koristi isključivo softverski RAID0 ili RAID1 na dva diska.

U ovom članku biće kratak pregled RAID tehnologije, mala instrukcija za kreiranje RAID nizova pomoću tri različita alata i poređenje performansi virtualnih diskova pri korišćenju svake od metoda.

Šta je RAID?

Vikipedija daje iscrpnu definiciju RAID tehnologije:

RAID (eng. Redundant Array of Independent Disks — redundantni niz nezavisnih (samostalnih) diskova) — tehnologija virtualizacije podataka za objedinjavanje više fizičkih diskovnih uređaja u logički modul radi povećanja otpornosti na greške i performansi.

Konfiguracija diskovnih nizova i korišćene tehnologije zavise od odabranog RAID nivoa (RAID level). RAID nivoi su standardizovani u specifikaciji Common RAID Disk Data Format. Ona opisuje brojne RAID nivoe, ali se za najčešće smatraju RAID0, RAID1, RAID5 i RAID6.

RAID0, ili Stripes, — to je RAID nivo koji kombinuje dva ili više fizičkih diskova u jedan logički. Zapremina logičkog diska pritom je jednaka zbiru zapremina fizičkih diskova koji čine niz. Na ovom nivou RAID nema redundancije, a kvar jednog diska može dovesti do gubitka svih podataka na virtualnom disku.

Nivo RAID1, ili Mirror, stvara identične kopije podataka na dva ili više diskova. Zapremina virtualnog diska pritom ne prelazi zapreminu najmanjeg od fizičkih diskova. Podaci na virtualnom disku RAID1 biće dostupni sve dok barem jedan fizički disk iz niza radi. Korišćenje RAID1 dodaje redundanciju, ali je prilično skupo rešenje, jer u nizovima od dva ili više diskova dostupna je zapremina samo jednog.

Nivo RAID5 rješava problem troškova. Za stvaranje niza s RAID5 razinom potrebno je najmanje 3 diska, pri čemu je niz otporan na kvar jednog diska. Podaci u RAID5 pohranjuju se u blokovima s kontrolnim zbrojevima. Ne postoje stroge podjele između diskova s podacima i diskova s kontrolnim zbrojevima. Kontrolni zbrojevi u RAID5 su rezultat XOR operacije primijenjene na N-1 blokova, od kojih je svaki preuzet s vlastitog diska.

Iako RAID nizovi povećavaju redundanciju i pružaju rezervu, nisu prikladni za pohranu sigurnosnih kopija.

Nakon kratkog pregleda vrsta RAID nizova, možemo preći na uređaje i programe koji omogućuju izradu i korištenje diskovnih nizova.

Vrste RAID kontrolera

Postoje dva načina za stvaranje i korištenje RAID nizova: hardverski i softverski. Razmotrit ćemo sljedeća rješenja:

  • Linux Software RAID.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Napominjemo da rješenje Intel® radi na čipsetu, zbog čega se postavlja pitanje je li to hardversko ili softversko rješenje. Na primjer, hipervizor VMWare ESXi smatra VROC softverskim i ne podržava ga službeno.

Linux Software RAID

Softverski RAID nizovi u obitelji operacijskih sustava Linux predstavljaju prilično rasprostranjeno rješenje, kako u klijent segmentu, tako i u poslužiteljskom. Sve što vam treba za stvaranje niza je alat mdadm i nekoliko blokovnih uređaja. Jedini zahtjev koji Linux Software RAID postavlja za korištene uređaje za pohranu je da budu blokovni uređaji dostupni sustavu.

Nedostatak troškova za opremu i softver je očita prednost ovog načina. Linux Software RAID organizira diskovne nizove uz cijenu procesorskog vremena. Popis podržanih razina RAID-a i stanje trenutnih diskovnih nizova možete vidjeti u datoteci mdstat koja se nalazi u korijenu procfs:

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

Podrška za razine RAID-a dodaje se povezivanjem odgovarajućeg modula jezgre, na primjer:

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

Sve operacije s diskovnim nizovima provode se putem alatne linije mdadm. Skupina diskovnog niza obrađuje se u jednoj naredbi:

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

Nakon izvršavanja ove naredbe, u sustavu će se pojaviti blok uređaj /dev/md0, koji predstavlja virtualni disk.

Intel® Virtual RAID On CPU

RAID nizovi na NVMeIntel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) je softversko-hardverska tehnologija za stvaranje RAID polja na osnovi Intel® čipseta. Ova tehnologija je dostupna uglavnom za matične ploče koje podržavaju Intel® Xeon® Scalable procesore. VROC nije dostupan prema zadanim postavkama. Za njegovu aktivaciju potrebno je instalirati hardverski licencni ključ VROC.

Standardna VROC licenca omogućuje stvaranje diskovnih polja na razinama RAID 0, 1 i 10. Premijum verzija proširuje ovaj popis podrškom za RAID5.

Tehnologija Intel® VROC na suvremenim matičnim pločama radi zajedno s Intel® Volume Management Device (VMD), koja omogućava vruću zamjenu za uređaje s NVMe sučeljem.

RAID nizovi na NVMeIntel® VROC sa standardnom licencom Postavke polja izvršavaju se putem Setup Utility prilikom pokretanja poslužitelja. Na kartici Advanced pojavljuje se stavka Intel® Virtual RAID on CPU, u kojoj se mogu postaviti diskovna polja.

RAID nizovi na NVMeStvaranje RAID1 polja na dva uređaja
Tehnologija Intel® VROC ima svoje "asove u rukavu". Diskovna polja koja su sastavljena pomoću VROC kompatibilna su s Linux Software RAID-om. To znači da se stanje polja može pratiti u /proc/mdstat, a administrirati putem mdadm. Ova "funkcionalnost" službeno podržava Intel. Nakon sastavljanja RAID1 u Setup Utility, može se pratiti sinkronizacija uređaja 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>

Napominjemo da preko mdadm nije moguće sastaviti polja na VROC (sastavljena polja će biti Linux SW RAID), ali je moguće mijenjati diskove u njima i rasparavati polja.

LSI MegaRAID 9460-8i

RAID nizovi na NVMeIzgled kontrolera LSI MegaRAID 9460-8i
RAID kontroler je samostalno hardversko rješenje. Kontroler radi samo s uređajima koji su direktno na njega spojeni. Ovaj RAID kontroler podržava do 24 uređaja s NVMe sučeljem. Upravo podrška za NVMe izdvaja ovaj kontroler iz mnoštva drugih.

RAID nizovi na NVMeGlavni izbornik hardverskog kontrolera
Korištenjem UEFI režima, postavke kontrolera integriraju se u Setup Utility. U usporedbi s VROC-om, izbornik hardverskog kontrolera izgleda znatno složenije.

RAID nizovi na NVMeKreiranje RAID1 na dva diska
Objašnjenje postavki diskovnih polja na hardverskom kontroleru prilično je delikatna tema i mogla bi biti osnova za detaljan članak. Ovdje ćemo se samo ograničiti na stvaranje RAID0 i RAID1 s postavkama prema zadanim vrijednostima.

Diskovi povezani na hardverski kontroler nisu vidljivi operativnom sustavu. Umjesto toga, kontroler „maskira“ sve RAID-polja kao SAS-uređaje. Uređaji povezani na kontroler, ali koji nisu uključeni u diskovno polje, neće biti dostupni operativnom sustavu.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (lokalna izrada)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== POČETAK INFORMACIJSKOG ODJELJKA ===
Proizvođač:               AVAGO
Proizvod:              MR9460-8i
Verzija:             5.14
Usklađenost:           SPC-3
Korisni kapacitet:        1,999,844,147,200 bajtova [1.99 TB]
Logička veličina bloka:   512 bajtova
Brzina rotacije:        Solid State Device
Logička identifikacija jedinice:      0x000000000000000000000000000000
Serijski broj:        00000000000000000000000000000000
Vrsta uređaja:          disk
Lokalno vrijeme:        Ned Oct 11 16:27:59 2020 MSK
SMART podrška:     Nedostupna - uređaj nema SMART mogućnost.

Unatoč maskiranju kao SAS-uređaji, polja s NVMe radit će brzinom PCIe. Međutim, ova osobina dopušta pokretanje s NVMe-a u Legacy načinu.

Testni sto

Svaka od metoda organiziranja diskovnih polja ima svoje fizičke prednosti i nedostatke. No, postoji li razlika u performansama pri radu s diskovnim poljima?

Za postizanje maksimalne pravednosti svi testovi će se provesti na istom serveru. Njegova konfiguracija je:

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

Testirani su P4510, od kojih je jedna polovica povezana na matičnu ploču, a druga - na RAID kontroler. Na M.2 je instaliran operativni sustav Ubuntu 20.04, a testovi će se izvoditi pomoću fio verzije 3.16.

Testiranje

Prvo ćemo provjeriti latencije tijekom rada s diskom. Test se izvodi u jednom niti, veličina bloka je 4 KB. Svaki test traje 5 minuta. Prije početka za odgovarajući blok uređaj postavlja se „none“ kao I/O planer. Komanda fio izgleda ovako:

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

Iz rezultata fio uzimamo clat 99.00%. Rezultati su prikazani u tablici u nastavku.

Nasumično čitanje, μs
Nasumično pisanje, μ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

Osim latencija pri pristupu podacima, želimo vidjeti performanse virtualnih spremnika i usporediti ih s performansama fizičkog diska. Komanda za pokretanje fio:

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

Performanse se mjere u broju ulazno/izlaznih operacija. Rezultati su prikazani u tablici u nastavku.

Nasumično čitanje 1 nit, IOPS
Nasumično pisanje 1 nit, IOPS
Nasumično čitanje 128 niti, IOPS
Nasumično pisanje 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 primijetiti da korištenje hardverskog kontrolera uzrokuje povećanje latencija i pad performansi u usporedbi s softverskim rješenjima.

Zaključak

Korištenje hardverskih rješenja za stvaranje diskovnih nizova od dva diska izgleda nerazmjerno. Ipak, postoje zadaci gdje je korištenje RAID kontrolera opravdano. Pojavom kontrolera koji podržavaju NVMe sučelje, korisnici dobivaju mogućnost korištenja bržih SSD-a u svojim projektima.

RAID nizovi na NVMe

Samo registrirani korisnici mogu sudjelovati u anketi. Prijavite se, molimo.

Koristite RAID rješenja?

  • 29,6%Da, hardverska rješenja32

  • 50,0%Da, softverska rješenja54

  • 16,7%Ne18

  • 3,7%RAID nije potreban4

Glasovalo je 108 korisnika. Suzdržalo se 14 korisnika.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster