Serveur en backup

Bonjour/bonsoir,

Je fais de temps en temps une sauvegarde via l’excellent tuto du wiki sauvegarde et clonage d’un système avec comme support un disque externe.

J’ai monté un deuxième serveur que j’aimerai utiliser en backup mais je n’ai pas les compétences suffisante sous GNU/Linux pour bien cerner comment le mettre à jour en fonction des modifications apportées sur le serveur principale.

Est-ce que quelqu’un aurait un tuto à me conseiller sur le sujet, je n’en trouve pas bien que ça me semble évident que ce soit assez souvent utilisé ? A chaque fois je retombe sur des tutos similaire à celui du Wiki où l’on sauvegarde sur une partition non utilisée.

En résumé, comment obtenir:
Serveur A (Maitre) transmet au serveur B les données modifiées (1 fois par jour c’est suffisant)
Serveur B (Backup) copie parfaite du serveur A (à D-1 prés)

PS: Si ça a plus sa place dans la partie support n’hésitez pas à déplacer. Je ne savais pas bien où poster étant donné que je n’ai pas vraiment besoin d’aide mais d’indication sur “quoi utiliser” pour arriver au résultat voulu.

Moi je fais ça avec rsync et ssh, le serveur principal sauvegarde ses données, sa config et ses logs sur une machine secondaire qui dispose des mêmes services. Faut juste scripter un peu sur la machine secondaire et on a un serveur de secours prêt à prendre le relais si le premier crame.
Se mettre plusieurs machines redondantes pour faire de la haute disponibilité ou des choses dans le genre ça me dépasse un peu.

Ok, au vu du tuto je pensais que rsync servait pour des partitions libres, je vais bidouiller ça ce WE si je suis courageux :wink:

Bon, je vais voir le résultat mais en fait ça à l’air tout con… Je fais le même rsync qu’avant sauf qu’au lieu de pointer vers mon disque externe je pointe sur la / de mon serveur distant… Si ca marche, c’est vraiment très fort ! (Vu qu’il est online et fonctionnel)

Déjà, j’ai été c**, j’ai aussi copié toute la config réseau donc j’ai remis la bonne à la main et j’ai exclu tout /etc pour les prochaines images.

Peux-tu m’indiquer ce que tu exclus de la copie pour que je m’assure de n’avoir rien oublié d’important ?

Sinon pour le résultat, je ne sais pas trop vu que Grub est H.S. depuis la copie (cf grub-est-perdu-t33096.html#p334506).
Ca à copié toute l’aprés midi hier de 15H à 20H oO
J’espère que les prochaines seront bien en incrémentale sinon je ne vais pas en faire souvent, ca met à plat le réseau entre les 2 sites et si c’est aussi long je ne peux faire ça que les WE où l’activité est mauvaise :confused:

Il est normal que la première fois c’est très long mais ensuite, ça ne prend en compte que ce qui a été modifié.

Oui, c’est ce que dit le Wiki, et en général j’apporte très peu de changement aux config donc ca devrait le faire. Mais dans le doute je vais attendre la prochain WE ou JF où j’aurais “la chance” de travailler pour tester ^^

J’avais lancé la sauvegarde Vendredi, au bout d’une demi-heure j’ai eut 4 coup de fil d’utilisateurs se plaignant de lenteur réseau ^^"

Et de ce que j’ai vu, pas moyen de limiter l’utilisation de la bande passante :confused:

Mais si c’est ok, j’ajoute ça dans cron pour une sauvegarde tous les dimanche :wink:

Salut,

Cela marcherait-il si tu lançais rsync via trickle ? par exemple :

Je ne connais pas du tout, je regarderais la doc de trickle. Merci pour l’info :wink:

Oups, je ne pensais pas que tu balancerais directement / d’une machine à l’autre.
De mon côté j’avais fait une installation de la machine cible en y incluant tous les services et utilisateurs de la machine source. Le rsync sur ssh n’envoyait que les données des services, celles des utilisateurs et la configuration des services.
En gros je synchronisais /home, des morceaux choisis de /var, /usr et /etc et un script se chargeait de remettre les droits dans le bon sens, de tester/corriger une paire de bricoles et de relancer les services.
La synchro était lancée par cron et si tout se passait bien une page html était mise à jour. La machine cible interrogeait cette page avant de lancer son script, ce qui est cradingue j’en conviens.

Désolé si je t’ai enduit d’erreur.

Y’a pas de mal ^^

Bah en gros dessus y’a juste un nagios dont les fichiers de config changent régulièrement et un Wiki avec les doc des appli de la société etc… Mais comme j’ai galéré à l’installation de nagios et que comme d’hab je n’ai pris aucune note, je serais bien incapable de réinstaller à l’identique, d’où l’idée de faire un rsync à la barbare… mauvaise idée visiblement :stuck_out_tongue:

J’avoue que tu me fais un peu peur :confused:
Si j’ai les même users des deux coté à priori je n’aurai pas de bidouille de ce style à faire, si ?

Ben je n’en sais rien.
Dans mon cas certains fichiers étaient envoyés dans un répertoire temporaire et ensuite le script les déplaçait et fixait les droits.

J’ai besoin de vos avis éclairés.

J’ai suivi l’expérience d’antalgeek pour faire un fonctionnement similaire. J’ai donc réinstallé une squeeze toute fraiche sur le serveur secondaire.

Ensuite j’ai fait un dpkg --get-selection sur mon serveur principal pour réinstaller les paquets utiles sur le secondaire.

Une fois fait j’ai synchronisé ce qui me semblait utile en lançant un petit script de plusieurs rsync depuis le serveur principale vers le secondaire:

#!/bin/sh rsync -e ssh -avz --delete-after /etc/apache2/ root@172.16.2.124:/etc/apache2 rsync -e ssh -avz --delete-after /etc/mysql/ root@172.16.2.124:/etc/mysql rsync -e ssh -avz --delete-after /etc/nagios/ root@172.16.2.124:/etc/nagios rsync -e ssh -avz --delete-after /etc/nagios3/ root@172.16.2.124:/etc/nagios3 rsync -e ssh -avz --delete-after /etc/nagios-plugins/ root@172.16.2.124:/etc/nagios-plugins rsync -e ssh -avz --delete-after /etc/mediawiki/ root@172.16.2.124:/etc/mediawiki rsync -e ssh -avz --delete-after /etc/mediawiki-extensions/ root@172.16.2.124:/etc/mediawiki-extensions rsync -e ssh -avz --delete-after /etc/php5/ root@172.16.2.124:/etc/php5 rsync -e ssh -avz --delete-after /usr/share/apache2/ root@172.16.2.124:/usr/share/apache2 rsync -e ssh -avz --delete-after /usr/share/mysql/ root@172.16.2.124:/usr/share/mysql rsync -e ssh -avz --delete-after /usr/share/mysql-common/ root@172.16.2.124:/usr/share/mysql-common rsync -e ssh -avz --delete-after /usr/share/nagios/ root@172.16.2.124:/usr/share/nagios rsync -e ssh -avz --delete-after /usr/share/nagios3/ root@172.16.2.124:/usr/share/nagios3 rsync -e ssh -avz --delete-after /usr/share/nagios-plugins/ root@172.16.2.124:/usr/nagios-plugins rsync -e ssh -avz --delete-after /usr/share/nagios-snmp-plugins/ root@172.16.2.124:/usr/share/nagios-snmp-plugins rsync -e ssh -avz --delete-after /usr/share/mediawiki/ root@172.16.2.124:/usr/share/mediawiki rsync -e ssh -avz --delete-after /usr/share/mediawiki-extensions/ root@172.16.2.124:/usr/share/mediawiki-extensions rsync -e ssh -avz --delete-after /usr/share/php/ root@172.16.2.124:/usr/share/php rsync -e ssh -avz --delete-after /usr/share/mysql/ root@172.16.2.124:/usr/share/mysql rsync -e ssh -avz --delete-after /usr/share/mysql-common/ root@172.16.2.124:/usr/share/mysql-common rsync -e ssh -avz --delete-after /usr/share/nagios/ root@172.16.2.124:/usr/share/nagios rsync -e ssh -avz --delete-after /usr/share/nagios3/ root@172.16.2.124:/usr/share/nagios3 rsync -e ssh -avz --delete-after /usr/share/nagios-plugins/ root@172.16.2.124:/usr/nagios-plugins rsync -e ssh -avz --delete-after /usr/share/nagios-snmp-plugins/ root@172.16.2.124:/usr/share/nagios-snmp-plugins rsync -e ssh -avz --delete-after /usr/share/mediawiki/ root@172.16.2.124:/usr/share/mediawiki rsync -e ssh -avz --delete-after /usr/share/mediawiki-extensions/ root@172.16.2.124:/usr/share/mediawiki-extensions rsync -e ssh -avz --delete-after /usr/share/php/ root@172.16.2.124:/usr/share/php rsync -e ssh -avz --delete-after /usr/share/php5/ root@172.16.2.124:/usr/share/php5 rsync -e ssh -avz --delete-after /usr/lib/apache2/ root@172.16.2.124:/usr/lib/apache2 rsync -e ssh -avz --delete-after /usr/lib/nagios/ root@172.16.2.124:/usr/lib/nagios rsync -e ssh -avz --delete-after /usr/lib/nagios3/ root@172.16.2.124:/usr/lib/nagios3 rsync -e ssh -avz --delete-after /usr/lib/mysql/ root@172.16.2.124:/usr/lib/mysql rsync -e ssh -avz --delete-after /usr/lib/php5/ root@172.16.2.124:/usr/lib/php5

Alors vu que je suis un peu tarte pour ce genre de truc, est-ce que vous voyez des trucs qui sont complétement inutile dans la synchro ou au contraire des répertoires qui vous semble essentiels et que je ne copie pas ?

Pour résumer et récapituler, j’aimerais avoir en permanence pour pouvoir basculer dessus rapidement un serveur secondaire avec le nagios et le wiki du serveur primaire.

Aussi, à chaque rsynch je dois saisir le mot de passe root, c’est chiant… il existe une astuce pour éviter cela ?

Bonjour,

Lorsque je dois enchainer des rsync via ssh j’utilise la fonction suivante pour mémoriser la clef :

ouvre_ssh()
{
echo "fonction ouvre_ssh"
echo "Veuillez saisir la Passphrase du compte $USER"
eval `ssh-agent -s`
ssh-add $HOME/.ssh/id_rsa
} 

Plutôt que de lancer une foule de commandes rsync, tu peux utiliser l’option –include-from= de rsync pour spécifier dans un fichier ce qui doit être copié (cherche FILTER RULES dans le man rsync). Ainsi tu ne lances qu’une seule commande rsync, avec une seule connexion ssh, et un seul mot de passe à taper.

Pour MySQL, s’il y a des écritures sur ta BDD pendant le rsync, tu risques de te retrouver avec des données non cohérentes. Il vaut mieux utiliser les solutions de réplication de MySQL.

Note que c’est plus une solution de disponibilité que de sauvegarde. Ça te permet de remettre rapidement le service en ligne en cas de défaillance du premier serveur.
En revanche, tu n’as pas la possibilité de revenir sur une sauvegarde antérieure. Si tu fais une bourde, ou si quelqu’un arrive à s’introduire dans ton système ; la modification que tu n’as pas souhaitée sera gentiment copiée par rsync sur le serveur esclave.

[quote=“kna”]…En revanche, tu n’as pas la possibilité de revenir sur une sauvegarde antérieure. Si tu fais une bourde, ou si quelqu’un arrive à s’introduire dans ton système ; la modification que tu n’as pas souhaitée sera gentiment copiée par rsync sur le serveur esclave.[/quote]Avec
–backup --backup-dir="/dossier/garage/provisoire"

[quote=“kna”]
Note que c’est plus une solution de disponibilité que de sauvegarde. Ça te permet de remettre rapidement le service en ligne en cas de défaillance du premier serveur.
En revanche, tu n’as pas la possibilité de revenir sur une sauvegarde antérieure. Si tu fais une bourde, ou si quelqu’un arrive à s’introduire dans ton système ; la modification que tu n’as pas souhaitée sera gentiment copiée par rsync sur le serveur esclave.[/quote]

Il y aucun moyen de faire de la sauvegarde différentiel et incrémentielle à la fois ?

N’y a t’il pas moyen de coupler rdiff et rsync afin “d’incrémenter” et “différencier” les sauvegardes pour ne pas avoir justement de mauvaises surprises :033

Je lancerais manuellement la synchro. Mis à part le Wiki avec de nouveaux articles de temps en temps, sinon le serveur ne bouge pas trop. J’avais dans l’idée de lancer une synchro avant chaque mise à jour au cas où mais là raison du serveur secondaire c’est surtout pour palier une éventuelle panne matériel.
Mais bon, c’est debian alors y’a de la place sur le disque, je vais ajouter l’option de backup suggérés par Ricardo, ca coute rien ^^

Merci pour les solutions permettant d’éviter de saisir x fois le mot de passe, je vais tester ça et je vous tiendrai au courant.

Pour la remarque judicieuse sur le rsync à l’arrache alors que mysql est en route, j’avoue que je ne m’y connais pas assez pour savoir si ca vaut le coup que je me prenne la tête:
Je ne crois pas que nagios utilise mysql de ce que je viens de regarder (j’avoue que l’install commence à dater) donc l’utilité c’est juste pour le wiki.
Je regarderais du coté des options de mysql dont tu parles mais dans un premier temps, couper puis relancer mysql en debut et fin de script me parait une bonne idée au niveau de mes compétences limitées ^^ (d’autant que la synchro se fait en très peu de temps, jusqu’à présent le plus long c’était de saisir les mots de passes ^^)

Tu peux utiliser --link-dest=/chemin/vers/sauvegarde/precedente.
Tu recrée une nouvelle sauvegarde complète (dans un dossier différent), mais si un fichier n’a pas été modifié depuis le dernier backup, au lieu de le recopier il fait un lien ! Donc ta sauvegarde ne pèse pas beaucoup plus qu’une incrémentale, et tu la vois comme une sauvegarde complète (et tu peux la restaurer en une fois).
C’est ce qui est utilisé par rsnapshot : rsnapshot.org/

C’est en effet le plus simple, si tu peux te permettre de le faire.

[quote=“Blacksad”]Je lancerais manuellement la synchro. Mis à part le Wiki avec de nouveaux articles de temps en temps, sinon le serveur ne bouge pas trop. J’avais dans l’idée de lancer une synchro avant chaque mise à jour au cas où mais là raison du serveur secondaire c’est surtout pour palier une éventuelle panne matériel.
Mais bon, c’est debian alors y’a de la place sur le disque, je vais ajouter l’option de backup suggérés par Ricardo, ca coute rien ^^ [/quote]
Je suis entrain de faire un script qui automatisera pas mal les sauvegardes. Il est encore en phase de correction par les chefs.