Ceci est une ancienne révision du document !


Présentation MrWaloo

Ayant appris à me servir d'un "PC" sur une station SUN sous SUN OS (Unix) j'ai continué à utiliser Linux. Successivement sous Mandrake, Red Hat puis Debian et les projets en découlant (Knoppix, Mepis…), c'est tout naturellement que je me suis intéressé à Ubuntu, distribution que je n'ai plus quittée depuis 2006.

Je me permets d'apporter ma contribution à tous les documents qui méritent des précisions et des corrections afin de mieux guider les utilisateurs GNU/Linux.

*** A partir d'ici, documentation brouillon pour drbd ***

Ce tutoriel est destiné à un public averti, certains détails triviaux ne sont pas détaillés…1)
Toutes les commandes sont lancées avec l'utilisateur root, comme l'indique le # en début de ligne.

À l'heure où les serveurs d'entreprises doivent stocker un volume croissant de données et assurer une haute disponibilité, il est nécessaire d'imaginer des systèmes de mirroring (miroir) autres que simplement sur des disques durs.

La redondance de disques durs (RAID-1, RAID-5) permet déjà d'avoir une bonne résistance aux pannes d'un disque (ou plusieurs si on est en RAID-5). Cependant, si c'est la machine qui tombe (le processeur, l'alimentation, le contrôleur de disque, etc.), on n'a aucun moyen pour relancer le tout rapidement sans perte de données.

drbd permet de mettre en œuvre une solution de RAID-1 au travers du réseau. C'est-à-dire que sur deux serveurs, on a une partition 2) par serveur qui est à tout moment une copie exacte d'une partition de l'autre serveur. C'est un mirroring (miroir) de partitions à travers une interface réseau.

C'est une solution qui permet également d'utiliser deux PC au lieu d'un serveur afin de faire des économies, aussi bien pour l'achat initial que pour l'achat de disques supplémentaires (en remplacement ou en ajout) par la suite. Dans la mesure où ce cluster est utilisé pour un partage samba, ce type de matériel est tout à fait convenable pour une utilisation avec jusqu'à une vingtaine de clients.

Cette page est une des étapes de l'utilisation conjointe de drbd avec heartbeat et samba. C'est pourquoi certaines notes font référence à ces outils.
Le module drbd est disponible avec le noyau "de base". Cependant, afin d'avoir un système récent avec un minimum de bug et de faille de sécurité, on passera au noyau le plus récent. La version 2.6.27-9-server est utilisée pour cette documentation.

Mise à jour du système :

# apt-get update && apt-get dist-upgrade

Passer à la version du noyau la plus récente. Redémarrer.

Vérification de la présence du module :

# cat /proc/drbd
cat: /proc/drbd: Aucun fichier ou répertoire de ce type
# modprobe drbd
# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre, 2008-05-30 12:59:17

Installation de drbd (version 8.2.6, idem à la version du module sans quoi le fonctionnement correct n'est pas garanti):

# apt-get install drbd8-utils
Il faut que le service drbd démarre, sinon le script de démarrage de drbd de heartbeat ne fonctionne pas. Il faut donc vérifier qu'il y ait bien un lien vers /etc/init.d/drbd dans le répertoire /etc/rc2.d/, sinon le créer en le copiant depuis /etc/rc3.d/ par exemple.

Finalisation pour faire en sorte que les outils heartbeat fonctionnent :3)

# chgrp haclient /sbin/drbdsetup
# chmod o-x /sbin/drbdsetup
# chmod u+s /sbin/drbdsetup

# chgrp haclient /sbin/drbdmeta
# chmod o-x /sbin/drbdmeta
# chmod u+s /sbin/drbdmeta

Postulat de départ :

  • les deux serveurs ont les adresses IP 192.168.214.10 et 192.168.214.11
  • les 2 serveurs se nomment serv1 et serv2, serv1 étant le serveur primaire
  • sur chacun des deux serveurs, la partition /dev/sda6 est celle que drbd duplique. Il s'agit d'une partition non-formatée.4) Toutes les données de cette partition seront perdues.
  • l'adresse mail de l'administrateur à contacter5) est admin@domain.fr6). Le sujet commence par "SERVEUR" car c'est le nom netbios du serveur samba.

Éditer le fichier /etc/brbd.conf :

global {
  usage-count no;
}

common {
  protocol C;
  syncer { rate 10M; }
  handlers {
    pri-lost-after-sb "reboot -f";
    pri-lost "echo Déconnection des serveurs, vérifier les logs | mail -s 'SERVEUR: Alerte DRBD' admin@domain.fr";
    out-of-sync "echo Désynchronisation des serveurs, vérifier les logs | mail -s 'SERVEUR: Alerte DRBD' admin@domain.fr";
    pri-on-incon-degr "reboot -f";
    outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
  }
}

resource r0 {
  device    /dev/drbd0;
  disk      /dev/sda6;
  meta-disk internal;
  
  disk {
    on-io-error   detach;
  }
  
  startup {
    wfc-timeout  60;
    degr-wfc-timeout 30;
    become-primary-on serv1;
  }
  
  net {
    after-sb-0pri discard-older-primary;
    after-sb-1pri call-pri-lost-after-sb;
    after-sb-2pri call-pri-lost-after-sb;
  }
  on serv1 {
    address   192.168.214.10:7788;
  }
  on serv2 {
    address   192.168.214.11:7788;
  }
}

Puis lancer :

# drbdadm create-md r0
v08 Magic number not found
md_offset 1093922816
al_offset 1093890048
bm_offset 1093853184

Found some data
 ==> This might destroy existing data! <==

Do you want to proceed?
[need to type 'yes' to confirm] 

Taper yes

v07 Magic number not found
v07 Magic number not found
v08 Magic number not found
Writing meta data...
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully created.
success
Il se peut qu'un message disant que cette partition contient des données vous empêche de continuer, il faut alors lancer la commande # shred -zvf -n 1 /dev/sda6 afin de remplir la partition avec des zéros, puis de relancer la commande.

1)
je me répète ?
2)
qui peut être sur un lvm ou sur un raid physique ou logiciel
3)
à faire après l'installation de heartbeat, évidemment
4)
si vous ne pouvez pas faire autrement que de réutiliser une partition ayant été formatée et ayant contenu des données, il faudra utiliser la commande # shred -zvf -n 1 /dev/sda6 afin de vider (remplir avec des zéros) la partition. Attention, l'opération peut prendre du temps, mais elle peut être stoppée après les 10 premiers pourcents ([CTRL]+[C]).
5)
en supposant que les deux serveurs sachent envoyer un mail (ssmtp par exemple)
6)
à personnaliser
  • utilisateurs/mrwaloo.1230681082.txt.gz
  • Dernière modification: Le 18/04/2011, 14:43
  • (modification externe)