Haute disponibilité du stockage
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
| Type | Description | Avantages | Inconvénients |
|---|---|---|---|
| SAN FC | Réseau Fibre Channel dédié |
|
|
| SAN FCoE | Fibre Channel over Ethernet |
|
|
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
| Protocole | Type | Description | Cas d'usage |
|---|---|---|---|
| Protocol A | Asynchrone |
|
|
| Protocol B | Semi-synchrone |
|
|
| Protocol C | Synchrone |
|
|
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 :
| É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
| Problème | Cause possible | Solution |
|---|---|---|
| Split-brain | Perte de communication entre nœuds |
|
| Synchronisation lente |
|
|
| Échec de montage |
|
|
Voir aussi
- Documentation officielle DRBD
- Article Wikipédia sur le SAN
- Site officiel GlusterFS
- Site officiel Ceph