Synchronisation temps réel et bidirectionnelle de dossiers distants
Le
Vincent Besse

Bonjour,
je cherche, comme le sujet l'indique, Í mettre en place une synchro de
dossiers entre 2 VPS. C'est pas une sauvegarde mais bien une
réplication des dossiers, quand un fichier est modifié sur un des
serveurs cette modification doit se propager sur l'autre en (quasi)
temps-réel, et ce dans les deux sens.
Syncthing est alléchant, mais s'il existe des solutions sans interface
graphique j'aimerais autant.
Merci pour vos conseils avisés,
Vincent
je cherche, comme le sujet l'indique, Í mettre en place une synchro de
dossiers entre 2 VPS. C'est pas une sauvegarde mais bien une
réplication des dossiers, quand un fichier est modifié sur un des
serveurs cette modification doit se propager sur l'autre en (quasi)
temps-réel, et ce dans les deux sens.
Syncthing est alléchant, mais s'il existe des solutions sans interface
graphique j'aimerais autant.
Merci pour vos conseils avisés,
Vincent
Le 10/05/2021 Í 15:35, Vincent Besse a écrit :
Je vous laisse adapter les variables. Sur le serveur distant 'sudo
rsync' indique que l'utilisateur moi a les droits (visudo) d'executer
rsync en mode root sans mot de passe.
# Options
# -a preservve owner, rights, timestamp, ...
# -r recursive (needed for files-from
# -R relative paths
# -P partial and progress (not needed in production)
# -z compression during transfer
$rsync -azRPrv --rsync-path='sudo rsync' -e 'ssh -p22 -i
/home/moi/.ssh/id_ed25519'
   --delete --exclude-from=/etc/files.list.excluded --delete-excluded
   --files-from=/etc/files.list / $server:$remote_path
À mettre dans cron toutes les x minutes|heures|1/4h|...
--
Daniel
idem, dans un seul sens ;)
(maitre -> esclave)
Yann
Le 10/05/2021 Í 15:35, Vincent Besse a écrit :
J'utilise Unison depuis des années et j'en suis très satisfait modulo le
très gros problème que tu signales ensuite. Mais je pense qu'il ne
répond pas au besoin exprimé puisque non temps réel.
Mais quelque soit la solution envisagée, la synchronisation
bidirectionnelle pose un véritable problème : quid des fichiers modifiés
des 2 cÍ´tés ?
Dans le contexte dans lequel j'utilise Syncthing, le problème ne se pose
quasiment pas puisque mon épouse travaille sur l'un ou l'autre des PC,
mais pas les deux en même temps. Elle est elle-même le verrou
d'exclusion (sauf Í imaginer une modification hors ligne du même fichier
faite sur les deux PC, mais lÍ ). :)
Mais dans le cas de 2 serveurs, que se passe-t-il si un même fichier est
modifié sur les deux ?
En fait, je réalise qu'il faut en savoir un peu plus sur le contexte
d'utilisation pour apporter la bonne réponse.
Sébastien
--
Sébastien Dinot,
http://www.palabritudes.net/
Ne goͻtez pas au logiciel libre, vous ne pourriez plus vous en passer !
Vincent Besse a écrit :
Je pense que Syncthing est vraiment la solution adaptée Í ce besoin.
Quant Í son IHM, il s'agit d'une simple interface web nécessaire Í la
déclaration des volumes partagés et Í l'enrÍ´lement. Il n'est pas
nécessaire de l'exposer via un serveur web pour l'utiliser. Un tunnel
SSH permet d'y avoir accès Í distance.
Je me suis livré Í un petit retour d'expérience sur cet outil il y a un
mois :
https://www.palabritudes.net/2021/04/04/syncthing-la-synchro-se-fait-oublier.html
Sébastien
--
Sébastien Dinot,
http://www.palabritudes.net/
Ne goͻtez pas au logiciel libre, vous ne pourriez plus vous en passer !
NoSpam
[...]
Je veux bien accepter quelques secondes de latence et les éventuels
temps de transfert, mais je suis pas sͻr que lancer un rsync toutes les
minutes soit bien pertinent. Et est-ce qu'on peut vraiment faire du
bidirectionnel avec?
Merci,
Vincent
Sébastien Dinot
C'est "tout simplement" pour mettre en place une continuité de
services, essentiellement web mais pas que, sur deux serveurs, avec un
soupçon de DNS failover. En principe le deuxième serveur devrait être
très peu utilisé sauf évidemment carence du premier.
J'avais pas pensé Í la possibilité d'un fichier modifié sur les deux en
même temps. J'ai encore un peu de réflexion Í mener :-)
Merci,
Vincent
Pas avec rsync. Pour du bidirectionel, il faut voir avec quelque chose
comme unison
BERTRAND Joël
Ca travaille au niveau block device? Il me faudrait auquel cas avoir
les données Í synchroniser sur des partitions dédiées et je suis pas
forcément maÍ®tre de ça. Je vais quand même creuser un peu cette piste
et aussi DRDB...sait-on jamais.
Je cherche Í synchroniser des données, pas Í désynchroniser un
couple :-)
Vincent
Attention aux perfs, le mode synchrone peut les détériorer de manière très sensible.
Par ailleurs, je sais pas trop ce qu'il se passe si un des deux serveurs tombent, ou s'ils ne
se voient plus pendant un moment.
J'avais Í une époque fait un script avec inotify, le serveur réagissait Í chaque modif d'un
fichier pour l'envoyer Í l'autre, mais c'était finalement trop compliqué et j'ai abandonné
l'idée de synchro en temps réel (le but était un infra plus résistante et elle se retrouvait
finalement plutÍ´t plus fragile).
Pour le besoin d'un serveur bis qui peut reprendre rapidement en cas de défaillance du premier,
drdb async semble une bonne solution, mais il y a pas mal d'autres trucs Í gérer (quand
basculer, comment, que faire quand le premier revient, comment éviter le yoyo, etc.).
La HA (haute dispo) reste complexe Í mettre en place, faut bien mesurer l'investissement
(surtout en temps), les conséquences (fragilité induite par la complexité ajoutée vs
résistance aux pannes), les probas qu'un bug dans la HA provoque une coupure de service (ou des
datas incohérentes) vs la proba d'un crash hardware, etc.
Sur les 5 dernières années 100% des pannes que j'ai eues (3 de mémoires) étaient des pannes
réseau, o͹ on a finalement décidé d'attendre que l'hébergeur règle le pb plutÍ´t que de basculer
(avec Í chaque fois une coupure, de 10min Í qq heures).
Et pour les micro pannes réseau (pendant qq secondes|minutes deux serveurs ne se voient plus,
mais ils restent tous les deux joignables, au moins pour une partie des clients) il vaut mieux
ne rien faire (lÍ o͹ une HA pourrait lancer une bascule, avec toujours un risque de perte de
synchro).
--
Daniel
La sagesse, c'est d'avoir des rêves suffisamment grands pour
ne pas les perdre de vue lorsqu'on les poursuit.
Oscar Wilde
Cela dépend des données engendrées entre les synchro.
Non, j'avais cru comprendre que c'était pour un backup au cas ou.
Nous utilisons ce principe sur des serveurs dans 2 DC différents via un
VPN. La bascule se fait via une IP failover qu'il suffit de rediriger au
moment nécessaire.
--
Daniel