• Aucun résultat trouvé

La haute disponibilité dans la vraie vie

N/A
N/A
Protected

Academic year: 2022

Partager "La haute disponibilité dans la vraie vie"

Copied!
37
0
0

Texte intégral

(1)

La haute disponibilité dans la vraie vie

Arnaud Gomes-do-Vale

Le 2 août 2010

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 1 / 37

(2)

Sommaire

1 Généralités

2 Problématique

3 Outils

4 Déploiement : le présent

5 Déploiement : l’avenir

(3)

Sommaire

1 Généralités

2 Problématique

3 Outils

4 Déploiement : le présent

5 Déploiement : l’avenir

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 3 / 37

(4)

Généralités

services

point critique (SPOF)

I machine

I logiciel

I réseau

I stockage

I électricité

I bâtiment

(5)

La règle des 9

99% 3,6 jours 99,9% 8,7 heures 99,99% 52 minutes 99,999% 5 minutes 99,9999% 31 secondes

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 5 / 37

(6)

Sommaire

1 Généralités

2 Problématique

3 Outils

4 Déploiement : le présent

5 Déploiement : l’avenir

(7)

L’Ircam

Présentation générale

recherche

production musicale enseignement

beaucoup de machines auto-administrées pas d’hébergement «lourd»

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 7 / 37

(8)

L’Ircam

Quelques chiffres

200-300 utilisateurs 400 machines 40 serveurs

160 machines virtuelles

(9)

L’environnement

un local réseau par bâtiment une salle machines neuve

deux circuits électriques indépendants dont un secouru de bonne qualité ou pas

budget réduit

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 9 / 37

(10)

L’Ircam

L’informatique

Linux (principalement CentOS) Xen, Linux VServer

pas ou peu de stockage centralisé beaucoup de services...

I essentiels : DNS, LDAP, SMTP, POP/IMAP, DHCP, homes

I importants : MySQL, CUPS, «gros» sites web

I peu importants : VPN, sites web divers...

(11)

Les problèmes

pour une machine qui tombe, 20 ou 30 services arrêtés

impossibilité de rebooter certains serveurs à moins de fermer le bureau à clé

utilisateur != client

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 11 / 37

(12)

Sommaire

1 Généralités

2 Problématique

3 Outils

4 Déploiement : le présent

5 Déploiement : l’avenir

(13)

La base

nagios puppet

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 13 / 37

(14)

Redondance native

DNS (autorité)

@ IN NS maelzel.ircam.fr.

IN NS nadia.ircam.fr.

IN NS vaslav.ircam.fr.

IN NS ns0.pasteur.fr.

IN NS ns1.pasteur.fr.

résolveur DNS

nameserver 129.102.2.10 nameserver 129.102.2.11 options timeout:1 rotate

(15)

Redondance native

réplication LDAP

host ldap1.ircam.fr ldap2.ircam.fr

AuthLDAPUrl ldap://ldap1 ldap2/dc=ircam,dc=fr SMTP

@ IN MX 10 mx1.ircam.fr.

IN MX 20 mx2.ircam.fr.

IN MX 100 mx3.ircam.fr.

+ mise en œuvre facile

service dégradé quand une instance tombe

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 15 / 37

(16)

Cluster HA

Concepts

nœud, service

données, stockage partagé split brain

quorum

loi de l’information de Dunn

Quand on ne sait pas, on ne sait pas.

Et on ne peut rien inventer.

fencing, STONITH (shoot the other node in the head)

(17)

Cluster HA

Stockage partagé

SAN, NAS OCFS2, GFS réplication DRBD

I réplication de données au niveau bloc

I 2 ou 3 machines

I précautions à prendre en cas de split brain

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 17 / 37

(18)

Heartbeat & co

Architecture

machine1

service service

service service

service service

service service

service

machine2 machine3 machine4 corosync/openais

pacemaker

(19)

Heartbeat & co

Configuration de corosync

totem { .../...

interface { ringnumber: 0

bindnetaddr: 129.102.2.0 mcastaddr: 239.102.2.10 mcastport: 694

} .../...

}

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 19 / 37

(20)

Heartbeat & co

Multicast

switches Cisco + IGMP snooping + multicast non routé = attention !

I solution 1 :

ip multicast-routing interface Vlan102

ip pim sparse-dense-mode

I solution 2 :

interface Vlan102

ip igmp snooping querier

Ne pas oublier d’ouvrir les firewalls !

iptables -A INPUT -p udp -d 239.102.2.10 \ --dport 694 -j ACCEPT

iptables -A INPUT -p igmp -j ACCEPT

(21)

Heartbeat & co

Configuration de pacemaker

<cib validate-with="pacemaker-1.0" crm_feature_set="3.0.1"

have-quorum="1" admin_epoch="0" epoch="871"

dc-uuid="dns-ha1.ircam.fr" num_updates="28">

<configuration>

.../...

<resources>

<primitive class="ocf" id="ip_dede" provider="heartbeat"

type="IPaddr">

<instance_attributes id="ip_dede-instance_attributes">

<nvpair id="ip_dede-instance_attributes-ip" name="ip"

value="129.102.2.10"/>

<nvpair id="ip_dede-instance_attributes-cidr_netmask"

name="cidr_netmask" value="32"/>

</instance_attributes>

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 21 / 37

(22)

Heartbeat & co

Configuration de pacemaker

crm configure property stonith-enabled="false"

crm configure property no-quorum-policy="ignore"

crm configure primitive ip_dede ocf:heartbeat:IPaddr \ params ip=129.102.2.10 cidr_netmask=32 \

op monitor interval=30s

crm configure primitive ip_nenesse ocf:heartbeat:IPaddr \ params ip=129.102.2.11 cidr_netmask=32 \

op monitor interval=30s

crm configure colocation ip_dede-away-from-ip_nenesse \ -500: ip_dede ip_nenesse

(23)

Heartbeat & co

Calcul des scores

décider quel nœud fait tourner quel service

pour une ressource donnée, calcul d’un score pour chaque nœud à chaque changement de situation

contraintes

I localisation

I ordre

I colocalisation Exemple :

crm configure colocation ip_dede-away-from-ip_nenesse \ -500: ip_dede ip_nenesse

crm configure rsc_defaults resource-stickiness=100

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 23 / 37

(24)

Heartbeat & co

Clusters de deux machines

pas de quorum

crm configure property no-quorum-policy="ignore"

attention au fencing

crm configure property stonith-enabled="false"

un bon cluster de 2 machines, c’est un cluster de 3 machines crm node standby machine3

(25)

Sommaire

1 Généralités

2 Problématique

3 Outils

4 Déploiement : le présent

5 Déploiement : l’avenir

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 25 / 37

(26)

Le cluster en production

increvable.ircam.fr : vieux serveur 32 bits dns-ha1.ircam.fr : invité Xen 64 bits CentOS 5

dépôt RPM Clusterlabshttp://www.clusterlabs.org/rpm/

sw−batA

Xen

increvable dns−ha1

sw−servers

(27)

Résolveur DNS

Avant

2 vservers indépendants sur 2 hôtes différents BIND

resolv.conf adapté sur les clients nameserver 129.102.2.10 nameserver 129.102.2.11 options timeout:1 rotate

problème sur les machines clientes non administrées

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 27 / 37

(28)

Résolveur DNS

Après

Unbound (géré par puppet)

2 adresses IPv4 réparties sur les 2 machines

crm configure primitive ip_dede ocf:heartbeat:IPaddr \ params ip=129.102.2.10 cidr_netmask=32 \

op monitor interval=30s

crm configure primitive ip_nenesse ocf:heartbeat:IPaddr \ params ip=129.102.2.11 cidr_netmask=32 \

op monitor interval=30s

crm configure colocation ip_dede-away-from-ip_nenesse \ -500: ip_dede ip_nenesse

en cas de coupure entre les switches, les IP restent visibles des deux côtés (mais le routage entre les VLAN ne se fait que d’un côté)

(29)

SMTP sortant

Avant

postfix, OpenLDAP, amavis, clamav

1 vserversmtpet 1 vservermailldappour la réécriture 1 vserversmarthost pour la distribution

postfix OpenLDAP

(réplique)

mailldap

smtp

postfix amavis postfix

clamav

smarthost

INTERNET

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 29 / 37

(30)

SMTP sortant

Après

postfix, OpenLDAP, amavis, clamav (gérés par puppet) 1 adresse IPv4smtp

crm configure primitive ip_smtp ocf:heartbeat:IPaddr \ params ip=129.102.2.82 cidr_netmask=32 \

op monitor interval=30s

chaque machine du cluster a son propre OpenLDAP local 1 MXsmarthost (2 vservers) pour la distribution

smarthost IN MX 10 smarthost1 IN MX 10 smarthost2

configuration Postfix adaptée sur les machines du cluster relayhost = smarthost.ircam.fr

(31)

SMTP sortant

Après

postfix amavis postfix

clamav

postfix amavis postfix

clamav postfix

OpenLDAP (réplique)

postfix OpenLDAP

(réplique)

INTERNET

smarthost1 increvable

dns−ha1 smarthost2

smtp

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 31 / 37

(32)

Problèmes rencontrés

IPv6 (ressource IPv6Addr absente des paquets RPM de Clusterlabs)

(33)

Sommaire

1 Généralités

2 Problématique

3 Outils

4 Déploiement : le présent

5 Déploiement : l’avenir

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 33 / 37

(34)

DHCP

DHCP Failover

(plus ou moins) normalisé : draft-ietf-dhc-failover-12.txt, RFC3074 2 serveurs (primaire et secondaire)

chacun son IP

adresses statiques en double

plages dynamiques réparties entre les deux serveurs équilibrage de charge : RFC 3074

PARTNER-DOWN : promotion (manuelle) du survivant

reconfiguration du service lors du changement d’un des serveurs

(35)

MySQL

MySQL Cluster ? partage de données ? actif-passif, SAN, DRBD réplication maître-esclave

I MySQL 3.23.x : réplication d’instructions

I MySQL 5.1.x : réplication de données

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 35 / 37

(36)

MySQL

MySQL et CentOS

mysql-5.0.77-4.el5_5.3

http://www.iuscommunity.org yum-plugin-replace

yum replace mysql --replace-with mysql51

Error: Missing Dependency: perl-DBD-MySQL is needed by package mysql51-server-5.1.48-2.ius.el5.i386 (ius)

You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems

package-cleanup --dupes rpm -Va --nofiles --nodigest

(37)

Questions ?

Arnaud Gomes-do-Vale () La haute disponibilité dans la vraie vie Le 2 août 2010 37 / 37

Références

Documents relatifs

HeartBeat et DRBD sont les deux principaux modules issus de ce projet et les plus utilisés en environnement Linux dans la mise en place d'un cluster quand il s'agit de rendre des.. h

EOLE propose un service de haute disponibilité dont le rôle principal est de garantir la disponibilité d'un service et son bon fonctionnement.. Il est possible, depuis l'interface

Ces tests peuvent donc être eectués avec plusieurs machines hors lignes (déconnectées du cluster) an d'évaluer concrètement les gains procurés par la mise en place d'une

- pour les disques durs: le raid (d'un niveau 1, 5 ou 10), les SAN ; - pour les cartes réseaux : teaming / bonding (802.3ad) ;.. - pour les serveurs : les

On  peut  alors   accèder  au  système  MySQL  comme  sur  n'importe   quel  autre   base   de   donnée,  

La solution de basculement avec sauvegarde consiste à mettre en exploitation sur un serveur de secours la plus récente sauvegarde de la base de données et repartir de

Si vous avez fait les memes commandes que ci-dessus vous avez donc clonez le serveur LAP maître donc il vous reste juste a configurer son ip en tapant cette commande :.. Puis

j Les clusters de serveurs à périphérique quorum unique comportent deux nœuds ou plus et sont configurés de sorte que chaque nœud est rattaché à un ou à plusieurs périphériques