Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/03/2009, à 01:14

patfrat

Serveur de backup : mise en place

Bonjour,

Je dois mettre en place un serveur de backup.
Ce serveur de backup est le clone (niveau config) du serveur maître, que je nommerai ici master.
Même tailles de disques (6x300Go), même RAID (5 disques en RAID5 + 1 hotspare) et même partionnement...
Et surtout même système Ubuntu 8.04 server. wink

Ce que j'aimerai faire :

- synchroniser en temps réel les bases de données MySQL : master vers slave, je sais que c'est possible. J'ai d'ailleurs trouvé un lien intéressant : http://www.zataz.net/docs/6894/document … mysql.html

- synchroniser des répertoires (pas en temps réel) avec rsync ... tongue y'a tout ce qu'il faut dans la doc de ce site.

mais la question que je me pose est : peut-on synchroniser aussi les utilisateurs linux, samba, netatalk, ftp ... ???
Ceci afin que le serveur de backup prenne le relais si le master tombe en panne. roll

Est-ce que quelqu'un a déjà fait çà ?
Merci d'avance ! big_smile

Hors ligne

#2 Le 26/03/2009, à 10:31

Peck

Re : Serveur de backup : mise en place

Il y a plusieurs solutions.

- utiliser drbd pour synchroniser automatiquement l'intégralité du disque dur : implique un temps de boot pendant le failover

- utiliser drbd et ocfs (ou gfs) pour synchroniser intégralement les systèmes de fichier en continu : nécessité de séparer les données qui ne doivent pas être identiques (adresse IP ...)

- utiliser le master / slave mysql : pratique mais attention aux écritures sur le slave

- utiliser les cluster mysql : attention solution récente pas complètement finie

- utiliser un système de synchronisation périodique (rsync, unison, csync2 ...) et la tu peux synchroniser ce que tu veux : utilisateurs -> fichiers password et shadow, répertoires,configurations dans /etc ...

Hors ligne

#3 Le 26/03/2009, à 12:11

patfrat

Re : Serveur de backup : mise en place

Merci pour les infos !
Concernant Mysql cluster, j'ai ce lien : http://dev.mysql.com/doc/refman/5.0/fr/ndbcluster.html
Je ne connaissais pas et çà pourrait faire mon affaire.

Sinon, pour la synchro utilisateur, il me faudrait plus de précisions... je vais fouiller un peu la doc et le forum d'ubuntu-fr à ce sujet.

Hors ligne

#4 Le 26/03/2009, à 12:21

Peck

Re : Serveur de backup : mise en place

Si tu veux synchroniser des utilisateurs du système, il te suffit de synchroniser la source des utilisateurs. Ca peut être selon ta config :
- /etc/passwd et /etc/shadow
- un serveur ldap (-> pas de synchro s'il est externe)
- un serveur nis (idem)
- autre bidouille (a voir)

Hors ligne

#5 Le 26/03/2009, à 12:34

patfrat

Re : Serveur de backup : mise en place

/etc/passwd et /etc/shadow pour les utilisateurs Ok.
Et aussi /etc/group ??? pour les groupes ? c'est faisable ?
Donc, si je copie mes fichiers du master vers le backup et que je me loggue ensuite sur le backup, j'aurai tous mes comptes utilisateurs, mes groupes comme çà, d'un coup d'un seul ?

Hors ligne

#6 Le 26/03/2009, à 14:38

Peck

Re : Serveur de backup : mise en place

Oui pour les groupes.
Oui pour la connexion.

Attention à une chose, il faut que tes utilisateurs soient créés sur une seule des machines pour que les identifiants soient les mêmes. C'est a dire que les utilisateurs normaux n'ont pas d'identifiant fixe, lorsque tu crée un nouvel utilisateur un identifiant lui est attribué. si tu le fais sur 2 machines l'identifiant peut être différent. Si tu synchronise /etc/passwd après ca, tu peux avoir des problèmes.

Hors ligne

#7 Le 26/03/2009, à 14:50

patfrat

Re : Serveur de backup : mise en place

Ok, sur mon master, au départ, root en 0 et moi, patfrat, en uid 1000 puis sont arrivés petit à petit d'autres utilisateurs.
Sur mon serveur de backup, j'ai root en 0 et moi, patfrat en uid 1000 ... et pour le moment aucun utilisateur.
Donc je peux considérer que je n'aurai pas de problème lors de la première synchro.
Ensuite, je ne crée des utilisateurs que sur mon master et en aucun cas sur mon backup.
Et si mon backup doit prendre le relai un jour, il sera interdit de créer des utilisateurs dessus tant que le master n'est pas remonté et ai repris la main.
C'est çà ?

Hors ligne

#8 Le 26/03/2009, à 20:30

Peck

Re : Serveur de backup : mise en place

Oui

Hors ligne

#9 Le 26/03/2009, à 21:37

patfrat

Re : Serveur de backup : mise en place

Précis et concis, ce oui, mais rassurant.
Merci. Je viendrai poster ici mon retour d'expérience de la mise en place de ce backup.
Surtout pour le cluster mysql.

Hors ligne

#10 Le 31/03/2009, à 15:36

patfrat

Re : Serveur de backup : mise en place

Bon, je suis en train de mettre en place mon cluster mysql entre le serveur master et le slave si je peux les appeler ainsi.
Dans la doc de Mysql en ligne, la config présentée est constituée d'un serveur mgm (maître), d'un noeud mysql et de 2 noeuds de stockage (ndbd) ... ce qui fait 4 serveurs.
Moi, j'en ai 2 :
- le master en mgm
- le slave en cluster mysql
mais j'ai besoin d'un noeud de stockage... est-ce que le slave, cluster mysql peut aussi faire office de noeud de stockage ndbd ?
voir http://dev.mysql.com/doc/refman/5.0/fr/ … puter.html
hmm

Dernière modification par patfrat (Le 31/03/2009, à 15:37)

Hors ligne

#11 Le 31/03/2009, à 15:59

patfrat

Re : Serveur de backup : mise en place

En lisant un autre tuto :
http://dev.mysql.com/tech-resources/art … rvers.html
Il apparait qu'on peut lancer 2 clusters stockages/Mysql avec un 3e serveur de management mgm qui peut être déconnecté une fois le cluster lancé.
Donc, je peux utiliser le maître et le slave pour mon cluster et mon pc pour le mgm ???

En fait, ce n'est peut-être pas ce que je recherche ... plutôt comment dupliquer en temps réel ma base de master vers slave : http://dev.mysql.com/doc/refman/5.0/fr/replication.html

Dernière modification par patfrat (Le 31/03/2009, à 16:08)

Hors ligne

#12 Le 01/04/2009, à 09:39

Peck

Re : Serveur de backup : mise en place

Attention à ne pas mélanger, cluster et master/slave sont 2 choses différentes.

A partir du moment où tu parle de noeur de stockage et de ndbd tu parles de cluster. Après tu peux ajouter du master/slave (réplication) par dessus un cluster mais c'est indépendant.

En général on fait du cluster pour la haute disponibilité en écriture : une machine casse on peut toujours écrire sur l'autre, et de la réplication qui est beaucoup plus simple pour de la haute disponibilité en lecture ou pour simplifier les backups.

Hors ligne

#13 Le 01/04/2009, à 09:53

patfrat

Re : Serveur de backup : mise en place

Voilà, pour le backup ... d'autant que je n'ai que deux serveurs pour le moment.
La haute disponibilité sera pour plus tard.
Celà fait 2 ans et demi que je suis dans ma boîte, c'est le deuxième serveur Ubuntu que je monte... d'ici 6 mois, le 3e peut-être tongue
Je vais les empiler !
En attendant, merci Peck ... je suis en train de bosser sur la mise en place de la réplication.

Hors ligne

#14 Le 04/04/2009, à 13:26

patfrat

Re : Serveur de backup : mise en place

Autre question toute bête :
Dans le cas d'un cluster Mysql ou putôt d'une réplication Master/Slaves ... si je fais un TRUNCATE TABLE (vider) ou un ALTER TABLE (supprimer) dans le master, ce sera aussitôt répliqué dans le(s) slave(s) !!! Peut-on se protéger de ce genre de manip maladroite si jamais çà arrive ? mis à part faire des dumps réguliers ?

Dernière modification par patfrat (Le 04/04/2009, à 13:26)

Hors ligne

#15 Le 06/04/2009, à 09:18

Peck

Re : Serveur de backup : mise en place

Si tu fais un cluster ou un master/slave, le but est que les données soient identiques de chaque coté.
Si le but est le backup il y a 2 solutions :
* dumper le slave : l'intérêt est d'éviter la surcharge du master
* ne lancer la réplication qu'une fois par jour et l'arrêter après un certain temps

La 2e solution implique plusieurs choses :
* avoir des écritures suffisamment peu nombreuses pour que le slave se réplique rapidement
* avoir des logs binaires suffisamment gros sur le master pour tenir plus d'une journée

Je ne connais pas la taille de tes tables, mais dans la plupart des cas il n'y a pas de problème.

Hors ligne

#16 Le 06/04/2009, à 09:56

patfrat

Re : Serveur de backup : mise en place

J'ai déjà un dump qui se fait à la demi-journée sur le master ... puisque le slave est en cours de mise en place et pas encore effectif.
Et le slave va me servir pour le cas où le serveur master plante : je renvoie aussitôt les utilisateurs vers le slave le temps de remonter le master. Master qui gère la base de données Mysql mais aussi les applications (intranet, etc ...)
Le jour où j'ai un 3e serveur, je penserai à du clustering pour la haute disponibilité mais là, le but est d'avoir un serveur de production et un serveur de secours qui sert éventuellement de backup. Sachant que le serveur en production est également sauvegardé en entier sur bandes.
C'est vraiment pour avoir un deuxième serveur prêt à prendre le relais en un temps très réduit.

Dernière modification par patfrat (Le 06/04/2009, à 09:57)

Hors ligne

#17 Le 06/04/2009, à 15:33

Peck

Re : Serveur de backup : mise en place

Donc tu as déjà ta réponse, ce sont les backups qui te prémunissent contre des erreurs humaines.

Hors ligne

#18 Le 06/04/2009, à 16:00

insomniak

Re : Serveur de backup : mise en place

Salut,

Je travaille actuellement sur la meme chose que toi. J'ai un serveur de prod avec Apache / php / mysql / proftpd / subversion qui tourne.
J'ai un second serveur qui me sert de relais au cas ou le premier plante.
D'experience, je peux t'affirmer que le fait de faire du backup temps réel est une grave erreur. Si tu crashe le serveur de prod, il y a de fortes chances pour que le second soit dans le meme état.

Voici ce que j'ai utilisé comme procédé :
Mon serveur de prod fait un dump des bases mysql et ensuite fait un rsync vers le serveur de backup de tous les fichiers + dump + configs des différents serveurs (au sens applicatif du terme : apache...).

Mes deux serveurs ont également la meme structure, toutes mes configs sont stockées au meme endroit et ensuite tout est géré par liens symboliques ou par copie.
Mon serveur de backup est totalement passif : deux ports ouverts : un pour ssh et un pour rsync, c'est tout. Aucun serveur n'est lancé.

Le jour ou le serveur de prod crashe, j'ai un script à lancer sur le serveur de backup pour qu'il reveille tout le monde :
- Il va automatiquement placer les liens symboliques ou il faut (/etc/apache, ...)
- Il lance les serveurs
- Il place les droits sur les fichiers (si besoin)
- Il restaure les dumps (mysql et subversion)
J'ai plus qu'à lancer le changement d'IP sur mes noms de domaines, et le temps que la propagation se fasse, tout roule wink

Derriere ça, j'ai un autre script pour la réinstallation du serveur qui a crashé qui devient à son tour mon serveur de backup. Ce script va se charger de tout recréer : structure de repertoires, mise en place IPTable, install des applis, configuration de base SSH (avec securisation par clef privée) et Rsync.
Une fois ce script lancé, j'ai plus qu'à demander à mon serveur de prod de lancer une synchro pour rebalancer les fichiers vers le nouveau serveur de backup et hop, en deux heures c'est torché.

Alors tu vas me dire : "ok c'est bien mes tes backups sont lancés toutes les nuits, et si ca plante le soir avant le backup ?"
Je repondrais : "c'est les aléas de la vie, après il faut jauger selon les cas ce que l'on souhaite faire".
Perso j'ai eu le cas ou nous nous sommes fait pirater notre serveur, une grosse mouise car ca s'est produit pendant le week end et donc le backup est passé derriere donc le serveur de backup etait vérolé aussi... Donc il faut bien faire gaffe à ca wink

Hors ligne

#19 Le 10/04/2009, à 00:53

patfrat

Re : Serveur de backup : mise en place

Sympa d'avoir un retour d'expérience ... vive la communauté et ubuntu-fr !!!
Dans mon cas, le serveur de backup sera prêt à être utiliser sans aucun script à lancer...
Il sera à jour au niveau des utilisateurs, des partages, des librairies, des bases de données et des applis webs.
Dès que le serveur principal tombe, le firewall routera les utilisateurs vers le deuxième.
Ensuite, je m'occuperai de remonter le premier, de reprendre les nouvelles données (donc synchro inverse) puis de relancer la réplication qui aura été interrompue automatiquement au premier enregistrement dans la bdd.
Je vais bientôt mettre çà en route. Je vous tiens au courant.

Dernière modification par patfrat (Le 10/04/2009, à 00:54)

Hors ligne

#20 Le 09/07/2009, à 23:48

patfrat

Re : Serveur de backup : mise en place

Bon, voilà mon backup en place, pas tout a fait fini.
Le serveur, entièrement sauvegardé sur bandes tous les jours.
Un deuxième serveur se connecte sur le démon rsync du premier et récupère tous les fichiers importants dont les sauvegardes mysql.
Il me reste juste à faire de la réplication master<->master de mysql ... si si, c'est possible :
http://www.howtoforge.com/mysql_master_ … eplication

Dernière modification par patfrat (Le 09/07/2009, à 23:49)

Hors ligne

#21 Le 10/07/2009, à 15:56

Elemmire

Re : Serveur de backup : mise en place

Salut
j'ai mis en place un système similaire de fail-over mais pour simplifier les choses, j'ai utilisé heartbeat qui permet en cas de crash de basculer une IP de service (IP virutelle) du master vers le slave automatiquement. Cela évite ainsi de modifier le DNS mais également de controler facilement les services devant etre lancés.
Je te conseil d'aller voir la doc heartbeat

Hors ligne