====== DRBD ====== ===== Installation ===== Sous Debian : apt-get install drbd8-utils ===== Configuration ===== ==== Paramètres globaux ==== A faire sur les deux serveurs : Editer le fichier : vim /etc/drbd.d/global_common.conf Exemple de configuration : global { usage-count no; } common { handlers { } startup { wfc-timeout 15; degr-wfc-timeout 60; become-primary-on zimbra-prod; } options { } disk { } net { protocol C; cram-hmac-alg sha1; shared-secret "secret"; #allow-two-primaries; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; } } ==== Configuration d'un premier volume à répliquer ==== Créer et éditer le fichier : vim /etc/drbd.d/r0.res Exemple pour déclarer la première ressource : resource r0 { syncer { # Debit de synchronisation rate 60M; } volume 0 { device /dev/drbd0; disk /dev/sda3; meta-disk internal; } on zimbra-prod { address 172.16.99.1:7788; } on zimbra-secours { address 172.16.99.2:7788; } } :!: Attention :!: zimbra-prod et zimbra-secours doivent être le nom de chacune des machines à répliquer. Créer la première ressource : drbdadm create-md r0 Démarrer DRBD : /etc/init.d/drbd start Démarrer ou réinitialiser la synchro : drbdadm -- --overwrite-data-of-peer primary r1 Pour voir le status : drbd-overview Exemple de résultat : 0:r0/0 SyncSource Primary/Secondary UpToDate/Inconsistent /opt ext4 1.6T 69M 1.6T 1% [>....................] sync'ed: 1.6% (1658700/1684752)M ==== Configuration d'un second volume à répliquer ==== Créer et éditer le fichier : vim /etc/drbd.d/r1.res Exemple pour déclarer la second ressource : resource r1 { syncer { rate 60M; } volume 1 { device /dev/drbd1; disk /dev/dm-1; meta-disk internal; } on zimbra-prod { address 172.16.99.1:7789; } on zimbra-secours { address 172.16.99.2:7789; } } Créer la première ressource : drbdadm create-md r1 Pour voir le status : drbd-overview ===== Quelques commandes d'admin ===== ==== Statut ==== Voir le statut de synchronisation : drbd-overview ou bien : cat /proc/drbd ==== Basculer une ressource d'un membre à l'autre ==== Pour basculer un volume DRBD sur un membre secondaire, il faut suivre la séquence suivantes : - Sur le membre primaire, Vérifier le status de synchronisation avec ''drbd-overview'' et passer à la suite si tout est bien ''UpToDate'' - Arrêter le membre primaire ou passer la ressource primaire en "secondary". - Sur le membre secondaire, Passer la ressource secondaire en ressource primaire. - Sur le membre secondaire, Monter le volume drbd. - Sur le membre secondaire, Recharger drbd si nécessaire. Pour faire une bascule arrière : - Redémarrer le membre primaire, au démarrage la ressource sera forcement en secondaire si la ressource est primaire sur le membre secondaire. - Sur le membre secondaire, démonter le volume drbd. - Sur le membre secondaire, Vérifier le status de synchronisation avec ''drbd-overview'' et passer à la suite si tout est bien ''UpToDate'' - Sur le membre secondaire, passer la ressource primaire en ressource secondaire. - Sur le membre primaire, passer la ressource secondaire en ressource primaire. - Recharger drbd sur chaque membre si nécessaire. - Sur le membre primaire, Monter le volume drbd. - Sur le membre primaire, Vérifier le status de synchronisation avec ''drbd-overview'' Commande pour passer une ressource en secondaire (voir ci-dessus pour respecter la séquence de bascule): drbdadm secondary r0 Commande pour passer une ressource en primaire (voir ci-dessus pour respecter la séquence de bascule): drbdadm primary r0 Pour recharger DRBD : /etc/init.d/drbd reload ==== Suspendre et détacher une ressource ==== Pour désactiver la réplication d'une ressource pour la passer en standalone : drbdadm disconnect r0 Pour détacher ensuite la ressource : drbdadm detach r0 Pour désactiver et détacher la ressource en même temps : drbdadm down r0 ==== Attacher et réactiver une ressource ==== Pour attacher la ressource : drbdadm attach r0 Pour remettre en service la ressource : drbdadm connect r0 Pour attacher et remettre en service la ressource en même temps : drbdadm up r0 ==== Extension d'un disque ==== Il faut que la nouvelle taille de ressource soit de la même taille sur les deux membres. Pour prendre en compte la nouvelle taille sur le membre primaire : drbdadm resize r0 :!: Remarque : La nouvelle taille de sera pas prise en compte si les deux membres ne sont pas ''UpToDate'' Voir [[fdisk]] pour agrandir la partition.