Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

synchro home nfs sur portable

18 réponses
Avatar
Christophe PEREZ
Bonjour,

Je recherche des idées de solution pour le problème relativement simple
(à comprendre) suivant :
Soit un serveur "domestique" qui fait un peu tout, dont partage NFS.
Soit un portable sous Linux (gentoo), qui a toujours été utilisé à
demeure, et qui a son /home monté en NFS.
Aujourd'hui, la donne change, l'utilisateur du portable (ma compagne) a
besoin de l'amener au boulot (école) pour y connecter un vidéo-projecteur
(testé à la maison, aucun pb pour le fonctionnement).
Il faudrait donc que ce portable deviennent autonome (ce qui est la
moindre des choses pour un portable), et donc, qu'au moins le /home/user
concerné soit identique que sur le /home du serveur.
J'ai déjà sur le disque du portable une partition prévue à cet effet.

Deux problèmes se posent à moi :
1) Comment et quand faire la synchro ? C'est à dire quel outil utiliser.
Il y a longtemps, j'avais un peu utilisé unison. Est-ce le plus adapté ?
y a t'il mieux ? Il faut évidemment que la procédure de synchro complète
soit automatisable.
Synchroniser les 2 homes à chaque démarrage/arrêt de la machine ? Le
problème (si l'on peut dire) c'est que cette machine n'est que très
rarement démarrée. La veille y est préférée.
Une tache cron ?

2) Supposons que le moment et le moyen soit définis. J'aurais à synchro
un /home/user (nfs) avec un /home2/user (local), mais ensuite, comment
faire que pour qu'en démarrage autonome, ce soit le /home2 (la partition
correspondante à) qui soit monté en /home ? Un runlevel et un montage
manuel par un service (/etc/init.d) ?

J'avoue que même si à priori tout ça semble assez simple, tout
s'embrouille malgré tout dans ma tête et vos avis/conseils/idées seront
sans doute les bienvenus.
Merci d'avance.

10 réponses

1 2
Avatar
jp willm
Hello Christophe,

Le 16/08/2015 18:18, Christophe PEREZ a écrit :


Deux problèmes se posent à moi :
1) Comment et quand faire la synchro ? C'est à dire quel outil utiliser.



Peut-être un élément de réponse :

https://www.isalo.org/wiki.debian-fr/Rsync_%2B_NFS_%28Script_de_sauvegarde_diff%C3%A9rentielle_journali%C3%A8re%29

@+

--
jp willm
http://perso.orange.fr/willms/index.html
Avatar
Francois Lafont
Bonjour,

Je ne sais absolument pas si c'est la bonne façon de faire mais
personnellement, vue la description du problème, je laisserais
tomber complètement le partage nfs sur le serveur car si le
portable devient « indépendant » avec son propre home je ne vois
plus trop l'intérêt de monter un partage nfs... à part pour avoir
une sauvegarde, non ? Il me semble que si c'est uniquement pour
synchroniser des répertoires rsync en mode daemon est le plus
efficace.

Du coup, je verrai bien un home en local « classique » sur le
portable et un daemon rsync toujours sur ce même portable qui
propose en « partage » le module "home-portable" (qui correspond
bien sûr au home local en question). Ensuite, du côté du serveur
(le serveur nfs même si ici on n'utilise pas du tout nfs), je
verrais bien un cron (par exemple toutes les 20 minutes) qui teste
un petit ping sur le portable (ou un telnet sur le port rsync) et
qui lance une syncro rsync si le test est OK (et qui ne fait rien
sinon).

J'espère que je suis à peu près clair...
Mes 2 centimes.

--
François Lafont
Avatar
Christophe PEREZ
Le Sun, 16 Aug 2015 18:26:47 +0200, jp willm a écrit :

Peut-être un élément de réponse :

https://www.isalo.org/wiki.debian-fr/Rsync_%2B_NFS_%


28Script_de_sauvegarde_diff%C3%A9rentielle_journali%C3%A8re%29

Merci, mais, déjà ça correspondrait plutôt à une solution comme propose
François, ce qui n'était pas trop mon intention à la base.
De plus, quand je regarde le script, ça me laisse assez dubitatif :
monter le répertoire distants NFS, pour lancer un rsync dessus, pour le
démonter ensuite, au lieu de faire directement le rsync sur le nfs
distant... ça ne fait pas très crédible comme solution.

Je vais attendre le début de semaine des experts qui profitent du WE pour
être loin de l'informatique, et voir ce qu'ils en disent :)
Voir déjà s'il rebondissent sur unison, ou même sur le principe de la
synchro.
Avatar
Christophe PEREZ
Le Sun, 16 Aug 2015 20:17:06 +0200, Francois Lafont a écrit :

Je ne sais absolument pas si c'est la bonne façon de faire mais
personnellement, vue la description du problème, je laisserais tomber
complètement le partage nfs sur le serveur car si le portable devient «
indépendant » avec son propre home je ne vois plus trop l'intérêt de
monter un partage nfs... à part pour avoir une sauvegarde, non ? Il me
semble que si c'est uniquement pour synchroniser des répertoires rsync
en mode daemon est le plus efficace.



Oui, mais là, c'est ma faute. A ta réponse je me rends compte qu'il y a
un point que je n'ai pas du tout exprimé, c'est le fait que ce status
d'autonome ne sera que très ponctuel dans l'année, quelques fois, pas
plus, et que le principe du home en NFS a un intérêt très grand pour moi,
parce que ça permet aux utilisateurs (femme, enfants et même moi) de
changer de machine sans se poser aucune question, leur home étant
toujours le même.

Du coup, je verrai bien un home en local « classique » sur le portable
et un daemon rsync toujours sur ce même portable qui propose en «
partage » le module "home-portable" (qui correspond bien sûr au home
local en question). Ensuite, du côté du serveur (le serveur nfs même si
ici on n'utilise pas du tout nfs), je verrais bien un cron (par exemple
toutes les 20 minutes) qui teste un petit ping sur le portable (ou un
telnet sur le port rsync) et qui lance une syncro rsync si le test est
OK (et qui ne fait rien sinon).



Bon, hormis le fait que je trouve plus judicieux d'avoir la tache cron
sur le portable que sur le serveur, bien sur que si je ne trouve aucune
autre solution dans le sens de ce que j'espère, je serai obligé de me
rabattre là dessus, mais franchement, j'espérais (et espère encore)
mieux, et plus proche de ma demande :)

J'espère que je suis à peu près clair...



Oh oui, c'était très clair, pas de pb à ce niveau.
Merci en tout cas.
Avatar
Doug713705
Le 16-08-2015, Christophe PEREZ nous expliquait dans
fr.comp.os.linux.configuration
(<mqqd56$emo$) :

Bonjour,



Bonjour,

Je recherche des idées de solution pour le problème relativement simple
(à comprendre) suivant :
Soit un serveur "domestique" qui fait un peu tout, dont partage NFS.
Soit un portable sous Linux (gentoo), qui a toujours été utilisé à
demeure, et qui a son /home monté en NFS.
Aujourd'hui, la donne change, l'utilisateur du portable (ma compagne) a
besoin de l'amener au boulot (école) pour y connecter un vidéo-projecteur
(testé à la maison, aucun pb pour le fonctionnement).
Il faudrait donc que ce portable deviennent autonome (ce qui est la
moindre des choses pour un portable), et donc, qu'au moins le /home/user
concerné soit identique que sur le /home du serveur.
J'ai déjà sur le disque du portable une partition prévue à cet effet.

Deux problèmes se posent à moi :
1) Comment et quand faire la synchro ? C'est à dire quel outil utiliser.
Il y a longtemps, j'avais un peu utilisé unison. Est-ce le plus adapté ?
y a t'il mieux ? Il faut évidemment que la procédure de synchro complète
soit automatisable.
Synchroniser les 2 homes à chaque démarrage/arrêt de la machine ? Le
problème (si l'on peut dire) c'est que cette machine n'est que très
rarement démarrée. La veille y est préférée.
Une tache cron ?

2) Supposons que le moment et le moyen soit définis. J'aurais à synchro
un /home/user (nfs) avec un /home2/user (local), mais ensuite, comment
faire que pour qu'en démarrage autonome, ce soit le /home2 (la partition
correspondante à) qui soit monté en /home ? Un runlevel et un montage
manuel par un service (/etc/init.d) ?



Juste une réflexion, tu peux tout à fait avoir des données locales au
portable dans /home/user. Lorsque tu monteras le nfs sur /home/user, le
système ne verra que le partage nfs et non plus les données locales.

Au démontage du nfs, tu récupèreras les données locales telles qu'elles
étaient avant le montage nfs.

Tout ça n'aide en rien à la synchronisation du partage et de la
partition locale ;-)

Pour une synchronisation j'aime bien rsync dont c'est le boulot premier.

Du coup, on peut peut-être voir les opérations de cette manière:

Arrivée à la maison:
1 - Montage nfs sur /mnt/nfs
2 - Synchro /home/user sur /mnt/nfs (rsync -avzr /home/user /mnt/nfs)
2 - Montage NFS sur /home/user

Départ de la maison:
1 - Démontage du NFS
2 - Remontage du NFS sur /mnt/nfs
3 - Synchro /mnt/nfs et /home/user (rsync -avzr /mnt/nfs /home/user)
4 - Démontage /mnt/nfs

À la louche, ça devrait fonctionner par contre il faut encore gérer
les montages en fonction du lieu ;-)

--
Mais l'ombre des plaisirs s'enfuit
Toujours plus loin vers l'inconnu.
-- H.F. Thiéfaine, La môme kaléïdoscope
Avatar
Christophe PEREZ
Le Mon, 17 Aug 2015 10:49:24 +0200, Doug713705 a écrit :

Juste une réflexion, tu peux tout à fait avoir des données locales au
portable dans /home/user. Lorsque tu monteras le nfs sur /home/user, le
système ne verra que le partage nfs et non plus les données locales.



Bien entendu. Seulement, je ne peux plus accéder à ce qui est "dessous".
C'est un peu pour ça que je postais ici.

Pour une synchronisation j'aime bien rsync dont c'est le boulot premier.



Alors, soit je maîtrise très mal rsync, soit c'est autre chose, mais je
vous vois tous proposer rsync, alors que *selon moi* rsync ne fonctionne
que dans un sens. Je synchronise de A vers B, puis de B vers A, mais je
n'ai pas de moyen de synchroniser A ET B. Du coup, il y a des situations
qui ne seront pas gérées correctement.
Je m'explique :
si un fichier existe sur A et pas sur B, soit j'utilise l'option --delete
quand je synchro de B vers A et je le supprime, soit je le copie quand je
synchro de A vers B. Mais il n'y a à ma connaissance *aucun* moyen par
rsync de savoir si ce fichier a été créé plus récemment que ma dernière
synchro, auquel cas il faut le conserver, si ou au contraire, il a
volontairement été supprimé d'un côté, auquel cas il faut aussi le
supprimer de l'autre.
Je ne sais pas si je me fais bien comprendre... Ou alors, c'est moi qui
n'ai rien compris à l'usage de rsync, et il serait temps que ça change :)

Un outil comme unison lui, sait prendre compte ces problématiques, parce
qu'il est fait pour ça, contrairement à rsync justement. Le truc, c'est
que je n'ai utilisé unison qu'il y a lgtps, et peu. En plus, il me semble
me souvenir que j'avais du mal à automatiser totalement les synchros.
D'où ma question, de savoir quel outil proposaient les experts.

Du coup, on peut peut-être voir les opérations de cette manière:

Arrivée à la maison:
1 - Montage nfs sur /mnt/nfs 2 - Synchro /home/user sur /mnt/nfs (rsync
-avzr /home/user /mnt/nfs)
2 - Montage NFS sur /home/user



Ne le prends pas mal hein, mais : beurk !
Plus sérieusement, faire ça, c'est casser des automatismes de démarrage
de ma gentoo comme le service netmount.
Je n'ai pas que ça comme montage nfs. Du coup, pour le /home en
particulier, il faudrait que je le vire du fstab, pour le monter
manuellement...
Très franchement, si j'ai posé ici, c'était en espérant tomber sur
quelqu'un ayant déjà eu une problématique très proche, ou alors pour
apprendre qu'un mécanisme existe pour traiter ce genre de situation.
En effet, en lisant ce NG, quasiment tous les jours j'apprends par l'un
ou l'autre des "experts" en leur domaine un truc, une astuce, un outil.
Et à chaque fois, je me demande quel "bricolage" j'aurais du faire si
j'avais été dans cette situation :)

Départ de la maison:
1 - Démontage du NFS 2 - Remontage du NFS sur /mnt/nfs 3 - Synchro
/mnt/nfs et /home/user (rsync -avzr /mnt/nfs /home/user)
4 - Démontage /mnt/nfs

À la louche, ça devrait fonctionner par contre il faut encore gérer les
montages en fonction du lieu ;-)



Oui oui, bien sur que ça doit fonctionner. Et si je n'ai pas le choix,
j'adopterai ce genre de solution, mais, au risque de me répéter, j'avais
espérer trouver mieux. Mais bon, s'il n'existe pas mieux hein, je ferai
avec ;)
Merci pour ton aide.
Avatar
Christophe PEREZ
Le Mon, 17 Aug 2015 10:49:24 +0200, Doug713705 a écrit :

(rsync -avzr /home/user /mnt/nfs)



Juste pour info, le -r est compris dans le -a :

-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Avatar
Yliur
Le Sun, 16 Aug 2015 16:18:46 +0000 (UTC)
Christophe PEREZ a écrit :

Bonjour,

Je recherche des idées de solution pour le problème relativement
simple (à comprendre) suivant :
Soit un serveur "domestique" qui fait un peu tout, dont partage NFS.
Soit un portable sous Linux (gentoo), qui a toujours été utilisé à
demeure, et qui a son /home monté en NFS.
Aujourd'hui, la donne change, l'utilisateur du portable (ma compagne)
a besoin de l'amener au boulot (école) pour y connecter un
vidéo-projecteur (testé à la maison, aucun pb pour le fonctionnement).
Il faudrait donc que ce portable deviennent autonome (ce qui est la
moindre des choses pour un portable), et donc, qu'au moins
le /home/user concerné soit identique que sur le /home du serveur.
J'ai déjà sur le disque du portable une partition prévue à cet effet.

Deux problèmes se posent à moi :
1) Comment et quand faire la synchro ? C'est à dire quel outil
utiliser. Il y a longtemps, j'avais un peu utilisé unison. Est-ce le
plus adapté ? y a t'il mieux ? Il faut évidemment que la procédure de
synchro complète soit automatisable.
Synchroniser les 2 homes à chaque démarrage/arrêt de la machine ? Le
problème (si l'on peut dire) c'est que cette machine n'est que très
rarement démarrée. La veille y est préférée.
Une tache cron ?

2) Supposons que le moment et le moyen soit définis. J'aurais à
synchro un /home/user (nfs) avec un /home2/user (local), mais
ensuite, comment faire que pour qu'en démarrage autonome, ce soit
le /home2 (la partition correspondante à) qui soit monté en /home ?
Un runlevel et un montage manuel par un service (/etc/init.d) ?

J'avoue que même si à priori tout ça semble assez simple, tout
s'embrouille malgré tout dans ma tête et vos avis/conseils/idées
seront sans doute les bienvenus.
Merci d'avance.



Et une synchronisation des fichiers sur un serveur type owncloud, à la
place du montage nfs ?

Ou est-ce trop compliqué à monter/synchroniser ça tôt dans la procédure
de démarrage de la machine ?

Pas essayé en vrai, je ne sais pas dans quelle mesure la
synchronisation peut être automatisée. Mais ça ne m'étonnerait pas que
ça se fasse.
Avatar
Lucas Levrel
Le 18 août 2015, Christophe PEREZ a écrit :

Pour une synchronisation j'aime bien rsync dont c'est le boulot premier.



Alors, soit je maîtrise très mal rsync, soit c'est autre chose, mais je
vous vois tous proposer rsync, alors que *selon moi* rsync ne fonctionne
que dans un sens. Je synchronise de A vers B, puis de B vers A, mais je
n'ai pas de moyen de synchroniser A ET B. Du coup, il y a des situations
qui ne seront pas gérées correctement.
Je m'explique :
si un fichier existe sur A et pas sur B, soit j'utilise l'option --delete
quand je synchro de B vers A et je le supprime, soit je le copie quand je
synchro de A vers B. Mais il n'y a à ma connaissance *aucun* moyen par
rsync de savoir si ce fichier a été créé plus récemment que ma dernière
synchro, auquel cas il faut le conserver, si ou au contraire, il a
volontairement été supprimé d'un côté, auquel cas il faut aussi le
supprimer de l'autre.
Je ne sais pas si je me fais bien comprendre... Ou alors, c'est moi qui
n'ai rien compris à l'usage de rsync, et il serait temps que ça change :)



Oui et si, tu as très bien compris et résumé le problème. Je n'ai pas non
plus vu d'option dans rsync pour faire des comparaisons de date sur la
base d'un fichier de référence (on pourrait faire un « touch mytimestamp »
à chaque synchro puis comparer la date de modif des fichiers à
synchroniser avec celle de mytimestamp).

Un outil comme unison lui, sait prendre compte ces problématiques, parce
qu'il est fait pour ça, contrairement à rsync justement.



Je suppose qu'il maintient une base de données sur les fichiers à
synchroniser. rsync lui est autonome, mais du coup limité.

Tiens-nous au courant de la solution que tu mettras en œuvre !

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
C'est mieux avé les accents (F. Patte)
Avatar
Benoit Izac
Bonjour,

Le 19/08/2015 à 00:43, Christophe PEREZ a écrit dans le message
<mr0cdo$62t$ :

Très franchement, si j'ai posé ici, c'était en espérant tomber sur
quelqu'un ayant déjà eu une problématique très proche, ou alors pour
apprendre qu'un mécanisme existe pour traiter ce genre de situation.



Je me suis déjà posé la même question mais je n'ai jamais trouvée une
solution éprouvée pour résoudre cette problématique. Coda
<http://www.coda.cs.cmu.edu/> semblait être prometteur mais, vu qu'il
n'y plus aucun commit depuis plus d'un an et qu'il n'est pas largement
déployé (seul Fedora le propose, pas Debian, Arch Linux, openSUSE), je
ne m'y risquerai pas...

Si tu tentes l'aventure, je suis très intéressé par un retour.

--
Benoit Izac
1 2