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: | ||
