Serveur de fichiers haute dispo avec DRBD

J’ai récemment travaillé sur du beau matériel afin de paramétrer un serveur de fichiers haute disponibilité. J’ai utilisé Centos 5.x, il vous faudra les paquets suivants sur CentOS+: drbd83, kmod-drbd83, assurez-vous qu’ils soient exactement de la version de votre révision de noyau, vous pouvez télécharger les RPMS sur l miroir officiel Ainsi que les paquets pour OCFS2 d’Oracle, c’est disponible ici pour les modules du noyau et la pour les outils. Encore une fois, assurez-vous que ce soit la même version que votre noyau. Une fois les paquets installés, vous pouvez charger le module comme ceci : modprobe -v drbd.

Avant de préparer votre config, il vous faudra deux partitions/disques dont les blocs/cylindres sont identiques, sous faute de fonctionner correctement. Dans cet exemple, nous avons deux machines 192.168.6.66 et 6.67. Vous devez ensuite préparer le fichier de configuration, éditez /etc/drbd.conf (qui devrait être vide):

#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#

global { usage-count yes; }

# you may want to lower the rate, if you're not using a dedicated GBit link 
# between both peers; 20M worked well on EC2
common { syncer { rate 100M; } }

resource res0 {
  protocol C;
  startup {
    wfc-timeout 20;
    degr-wfc-timeout 10;
    # we will keep this commented until tested successfully:
    # become-primary-on both; 
  }
  net {
    # the encryption part can be omitted when using a dedicated link for DRBD only:
    cram-hmac-alg sha1;
    shared-secret ubersecret;

    allow-two-primaries;
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;
  }
  on tic.example.com {
    device /dev/drbd1;
    disk /dev/sdb1;
    address 192.168.6.66:7789;
    meta-disk internal;
  }
  on tac.example.com {
    device /dev/drbd1;
    disk /dev/sdb1;
    address 192.168.6.67:7789;
    meta-disk internal;
  }
  disk {
    fencing dont-care;
  }
}

Copiez ce fichier sur le second serveur puis créez ensuite fautre device, il vous faudra pour ceci taper cette commande sur les DEUX machines : drbdadm create-md res0. Cela ne marchera pas si les noms de machines ne sont pas identiques à ceux dans votre configuration. Si tout se passe bien, cela devrait initialiser sur les deux machines, vous pouvez alors démarrer le service sur les deux machines en même temps (n’attendez pas trop longtemps) : service drbd start. Si tout a démarré sans encombres, vous pouvez à présent démarrer la synchronisation des données. Un point important à considérer est la capacité de votre réseau local, vu que toutes les données sont synchro par le réseau, donc un lien dédié est préférable (un simple cable d’une machine à une autre sur une adresse privée est plus que suffisant à moins que vous pensiez utiliser plus de deux machines, auquel cas cela dépasse ce que cet article couvre).

Il ne vous reste alors qu’à synchroniser, choisissez votre maître et tapez la commande suivante : drbdadm — –overwrite-data-of-peer primary res0, vous pouvez suivre la progression à l’aide de la commande : drbd-overview.

Une fois que c’est fini, il faut paramétrer les deux machines comme maître afin de pouvoir écrire sur les deux et de pouvoir utiliser une IP virtuelle, vous pouvez promouvoir la seconde machine à l’aide de la commande suivante : drbdadm primary res0, vous pouvez alors décommenter la ligne suivante dans les deux configurations : become-primary-on both;.

C’est tout pour le moment :)

Un gros merci à l’article suivant this article. Et bien sûr jetez un oeil au site officiel pour plus d’information.

2 thoughts on “Serveur de fichiers haute dispo avec DRBD

  1. Je cherchais un FS qui soit bien redondant de type cluster, j’ai entendu beaucoup de mauvaises choses de GFS et je dois etre sur que je ne perdrais JAMAIS de donnees. Donc apres avoir consulte pas mal de sites, j’ai decide d’utiliser OCFS2. Pour le moment, tres content.

Comments are closed.