Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Le logiciel qui est utilisé pour ceci est haproxy (http://www.haproxy.org/). C’est le logiciel le
plus reconnu et le plus puissant, rapide et flexible disponible sur le marché de l'open source.
Dimensionnement machines
CPU 2 cores
RAM 1 GB
Disk ● /: 5GB
Hostname ip
lbs-1 10.10.10.11
lbs-2 10.10.10.12
Procédure d’installation
Redondance IP
La première chose à installer est la mise en place du système master/slave IP en utilisant ucarp
qui est un équivalent du protocole VRRP mais libre et qui se configure vraiment facilement sur
une debian :
address 10.10.10.11
netmask 255.255.255.0
gateway 10.10.10.1
ucarp-vid 10
ucarp-vip 10.10.10.10
ucarp-password toto
ucarp-advskew 0
ucarp-advbase 1
ucarp-master yes
Load Balancer
Le load balancing entre les serveurs va être effectué à l’aide du logiciel HA-Proxy. Celui-ci est
relativement simple à installer et administrer. Nous utilisons la version 1.8.19 qui fournit par
défaut sous debian buster. Cette version suffit à nos besoins et est très stable. La
documentation officielle est disponible ici http://cbonte.github.io/haproxy-
dconv/1.5/configuration.html.
Installation du software
root@lbs-1:~# apt-get install haproxy
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
vim-haproxy haproxy-doc
The following NEW packages will be installed:
haproxy
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 641 kB of archives.
After this operation, 1,314 kB of additional disk space will be used.
----
defaults
log global
mode http
option httplog
option forwardfor
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
peers esi
peer lbs-1 10.10.10.11:1024
peer lbs-2 10.10.10.12:1024
Service Web
Maintenant la configuration est effectuée pour les “frontend” qui reçoivent les connections
des clients et les backend qui sont les serveurs d’application eux même. Le frontend http
redirige simplement les requêtes vers les 2 serveurs applicatifs.
/etc/haproxy/haproxy.cfg:
…
backend backend_http
balance leastconn
server www-1 10.10.10.21:80 check
server www-2 10.10.10.22:80 check
frontend http
bind *:80
default_backend backend_http
Le service est maintenant disponible sur les ports http(80) en mode http vers les 2 serveurs
de production.
Application Web Servers
Les serveurs d’application web sont les machines sur lesquelles le service apache est
exécuté.
Ce sont les machines qui reçoivent toute la charge des clients. Le service est construit de
telle manière que l’on peut facilement ajouter des machines applications à tout moment si
l’utilisation du service le nécessite.
Dimensionnement machines
CPU 2 cores
RAM 1GB
Disk ● /: 5 GB
Hostname ip
www-1 10.10.10.21
www-2 10.10.10.22
Procédure d’installation
Apache2
Installation de apache2 :
root@www-1:~# apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3
libaprutil1-ldap liblua5.1-0 ssl-cert
Suggested packages:
apache2-doc apache2-suexec-pristine apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-
sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,942 kB of archives.
After this operation, 6,643 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://http.debian.org/debian/ buster/main libapr1 amd64 1.5.1-3 [95.3 kB]
…....
Maintenant nous allons mettre les donnés de nos pages dans le dossier /webdata
Le dossier par défaut ou sont stockés les page web dans Debian se trouve dans
/var/www/ nous allons donc mettre le contenu du ce dossier dans /webdata et créer un lien
symbolique vers le dossier d’origine:
NAS service
Le service NAS va permettre aux serveurs d’application de stocker tous les éléments à partager
entre eux. Cela inclut le code source des applications, et diverses autres données si necessaire.
Le service permet le partage via l’utilisation du protocole NFSv3 implémente nativement sur
les OS linux. Pour la haute disponibilité du service le logiciel DRBD (http://www.drbd.org/)
permet de synchroniser 2 volumes disque en continue et la suite heartbeat (http://www.linux-
ha.org/wiki/Heartbeat) permet le failover entre les 2 servers.
Dimensionnement machines
CPU 2 cores
RAM 1 GB
Disk ● /: 5 GB
● / :data 1GB
OS Debian GNU/Linux buster 10
Hostname ip
nas-1 10.10.10.31
nas-2 10.10.10.32
Procédure d’installation
Pour la synchronisation des données entre les 2 servers NAS nous utilisons DRBD
(http://www.drbd.org/). Ce système permet une synchronisation en continue de block device
en mode raid1 sur le réseau. Celui-ci est très bien supporté depuis plusieurs années et est très
fiable. la procédure d’installation est assez simple sur debian en suivant la documentation
officielle en parallèle (http://www.drbd.org/en/doc/users-guide-84).
Auparavant, il faut s’assurer avoir créer la partition qui sera utilisée pour les données. A faire
sur les 2 serveurs
## Activer le module:
root@nas-1:~#modprobe drbd
Maintenant que nos disques et DRBD sont mis en place nous allons configurer la
réplication des données entre les deux disques.Pour ce faire nous allons créer et éditer
un fichier que nous allons appeler data.res dans le dossier /etc/drbd.d/.
Attention les commandes et les configurations suivantes sont à faire sur les deux
serveurs.
root@nas-1:~# cd /etc/drbd.d/
## create the configuration file with data ressource parameters
startup {
wfc-timeout 30;
degr-wfc-timeout 15;
}
disk {
on-io-error detach;
}
syncer {
rate 100M;
}
on nas-1 {
device /dev/drbd1;
disk /dev/sdb1;
address 10.10.10.31:7788;
meta-disk internal;
}
on nas-2 {
device /dev/drbd1;
disk /dev/sdb1;
address 10.10.10.32:7788;
meta-disk internal;
}
}
Nous sommes prêts à continuer le setup du cluster drbd. Attention les étapes suivantes ne
sont à effectuer que sur le serveur master actuel (-1) :
Il reste maintenant à configurer le système de redondance qui est basé sur la solution
heartbeat.
## ajout d'entree dans /etc/hosts pour joindre les serveurs entre eux
echo '10.10.10.31 nas-1' >> /etc/hosts
echo '10.10.10.32 nas-2' >> /etc/hosts
## create mountpoint
mkdir /share/www-home
#Serveurs du cluster
node nas-1
node nas-2
## creer le fichier qui contient la clé partagée entre les 2 serveurs
root@nas-1:/etc/ha.d# nano authkeys
auth 3
3 md5 my-auth-key
## Set the file right to 600 for security. Program won’t work if it’s not done.
root@nas-1:/etc/ha.d# chmod 600 authkeys
Wait a few seconds and check with drbd-overview that the partition /dev/drbd1 is well
mounted on /share.
If you do ip addr, you will notice that the virtual ip exists under enp0s3:0
La dernière configuration concerne le serveur nfs et les share qui lui sont associés. Afin de
parfaitement prendre la main en cas de problème, il est nécessaire de mettre sur les disques
redondés les fichiers de statut des espaces déjà mount par les clients. Attention une partie est
à effectuer sur le serveur nas-1 et l’autre sur le 2.
## server 1
root@nas-1:~# /etc/init.d/nfs-kernel-server stop
Stopping nfs-kernel-server (via systemctl): nfs-kernel-server.service.
root@nas-1:~# mv /var/lib/nfs /share/
root@nas-1:~# ln -s /share/nfs /var/lib/nfs
root@nas-1:~# chown statd:nogroup /var/lib/nfs
root@nas-1:~# mv /etc/exports /share/
root@nas-1:~# ln -s /share/exports /etc/exports
root@nas-1:~# /etc/init.d/nfs-kernel-server start
Starting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
## server 2
root@nas-2:~# rm -rf /var/lib/nfs
root@nas-2:~# ln -s /share/nfs /var/lib/nfs
root@nas-2:~# chown statd:nogroup /var/lib/nfs
root@nas-2:~# rm /etc/exports
root@nas-2:~# ln -s /share/exports /etc/exports
La configuration des différents share expose aux autre machines est effectuée via le fichier
/etc/exports. Chaque share est décrit dans une ligne de configuration.
10.10.10.0/24(rw,async,no_root_squash)