informatique:systeme:ha:drbd

Ceci est une ancienne révision du document !


DRBD

  • Installation de drbd :
    apt-get install drbd8-utils
  • Créer le fichier de configuration de la ressource : /etc/drbd.d/r0.res
    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;
            }
    }
  • Initialiser les devices via la commande :
    drbdadm create-md r0
  • Lancer drbd :
    /etc/init.d/drbd restart
  • Sur une des deux machines, forcer en primary :
    drbdadm -- --overwrite-data-of-peer primary r0
  • Installation de drbd :
    apt-get install drbd8-utils
  • Créer le fichier de configuration de la ressource : /etc/drbd.d/r0.res
    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;
            }
    }
  • Initialiser les devices via la commande :
    drbdadm create-md r0
  • Lancer drbd :
    /etc/init.d/drbd restart
  • Sur une des deux machines, forcer en primary :
    drbdadm -- --overwrite-data-of-peer primary r0
  • La synchro commence, elle peut être suivie dans /proc/drbd. Une fois terminée, passer l'autre machine en primaire également :
    drbdadm primary r0
drbdadmin remove /dev/drbd0

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";
}

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 :
    drbdadm secondary r0
    drbdadm -- --discard-my-data connect r0
  • sur la machine contenant les données valides, lancer la commande :
    drbdadm connect r0

La synchronisation des données démarre alors, on peut suivre son état via la comande :

cat /proc/drbd
  • informatique/systeme/ha/drbd.1343944526.txt.gz
  • Dernière modification : 2012/08/02 21:55
  • de bn8