Haute disponibilité du stockage

De Travail-Ivan 2

Haute disponibilité du stockage

Introduction

La disponibilité des données est un élément crucial dans une infrastructure haute disponibilité (HA). La perte ou l'indisponibilité des données peut avoir des impacts majeurs sur les services. Pour assurer cette disponibilité, plusieurs solutions peuvent être mises en place :

  • Serveur SAN (Storage Area Network)
  • Données répliquées
  • Stockage distribué (DFS)

Solutions de stockage haute disponibilité

Le SAN (Storage Area Network)

Description

Le SAN est une solution de stockage réseau privilégiée en entreprise. Elle consiste en une architecture dédiée au stockage, séparée du réseau de données standard.

Composants requis

  • Serveurs SAN dédiés
  • Réseau de stockage spécialisé
  • Switches Fibre Channel (pour SAN FC)
  • Switches Ethernet haute performance (pour FCoE)

Types de réseaux SAN

Technologies SAN disponibles
Type Description Avantages Inconvénients
SAN FC Réseau Fibre Channel dédié
  • Performances élevées
  • Faible latence
  • Protocole optimisé pour le stockage
  • Coût élevé
  • Expertise spécifique requise
  • Infrastructure dédiée
SAN FCoE Fibre Channel over Ethernet
  • Utilise l'infrastructure Ethernet existante
  • Moins coûteux que le FC pur
  • Performances légèrement inférieures au FC
  • Nécessite des switches compatibles DCB

Données répliquées

Vue d'ensemble

La réplication des données peut s'effectuer à différents niveaux :

Niveau bloc

  • Réplication au plus bas niveau
  • Synchronisation des blocs de données
  • Performances optimales
  • Exemple : DRBD

Niveau fichier

  • Réplication via des outils comme SyncThing ou cron
  • Plus simple à mettre en œuvre
  • Performances moindres
  • Adapté pour des besoins moins critiques

DRBD (Distributed Replicated Block Device)

Présentation

DRBD est une solution de réplication de données bloc pour Linux, maintenue par l'entreprise Linbit. Elle permet une réplication en temps réel des données entre plusieurs serveurs.

Caractéristiques principales

  • Réplication en temps réel
  • Transparence pour les applications
  • Support de plusieurs modes de réplication
  • Intégration avec les solutions de clustering

Modes de fonctionnement

Mode Single-Primary (Master/Slave)
  • Un seul nœud actif en écriture
  • Réplication vers le(s) nœud(s) secondaire(s)
  • Compatible avec les systèmes de fichiers standard
  • Cas d'usage : applications avec un seul point d'écriture
Mode Dual-Primary (Multi-Master)
  • Plusieurs nœuds actifs simultanément
  • Écriture possible depuis tous les nœuds
  • Nécessite un système de fichiers cluster
  • Cas d'usage : applications distribuées, load balancing

Protocoles de synchronisation

Protocoles de réplication DRBD
Protocole Type Description Cas d'usage
Protocol A Asynchrone
  • Notification immédiate après écriture locale
  • Réplication en arrière-plan
  • Risque de perte de données en cas de crash
  • Réplication longue distance
  • Priorité aux performances
Protocol B Semi-synchrone
  • Notification après écriture locale et envoi
  • Attente de l'accusé de réception
  • Compromis performance/sécurité
  • Réplication moyenne distance
Protocol C Synchrone
  • Notification après écriture sur tous les nœuds
  • Garantie de cohérence totale
  • Données critiques
  • Haute disponibilité locale

Installation et configuration de DRBD

Prérequis système

  • Linux avec support DRBD (kernel)
  • Disques ou partitions dédiés
  • Réseau suffisamment dimensionné
  • Ports réseau accessibles (défaut: 7788)

Installation des paquets

Sur chaque nœud du cluster :

# apt install drbd-utils    # Installation des utilitaires DRBD
# modprobe drbd            # Chargement du module kernel DRBD

Configuration

Préparation

Sauvegarde et création du fichier de configuration :

# cp /etc/drbd.conf /etc/drbd.conf_origin    # Sauvegarde de la configuration par défaut
# cat /dev/null > /etc/drbd.conf             # Création d'un fichier vide
# vi /etc/drbd.conf                          # Édition de la nouvelle configuration

Configuration détaillée

Configuration type avec explications :

global { 
    usage-count no;    # Désactive les statistiques d'utilisation
}

common { 
    syncer { 
        rate 100M;    # Limite la bande passante de synchronisation
    } 
}

resource r0 {    # Définition de la ressource
    protocol C;    # Protocole synchrone
    
    startup {
        wfc-timeout 15;         # Timeout d'attente de connexion (wait-for-connection)
        degr-wfc-timeout 60;    # Timeout en mode dégradé
    }
    
    net {
        cram-hmac-alg sha1;          # Algorithme d'authentification
        shared-secret "secret";       # Clé secrète partagée
    }
    
    on web1 {    # Configuration du premier nœud
        device /dev/drbd0;           # Périphérique DRBD
        disk /dev/sdb;               # Disque physique source
        address 192.168.33.1:7788;   # Adresse IP:port
        meta-disk internal;          # Stockage des métadonnées
    }
    
    on web2 {    # Configuration du second nœud
        device /dev/drbd0;
        disk /dev/sdb;
        address 192.168.33.2:7788;
        meta-disk internal;
    }
}

Initialisation et démarrage

Première configuration

Séquence d'initialisation sur le nœud primaire :

# systemctl stop drbd                # Arrêt du service si actif
# drbdadm create-md r0              # Initialisation des métadonnées
# drbdadm up r0                     # Activation de la ressource
# drbdadm primary r0 --force        # Définition du nœud primaire
# systemctl start drbd              # Démarrage du service

Sur le nœud secondaire :

# systemctl stop drbd
# drbdadm create-md r0
# drbdadm up r0
# systemctl start drbd

Vérification et surveillance

Vérification de l'état

# cat /proc/drbd

Interprétation des états :

États DRBD importants
État Description Action requise
cs:Connected Nœuds connectés Normal - Aucune action
cs:WFConnection En attente de connexion Vérifier le réseau et le service
cs:StandAlone Pas de connexion Vérifier la configuration et le réseau
ds:UpToDate/UpToDate Données synchronisées Normal - Aucune action
ds:Inconsistent Données non synchronisées Attendre la fin de la synchronisation

Création et montage du système de fichiers

Sur le nœud primaire uniquement :

# mkfs.ext4 /dev/drbd0              # Création du système de fichiers
# mkdir /data                        # Création du point de montage
# mount /dev/drbd0 /data            # Montage du volume DRBD

Procédures de maintenance

Basculement planifié

Sur le nœud primaire actuel :

# umount /data                      # Démontage du système de fichiers
# drbdadm secondary r0              # Passage en mode secondaire

Sur le nouveau nœud primaire :

# drbdadm primary r0                # Passage en mode primaire
# mount /dev/drbd0 /data            # Montage du système de fichiers

Maintenance des disques

Pour remplacer un disque défectueux :

# drbdadm disconnect r0             # Déconnexion de la ressource
# drbdadm detach r0                 # Détachement du disque
# ... (remplacement physique) ...
# drbdadm attach r0                 # Rattachement du nouveau disque
# drbdadm connect r0                # Reconnexion de la ressource

Systèmes de fichiers distribués (DFS)

Alternatives à DRBD

GlusterFS
  • Système de fichiers distribué scale-out
  • Architecture sans point unique de défaillance
  • Support de différents types de volumes
  • Intégration native avec les applications
Ceph
  • Stockage distribué object, block et fichier
  • Haute scalabilité
  • Auto-guérison et auto-gestion
  • Support des snapshots et de la réplication

Bonnes pratiques

  • Utiliser un réseau dédié pour la réplication
  • Monitorer régulièrement l'état de synchronisation
  • Tester régulièrement les procédures de basculement
  • Documenter les procédures de maintenance
  • Maintenir les systèmes à jour

Dépannage

Problèmes courants

Résolution des problèmes fréquents
Problème Cause possible Solution
Split-brain Perte de communication entre nœuds
  • Vérifier les connexions réseau
  • Utiliser la commande drbdadm disconnect puis connect
Synchronisation lente
  • Bande passante limitée
  • Charge système élevée
  • Ajuster le paramètre rate
  • Vérifier la charge système
Échec de montage
  • Ressource non primaire
  • Système de fichiers corrompu
  • Vérifier l'état avec drbdadm status
  • Exécuter fsck sur le volume

Voir aussi

Notes et références