informatique:systeme:ha:drbd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:systeme:ha:drbd [2010/12/06 17:04] – [Procédure de mise en place] bn8informatique:systeme:ha:drbd [2015/10/26 14:51] (Version actuelle) – [Agrandir une ressource] bn8
Ligne 1: Ligne 1:
-====== Procédure de mise en place ====== +====== DRBD ======
-  * Installation de drbd +
-  * Créer le fichier de configuration de la ressource : <code>/etc/drbd.d/r0.res</code>+
  
-<code>resource r0 {+ 
 +===== Procédure de mise en place ===== 
 +==== Mode Primaire/Secondaire ==== 
 + 
 +  * Installation de drbd : <code>apt-get install drbd8-utils</code> 
 +  * Créer le fichier de configuration de la ressource : ///etc/drbd.d/r0.res//<code>resource r0 { 
 +        protocol C; 
 + 
 +        handlers { 
 + 
 +        } 
 + 
 +        startup { 
 +                degr-wfc-timeout 120; 
 +                outdated-wfc-timeout 2; 
 +        } 
 + 
 +        disk { 
 +                on-io-error detach; 
 +        } 
 + 
 +        net { 
 +                after-sb-0pri discard-younger-primary; 
 +                after-sb-1pri consensus; 
 +                after-sb-2pri disconnect; 
 +                rr-conflict disconnect; 
 +                cram-hmac-alg "sha1"; 
 +                shared-secret "mon_sercret"; 
 +        } 
 + 
 +        syncer { 
 +                rate 90M; 
 +                al-extents 257; 
 +        } 
 + 
 +        on srvvirt1 { 
 +                device  /dev/drbd0; 
 +                disk    /dev/vg_srv1/drbd0; 
 +                address 172.20.0.6:7788; 
 +                meta-disk       internal; 
 +        } 
 +         
 +        on srvvirt2 { 
 +                device  /dev/drbd0; 
 +                disk    /dev/vg_srv2/drbd0; 
 +                address 172.20.0.7:7788; 
 +                meta-disk       internal; 
 +        } 
 +}</code> 
 + 
 +  * Initialiser les devices via la commande : <code>drbdadm create-md r0</code> 
 +  * Lancer drbd : <code>/etc/init.d/drbd restart</code> 
 +  * Sur une des deux machines, forcer en primary : <code>drbdadm -- --overwrite-data-of-peer primary r0</code> 
 + 
 +==== Mode Primaire/Primaire ==== 
 + 
 +  * Installation de drbd : <code>apt-get install drbd8-utils</code> 
 +  * Créer le fichier de configuration de la ressource : ///etc/drbd.d/r0.res//<code>resource r0 {
         protocol C;         protocol C;
  
Ligne 32: Ligne 87:
         syncer {         syncer {
                 rate 90M;                 rate 90M;
 +                al-extents 257;
         }         }
  
Ligne 51: Ligne 107:
   * Initialiser les devices via la commande : <code>drbdadm create-md r0</code>   * Initialiser les devices via la commande : <code>drbdadm create-md r0</code>
   * Lancer drbd : <code>/etc/init.d/drbd restart</code>   * Lancer drbd : <code>/etc/init.d/drbd restart</code>
 +<note>Si vous êtes en prod vous pouvez utiliser la commande <code>drbdadmn up r0</code></note>
   * Sur une des deux machines, forcer en primary : <code>drbdadm -- --overwrite-data-of-peer primary r0</code>   * Sur une des deux machines, forcer en primary : <code>drbdadm -- --overwrite-data-of-peer primary r0</code>
-====== Supprimer une ressource ======+  * La synchro commence, elle peut être suivie dans ///proc/drbd//. Une fois terminée, passer l'autre machine en primaire également : <code>drbdadm primary r0</code> 
 +===== Supprimer une ressource =====
   drbdadmin remove /dev/drbd0   drbdadmin remove /dev/drbd0
 +  
 +===== Agrandir une ressource =====
 +
 +Partons du principe qu'une ressource //myvol// partagé entre les machines //hyp01// et //hyp02// dans un LV //myvol// des VG LVM respectifs //vg_hypXX// :
 +
 +  * On commence par redimensionner les LV LVM sous DRBD (avec **[size]** la taille en //Go//), sur chacune des machines : <code>lvresize -L+[size]G /dev/vg_hypXX/myvol</code>
 +  * Un fois les LV agrandi, il faut que DRBD le prenne en compte. La commande si après ne doit être fait que si **UN SEUL** des noeuds est **PRIMAIRY**, que l'état du volume est **CONNECTED** et les volumes sont **UpToDate** : <code>drbdadm resize myvol</code>
 +  * La machine //secondary// doit alors être en //resync//. Sans forcément attendre la fin de la synchro, il nous reste à redimenssionner le //filesystem// depuis la machine **PRIMARY** : <code>resize2fs /dev/drbd0</code>
 +===== Trucs et astuces =====
 +==== Triggers ====
 +
 +Exemple :
 +
 +  handlers {
 +    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
 +    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
 +    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
 +  }
 +
 +==== Reconnecter une ressource après incident ====
 +
 +Lorsque la communication entre les serveurs a été interrompu et que les périphériques DRBD sont donc désynchronisé, il faut :
 +
 +  * décider quelle machine contient les données valides (à  priori la dernière machine ayant été active)
 +  * sur la machine contenant les données invalides, lancer les commandes : <code>drbdadm secondary r0
 +drbdadm -- --discard-my-data connect r0</code>
 +  * sur la machine contenant les données valides, lancer la commande : <code>drbdadm connect r0</code>
 +
 +La synchronisation des données démarre alors, on peut suivre son état via la comande : <code>cat /proc/drbd</code>
 +
 +==== En cas de blocage en état Consistent alors qu'un seul des deux nœuds est présent ====
 +
 +<code>drbdadm -- --overwrite-data-of-peer primary r0</code>
  
  • informatique/systeme/ha/drbd.1291655082.txt.gz
  • Dernière modification : 2011/06/21 12:48
  • (modification externe)