Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
ucarp [Le 09/02/2007, 23:59] – intro et retouches rapides olive | ucarp [Le 16/01/2017, 19:27] (Version actuelle) – Maj de la page L'Africain | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Ucarp : failover avec partage d'IP virtuelles ====== | ||
+ | |||
+ | Ucarp est un outil de « haute disponibilité » permettant l' | ||
+ | |||
+ | Chaque élément du « cluster » (à partir de 2 serveurs) émet ainsi sur le réseau des signes de vie de façon à ce que les autres éléments ayant la même adresse IP virtuelle, prennent le relais lorsque l' | ||
+ | Ucarp est en système de « failover » automatique sécurisé, simple et efficace. | ||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * Disposer des [[: | ||
+ | * Disposer d'une connexion à Internet configurée et activée. | ||
+ | ===== Installation ===== | ||
+ | |||
+ | [[: | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | Créer les répertoires utiles à ucarp : | ||
+ | |||
+ | < | ||
+ | sudo mkdir -p / | ||
+ | </ | ||
+ | |||
+ | ==== Paramètres généraux ==== | ||
+ | |||
+ | [[: | ||
+ | |||
+ | <file ucarp> | ||
+ | # Location of the ucarp executable | ||
+ | UCARP_EXEC=/ | ||
+ | IFCONFIG=/ | ||
+ | |||
+ | # | ||
+ | # ucarp options | ||
+ | # -z run shudown script on exit | ||
+ | # -P force perferred master | ||
+ | # | ||
+ | OPTIONS=" | ||
+ | </ | ||
+ | |||
+ | ==== Paramètres d' | ||
+ | |||
+ | Pour chaque adresse virtuelle nous allons créer une interface réseau virtuelle. | ||
+ | |||
+ | [[: | ||
+ | <file / | ||
+ | # | ||
+ | # Location of the ucarp pid file | ||
+ | UCARP_PIDFILE=/ | ||
+ | |||
+ | # | ||
+ | # ucarp base, lower number will be perfered master | ||
+ | # set to same to have master stay alive as long as possible | ||
+ | UCARP_BASE=1 | ||
+ | |||
+ | # | ||
+ | # Interface for Ipaddress | ||
+ | INTERFACE=eth0: | ||
+ | |||
+ | # | ||
+ | # Instance id | ||
+ | # any number from 1 to 255 | ||
+ | # Master and Backup need to be the same | ||
+ | INSTANCE_ID=42 | ||
+ | |||
+ | # | ||
+ | # Password so servers can trust who they are talking to | ||
+ | PASSWORD=< | ||
+ | |||
+ | # | ||
+ | # The Application Address that will failover | ||
+ | VIRTUAL_ADDRESS=192.168.0.32 | ||
+ | VIRTUAL_BROADCAST=192.168.0.255 | ||
+ | VIRTUAL_NETMASK=255.255.255.0 | ||
+ | |||
+ | # | ||
+ | # The Maintanence Address of the local machine | ||
+ | SOURCE_ADDRESS=192.168.0.1 | ||
+ | </ | ||
+ | |||
+ | ==== Fichier de service ==== | ||
+ | |||
+ | De façon à pouvoir activer les adresses virtuelles simplement, nous allons [[: | ||
+ | |||
+ | <file bash etc/ | ||
+ | #!/bin/sh | ||
+ | #/ | ||
+ | |||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: | ||
+ | # Short-Description: | ||
+ | # Required-Start: | ||
+ | # Required-Stop: | ||
+ | # Default-Start: | ||
+ | # Default-Stop: | ||
+ | ### END INIT INFO | ||
+ | |||
+ | PATH=/ | ||
+ | |||
+ | # For configuration of the init script use the file | ||
+ | # / | ||
+ | |||
+ | # Set run_ucarp to 1 to start ucarp or 0 to disable it. | ||
+ | run_ucarp=1 | ||
+ | |||
+ | R_INTERFACE=/ | ||
+ | |||
+ | start() { | ||
+ | if [ $run_ucarp = 1 ] | ||
+ | then | ||
+ | |||
+ | echo -n " | ||
+ | for fichier in $( find $R_INTERFACE -type f -name ' | ||
+ | do | ||
+ | [ -e $fichier ] && . $fichier | ||
+ | |||
+ | $IFCONFIG $INTERFACE $VIRTUAL_ADDRESS netmask $VIRTUAL_NETMASK \ | ||
+ | broadcast $VIRTUAL_BROADCAST | ||
+ | |||
+ | UCARP_OPTS=" | ||
+ | -v $INSTANCE_ID -p $PASSWORD -a $VIRTUAL_ADDRESS -s $SOURCE_ADDRESS" | ||
+ | |||
+ | start-stop-daemon --start --background --make-pidfile \ | ||
+ | --pidfile ${UCARP_PIDFILE} --quiet --exec ${UCARP_EXEC} -- ${UCARP_OPTS} | ||
+ | echo ucarp. | ||
+ | |||
+ | done | ||
+ | fi | ||
+ | |||
+ | } | ||
+ | |||
+ | stop() { | ||
+ | if [ $run_ucarp = 1 ] | ||
+ | then | ||
+ | echo -n " | ||
+ | |||
+ | for fichier in $( find $R_INTERFACE -type f -name ' | ||
+ | do | ||
+ | [ -e $fichier ] && . $fichier | ||
+ | |||
+ | $IFCONFIG $INTERFACE down | ||
+ | |||
+ | if start-stop-daemon --stop --quiet --pidfile ${UCARP_PIDFILE} | ||
+ | then | ||
+ | |||
+ | echo ucarp. | ||
+ | else | ||
+ | echo | ||
+ | fi | ||
+ | |||
+ | done | ||
+ | fi | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | [ -e / | ||
+ | |||
+ | test -x ${UCARP_EXEC} || exit 0 | ||
+ | |||
+ | NAME=ucarp | ||
+ | |||
+ | case " | ||
+ | start) | ||
+ | start " | ||
+ | ;; | ||
+ | |||
+ | stop) | ||
+ | stop " | ||
+ | ;; | ||
+ | |||
+ | restart) | ||
+ | stop " | ||
+ | start " | ||
+ | ;; | ||
+ | |||
+ | force-reload) | ||
+ | stop " | ||
+ | start " | ||
+ | ;; | ||
+ | |||
+ | *) | ||
+ | echo " | ||
+ | exit 1 | ||
+ | |||
+ | esac | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Il faut alors rendre le script exécutable : | ||
+ | |||
+ | < | ||
+ | sudo chmod 744 / | ||
+ | </ | ||
+ | |||
+ | et lancer le service : | ||
+ | |||
+ | < | ||
+ | sudo / | ||
+ | </ | ||
+ | |||
+ | En lançant '' | ||
+ | |||
+ | < | ||
+ | eth0 Link encap: | ||
+ | inet addr: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | RX packets: | ||
+ | TX packets: | ||
+ | collisions: | ||
+ | RX bytes: | ||
+ | Base address: | ||
+ | |||
+ | eth0:carp0 Link encap: | ||
+ | inet addr: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | Base address: | ||
+ | </ | ||
+ | |||
+ | ===== Liens ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[wpfr> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // Contributeur : [[utilisateurs: |