Auteur :
Eric Bérenguier
Référence :
00-176/200000633
Version :
1.0
Date :
30/06/2000
Approbateur :
Guy Autier

CELAR

Sécurité des logiciels libres

Haute disponibilité



Historique des révisions
 
Date
Auteur
Contenu
0.1
23/05/2000
E.B.
Création
1.0
30/06/2000
E.B.
Mise à jour

 

Table des matières

1.Introduction

2.Fonctions spécifiques la haute disponibilité

2.1.Présentation générale

2.2.Mise en cluster

2.3.Disponibilité des données

2.4.Redondance matériellelocale

2.5.Redondance multi-sites

2.6.Equilibrage de charge

2.7.Administration et exploitation

3.Produits

3.1.Principaux produits étudiés

3.1.1.Linux

3.1.2.HeartBeat

3.1.3.Mon

3.1.4.DRBD

3.1.5.ReiserFS

3.1.6.GFS

3.1.7.LVS

3.2.Couverture fonctionnelle des produits

3.3.Aspects relatifs à la sécurité

4.Comparaison

4.1.Critères

4.1.1.Critères fonctionnels

4.1.2.Critères généraux

4.1.3.Notation

4.2.Tableaux de comparaison

4.3.Synthèse

5.Le futur



1. Introduction

Ce document présente le résultat de l'étude sur les solutions de haute disponibilité à base de logiciels libres. Les points traités sont les suivants :

Le document comprend les parties suivantes :

2.1. Présentation générale

Cette partie présente les fonctionnalités identifiées dans le cadre de la haute disponibilité. Certaines seront décomposées en sous-fonctions.

Ces fonctionnalités sont les suivantes :

Ce thème recouvre l'ensemble des fonctions permettant la reprise d'un service assurée par un noeud d'un cluster par un autre noeud en cas de défaillance matérielle ou logicielle.

Les sous-fonctions sont détaillées ci-dessous :

Cette fonction garantit la haute disponibilité des données stockées sur disque, elle inclut les mécanismes de redondance des données et la reprise. Les sous-fonctions identifiées sont les suivantes :
Ce thème consiste à évaluer le support, par les produits étudiés, des solutions matérielles de haute disponibilité telles que celles trouvées sur les serveurs Unix haut de gamme. Les solutions matérielles incluent :
Cette fonction assure la haute disponibilité en dupliquant une application et ses données sur des sites distants reliés par un WAN, et permet, en cas de panne sur un site, la reprise du service fourni par l'application par un autre site.

2.6. Equilibrage de charge

Cette fonction permet de répartir des requêtes adressées à un service, entre plusieurs noeuds physiques fournissant ce service. Cette fonction est généralement utilisée pour des services réseaux tels que serveurs Web, messagerie, DNS, ?

Elle entre dans le cadre de la haute disponibilité car un produit d'équilibrage de charge ne redirigera pas les requêtes vers un serveur en panne. L'intérêt d'une telle solution est que la reprise est immédiate (il n'y a pas d'application à démarrer sur un noeud de backup lorsqu'une panne est détectée).

2.7. Administration et exploitation

Cette fonction concerne l'administration et l'exploitation des produits assurant la haute disponibilité.

3. Produits

3.1. Principaux produits étudiés

Les produits étudiés sont récapitulés dans le tableau suivant :

 
Produit
Version
Linux
2.2.15
Mon
0.38.18
Heartbeat
0.4.7b
DRBD
0.5.5
ReiserFS
3.5.21-2.2.15
GFS
Version du 23/11/99
LVS
0.9.13-2.2.15

3.1.1. Linux

3.1.1.1. Fonction

Seules les fonctions du noyau Linux concernant directement la haute disponibilité sont étudiées dans cette partie. Elles sont les suivantes :
Les fonctions décrites permettent de gérer des périphériques (disques ou watchdogs) locaux au système.

3.1.1.3. Caractéristiques

Raid logiciel :

Les types de RAID supportés sont les suivants :

Les différences par rapport au RAID matériel sont les suivantes :

RAID matériel :

Le seul contrôleur RAID supporté par Linux (version 2.2.15) est celui de la société DPT (http://www.dpt.com/).

Watchdogs :

Le module watchdog du noyau linux supporte plusieurs solutions matérielles de watchdog (Berkshire et ICS pour la version 2.2.15). La liste exhaustive est présente dans le fichier Documentation/watchdog.txt des sources du noyau Linux.

Ce module permet de déclencher un redémarrage (reset matériel) si un applicatif ne communique plus avec le watchdog pendant une certaine période de temps configurable, ce qui se produit dans le cas d'un "plantage" (c'est à dire un blocage de l'ordinateur dû à un bug logiciel ou un problème matériel) : cela assure le redémarrage de l'applicatif dans tous les cas de plantage qui n'ont pas été causés par une défaillance matérielle permanente.

Il est également possible de simuler cette fonction uniquement par logiciel (utilisation d'un timer), mais cette solution s'avère beaucoup moins fiable (beaucoup de cas de plantage vont aussi bloquer le timer).

De plus certaines des solutions matérielles supportées fournissent une fonction de surveillance de la température exploitable par un applicatif, par l'intermédiaire d'une interface de bas niveau (device UNIX /dev/temperature).

Remarque : Les fonctions de surveillance de température, des ventilateurs, et de détection d'intrusion physique présentes sur certaines cartes mères sont utilisables par un produit tiers lm-sensors (licence GNU : accessible à l'URL http://www.netroedge.com/~lm78), non évaluées dans cette étude.

3.1.1.4. Type de licence

Le noyau Linux est distribué sous la licence GNU version 2.

3.1.1.5. Où le trouver ?

Le site de référence pour Linux est http://www.linux.org. Ce site inclut des liens pour les documentations et le téléchargement.

3.1.2. HeartBeat

3.1.2.1. Fonction

Heartbeat est un outil de surveillance système et réseau, et de reprise.

Il constitue l'une des réalisations du projet Linux-HA (www.linux-ha.org) qui a pour but de fournir une solution de clustering avec haute disponibilité sous Linux.

Il permet de gérer un nombre quelconque de services sur deux serveurs. Chaque service est associé à un serveur (serveur principal du service). En cas de panne d'un serveur, les services associés à ce serveur sont démarrés sur l'autre noeud (noeud de backup). Lorsque le serveur principal est à nouveau disponible, ces services sont arrêtés sur le noeud de backup et démarrés sur le noeud principal.

Dans le cas de services réseau, Hearbeat prend en charge la reprise d'adresses IP et la mise à jour des caches ARP des machines connectées au réseau local (clients ou routeurs) pour qu'ils tiennent compte du basculement.

3.1.2.2. Architecture

Le schéma suivant présente l'architecture physique minimale pour la mise en place d'un cluster utilisant Heartbeat :

3.1.2.3. Caractéristiques

La version actuelle de Heartbeat ne supporte actuellement que 2 noeuds simultanément, même si sa conception en prévoit un nombre illimité. Des versions ultérieures devraient supprimer cette limitation (dixit les développeurs du produit).

En cas de dépendances entre plusieurs services, on peut fixer l'ordre de démarrage ou d'arrêt de ces services (quand ils ont le même noeud principal).

Un service peut être matérialisé par n'importe quelle application. La seule contrainte est de fournir un script permettant de démarrer, d'arrêter et de connaître l'état du service (démarré ou arrêté). Ces scripts implémentent la même interface que les scripts de démarrage de la distribution RedHat (ainsi que d'autres distributions), cela permet d'utiliser directement tous les programmes livrés avec des scripts respectant cette interface comme par exemple apache, samba, named, sendmail ? sans avoir à écrire de script.

Il est possible d'arrêter ou de démarrer un des serveurs manuellement, par exemple pour des opérations de maintenance, dans ce cas tous les services sont basculés sur l'autre serveur.

Heartbeat n'offre qu'un seul mode de reprise : un service est toujours actif sur son noeud principal quand celui-ci fonctionne.

La surveillance s'effectue par plusieurs canaux simultanément (une ou plusieurs interfaces réseau plus une ou plusieurs liaisons série). Cela permet de distinguer une coupure réseau entre les deux serveurs d'une panne matérielle d'un noeud. En particulier cela évite de se retrouver dans une situation ou les deux noeuds lancent simultanément les mêmes services. Ce mécanisme de surveillance ne détecte que les pannes matérielles ou les problèmes réseau. Il est nécessaire d'utiliser d'autres produits tels que Mon (cf. 3.1.3) pour réaliser la surveillance applicative (ces produits peuvent déclencher le basculement par l'intermédiaire de scripts fournis avec Heartbeat).

Heartbeat ne gère pas les interfaces réseau ou les réseaux redondants.

3.1.2.4. Type de licence

Le produit est distribué sous la licence GPL version 2.

3.1.2.5. Où le trouver ?

Les sources du produit et sa documentation peuvent être téléchargées depuis la page Web http://www.linux-ha.org/.

3.1.3. Mon

3.1.3.1. Fonction

Mon est un outil de monitoring généraliste. Il permet de surveiller des ressources (services réseau, ressources locales ?) et de déclencher des actions selon leur état (lancement de scripts, notification par E-Mail, pager, envoi de traps ?)

3.1.3.2. Architecture

Mon présente une architecture de type client-serveur. Le serveur surveille les ressources et déclenche des actions en fonction de sa configuration et de l'état de ces resources.

Le client permet d'administrer le serveur Mon. Il est disponible sous forme d'un outil en ligne de commande, d'une interface Web (CGI), ou d'une API Perl.

Les actions possibles depuis un client comprennent (cette liste n'est pas exhaustive) :

Mon est livré avec plusieurs scripts standards de surveillance de ressources : services réseau locaux ou distants (Telnet, FTP, NNTP, HTTP, POP3, IMAP, LDAP, DNS, SUN RPC), espace disque local, surveillance par SNMP, base de données (MySQL), latence réseau, imprimantes? Il est possible d'ajouter ses propres scripts ou de modifier ceux fournis (les scripts livrés sont écrits en PERL).

Les scripts d'alertes livrés sont les suivants : envoi de mail, envoi de trap, envoi de message SMS ou vers pager. De même que pour les scripts de surveillance, il est possible d'ajouter ses propres scripts (déclenchement d'actions correctrices ou autres méthodes de remontée d'alertes).

Le produit est hautement configurable : il est possible de paramétrer, pour chacune des ressources, l'intervalle de surveillance, le délai de répétition des alertes et le nombre d'échecs lors de la surveillance de cette ressource avant déclenchement de l'alerte. Les règles peuvent dépendre de la plage horaire (par exemple les traitements peuvent être différents en semaine pendant la journée). Pour faciliter la configuration, il est possible de définir des groupes de services réseau à surveiller, et de fixer des dépendances (par exemple si un routeur surveillé tombe en panne, Mon n'enverra pas d'alertes parce qu'un serveur accèdé par l'intermédiaire de ce routeur n'est plus disponible).

Mon surveille des ressources en parallèle. Un seul serveur est capable de surveiller un nombre important de ressources.

Les communications entre un client et un serveur sont authentifiées par un mot de passe (passé en clair).

Cohabitation Mon / Heartbeat :

Le produit Heartbeat seul ne peut suffire à la réalisation d'un cluster redondant, car il ne propose pas de fonction de surveillance des applications. Il est possible d'utiliser en complément le produit Mon pour pallier à ce manque.

Une solution utilisant les deux produits permet par exemple de déclencher le basculement du cluster géré par Heartbeat si l'application ne fonctionne plus sur le noeud actif.

L'intégration des deux produits est "manuelle " : il faut développer le script qui sera déclenché par Mon en cas de problème applicatif et qui lancera le basculement du cluster géré par Heartbeat, par l'intermédiaire de l'interface en ligne de commande de ce dernier.

3.1.3.4. Type de licence

Le produit est distribué sous la licence GPL version 2.

3.1.3.5. Où le trouver ?

Les sources du produit et sa documentation peuvent être téléchargées à l'URL http://www.kernel.org/software/mon/.

3.1.4. DRBD

3.1.4.1. Fonction

DRBD est un outil de réplication de disques à la volée entre deux serveurs distants (cet outil est assimilable au RAID 1, à ceci près qu'il s'applique à des disques situés sur des serveurs différents).

DRBD inclut des mécanismes de synchronisation partielle (après une déconnexion réseau) ou complète (pour une première utilisation ou après le changement de l'un des disques).

DRBD permet de réaliser des clusters hautement disponibles gérant des données dynamiques (bases de données, serveurs de fichiers ?).

3.1.4.2. Architecture

DRBD s'utilise sur deux serveurs reliés par un réseau IP. Le schéma ci-dessous illustre cette architecture :

En cas de panne du serveur principal, DRBD fonctionne selon la configuration présentée dans le schéma ci-dessous :

DRBD se présente sous la forme d'un module noyau réalisant la réplication de données, et d'un outil d'administration en ligne de commande permettant de configurer et de changer le mode (primaire/secondaire/arrêté) de DRBD. Toutes les fonctions de communication sont réalisées de manière asynchrone par des threads noyau, ce qui ne bloque pas les applications locales lors d'une écriture sur un disque répliqué.

3.1.4.3. Caractéristiques

A un instant donné, un seul serveur (serveur primaire) accède aux données (en lecture et en écriture). On ne peut donc pas utiliser DRBD dans le cadre d'un cluster où plusieurs instances d'une application sont actives (pour faire de l'équilibrage de charge par exemple). Dans ce cas il est conseillé d'utiliser un produit tel que GFS, permettant d'utiliser des disques partagés.

DRBD supporte les déconnexions ou les pannes temporaires du serveur secondaire, y compris un crash suivi d'un redémarrage, en conservant une copie locale des modifications. Lors de la reconnexion, le serveur primaire renvoie toutes les mises à jour qui ont été "ratées" par le secondaire.

Les mécanismes de détection de pannes et le déclenchement du basculement ne font pas partie du produit et sont à réaliser par ailleurs. DRBD est fourni avec des scripts permettant de l'intégrer à Heartbeat. Dans la version évaluée, ces scripts peuvent amener les deux serveurs à se retrouver simultanément dans le mode primaire lors d'un basculement manuel, et nécessitent donc d'être modifiés afin d'éviter ce problème.

Le produit n'assure aucune fonction relative à la sécurité. En particulier il n'y a pas de mécanisme d'authentification, de contrôle d'accès, d'intégrité ou de confidentialité des données échangées sur le réseau.

Dans le cas où les deux serveurs tentent de devenir primaires simultanément, le produit s'arrête immédiatement de fonctionner (ce cas ne doit pas se produire en fonctionnement normal, mais ceci garantit que s'il se produit, les données ne sont pas perdues)

DRBD propose trois protocoles différents pour la transmission de données (par ordre décroissant de performance) :
 
Protocole
Description
A
Une opération d'écriture est considérée comme terminée avec succès dès que les données sont écrites sur le disque local et envoyées sur le réseau vers le noeud secondaire
B
Une opération d'écriture est considérée comme terminée avec succès dès que les données sont écrites sur le disque local et que le noeud secondaire a accusé réception des données
C
Une opération d'écriture est considérée comme terminée avec succès dès que les données sont écrites sur le disque local et que le noeud secondaire a indiqué qu'il a écrit les données sur son disque

Seul le protocole C garantit que, en cas de crash du serveur primaire, aucune écriture ayant abouti sur le primaire ne sera perdue lors de la reprise par le secondaire. Cela est expliqué dans le schéma suivant :

Ce schéma correspond à l'utilisation du protocole C (attente de l'écriture pour accuser réception de la notification), où les caches disque en écriture sont désactivés (voir remarque importante 2 plus loin).

Remarque importante 1 : lors de la reprise par le secondaire après un crash du primaire, la partition répliquée est récupéré "en l'état" telle qu'elle était à l'instant du crash. On se trouve ainsi dans le même cas que lors de la reprise d'une partition locale après un crash. Un solution utilisant DRBD doit donc inclure des mécanisme de reprise de données, comme par exemple :

Dans les deux derniers cas, les applications gérant leurs données doivent elles aussi posséder un mécanisme de reprise de leurs données : par exemple, une application qui était en train d'écrire un fichier au moment du crash pourra retrouver un fichier tronqué lors de son démarrage sur le secondaire.

Remarque importante 2 : les systèmes d'exploitation retardent généralement les écritures sur disque pour des raisons de performances. Un tel mécanisme doit être désactivé sur une partition répliquée par DRBD (utilisation de l'option de montage "sync" sous Linux, ou utilisation d'une application qui force la mise à jour immédiate du disque lors d'une écriture comme par exemple l'annuaire OpenLDAP ou toute application stockant ses données dans une base gdbm). De la même manière, tous les mécanismes de caches en écriture (write-back caching) implémentés sur les contrôleurs de disques ou les disques eux-mêmes doivent être désactivés.

Les produits gérant eux même leur cache en écriture de façon à permettre une reprise après un crash (c'est par exemple le cas d'Oracle) peuvent être utilisés avec DRBD, mais cela peut impliquer un impact sur les performances (un appel système qui réalise effectivement l'écriture sur disque, tel qu'un sync ou une écriture quand le cache du système est désactivé, restera bloqué tant que l'écriture n'a pas été réalisée et acquittée par le noeud secondaire).

La roadmap du produit indique que les versions futures prévoient le mirroring simultané sur plusieurs serveurs secondaires distant (utilisation du multicast).

3.1.4.4. Type de licence

Le produit est distribué sous la licence GPL version 2.

3.1.4.5. Où le trouver ?

Les sources du produit et sa documentation peuvent être téléchargées à l'URL http://www.complang.tuwien.ac.at/reisner/drbd/.

3.1.5. ReiserFS

3.1.5.1. Fonction

ReiserFS est un système de fichiers journalisé.

3.1.5.2. Architecture

ReiserFS se compose d'un module noyau ajoutant le support du système de fichiers ReiserFS au noyau.

3.1.5.3. Caractéristiques

Pour des raisons de performances, l'ensemble des opérations sur disque ne sont pas journalisées. Seules les opérations modifiant des méta-données (superblock, inodes, bitmap des blocs disque, répertoires) le sont. Les conséquences sont les suivantes :

D'autres produits fournissent une fonction de journalisation complète (tel que par exemple le système de fichiers ext3). Ces produits ne se situent pas à un stade très avancé de réalisation. Pour de la journalisation dans le cadre de disques partagés, voir GFS (partie 3.1.6).

ReiserFS peut être utilisé comme système de fichiers de boot (système de fichiers contenant le répertoire racine) sur un système Linux.

3.1.5.4. Type de licence

ReiserFS est distribué sous la licence GPL version 2.

3.1.5.5. Où le trouver ?

Les sources du produit et sa documentation peuvent être téléchargées à l'URL http://devlinux.com/projects/reiserfs/.

3.1.6. GFS

3.1.6.1. Fonction

GFS est un système de fichiers prévu pour être utilisé sur des disques partagés (i.e. reliés physiquement à plusieurs serveurs) sous Linux. Les disques peuvent être accédés simultanément en lecture et en écriture depuis tous les serveurs qui leur sont connectés.

GFS fournit en plus une fonction de journalisation.

3.1.6.2. Architecture

Le schéma ci-dessous présente l'architecture requise pour utiliser GFS :

GFS supporte un nombre quelconque de clients reliés à un ou plusieurs disques par 'un moyen de communication pouvant être l'un des suivants :

GFS permet d'accéder des disques simples ou des baies RAID.

GFS se présente sous la forme d'un module ajoutant le support du système de fichiers GFS et d'utilitaires permettant la création et la gestion de disques ou de partitions partagés.

3.1.6.3. Caractéristiques

GFS s'appuie sur un mécanisme de verrous nommé Dlock. Ce mécanisme nécessite l'implémentation, au niveau du disque ou de la baie de disques, d'une nouvelle commande SCSI permettant de poser ou retirer un verrou sur une partie du disque, ou de consulter l'état des verrous. L'ensemble des informations concernant les verrous est stocké au niveau du disque ou de la baie. Dlock permet aux clients de conserver des caches locaux à l'aide d'un mécanisme de callbacks destinés à notifier un client si une donnée qu'il a conservé dans son cache a été modifiée.

La spécification de Dlock est présente à l'URL http://www.globalfilesystem.org/Pages/dlock.html.

Elle a été implémentée par plusieurs constructeurs de disques (Seagate, Silicon Gear) ou de baies RAID (Dot Hill). Les versions du firmware pour ces produits avec le support de la spécification Dlock et les outils de mise à jour sont disponibles sur le site Web de GFS.

Dans le cas ou Dlock ne serait pas supporté par les disques ou les baies de disques, il est possible d'utiliser une solution uniquement logicielle (produit GLMD) intégrée à la distribution GFS, mais qui est encore en cours de développement.

La plus grosse configuration basée sur GFS a été présentée à la Linux World Expo 2000, et comprenait 16 clients et 64 disques répartis en 8 baies, le tout relié par Fibre Channel.

La fonctionnalité de journalisation est en phase de développement actuellement.

3.1.6.4. Type de licence

GFS est distribué sous la licence GPL version 2.

3.1.6.5. Où le trouver ?

Le produit GFS ainsi que sa documentation sont disponibles à l'URL http://www.globalfilesystem.org/.

3.1.7. LVS

3.1.7.1. Fonction

LVS (Linux Virtual Server) est un outil d'équilibrage de charge pour des services réseau. Il permet de répartir des requêtes Web, SMTP, ou n'importe quel autre protocole TCP/IP, entre plusieurs serveurs fournissant le service. Ce mécanisme est transparent pour les clients qui ne voient qu'une seule adresse.

Deux solutions complètes basées sur LVS sont en cours de développement :

Ces deux produit sont distribués sous licence GPL.

La copie d'écran ci-dessous présente l'interface Web de Piranha :

3.1.7.2. Architecture

LVS supporte trois architectures :

Ces trois solutions sont décrites ci-dessous.

Les schémas présentés dans les parties suivantes comportent un serveur dispatcher de backup. Le mécanisme de backup ne fait pas partie du produit LVS standard, mais est inclus dans les solutions complètes Piranha et Ultramonkey.

Translation d'adresses (NAT)

Le schéma suivant présente l'architecture réseau dans le cadre de la solution avec translation d'adresses. Cette solution montre un fonctionnement équivalent à celui du produit commercial CISCO Local Director.

Le noeud dispatcher réalise la translation des adresses source et destination pour les paquets entrants et sortants.

Avantage :

Inconvénient : 

Tunneling IP

L'architecture réseau, dans la solution avec tunneling IP, est la même que dans le cas de la translation d'adresse (voir ci-dessus).

Le dispatcher encapsule les paquets en provenance du client qui lui sont donc destinés, dans un paquet IP qu'il envoie au serveur qu'il a choisi. Le schéma suivant illustre le format d'un paquet IP entrant (envoyé par le dispatcher à un serveur) :

Les paquets IP sortants (envoyés par les serveurs vers un client) sont relayés par le dispatcher à l'aide du mécanisme de routage IP standard.

Avantage :

Inconvénients :

Routage direct

Le schéma suivant présente l'architecture réseau dans le cadre de la solution avec routage direct. Elle présente un fonctionnement équivalent à celui du produit commercial Network Dispatcher d'IBM.

Dans cette configuration seuls les paquets IP en provenance des clients sont traités par le dispatcher. Les paquets à destination du client ne passent pas par le dispatcher. De même que dans la solution précédente, les serveurs doivent avoir une adresse IP virtuelle qui est la même que celle du dispatcher.

Avantage :

Inconvénients :

3.1.7.3. Caractéristiques

Les critères suivants sont exploitables par LVS pour sélectionner le serveur recevant une requête :

Il n'est pas possible d'obtenir des critères dépendant de l'état des serveurs (charge, occupation CPU?).

Les fonctions de haute disponibilité (dispatcher redondant et détection des serveurs en panne) ne sont pas incluses dans la version standard de base de LVS, mais sont fournies avec les solutions complètes présentées au 3.1.7.1.

Remarque importante : certains systèmes d'exploitation répondent à des requêtes ARP arrivant sur une interface différente de celle de l'adresse demandée. C'est en particulier le cas des versions 2.2.x de Linux. Ces systèmes ne peuvent pas être utilisés comme serveurs dans les architectures avec tunneling ou routage direct. Pour Linux 2.2.x un patch est disponible sur le site de LVS afin de corriger ce problème.

3.1.7.4. Type de licence

LVS est distribué sous la licence GPL version 2.

3.1.7.5. Où le trouver ?

Les sources du produit et sa documentation peuvent être téléchargées à l'URL http://www.linuxvirtualserver.org/.

UltraMonkey est accessible à l'URL http://ultramonkey.sourceforge.net/.

Piranha est inclus dans les distributions RedHat 6.1 et ultérieures. Le produit est présenté à l'URL http://www.redhat.com/support/wpapers/paranha/x32.html.

3.2. Couverture fonctionnelle des produits

Le tableau ci-dessous présente, pour chacune des fonctions, la liste des produits qui assurent cette fonction, parmi ceux étudiés dans ce document.

 
Fonctions
Logiciels libre fournissant cette fonction
Mise en cluster
Mécanismes de reprise
Heartbeat
Détection de panne
Heartbeat, Mon
Disponibilité des données
Support du RAID
Linux (pour RAID matériel et logiciel)
Disques partagés
GFS
Volumes partagés
DRBD
Haute disponibilité des systèmes de fichiers
ReiserFS
Equilibrage de charge
Equilibrage de charge
LVS
Redondance matérielle locale
Redondance matérielle locale
Linux
Redondance multi-site
Redondance multi-site
Aucun

3.3. Aspects relatifs à la sécurité

Cette partie présente les différents problèmes liés à la sécurité dans le cadre de l'utilisation des produits étudiés :

Authentification

Les produits qui communiquent entre noeuds d'un cluster utilisent des mécanismes d'authentification variables :

Contrôle d'accès

Aucun produit ne fournit de fonction de contrôle d'accès pour ses échanges réseau : les paquets authentifiés sont toujours acceptés.

Dans le cadre de l'utilisation de DRBD, l'authentification sur les systèmes de fichiers Unix est basée sur les UID. Les UID doivent donc être les mêmes sur les deux serveurs.

Intégrité

Hormis Heartbeat qui utilise MD5 ou SHA pour signer ses paquets, aucun des produits ne propose de fonction assurant l'intégrité des données échangées.

En particulier, DRBD ne garantit pas l'intégrité des informations écrites sur le disque du noeud secondaire.

Confidentialité :

Aucun des produits étudiés ne propose de mécanisme pour assurer la confidentialité des données. En particulier, si on utilise DRBD, on peut reconstituer le disque répliqué ou une partie de celui-ci en "reniflant" suffisamment de paquets échangés.

Solutions :

Ce paragraphe présente des solutions destinées à sécuriser l'utilisation des produits étudiés :

1ère solution : sécurité de périmètre :

Cette solution consiste à intercaler un firewall entre le cluster de serveurs hautement disponibles et l'extérieur.

Cette configuration garantit que seules les requêtes autorisées venant des clients atteignent les noeuds composant le cluster. En particulier, un client connecté au réseau non sécurisé ne peut pas interférer avec les produits assurant la haute disponibilité.

2ème solution : utilisation des réseaux physiques distincts :

Une autre possibilité consiste à utiliser des réseaux physiques différents pour les informations sensibles ou pour les applications dont les communications ne sont pas protégées par des mécanismes de sécurité suffisants. Le schéma ci-dessous présente un exemple de cluster sécurisé :

Les précautions suivantes doivent être prises :

Ce type d'architecture est supporté par tout les produits étudiés.

Les deux solutions présentées ci-dessus ne sont pas exclusives et il est possible de les combiner.

4. Comparaison

4.1. Critères

Les produits seront évalués selon deux groupes de critères décrits dans les paragraphes suivants :
Les fonctionnalités à évaluer sont celles présentées au chapitre 2. Le résultat de cette évaluation indiquera quelles sont les possibilités offertes par le produit.

Cette partie décrit plus précisément quels points seront considérés pour chacune des fonctions et éventuellement sous-fonctions étudiés et de quelle façon il seront évalués.

4.1.1.1. Mise en cluster

Les points suivants seront évalués :

Mécanismes de reprise :

Détection de pannes :

Support du RAID :

Disques partagés physiquement entre plusieurs noeuds:

Volumes partagés :

Haute disponibilité des systèmes de fichiers :

Les points suivants seront évalués :
Le support des produits étudiées sera évalué pour les solutions matérielles suivantes :
Les points suivants seront évalués :
Ces critères ne sont pas associés à des fonctionnalités particulières, mais permettent une évaluation d'ensemble des produits. Ils concernent :

Ces critères sont détaillés ci-dessous :

Notoriété :

Appréciation de la notoriété du produit et de la société qui l'édite.

Les références connues du produit seront prises en compte.

Qualité technique du produit :

Synthèse de la qualité des produits sur le plan technique.

En particulier, les sous-critères suivants seront évalués :

Administration et exploitation :

Les points suivants seront jugés :

Maintien en conditions opérationnelles :

Ce critère constitue une synthèse des sous-critères suivants :

Cette partie décrit la méthode d'évaluation et de comparaison des produits, et la manière dont les résultats seront présentés.

On comparera trois solutions décrites ci-dessous :

Pour chacune des solutions sont évalués :

Ces notations seront récapitulées sous la forme de deux tableaux :

Les colonnes de ces tableaux sont les suivantes :

Cette partie contient les tableaux d'évaluation et de synthèse décrits en 4.1.3.


Tableau 1 : Résultat de l'évaluation

 
Critères
Evaluation
Logiciel libre
HACMP
TruCluster
Log. Libre
Produits
Remarques
Mise en cluster
Mécanismes de reprise
***
***
*
Hearbeat
Heartbeat fourni une solution "légère" de clustering pour deux serveurs. Ce produit est à compléter par un outil de détection de pannes logicielles tel que Mon.
Modes de "clusterisation" supportés
+
+
-
Contrairement aux solutions commerciales, Heartbeat ne supporte qu'un seul mode de reprise (voir description 3.1.2). En particulier, pas de failover en cascade, d'instances multiples de service? . Heartbeat impose un basculement lorsque le noeud principal est disponible après une panne.
Nombre de noeuds supportés
32
8
2
La documentation sur Heartbeat indique que la limitation à 2 noeuds devrait être bientôt supprimée (l'architecture du produit est prévue pour un plus grand nombre de noeuds).
Sélection dynamique du noeud de backup
+
-
-
Cette fonction n'est pas implémentée dans Hearbeat et TruCluster.
Compatibilité avec les produits d'équilibrage de charge
+
+
-
Heartbeat ne supporte pas d'instances multiples de service. Il n'est donc pas possible d'utiliser Heartbeat pour gérer les serveurs dans le cadre d'une solution d'équilibrage de charge à l'aide de ce produit.
Actions correctrices possibles
+
+
+
Actions possibles :
  • Reprise d'adresse IP ;
  • Reprise d'un service (via script de démarrage) ;
  • Action quelconque (script à fournir).

En cas de panne d'une interface réseau le produit ne sait pas basculer sur une autre interface (sauf à développer cette fonction).

Les trois produits sont équivalents.

Détection de pannes
***
***
***
Heartbeat, Mon
Les logiciels libres étudiés permettent de surveiller la plupart des ressources logicielles et matérielles.
Détection pannes logicielles
+
+
+
Mon permet de surveiller un grand nombre de services réseau (HTTP, LDAP?).
Détection pannes matérielles
+
+
+
Les produits permettent de détecter des pannes matérielle avec des mécanismes de "ping" (pour Mon) ou de dialogue entre agents présents sur les noeuds. Les trois produits sont équivalents.

On peut noter que Heartbeat dialogue par plusieurs méthodes simultanément (réseau et port série), ce qui lui permet de distinguer les pannes réseau et pannes complètes d'un noeud.

Le produit lm-sensors (non étudié dans ce rapport) permet de contrôler les sondes de température, ventilateurs, alimentation, présent dans les matériels PC standards.

Détection de problèmes de ressources
+
-
+
La seule ressource qu'on sait surveiller (avec Mon) est l'espace disque, mais on peut en ajouter en écrivant ses propres scripts.

Au niveau des solutions commerciales, cette solution est implémentée dans le produit d'IBM mais pas celui de Digital.

Interfaces (API)
+
+
+
Heartbeat : Il est possible de déclencher le basculement depuis une application par l'intermédiaire d'outils en ligne de commande. L'API de consultation de l'état du cluster est en cours de développement et présente encore de gros problèmes de stabilité.

Mon : Mon est livré avec un outil d'administration en ligne de commande que l'ont peut exécuter sur le noeud du serveur Mon ou à distance. Les fonctions de l'outil sont décrites en 3.1.3. Le produit est livré avec des exemples de scripts utilisant cet outil.

Les APIs des produits commerciaux sont plus homogènes.

Extensibilité
+
+
+
Heartbeat : On peut ajouter des actions à déclencher lors du basculement.

Mon : On peut ajouter des scripts de surveillance de nouvelles resources ou des scripts à déclencher en cas d'alerte. 

Les trois produits sont équivalents.

Réglages possibles
+
Tous les intervalles de surveillance, le nombre d'échecs avant alerte ou basculement sont paramétrables.

Dans le cas de Mon on peut définir des dépendances entre les resources partagées pour limiter le nombre d'alarmes.

Disponibilité des données
Support RAID
**
**
**
Linux
Linux fournit une fonction de RAID logiciel très complète, mais supporte très peu de solutions matérielles.
RAID matériel
+
+
-
Un seul produit (contrôleur) supporté par Linux contrairement aux autres solutions..
RAID logiciel
-
-
+
Très complet pour Linux.

Pas supporté par HACMP. Support limité par Digital (pas de Raid 5).

Disques partagés
**
***
**
GFS
Solutions commerciales :
  • Compaq supporte CFS (Cluster File System) ;
  • IBM supporte la même fonctionnalité mais de façon non conforme à la norme POSIX.
  • GFS supporte peu de matériels.
Produits supportés
+
+
-
GFS impose des limitations au matériel : le disque ou la baie doivent supporter la spécification Dlock qui est peu répandue, et les constructeurs qui l'ont implémenté ne la supportent pas.

Support SCSI et Fibre Channel uniquement (pas de SSA).

Accès concurrent possible
-
+
+
Note : GFS supporte la journalisation dans le cas d'accès en écriture multiples, contrairement à la solution d'IBM.
Nombre de noeuds supportés
8
16+
La mise en place de GFS la plus importante a utilisé 16 noeuds accédant de façon concurrente à des disques partagés.
Volumes partagés
*
*
***
DRBD
Cette fonctionnalité n'est pas implémentée dans les solutions commerciales où on utilise plutôt des disques partagés.
Mécanisme de réplication de volumes / utilisation de volumes distants
n/a
n/a
+
Le seul mode de fonctionnement supporté par DRBD est la réplication à la volée.
Accès concurrent possible
n/a
n/a
-
Pas d'accès concurrent possible
Mécanisme de resynchronisation après déconnexion
n/a
n/a
+
DRBD a 2 mécanismes :
  • resynchronisation partielle déclenchée automatiquement après une déconnexion temporaire (coupure réseau ou panne du secondaire)
  • resynchronisation totale (recopie de l'ensemble du volume) : Son déclenchement se fait manuellement par un outil en ligne de commande.

Les deux mécanismes fonctionnent en tâche de fond.

Nombre de noeuds supportés
n/a
n/a
2
La roadmap du produit indique que la limitation a 2 noeuds sera supprimée.
Haute disponibilité des systèmes de fichiers
***
***
***
ReiserFS
ReiserFs : Journalisation des méta-données uniquement (c'est aussi le cas des solutions commerciales), ce qui correspond à une utilisation courante.
Systèmes de fichiers journalisés
+
+
+
ReiserFS
Pour les solutions commerciales, la journalisation est une fonction standard des systèmes d'exploitations sur lesquelles elles fonctionnent.

Note : plusieurs autres systèmes de fichiers journalisés sont en cours de développement (XFS, JFS, ext3, LinLogFS?)

Haute disponibilité des systèmes de fichiers
+
-
Aucun
IBM fournit des fonctions de récupération de l'état d'un système de fichiers (verrous?) après un crash. Aucun des produits libres ne fournit de solution.
Equilibrage de charge
Equilibrage de charge
***
***
LVS
La solution commerciale considérée pour IBM est : Network Dispatcher pour IBM/HACMP
Haute disponibilité du mécanisme d'équilibrage de charge
+
+
Ça n'est pas une fonction du produit de base : il faut utiliser une des solutions Piranha ou Ultramonkey, ou cela doit être réalisé par ailleurs.
Critères de "dispatching" supportés
+
-
Critères :
  • round robin pondéré ou pas,
  • choix du serveur avec le moins de connexions actives, pondéré ou pas.

LVS ne supporte pas de critère dépendant de l'état des serveurs (charge, utilisation CPU ..) contrairement à la solution d'IBM.

Détection des noeuds en panne
+
+
Les solutions Piranha et Ultramonkey apportent cette fonction.
Mécanismes supportés
-
+
LVM est la solution qui supporte le plus de mécanismes de routage de paquets vers les serveurs. IBM ne supporte que le routage direct.
Redondance matérielle locale
Redondance matérielle locale
***
**
Linux 
Rien n'est prévu parmi les logiciels libres, à part la gestion des watchdogs et des onduleurs.
Support des matériels hautement disponibles
+
-
Aucun
Pas de solution logiciel libre.
Gestion des onduleurs
+
+
Cf. remarque
Il existe de nombreux produits dans le logiciel libre permettant de gérer les onduleurs et de déclencher des actions selon l'état de l'onduleur. Ces produits n'ont pas été étudiés dans ce document.
Support des watchdogs
+
Linux
Supporté par Linux, mais le nombre de solutions matérielles supportées est très faible (3 produits).
Support arrêt+redémarrage matériel
+
-
Aucun
Disponible sur HACMP mais pas de solution logiciel libre.
Redondance multi-site
Redondance multi-site
***
*
*
Aucun
Aucun logiciel libre ne fournit cette fonctionnalité (parmi les solutions commerciales, seul IBM fournit une fonction de reprise multi-site sans limite de distance via un WAN).
Mécanismes de synchronisation de données entre sites
+
n/a
n/a
Mécanismes de reprise de multi-sites
+
n/a
n/a
Critères généraux
Notoriété
***
***
*
tous
Les produits logiciels libres étudiés (à part le système Linux) présentent peu de références à l'heure actuelle.

On peut citer l'utilisation de ReiserFS pour le serveur sourceforge.net (850Go de fichiers en ligne dont la moitié est sous ReiserFS).

Qualité technique
***
***
**
Variable selon les logiciels libres utilisés.
Robustesse
+
+
+
Variable selon les produits. Certains produit nécessitent des corrections pour pouvoir fonctionner correctement. Par exemple dans certaines circonstances, l'utilisation conjointe de DRBD et Heartbeat conduit à des situations ou les deux noeuds essaient d'être primaire en même temps, ce qui conduit au blocage du produit DRBD.
Sécurité
+
+
-
Voir partie 3.3.
Administration et exploitation
***
*
Adrminstration très "Bas niveau" pour les logiciels libres.
Configuration à chaud possible
+
-
Pas de configuration sans redémarrage des produits, à part :
  • Retrait temporaire d'un serveur d'un cluster Heartbeat possible ;
  • Arrêt de la surveillance d'une ressource par Mon.
Configuration centralisée
+
-
Aucune pour les logiciels libres.
API d'administration
+
-
Logiciels libres : en général, administration "à l'ancienne" : fichier de configuration et redémarrage du produit pour prendre en compte les modifications.

Seul Mon fournit une vraie API.

IBM fournit une API C/C++.

Centralisation de la configuration des systèmes d'exploitation des différents noeuds
+
-
Utilisation des mécanismes standard Unix pour les logiciels libres.

Les outils d'administration d'IBM permettent d'administrer les systèmes d'exploitation des différents noeuds d'un cluster de manière centralisée (gestion des utilisateurs, nom des serveurs ?)

Console d'exploitation centralisée
+
-
IBM fournit une console graphique présentant l'état des différents noeuds d'où on peut déclencher des actions telles que le basculement d'un service, le démarrage ou l'arrêt d'un noeud ?

Rien pour les logiciels libres.

Mécanismes d'alertes
+
-
Seul Mon est capable de remonter ses propres alertes. N'existe pas sur les autres logiciels libres..
Maintien en conditions opérationnelles
***
**
Documentation "dense" et très technique et * support » par mailing-list pour les logiciels libres..
Documentation
+
+
Documentation type Man UNIX ou HOWTO, en général assez concise et pas du tout didactique, mais assez complète. Les produits sont fournis avec des exemples de fichiers de configuration.

Le produit LVS se démarque des autres en fournissant une documentation en ligne de bonne qualité contenant plusieurs exemples de configuration.

Bonne documentation pour HACMP.

Support
+
-
Pas de support officiel pour le logiciel libre, mais il y a une mailing-list sur la haute disponibilité (archive avec outil de recherche et modalités d'inscription sur www.linux-ha.org) à laquelle les développeurs des produits participent.
Prise en main
+
-
Les produits sont en général simples à installer (à part ReiserFS qui nécessite un patch noyau et dont la mise en place comme système de fichier d'une distribution existante peut être délicat) et à utiliser. Mais une intégration est nécessaire pour les logiciels libres.



Tableau 2 : Synthèse de l'évaluation
 
Critères
Notation
Synthèse logiciel libre
HACMP
TruCluster
Log. libre
Produits
Remarques
Mise en cluster
Mécanismes de reprise
***
***
*
Heartbeat
Heartbeat fournit une solution "légère" de clustering pour deux serveurs.
Détection de panne
***
***
***
Heartbeat, Mon
Les logiciels libres étudiés permettent de surveiller la plupart des ressources logicielles et matérielles.
Disponibilité des données
Support RAID
**
**
**
Linux
RAID logiciel plus complet que les solutions commerciales. RAID matériel supporte peu de contrôleurs.
Disques partagés
**
***
**
GFS
Produit complet mais avec des contraintes importantes sur le matériel (support d'une extension à la norme SCSI).
Volumes partagés
*
*
***
DRBD
DRBD fournit une fonction de réplication de disque au fil de l'eau et n'a pas d'équivalents dans les solutions commerciales.
Haute disponibilité des systèmes de fichiers
***
***
***
ReiserFS
ReiserFS est déjà utilisé en production sur plusieurs gros serveurs. 
Equilibrage de charge
Equilibrage de charge
***
***
LVS
LVS est disponible sous forme de solutions complètes,les outils administration viennent de sortir.
Redondance matérielle locale
Redondance matérielle locale
***
**
Linux 
Linux ne supporte pas la plupart des matériels redondants, mais permet de gérer les onduleurs et les watchdogs.
Redondance multi-site
Redondance multi-site
***
*
*
Aucun
Aucun logiciel libre ne fournit cette fonctionnalité (parmi les solutions commerciales, seul IBM fournit une fonction de reprise multi-site sans limite de distance via un WAN).
Critères généraux
Notoriété
***
***
*
Tous
Très peu de références en production actuellement (à part Linux).
Qualité technique
***
***
**
Variable selon les produits.
Administration
***
*
Adrminstration très "Bas niveau" pour les logiciels libres à l'exception des deux solutions intégrant LVS.
Maintien en conditions opérationnelles
***
**
Documentation "dense" et très technique et support par mailing-list.


4.3. Synthèse

On constate que dans l'environnement des logiciels libres on trouve encore peu de produits fournissant une solution globale de haute disponibilité, et que pour mettre en place une telle solution il faut utiliser plusieurs "petits" produits apportant chacun une fonction de la haute disponibilité (clustering, réplication de disques, RAID, ?). Les produits doivent ensuite être intégrés.

Les distributions Linux incluent rarement des outils de haute disponibilité. Il faut donc installer ces produits soi-même et les intégrer au système d'exploitation. Par exemple, dans le cas de ReiserFS, cette opération est très lourde : elle nécessite l'installation d'une distribution, la sauvegarde complète, le repartitionnement et mise en place des partitions ReiserFS, la restauration du système, et la mise à jour "à la main" des fichiers de configuration du système, étant donné que ReiserFS n'est pas pris en compte par les outils d'administration livré avec la distribution. Les seules exceptions sont :

Faiblesses des produits :

Les logiciels libres offrent des solutions de qualité comparable (à part pour les outils d'administration) avec les produits commerciaux dans les domaines suivants :

Les logiciels libres permettent la mise en place de solutions hautement disponibles sur du matériel à faible coût (PC standard) :

En conclusion, les solutions de haute disponibilité dans l'environnement logiciel libre n'ont pas encore atteint le stade de la maturité. On peut toutefois affirmer que la haute disponibilité est une réalité satisfaisante pour Linux si on se limite à des cas simples, et en particulier au cas le plus couramment utilisé qui est le backup d'un serveur sur un autre avec un partage de disques.

5. Le futur

Les éditeurs de distributions incluent de plus en plus des produits concernant la haute disponibilité dans leurs distributions :

On voit un nombre croissant d'annonces de sociétés commerciales qui prennent en compte le problème de la haute disponibilité et vont proposer (ou proposent déjà) des solutions complètes, des nouveaux produits, ou la mise sous licence open source de leurs produits déjà existants. On peut citer les exemples suivants :

Les mailing-lists et forums de discussions traitant des solutions libres pour la haute disponibilité enregistrent un fort trafic traitant en particulier des points suivants :

L'agitation des développeurs et des sociétés commerciales autour de la haute disponibilité sur Linux et les logiciels libres montre qu'il existe une forte attente dans ce domaine et nous assure d'avoir rapidement des produits adéquats pour apporter à cet environnement des solutions plus performantes que les meilleures offres commerciales disponibles aujourd'hui sur le marché.