Baies RAID sur NVMe

Baies RAID sur NVMe
Dans cet article, nous parlerons des différentes manières d'organiser les matrices RAID et présenterons également l'un des premiers contrôleurs RAID matériels prenant en charge NVMe.

Toute la variété des applications de la technologie RAID se retrouve dans le segment des serveurs. Dans le segment client, seul le logiciel RAID0 ou RAID1 sur deux disques est le plus souvent utilisé.

Cet article fournira un bref aperçu de la technologie RAID, un bref didacticiel sur la façon de créer des matrices RAID à l'aide de trois outils différents et une comparaison des performances des disques virtuels à l'aide de chaque méthode.

Qu'est-ce que RAID?

Wikipedia donne une définition complète de la technologie RAID :

RAID (En anglais Réseau redondant de disques indépendants - matrice redondante de disques indépendants (indépendants)) - technologie de virtualisation des données permettant de combiner plusieurs périphériques de disques physiques dans un module logique pour augmenter la tolérance aux pannes et les performances.

La configuration des baies de disques et les technologies utilisées dépendent des Niveau RAID. Les niveaux RAID sont standardisés dans la spécification Format de données de disque RAID commun. Il décrit de nombreux niveaux RAID, mais les plus courants sont RAID0, RAID1, RAID5 et RAID6.

RAID0Ou Bandes, est un niveau RAID qui combine deux disques physiques ou plus en un seul disque logique. Le volume du disque logique est égal à la somme des volumes des disques physiques inclus dans la baie. Il n'y a pas de redondance à ce niveau RAID et la panne d'un disque peut entraîner la perte de toutes les données du disque virtuel.

Niveau RAID1Ou Miroir, crée des copies identiques de données sur deux disques ou plus. La taille du disque virtuel ne dépasse pas la taille minimale des disques physiques. Les données sur le disque virtuel RAID1 seront disponibles tant qu'au moins un disque physique de la matrice est opérationnel. L'utilisation de RAID1 ajoute de la redondance, mais constitue une solution plutôt coûteuse, car dans les matrices de deux disques ou plus, la capacité d'un seul est disponible.

Niveau RAID5 résout le problème du coût élevé. Pour créer une matrice avec un niveau RAID5, vous avez besoin d'au moins 3 disques et la matrice résiste à la panne d'un disque. Les données dans RAID5 sont stockées dans des blocs avec des sommes de contrôle. Il n’existe pas de division stricte entre les disques de données et les disques de somme de contrôle. Les sommes de contrôle dans RAID5 sont le résultat d'une opération XOR appliquée à N-1 blocs, chacun provenant d'un disque différent.

Bien que les matrices RAID augmentent la redondance et assurent la redondance, elles ne conviennent pas au stockage de sauvegardes.

Après une brève excursion dans les types de matrices RAID, vous pouvez passer aux appareils et programmes qui vous permettent d'assembler et d'utiliser des matrices de disques.

Types de contrôleurs RAID

Il existe deux manières de créer et d'utiliser des matrices RAID : matérielle et logicielle. Nous considérerons les solutions suivantes :

  • RAID logiciel Linux.
  • RAID virtuel Intel® sur processeur.
  • LSI MegaRAID 9460-8i.

A noter que la solution Intel® fonctionne sur un chipset, ce qui pose la question de savoir s'il s'agit d'une solution matérielle ou logicielle. Par exemple, l'hyperviseur VMWare ESXi prend en compte le logiciel VROC et ne le prend pas officiellement en charge.

RAID logiciel Linux

Les matrices RAID logicielles de la famille des systèmes d'exploitation Linux constituent une solution assez courante dans les segments client et serveur. Tout ce dont vous avez besoin pour créer un tableau est l'utilitaire mdadm et quelques périphériques bloc. La seule exigence que Linux Software RAID impose aux disques qu'il utilise est d'être un périphérique bloc accessible au système.

L'absence de coûts d'équipement et de logiciels est un avantage évident de cette méthode. Linux Software RAID organise les baies de disques au détriment du temps CPU. La liste des niveaux RAID pris en charge et l'état des baies de disques actuelles peuvent être consultées dans le fichier mdstat, situé à la racine procfs :

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

La prise en charge des niveaux RAID est ajoutée en connectant le module de noyau approprié, par exemple :

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

Toutes les opérations avec les baies de disques sont effectuées via l'utilitaire de ligne de commande mdadm. La baie de disques est assemblée en une seule commande :

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

Après avoir exécuté cette commande, le périphérique bloc /dev/md0 apparaîtra dans le système, qui vous représente comme un disque virtuel.

RAID virtuel Intel® sur processeur

Baies RAID sur NVMeClé matérielle standard Intel® VROC
Intel® Virtual RAID On CPU (VROC) est une technologie matérielle et logicielle permettant de créer des matrices RAID basées sur des chipsets Intel®. Cette technologie est disponible principalement pour les cartes mères prenant en charge les processeurs Intel® Xeon® Scalable. Par défaut, VROC n'est pas disponible. Pour l'activer, vous devez installer une clé de licence matérielle VROC.

La licence VROC standard vous permet de créer des baies de disques avec des niveaux RAID 0, 1 et 10. La version premium élargit cette liste avec la prise en charge RAID5.

La technologie Intel® VROC sur les cartes mères modernes fonctionne en conjonction avec le périphérique de gestion de volume Intel® (VMD), qui offre une capacité de remplacement à chaud pour les disques NVMe.

Baies RAID sur NVMeLicence standard Intel® VROC Les baies sont configurées via l'utilitaire de configuration au démarrage du serveur. Sur l'onglet Avancé L'élément Intel® Virtual RAID sur CPU apparaît, où vous pouvez configurer des matrices de disques.

Baies RAID sur NVMeCréation d'une matrice RAID1 sur deux disques
La technologie Intel® VROC a ses propres atouts dans sa manche. Les baies de disques construites à l'aide de VROC sont compatibles avec le logiciel RAID Linux. Cela signifie que l'état des tableaux peut être surveillé dans /proc/mdstat et administré via mdadm. Cette « fonctionnalité » est officiellement prise en charge par Intel. Après avoir assemblé RAID1 dans l'utilitaire de configuration, vous pouvez observer la synchronisation des disques dans le système d'exploitation :

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>

Notez que vous ne pouvez pas assembler de matrices sur VROC à l'aide de mdadm (les matrices assemblées seront Linux SW RAID), mais vous pouvez y changer de disque et démonter les matrices.

LSI MegaRAID 9460-8i

Baies RAID sur NVMeApparition du contrôleur LSI MegaRAID 9460-8i
Le contrôleur RAID est une solution matérielle autonome. Le contrôleur ne fonctionne qu'avec des lecteurs qui y sont directement connectés. Ce contrôleur RAID prend en charge jusqu'à 24 disques NVMe. C'est la prise en charge NVMe qui distingue ce contrôleur de beaucoup d'autres.

Baies RAID sur NVMeMenu principal du contrôleur matériel
Lors de l'utilisation du mode UEFI, les paramètres du contrôleur sont intégrés dans l'utilitaire de configuration. Comparé à VROC, le menu du contrôleur matériel semble beaucoup plus complexe.

Baies RAID sur NVMeCréation de RAID1 sur deux disques
Expliquer comment configurer des baies de disques sur un contrôleur matériel est un sujet plutôt délicat et pourrait faire l'objet d'un article à part entière. Ici, nous nous limiterons simplement à créer RAID0 et RAID1 avec les paramètres par défaut.

Les disques connectés au contrôleur matériel ne sont pas visibles par le système d'exploitation. Au lieu de cela, le contrôleur « masque » toutes les matrices RAID en tant que disques SAS. Les disques connectés au contrôleur, mais ne faisant pas partie de la baie de disques, ne seront pas accessibles par le système d'exploitation.

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.

Bien qu'elles soient déguisées en disques SAS, les baies NVMe fonctionneront à des vitesses PCIe. Cependant, cette fonctionnalité vous permet de démarrer à partir de NVMe dans Legacy.

banc d'essai

Chaque méthode d'organisation des baies de disques présente ses propres avantages et inconvénients physiques. Mais y a-t-il une différence de performances lorsque l’on travaille avec des baies de disques ?

Pour atteindre une équité maximale, tous les tests seront effectués sur le même serveur. Sa configuration :

  • 2x Intel® Xeon® 6240 ;
  • 12x DDR4-2666 16 Go ;
  • LSI MegaRAID 9460-8i ;
  • Clé matérielle standard Intel® VROC ;
  • 4x SSD Intel® DC P4510 U.2 2 To ;
  • 1x Samsung 970 EVO Plus M.2 500 Go.

Les unités de test sont des P4510, dont une moitié est connectée à la carte mère et l'autre moitié au contrôleur RAID. Le M.2 exécute Ubuntu 20.04 et les tests seront exécutés avec la version fio 3.16.

Test

Tout d'abord, vérifions les délais lors du travail avec le disque. Le test est exécuté dans un seul thread, la taille du bloc est de 4 Ko. Chaque test dure 5 minutes. Avant de démarrer, le périphérique de bloc correspondant est défini sur aucun en tant que planificateur d'E/S. La commande fio ressemble à ceci :

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

À partir des résultats fio, nous prenons clat 99.00 %. Les résultats sont présentés dans le tableau ci-dessous.

Lecture aléatoire, μs
Enregistrement aléatoire, μs

disque
112
78

RAID logiciel Linux, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

RAID logiciel Linux, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

En plus des délais d'accès aux données, j'aimerais voir les performances des disques virtuels et les comparer avec les performances d'un disque physique. Commande pour exécuter fio :

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

Les performances sont mesurées en termes d’opérations d’E/S. Les résultats sont présentés dans le tableau ci-dessous.

Lecture aléatoire 1 thread, IOPS
Écriture aléatoire 1 thread, IOPS
Lecture aléatoire 128 threads, IOPS
Écriture aléatoire 128 threads, IOPS

disque
11300
40700
453000
105000

RAID logiciel Linux, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

RAID logiciel Linux, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

Il est facile de constater que l’utilisation d’un contrôleur matériel entraîne une latence accrue et une baisse des performances par rapport aux solutions logicielles.

Conclusion

Utiliser des solutions matérielles pour créer des baies de disques à partir de deux disques semble irrationnel. Il existe cependant des tâches pour lesquelles l'utilisation de contrôleurs RAID est justifiée. Avec l'avènement des contrôleurs prenant en charge l'interface NVMe, les utilisateurs ont la possibilité d'utiliser des SSD plus rapides dans leurs projets.

Baies RAID sur NVMe

Seuls les utilisateurs enregistrés peuvent participer à l'enquête. se connecters'il te plait.

Utilisez-vous des solutions RAID ?

  • 29,6%Oui, des solutions matérielles32

  • 50,0%Oui, des solutions logicielles54

  • 16,7%Non18

  • 3,7%Aucun RAID nécessaire4

108 utilisateurs ont voté. 14 utilisateurs se sont abstenus.

Source: habr.com

Ajouter un commentaire