Installation · 5 min read · Jan 31, 2026

Installation et configuration d'Openfiler avec DRBD et Heartbeat

Installation et configuration d’Openfiler avec DRBD et Heartbeat

Introduction

Openfiler est un système d’exploitation haute performance conçu pour être utilisé comme un appareil SAN/NAS. Cette configuration permettra à deux appareils Openfiler de fonctionner dans un scénario de haute disponibilité Active/Passive.

Exigences

Matériel

  • 2 x boîtiers répondant aux spécifications matérielles minimales d’Openfiler.
  • 2 x interfaces ethernet dans chaque boîtier
  • Support d’installation d’Openfiler 2.3.
  • Les deux boîtiers doivent avoir des disques de même taille pour éviter toute incohérence de réplication.

Logiciel

Installez Openfiler 2.3 sur les deux boîtiers en utilisant une configuration de disque telle que la suivante :

  • Partition racine (“/”) de 3 Go
  • Partition “swap” de 2 Go
  • Partition “/meta” de 512 Mo (utilisée pour DRBD0)
  • Partition de données configurée comme un LVM non monté (utilisée pour DRBD1)

Configuration

Réseau

Chaque appareil Openfiler aura deux NIC : une pour communiquer avec le LAN, l’autre pour communiquer avec l’autre SAN (via un câble direct). La première sera utilisée pour l’administration, pour communiquer directement avec chaque nœud.

Une troisième interface “virtuelle” est utilisée par le service heartbeat et sera utilisée par les ordinateurs sur le LAN.

Voici ce qui est utilisé :

filer01

  • Interface LAN (eth0) 192.168.1.18
  • Interface de réplication (eth1) 10.188.188.1

filer02

  • Interface LAN (eth0) 192.168.1.19
  • Interface de réplication (eth1) 10.188.188.2

Adresse HA NAS/SAN (eth0) 192.168.1.17

  • Ceci est configuré dans le fichier cluster.xml (ne tentez pas de configurer ailleurs)

Configuration du nom d’hôte

Pour que les deux nœuds puissent se reconnaître par leur nom, configurez le fichier hosts sur chaque ordinateur.
Modifiez notre /etc/hosts (sur filer01) :

# Ne pas supprimer la ligne suivante, sinon divers programmes
# nécessitant des fonctionnalités réseau échoueront.
127.0.0.1 filer01 localhost.localdomain localhost
10.188.188.2 filer02

Modifiez notre /etc/hosts (sur filer02) :

# Ne pas supprimer la ligne suivante, sinon divers programmes
# nécessitant des fonctionnalités réseau échoueront.
127.0.0.1 filer02 localhost.localdomain localhost
10.188.188.1 filer01

Clés SSH partagées

Pour permettre aux deux appareils Openfiler de communiquer entre eux sans avoir à utiliser un mot de passe, utilisez des clés SSH partagées.

Sur filer01 :

  root@filer01 ~# ssh-keygen -t dsa

Appuyez sur Entrée aux invites (ne définissez pas de mot de passe sur la clé).

Sur filer02 :

  root@filer02 ~# ssh-keygen -t dsa

Appuyez sur Entrée aux invites (ne définissez pas de mot de passe sur la clé).

La commande ci-dessus générera un fichier appelé “id_dsa.pub” dans ~/.ssh/, qui est la clé publique qui devra être copiée sur l’autre nœud :

root@filer01 ~# scp .ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys2
root@filer02 ~# scp .ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys2

Configurer DRBD

DRBD est ce qui maintiendra les données entre les deux nœuds cohérentes.

Sur filer01 :

  root@filer01 ~# mv /etc/drbd.conf /etc/drbd.conf.org

Ensuite, modifiez drbd.conf (version 8) selon ce qui suit :

global {
 # minor-count 64;
 # dialog-refresh 5; # 5 secondes
 # disable-ip-verification;
 usage-count ask;
}

common {
 syncer { rate 100M; }
}

resource cluster_metadata {
 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";
  # outdate-peer "/usr/sbin/drbd-peer-outdater";
 }
 
 startup {
  # wfc-timeout 0;
  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 10M;
  # after "r2";
  al-extents 257;
 }

 on filer01 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.1:7788;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.2:7788;
  meta-disk internal;
 }
}

resource vg0drbd {
 protocol C;
 startup {
  wfc-timeout 0; ## Infini !
  degr-wfc-timeout 120; ## 2 minutes.
 }

 disk {
  on-io-error detach;
 }

 net {
  # timeout 60;
  # connect-int 10;
  # ping-int 10;
  # max-buffers 2048;
  # max-epoch-size 2048;
 }

 syncer {
  after "cluster_metadata";
 }

 on filer01 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.1:7789;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.2:7789;
  meta-disk internal;
 }
}

Les deux hôtes ont besoin du même drbd.conf, donc le fichier drbd.conf de filer01 sera copié sur filer02 :

  root@filer01 ~# scp /etc/drbd.conf root@filer02:/etc/drbd.conf

Initialisez les métadonnées sur /dev/drbd0 (cluster_metadata) et /dev/drbd1 (vg0drbd) sur les deux nœuds :

root@filer01 ~# drbdadm create-md cluster_metadata
root@filer01 ~# drbdadm create-md vg0drbd
root@filer02 ~# drbdadm create-md cluster_metadata
root@filer02 ~# drbdadm create-md vg0drbd

Remarque : si les commandes ci-dessus génèrent des erreurs concernant la nécessité de mettre à zéro le système de fichiers, utilisez la commande suivante :

  root@filer01 ~# dd if=/dev/zero of=/dev/sda3

Faites attention avec cette commande et assurez-vous qu’elle est sur le bon disque.

Avant de démarrer le service DRBD, assurez-vous que la partition utilisée pour drbd0 (dans la ressource cluster_metadata dans le fichier drbd.conf) n’est pas déjà montée (ce qui sera le cas par défaut si elle a été créée lors de l’installation).

  root@filer01 ~# umount /dev/sda3

Maintenant, démarrez DRBD sur les deux hôtes :

root@filer01 ~# service drbd start
  root@filer02 ~# service drbd start

Si tout se passe bien, ils devraient se connecter et l’exécution de “service drbd status” devrait présenter une sortie similaire à la suivante :

  root@filer1 /# service drbd status

drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
0:cluster_metadata Connected Secondary/Secondary Inconsistent/Inconsistent C
1:vg0drbd Connected Secondary/Secondary Inconsistent/Inconsistent C

Une fois que les deux ressources drbd sont connectées et que les deux nœuds sont dans un état secondaire (comme ci-dessus), définissez un nœud primaire :

root@filer01 ~# drbdsetup /dev/drbd0 primary -o
root@filer01 ~# drbdsetup /dev/drbd1 primary -o

Cela devrait vous donner un résultat de statut similaire à ce qui suit :

  root@filer1 /# service drbd status

drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
… sync’ed: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primary/Secondary UpToDate/Inconsistent C
1:vg0drbd PausedSyncS? Primary/Secondary UpToDate/Inconsistent C

Remarque : si le LVM vg0drbd est volumineux, il faudra beaucoup de temps pour synchroniser (peut-être toute la nuit).

Activez DRBD pour qu’il démarre au démarrage :

root@filer01 ~# chkconfig –level 2345 drbd on
root@filer02 ~# chkconfig –level 2345 drbd on

Maintenant, créez le système de fichiers cluster_metadata. Utilisez cette partition de 512 Mo pour conserver toutes les données de configuration d’Openfiler et les données pour les services qui devraient être disponibles en HA (par exemple, NFS, iSCSI, SMB).

  root@filer01 ~# mkfs.ext3 /dev/drbd0

Ne pas ajouter cette partition à un /etc/fstab, car cela est géré par Heartbeat (et sera configuré sous peu).

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.