Auteur :
|
Eric
Bérenguier
|
Référence :
|
00-176/200000633
|
Version :
|
1.0
|
Date :
|
30/06/2000
|
Approbateur :
|
Guy
Autier
|
CELARSécurité des logiciels libresHaute disponibilité |
Historique des révisions
N°
|
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
Le document comprend les parties suivantes :
Ces fonctionnalités sont les suivantes :
Les sous-fonctions sont détaillées ci-dessous :
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).
|
|
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
|
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.
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.
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.
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) :
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.
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 ?).
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é.
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) :
|
|
|
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
|
|
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
|
|
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).
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.
GFS fournit en plus une fonction de journalisation.
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.
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.
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 :
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 :
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.
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.
|
|
|
|
Mécanismes de reprise |
Heartbeat
|
Détection de panne |
Heartbeat,
Mon
|
|
|
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 |
LVS
|
|
|
Redondance matérielle locale |
Linux
|
|
|
Redondance
multi-site
|
Aucun |
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.
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.
Mécanismes de reprise :
Détection de pannes :
Disques partagés physiquement entre plusieurs noeuds:
Volumes partagés :
Haute disponibilité des systèmes de fichiers :
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 :
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 :
|
|
|
|||
|
TruCluster
|
|
|
|
|
|
|||||
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
|
|
|
|
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 :
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. |
||
|
|||||
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 :
|
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
|
|
|
|
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
|
|
|
|
Le seul mode de fonctionnement supporté par
DRBD est la réplication à la volée.
|
|
Accès concurrent
possible
|
|
|
|
Pas d'accès concurrent possible
|
|
Mécanisme de resynchronisation
après déconnexion
|
|
|
|
DRBD a 2 mécanismes :
Les deux mécanismes fonctionnent en tâche de fond. |
|
Nombre de noeuds supportés
|
|
|
|
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 |
|
|
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 :
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
|
|
|
|
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
|
|
|
|
||
Mécanismes de reprise
de multi-sites
|
|
|
|
||
|
|||||
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 :
|
|
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
|
|
|
|||
|
TruCluster
|
|
|
|
|
|
|||||
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.
|
|
|||||
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 |
|
|
|
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 |
|
|
|
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).
|
|
|||||
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.
|
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.
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é.