Jump to content

[MàJ] système haute tolérance pannes


Recommended Posts

Bonjour,

Suite à une discussion sur IRC j'expose mon problème ici de fçaon détaillé.

Edit: le problème à évolué cf post plus bas...

Voila moi et des amis nous souhaiterions mettre en place un ensemble de 3 serveur redondant permetant une haute tolérance aux pannes (serveur S, V et M).

On utilise les serveur DNS afin d'établir l'aiguillage sur le Bon serveur.

On pense créer 1 utilisateur unix par site hebergé, et donc exploiter le /home/USER/public_html

Cependant la redondance nous oblige à synchroniser les fichiers entre le serveur actif primaire et le serveur actif secondaire (celui qui prend le relais en cas de panne, étant lui meme un serveur actif primaire avec un autre serveur actif secondaire etc.. etc...)

Pour cela on utlise rsync qui envoi /home (serveur M) vers /home (serveur V) (par exemple)

Ensuite /home (serveur V) vers /home (serveur S) et enfin /home (serveur S) vers /home (serveur M)

Or ici le problème se pose dans cette méthode l'intégralité de /home est transmise, et donc les informations sont redondante sur l'ensemble du cluster, et non uniquement sur une paire. De plus cela engendrerait des conflits de modifications.

L'idée nous est donc venu d'utiliser un système plus complex, prennons pour exemple un utlisateur unix A qui est hebergé en primaire sur le serveur M et en secondaire sur le V.

Nous souhaiterions synchroniser de la façon suivante les fichiers /home/A/public_html (serveur M) vers /home/A/backup_html

Ainsi chaque serveur posséderait des utilisateurs en backup (en serveur secondaire) et en public_html (en serveur primaire) il suffirait ensuite d'établir la synchronisation des public_html et pas des backup_html.

Le problème se pose au niveau de apache, en effet il n'est pas possible de déclarer deux UserDir, (public_html ET backup_html)

On cherche donc une méthode afin que http://serveurM/~A/ (en public_html) et http://serveurV/~A/ (en backup_html) fonctionne de la même façon.

Merci bien :)

Link to comment
Share on other sites

J'ajoute qu'en cas de panne, la machine la pus à jour devient la machine de secours et que, dans ce cas, la synchronisation des données doit s'effectuer dans le sens contraire de manière automatique dès que le serveur primaire est de nouveau disponible, et ce dans le répertoire public et non backup.

Link to comment
Share on other sites

J'ajoute qu'en cas de panne, la machine la pus à jour devient la machine de secours et que, dans ce cas, la synchronisation des données doit s'effectuer dans le sens contraire de manière automatique dès que le serveur primaire est de nouveau disponible, et ce dans le répertoire public et non backup.

ça ça devient très complique mais à la limite on peut régler ce problème en interdisant la modification via FTP sur backup_html

Car pour détécter la fonctionnement ou non du serveur on va devoir utilser heartbeat et là ça va pas être une mince affaire...

Link to comment
Share on other sites

  • 2 weeks later...

Voila le problème à évolué... en effet on a réussi à avancer... et on a préciser le problème...

Donc voila une solution (la plus économique) ça serait d'utiliser la configuration DNS ou quelque chose comme ça... avec des ns1, ns2 (solution 1) ou alors un gestion hierarchisé des entrés IN CNAME / A (solution 2)

Je me suis renseigné.... et voila

Solution 1:

Il faudrait mettre le serveur primaire en NS1 et le secondaire en NS2, mais avec chacun une version differente de la configuration DNS, en effet si NS2 est utilisé c'est que NS1 est horsligne, et donc le NS2 ne doit pas envoyer vers le NS1... enfin mon interrogation est sur la fonction du NS2, est il utilisé par le client... ? et est ce que lors d'une mise en cache des FAI ça va pas faire foirer l'idée ?

Solution 2:

J'ai ouï dire qu'il était possible de faire du "round robin" avec les CNAME mais est ce qu'il est possible de faire un truc du style Serveur primaire/Secondaire et non pas un choix aléatoire entre 2 serveurs :)

Link to comment
Share on other sites

En utilisant un cluster virtualisé avec VMWare ou XenSource ca devrait marcher aussi, non ?

Sinon vous avez envisagé la solution pfsync/CARP (sous OpenBSD) ? Après, évidemment, il reste le problème de la synchro des données sur les deux machines...mais je ne me suis jamais vraiment penché sur le sujet...

PS : je n'ai jamais testé...c'est juste des idées comme ca en passant :transpi:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...