informatique:systeme:ha:drbd

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
informatique:systeme:ha:drbd [2010/02/15 15:59] – Reprise ancien Wiki bn8informatique:systeme:ha:drbd [2012/09/18 14:37] – [Mode Primaire/Primaire] nico
Ligne 1: Ligne 1:
-====== Fichier de configuration type ====== +====== DRBD ======
-  resource disk-semele { +
-   +
-    protocol C; +
-   +
-    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"; +
-    } +
-   +
-    startup { +
-      degr-wfc-timeout 120;    # 2 minutes. +
-    } +
-   +
-    disk { +
-        on-io-error   detach; +
-    } +
-   +
-    net { +
-      after-sb-0pri disconnect; +
-      after-sb-1pri disconnect; +
-      after-sb-2pri disconnect; +
-      rr-conflict disconnect; +
-    } +
-   +
-    syncer { +
-      rate 80M; +
-      al-extents 257; +
-    } +
-   +
-    on toto { +
-      device     /dev/drbd0; +
-      disk       /dev/sdb1; +
-      address    172.16.0.1:7789; +
-      #flexible-meta-disk  internal; +
-      meta-disk  internal; +
-    } +
-   +
-    on titi { +
-      device    /dev/drbd0; +
-      disk      /dev/sdb1; +
-      address   172.16.0.2:7789; +
-      meta-disk internal; +
-    } +
-  }+
  
-====== Supprimer une ressource ======+ 
 +===== 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; 
 + 
 +        handlers { 
 + 
 +        } 
 + 
 +        startup { 
 +                degr-wfc-timeout 120; 
 +                outdated-wfc-timeout 2; 
 +                become-primary-on both; 
 +        } 
 + 
 +        disk { 
 +                on-io-error detach; 
 +        } 
 + 
 +        net { 
 +                after-sb-0pri discard-younger-primary; 
 +                after-sb-1pri consensus; 
 +                after-sb-2pri disconnect; 
 +                rr-conflict disconnect; 
 +                allow-two-primaries; 
 +                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> 
 +<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> 
 +  * 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
 +
 +===== 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>
 +
  
  • informatique/systeme/ha/drbd.txt
  • Dernière modification : 2015/10/26 14:51
  • de bn8