Redondance

Tags :
  • MON
  • vert
  • débutant
  • devops
  • serveur
  • RAID
  • ZFS
Auteur :
  • Valentin Billa
2024-2025

Comparaison des technologies RAID et ZFS pour le stockage et la redondance de données

Prérequis

  • Compréhension des bases du stockage (disques, partitions, systèmes de fichiers)
  • Vocabulaire courant lié à la redondance et aux sauvegardes

Objectifs

Récemment le GInfo a acquis de nouveaux serveurs, j'aide l'association dans l'élaboration de configurations de nos périphériques de stockage dans l'objectif de mettre à disposition plusieurs dizaines de tera de stockage aux associations étudiantes sans pour autant leur faire prendre le risque de perdre leurs données !

Dans ce MON, je souhaite donc explorer les différentes technologies RAID ainsi que ZFS, afin de mieux comprendre leurs avantages, limites et applications dans la gestion de stockage de données.

RAID est omniprésent dans les systèmes de stockage critiques, tandis que ZFS, avec son approche moderne, est devenu un incontournable (entre autre recommandé à l'association par des membres de la DSI de l'école) pour garantir intégrité et flexibilité dans le stockage.

Note

Mise en garde : Dans ce MON, lorsque nous parlons de "sécurité des données", nous nous référons exclusivement à la protection contre la perte de données. L'encryption peut toujours être ajoutée par-dessus les solutions que je présenterais.

Même si votre serveur utilise des solutions comme RAID ou ZFS pour garantir la redondance des données, cela ne remplace pas des sauvegardes régulières. Ces solutions protègent principalement contre les défaillances matérielles, mais elles ne couvrent pas les erreurs humaines, les attaques logicielles ou les catastrophes physiques (incendie, inondation, etc.). Avoir des sauvegardes (backups) reste crucial pour assurer une protection complète. Une recommendation généralement donnée est la règle des 3-2-1


J'ai tout d'abord orienté mes recherches vers le RAID traditionnel puisque c'est ce que nous faisions déjà.

Qu'est-ce que RAID ?

Le RAID (Redundant Array of Independent Disks) est une technologie permettant de combiner plusieurs disques physiques pour offrir des bénéfices en termes de :

Information

RAID peut être implémenté via hardware (contrôleurs RAID dédiés) ou software (géré par le système d'exploitation).

RAID Hardware vs Software

Information

Les cartes RAID matérielles haut de gamme incluent une mémoire cache avec batterie pour améliorer les performances d'écriture et sécuriser les données en cas de coupure de courant.

Pour les nouveaux serveurs du GInfo, des Dell R740XD contiennent des cartes RAID matérielles de qualité ce qui rendrait dommage l'utilisation de RAID logiciel.

Les niveaux de RAID les plus courants

RAID 0 : Striping



+-----+-----+-----+-----+
| D1a | D2a | D3a | D4a |   => Données écrites en parallèle
| D1b | D2b | D3b | D4b |
+-----+-----+-----+-----+


Information

RAID 0 est principalement utilisé pour les besoins en vitesse pure où la sécurité des données est secondaire (ex : cache temporaire, montage vidéo).

RAID 1 : Mirroring



+-----+      +-----+
| D1  |  =   | D1  |   => Les deux disques contiennent exactement les mêmes données.
| D2  |      | D2  |
+-----+      +-----+


RAID 5 : Striping avec parité



+-----+-----+-----+
| D1  | D2  | P1  |  => Parité sur le 3ᵉ disque
| P2  | D3  | D4  |
+-----+-----+-----+


RAID 6 : Striping avec double parité

Combinaisons : RAID 10

En RAID, une combinaison comme RAID 10 se lit comme du RAID 1 + 0, il faut lire de gauche à droite ie. Un RAID 0 de disques virtuels en RAID 1.



RAID 10 = RAID 1 (mirroring) + RAID 0 (striping)
+-----+-----+      +-----+-----+
| D1  | D2  |  =>  | D1  | D2  |
+-----+-----+      +-----+-----+


Information

RAID 10 est souvent considéré comme la meilleure solution pour un compromis performances/redondance, malgré son coût élevé.


Je suis tombé au cours de mes recherches sur des gens mentionnant ZFS, j'ai donc décidé d'investiguer dans cette direction.

ZFS : une alternative au RAID

Le ZFS (Zettabyte File System) est à la fois un système de fichiers et un gestionnaire de volumes logiques conçu pour garantir la résilience des données, la flexibilité de gestion et des performances élevées. Développé initialement par Sun Microsystems, ZFS offre une approche intégrée pour gérer la redondance, la correction d'erreurs, les snapshots et la compression des données.

Information

ZFS gère lui-même la redondance (RAID-Z) et l'intégrité des données. Il n'a donc pas besoin d'un contrôleur RAID matériel.

Les concepts clés de ZFS

ZFS repose sur une hiérarchie de composants logiques et physiques qui permettent une gestion souple et redondante des données.

Pool de stockage (zpool)

Un zpool est l'unité de base de gestion du stockage dans ZFS. Il regroupe un ensemble de disques physiques pour former une seule entité logique.

Un zpool est configuré pour offrir la redondance, la performance ou une combinaison des deux, selon la disposition des disques qu'il contient.

Les données et l'espace disponible sont automatiquement équilibrés dans le pool, ce qui élimine la gestion traditionnelle des partitions.

Virtual Devices (vdevs)

Un vdev est une abstraction logique qui regroupe un ou plusieurs disques physiques. Plusieurs types de vdevs peuvent être utilisés pour structurer un zpool :

Certains disques peuvent être dédiés à des fonctions plus spécifiques, L2ARC (Cache de niveau 2) pour accélérer les lectures fréquentes, ou SLOG (Separate Intent Log) pour améliorer les performances des écritures synchrones. Ces fonctionnalités permettent d'optimiser les performances globales du système ZFS en tirant parti de disques rapides (comme des SSD ou NVMe) en complément des disques principaux (HDD ou autres).

Note

Il est difficile d'évaluer si une configuration ZFS va être bénéfique et les impacts sur la perfomance de notre système sans tout simplement la tester. En effet en fonction des besoins,

Système de fichiers et datasets

Une fois un zpool configuré, des datasets peuvent être créés pour organiser et gérer les données.

Pourquoi utiliser ZFS ?


Solution adoptée

Pour l'instant voici la solution que nous avons décidé d'adopter avec le GInfo pour stocker nos données :

Système d'exploitation (Ubuntu 24.04):

Utilisation des NVMe RAID 1 restants (optionel) :

Pool ZFS sur HDD : décision en partie influencée par un article nommé "ZFS you should use mirror vdevs not raidz"

Backups :

Bibliographie

Communautés Reddit intéressantes

Note

Évidemment, il faut noter que Reddit est un réseau social, qui vient avec ses lots de bêtises et/ou mésinformations, mais j'ai remarqué que ces communautés étaient plutôt bien modérées et une bonne source d'inspiration pour des questions qui peuvent revenir souvent et auxquelles il serait difficile de répondre sans avoir tout simplement tenté la solution.