Matrius RAID a NVMe

Matrius RAID a NVMe
En aquest article parlarem de diferents maneres d'organitzar matrius RAID, i també mostrarem un dels primers controladors RAID de maquinari amb suport NVMe.

Tota la varietat d'aplicacions de la tecnologia RAID es troba en el segment de servidors. En el segment de client, només s'utilitza el programari RAID0 o RAID1 en dos discs.

Aquest article oferirà una breu visió general de la tecnologia RAID, un breu tutorial sobre com crear matrius RAID amb tres eines diferents i una comparació del rendiment del disc virtual amb cada mètode.

Què és RAID?

Wikipedia ofereix una definició completa de la tecnologia RAID:

RAID (Anglès Matriu redundant de discos independents - Matriu redundant de discos independents (independents) - Tecnologia de virtualització de dades per combinar diversos dispositius de disc físic en un mòdul lògic per augmentar la tolerància a errors i el rendiment.

La configuració de les matrius de discs i les tecnologies utilitzades depenen del seleccionat Nivell RAID. Els nivells RAID estan estandarditzats a l'especificació Format comú de dades de disc RAID. Descriu molts nivells de RAID, però els més comuns són RAID0, RAID1, RAID5 i RAID6.

RAID0O ratlles, és un nivell RAID que combina dues o més unitats físiques en una unitat lògica. El volum del disc lògic és igual a la suma dels volums dels discs físics inclosos a la matriu. No hi ha redundància en aquest nivell de RAID i la fallada d'una unitat pot provocar la pèrdua de totes les dades del disc virtual.

Nivell RAID1O Mirall, crea còpies idèntiques de dades en dos o més discos. La mida del disc virtual no supera la mida mínima dels discs físics. Les dades del disc virtual RAID1 estaran disponibles sempre que almenys un disc físic de la matriu estigui operatiu. L'ús de RAID1 afegeix redundància, però és una solució bastant cara, ja que en matrius de dos o més discs només hi ha disponible la capacitat d'un.

Nivell RAID5 resol el problema de l'alt cost. Per crear una matriu amb nivell RAID5, necessiteu almenys 3 discs i la matriu és resistent a la fallada d'un disc. Les dades del RAID5 s'emmagatzemen en blocs amb sumes de control. No hi ha una divisió estricta entre els discos de dades i els discos de suma de verificació. Les sumes de comprovació en RAID5 són el resultat d'una operació XOR aplicada a blocs N-1, cadascun extret d'un disc diferent.

Tot i que les matrius RAID augmenten la redundància i proporcionen redundància, no són adequades per emmagatzemar còpies de seguretat.

Després d'una breu excursió als tipus de matrius RAID, podeu passar als dispositius i programes que us permeten muntar i utilitzar matrius de discs.

Tipus de controladors RAID

Hi ha dues maneres de crear i utilitzar matrius RAID: maquinari i programari. Considerarem les següents solucions:

  • RAID de programari Linux.
  • Intel® Virtual RAID a la CPU.
  • LSI MegaRAID 9460-8i.

Tingueu en compte que la solució Intel® s'executa en un conjunt de xips, la qual cosa planteja la qüestió de si és una solució de maquinari o programari. Per exemple, l'hipervisor VMWare ESXi considera el programari VROC i no l'admet oficialment.

RAID de programari Linux

Les matrius RAID de programari de la família de sistemes operatius Linux són una solució força comuna tant en els segments de client com de servidor. Tot el que necessiteu per crear una matriu és la utilitat mdadm i uns quants dispositius de bloc. L'únic requisit que el RAID de programari Linux col·loca a les unitats que utilitza és ser un dispositiu de bloc accessible al sistema.

L'absència de costos d'equips i programari és un avantatge evident d'aquest mètode. Linux Software RAID organitza les matrius de discs a costa del temps de la CPU. La llista de nivells RAID admesos i l'estat de les matrius de discs actuals es poden veure al fitxer mdstat, que es troba a l'arrel procfs:

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

El suport per als nivells RAID s'afegeix connectant el mòdul del nucli adequat, per exemple:

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

Totes les operacions amb matrius de discs es realitzen mitjançant la utilitat de línia d'ordres mdadm. La matriu de discs està muntada en una ordre:

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

Després d'executar aquesta ordre, el dispositiu de bloc /dev/md0 apareixerà al sistema, que us representa com un disc virtual.

Intel® Virtual RAID a la CPU

Matrius RAID a NVMeClau de maquinari estàndard Intel® VROC
Intel® Virtual RAID On CPU (VROC) és una tecnologia de maquinari i programari per crear matrius RAID basades en chipsets Intel®. Aquesta tecnologia està disponible principalment per a plaques base que admeten processadors escalables Intel® Xeon®. De manera predeterminada, VROC no està disponible. Per activar-lo, heu d'instal·lar una clau de llicència de maquinari VROC.

La llicència estàndard VROC us permet crear matrius de discs amb nivells RAID 0, 1 i 10. La versió premium amplia aquesta llista amb suport RAID5.

La tecnologia Intel® VROC a les plaques base modernes funciona juntament amb el dispositiu Intel® de gestió de volums (VMD), que ofereix la capacitat d'intercanvi en calent per a les unitats NVMe.

Matrius RAID a NVMeLlicència estàndard Intel® VROC Les matrius es configuren mitjançant la utilitat de configuració quan s'inicia el servidor. A la pestanya Avançat Apareix l'element Intel® Virtual RAID on CPU, on podeu configurar matrius de discs.

Matrius RAID a NVMeCreació d'una matriu RAID1 en dues unitats
La tecnologia Intel® VROC té els seus propis ass a la màniga. Les matrius de discos construïdes amb VROC són compatibles amb Linux Software RAID. Això vol dir que l'estat de les matrius es pot controlar a /proc/mdstat i administrar-se mitjançant mdadm. Aquesta "funció" és compatible oficialment per Intel. Després de muntar RAID1 a la utilitat de configuració, podeu observar la sincronització de les unitats al sistema operatiu:

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>

Tingueu en compte que no podeu muntar matrius al VROC mitjançant mdadm (les matrius muntades seran Linux SW RAID), però podeu canviar-hi els discs i desmuntar-les.

LSI MegaRAID 9460-8i

Matrius RAID a NVMeAspecte del controlador LSI MegaRAID 9460-8i
El controlador RAID és una solució de maquinari autònoma. El controlador només funciona amb unitats connectades directament a ell. Aquest controlador RAID admet fins a 24 unitats NVMe. És el suport NVMe el que diferencia aquest controlador de molts altres.

Matrius RAID a NVMeMenú principal del controlador de maquinari
Quan s'utilitza el mode UEFI, la configuració del controlador s'integra a la utilitat de configuració. En comparació amb VROC, el menú del controlador de maquinari sembla molt més complex.

Matrius RAID a NVMeCreació de RAID1 en dos discs
Explicar com configurar les matrius de discs en un controlador de maquinari és un tema bastant delicat i podria ser el motiu d'un article complet. Aquí simplement ens limitarem a crear RAID0 i RAID1 amb la configuració predeterminada.

Els discs connectats al controlador de maquinari no són visibles per al sistema operatiu. En canvi, el controlador "emmascara" totes les matrius RAID com a unitats SAS. El sistema operatiu no podrà accedir a les unitats connectades al controlador, però que no formen part de la matriu de discs.

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.

Tot i estar disfressats com a unitats SAS, les matrius NVMe funcionaran a velocitats PCIe. Tanmateix, aquesta característica us permet arrencar des de NVMe a Legacy.

banc de proves

Cada mètode d'organització de matrius de discs té els seus propis avantatges i inconvenients físics. Però hi ha alguna diferència de rendiment quan es treballa amb matrius de discs?

Per aconseguir la màxima equitat, totes les proves es realitzaran al mateix servidor. La seva configuració:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Clau de maquinari estàndard Intel® VROC;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1 Samsung 970 EVO Plus M.2 de 500 GB.

Les unitats de prova són P4510, la meitat de les quals està connectada a la placa base i l'altra meitat al controlador RAID. El M.2 està executant Ubuntu 20.04 i les proves s'executaran amb la versió fio 3.16.

Proves

Primer de tot, comprovem els retards en treballar amb el disc. La prova s'executa en un fil, la mida del bloc és de 4 KB. Cada prova té una durada de 5 minuts. Abans de començar, el dispositiu de bloc corresponent s'estableix en cap com a planificador d'E/S. L'ordre fio té aquest aspecte:

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

Dels resultats fio prenem el clat 99.00%. Els resultats es mostren a la taula següent.

Lectura aleatòria, μs
Enregistrament aleatori, μs

Conduir
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

A més dels retards en l'accés a les dades, m'agradaria veure el rendiment de les unitats virtuals i comparar-los amb el rendiment d'un disc físic. Ordre per executar fio:

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

El rendiment es mesura en termes d'operacions d'E/S. Els resultats es presenten a la taula següent.

Lectura aleatòria 1 fil, IOPS
Escriptura aleatòria 1 fil, IOPS
Lectura aleatòria de 128 fils, IOPS
Escriptura aleatòria de 128 fils, IOPS

Conduir
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

És fàcil veure que l'ús d'un controlador de maquinari augmenta la latència i un èxit de rendiment en comparació amb les solucions de programari.

Conclusió

L'ús de solucions de maquinari per crear matrius de discs a partir de dos discs sembla irracional. Tanmateix, hi ha tasques on es justifica l'ús de controladors RAID. Amb l'arribada dels controladors que admeten la interfície NVMe, els usuaris tenen l'oportunitat d'utilitzar SSD més ràpids en els seus projectes.

Matrius RAID a NVMe

Només els usuaris registrats poden participar en l'enquesta. Inicia sessiósi us plau.

Esteu utilitzant solucions RAID?

  • 29,6%Sí, solucions de maquinari32

  • 50,0%Sí, solucions de programari54

  • 16,7%No18

  • 3,7%No cal RAID4

Han votat 108 usuaris. 14 usuaris es van abstenir.

Font: www.habr.com

Afegeix comentari