Ceci est une ancienne révision du document !


Mirroring sur deux serveurs : Introduction

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.

À 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.

Ce tutoriel met en œuvre certains outils qu'il faut rapidement présenter.
Des termes importants sont utilisés :

  • serveur
  • service
  • haute disponibilité
  • client

Ces termes ne sont pas détaillés dans ce tutoriel, je fais appel à votre curiosité pour trouver leur définition.

samba

samba est l'outil qui permet à un ordinateur sur lequel une distribution GNU/Linux ou Unix est installée d'apparaître sur le réseau et de partager des fichiers et des imprimantes comme le ferait un ordinateur avec Windows©.
C'est LA solution logicielle pour faire d'un serveur GNU/Linux un serveur de fichiers (et d'imprimantes) pour des clients sous Windows©, puisqu'elle est simple d'utilisation pour les clients.

heartbeat

heartbeat gère la haute disponibilité de services qui peuvent être fournis par plusieurs serveurs(2 au minimum). Pour ce faire, chacun des serveurs est surveillé via un battement de cœur (heartbeat) diffusé sur le réseau. Au départ les services sont démarrés sur l'un des serveurs, et si celui-ci n'émet plus de battement de cœur3), un autre serveur prend la relève.

Le cas qui est certainement le plus répandu est la mise en place de heartbeat sur deux serveurs, ce qui est le cas dans ce tutoriel.

drbd

drbd permet de synchroniser en temps réel4) des données entre deux ordinateurs.

drbd est constitué d'un module du noyau et d'outils de gestion.

  • Les deux serveurs :
    • serv1 avec adresse IP 192.168.214.10 : serveur primaire
    • serv2 avec adresse IP 192.168.214.11 : serveur secondaire
  • sur chacun des deux serveurs, la partition /dev/sda6 est celle que drbd duplique. Il s'agit d'une partition non-formatée.5) Toutes les données de cette partition seront perdues.
  • l'adresse mail de l'administrateur à contacter6) est admin@domain.fr7).

L'ordre d'installation à respecter concerne surtout drbd qui doit être installé après heartbeat.

samba

Installez le paquet samba.

Dans l'optique d'une gestion de samba avec heartbeat, il faut laisser le soin à heartbeat de démarrer samba, il faut donc faire en sorte que samba ne soit pas lancé au démarrage :

update-rc.d -f samba remove

heartbeat

Installez le paquet heartbeat.

drbd

Le module drbd est disponible avec le noyau server "de base" depuis Hardy Heron8). Cependant, afin d'avoir un système récent avec un minimum de bug et de faille de sécurité, on passera au noyau server le plus récent.

Mise à jour du système :

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

Vérification de la présence du module drbd :

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

Sous Hardy Heron, la version du module et des outils est la 8.0.11.

Installation de drbd8-utils version idem à la version du module sans quoi le fonctionnement correct n'est pas garanti.
Un paquet suggéré : heartbeat : tout le monde est sur la même longueur d'onde…

Il faut que le service drbd démarre, sinon le script de démarrage de drbd lancé par heartbeat ne fonctionne pas. Il faut donc lancer la commande :
update-rc.d drbd defaults 70

ou simplement copier le lien qui se trouve dans /etc/rc3.d vers /etc/rc2.d si ça ne fonctionne pas.

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

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

Il est vivement conseillé de créer des partages NFS entre les deux serveurs afin de synchroniser les fichiers de configuration via un script.

Fichiers à synchroniser entre les deux serveurs

Système :

  • /etc/resolv.conf
  • /etc/group
  • /etc/passwd
  • /etc/shadow
  • /etc/gshadow

Pour drbd :

  • /etc/drbd.conf

Pour samba :

  • /etc/samba/smb.conf
  • /var/lib/samba/account_policy.tdb
  • /var/lib/samba/group_mapping.ldb
  • /var/lib/samba/ntdrivers.tdb
  • /var/lib/samba/ntforms.tdb
  • /var/lib/samba/passdb.tdb
  • /var/lib/samba/secrets.tdb

Pour heartbeat :

  • /etc/ha.d/ha.cf
  • /etc/ha.d/authkeys
  • /etc/ha.d/haresources

Et éventuellement aussi...

Si vous utilisez les mêmes outils que moi pour la gestion des serveurs…

Pour mail (ssmtp) :

  • /etc/ssmtp/revaliases
  • /etc/ssmtp/ssmtp.conf

Pour smcroute :

  • /etc/smcroute/startup.sh

Pour NFS :

  • /etc/exports
  • /etc/hosts.deny
  • /etc/hosts.allow

Fichiers à personnaliser sur les deux serveurs

Système :

  • /etc/hostname
  • /etc/hosts
  • /etc/netwok/interfaces
  • /etc/fstab

Fichiers à personnaliser après un clonage

Si vous avez opté pour le clonage d'un serveur vers l'autre (attention à drbd), vous devrez personnaliser ces fichiers sur chaque serveur :

  • /var/lib/heartbeat/hb_uuid (supprimer ce fichier sur l'un des 2 serveurs après clonage, il sera généré au prochain démarrage de heartbeat)
  • /etc/udev/rules.d/70-persistent-net.rules (pour faire en sorte que l'interface Ethernet eth0 soit utilisable)


1)
je me répète ?
2)
qui peut être sur un lvm ou sur un raid physique ou logiciel
3)
c'est qu'il est mort !
4)
allez voir les détails sur le site
5)
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]).
6)
en supposant que les deux serveurs sachent envoyer un mail (avec ssmtp par exemple)
7)
à personnaliser
8)
à vrai dire je ne sais pas si c'était déjà le cas pour les versions précédentes
9)
à faire après l'installation de heartbeat, évidemment
  • utilisateurs/mrwaloo/introduction.1233350987.txt.gz
  • Dernière modification: Le 18/04/2011, 14:42
  • (modification externe)