RAID polja na NVMe

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

Sva raznolikost primjene RAID tehnologije nalazi se u segmentu poslužitelja. U klijentskom segmentu najčešće se koristi isključivo softverski RAID0 ili RAID1 na dva diska.

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

Što je RAID?

Wikipedia daje opsežnu definiciju RAID tehnologije:

RAID (Hrvatski Redundantni niz neovisnih diskova - redundantni niz nezavisnih (neovisnih) diskova) - tehnologija virtualizacije podataka za kombiniranje nekoliko fizičkih diskovnih uređaja u logički modul za povećanje tolerancije na pogreške i performanse.

Konfiguracija diskovnih polja i korištene tehnologije ovise o odabranom RAID razina. RAID razine su standardizirane u specifikaciji Uobičajeni format podataka diska RAID. Opisuje mnoge razine RAID-a, ali najčešći su RAID0, RAID1, RAID5 i RAID6.

RAID0Ili Stripes, je RAID razina koja kombinira dva ili više fizičkih pogona u jedan logički pogon. Volumen logičkog diska jednak je zbroju volumena fizičkih diskova uključenih u polje. Na ovoj razini RAID-a nema redundancije, a kvar jednog pogona može rezultirati gubitkom svih podataka na virtualnom disku.

Nivo RAID1Ili Ogledalo, stvara 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 virtualnom disku bit će dostupni sve dok barem jedan fizički disk iz polja radi. Korištenje RAID1 dodaje redundanciju, ali je prilično skupo rješenje, budući da je u nizu od dva ili više diskova dostupan kapacitet samo jednog.

Nivo RAID5 rješava problem visokih troškova. Za izradu niza s RAID5 razinom potrebna su vam najmanje 3 diska, a niz je otporan na kvar jednog diska. Podaci u RAID5 pohranjuju se u blokove s kontrolnim zbrojevima. Ne postoji stroga podjela između podatkovnih diskova i diskova s ​​kontrolnim zbrojem. Kontrolne sume u RAID5 rezultat su operacije XOR primijenjene na N-1 blokova, od kojih je svaki preuzet s drugog diska.

Iako RAID nizovi povećavaju zalihost i pružaju zalihost, nisu prikladni za pohranjivanje sigurnosnih kopija.

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

Vrste RAID kontrolera

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

  • RAID softvera za Linux.
  • Intel® Virtual RAID na procesoru.
  • LSI MegaRAID 9460-8i.

Imajte na umu da Intel® rješenje radi na čipsetu, što postavlja pitanje radi li se o hardverskom ili softverskom rješenju. Na primjer, hipervizor VMWare ESXi uzima u obzir VROC softver i službeno ga ne podržava.

RAID softvera za Linux

Softverski RAID nizovi u obitelji Linux OS-a prilično su često rješenje kako u klijentskom tako iu poslužiteljskom segmentu. Sve što trebate za stvaranje niza je uslužni program mdadm i nekoliko blok uređaja. Jedini uvjet koji Linux Software RAID postavlja na pogone koje koristi je da budu blok uređaj dostupan sustavu.

Odsutnost troškova za opremu i softver očita je prednost ove metode. Linux softverski RAID organizira diskovne nizove po cijeni CPU vremena. Popis podržanih RAID razina i status trenutnih diskovnih nizova možete vidjeti u mdstat datoteci koja se nalazi u procfs rootu:

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

Podrška za RAID razine dodaje se povezivanjem odgovarajućeg kernel modula, 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 s diskovnim poljima izvode se putem uslužnog programa naredbenog retka mdadm. Niz diskova se sastavlja jednom naredbom:

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

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

Intel® Virtual RAID na procesoru

RAID polja na NVMeStandardni hardverski ključ Intel® VROC
Intel® Virtual RAID On CPU (VROC) je hardverska i softverska tehnologija za stvaranje RAID nizova temeljenih na Intel® skupovima čipova. Ova je tehnologija prvenstveno dostupna za matične ploče koje podržavaju Intel® Xeon® Scalable procesore. Prema zadanim postavkama, VROC nije dostupan. Da biste ga aktivirali, morate instalirati VROC hardverski licencni ključ.

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

Intel® VROC tehnologija na modernim matičnim pločama radi u sprezi s Intel® Volume Management Device (VMD), koji pruža mogućnost zamjene bez isključivanja za NVMe pogone.

RAID polja na NVMeIntel® VROC standardna licenca Nizovi se konfiguriraju kroz Setup Utility kada se poslužitelj podigne. Na kartici napredan Pojavljuje se stavka Intel® Virtual RAID na CPU-u, gdje možete konfigurirati nizove diskova.

RAID polja na NVMeStvaranje RAID1 polja na dva diska
Intel® VROC tehnologija ima svoje aseve u rukavu. Disk nizovi izgrađeni pomoću VROC-a kompatibilni su s Linux softverskim RAID-om. To znači da se stanje nizova može pratiti u /proc/mdstat i upravljati putem mdadm. Ovu "značajku" službeno podržava Intel. Nakon sastavljanja RAID1 u Setup Utility-u, možete promatrati sinkronizaciju pogona 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 pomoću mdadm (sklopljeni nizovi će biti Linux SW RAID), ali možete promijeniti diskove u njima i rastaviti nizove.

LSI MegaRAID 9460-8i

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

RAID polja na NVMeGlavni izbornik hardverskog kontrolera
Kada koristite UEFI način rada, postavke kontrolera integrirane su u Setup Utility. U usporedbi s VROC-om, izbornik hardverskog upravljača izgleda puno složenije.

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

Diskovi povezani s hardverskim kontrolerom nisu vidljivi operativnom sustavu. Umjesto toga, kontroler "maskira" sve RAID nizove kao SAS pogone. Pogoni povezani s kontrolerom, ali koji nisu dio diskovne matrice, neće biti dostupni OS-u.

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.

Unatoč tome što su prerušeni u SAS pogone, NVMe polja će raditi na PCIe brzinama. Međutim, ova vam značajka omogućuje pokretanje s NVMe u Legacy.

Ispitno postolje

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

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

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

Testne jedinice su P4510 od kojih je jedna polovica spojena na matičnu ploču, a druga polovica na RAID kontroler. M.2 pokreće Ubuntu 20.04, a testovi će se izvoditi pomoću fio verzije 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 nijedan 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 klasu 99.00%. Rezultati su prikazani u tablici ispod.

Nasumično očitanje, μs
Slučajno 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

Osim kašnjenja pri pristupu podacima, želio bih vidjeti performanse virtualnih pogona i usporediti ih s 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 tablici ispod.

Nasumično čitanje 1 niti, IOPS
Nasumično pisanje 1 niti, 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 vidjeti da korištenje hardverskog kontrolera rezultira povećanom latencijom i smanjenjem performansi u usporedbi sa softverskim rješenjima.

Zaključak

Korištenje hardverskih rješenja za stvaranje diskovnih polja od dva diska izgleda neracionalno. Međutim, postoje zadaci gdje je uporaba RAID kontrolera opravdana. Pojavom kontrolera koji podržavaju NVMe sučelje, korisnici imaju priliku koristiti brže SSD-ove u svojim projektima.

RAID polja na NVMe

U anketi mogu sudjelovati samo registrirani korisnici. Prijaviti se, molim.

Koristite li RAID rješenja?

  • 29,6%Da, hardverska rješenja32

  • 50,0%Da, softverska rješenja54

  • 16,7%br.18

  • 3,7%Nije potreban RAID4

Glasovalo je 108 korisnika. Suzdržano je bilo 14 korisnika.

Izvor: www.habr.com

Dodajte komentar