Salut

Merci Hamster pour cette explication très complète, je comprends mieux a
quoi sert sync et son importance dans le cadre de manipulation de fichier.

La copie de fichier viens de ce finir avec succès :-)))
sent 305,600,616,450 bytes  received 113,919 bytes  67,083,905.25 bytes/sec
total size is 305,525,656,835  speedup is 1.00

J'ai utilisé rsync (sans oublier le sync ;-)
#rsync -aPv /mnt/data/projet /mnt/data2/ && sync

Tout semble fonctionner correctement sur le nouveau disque. Il n'y a plus
qu'à le remplir :D

Je vous adresse a tous un TRES GRAND MERCI :) pour votre aide, vos conseils
et votre assistance, et en particulier à Hamster pour sa disponibilité.


Très cordialement
Hugues



Le ven. 16 sept. 2022 à 13:04, hamster <hams...@suna.fdn.fr> a écrit :

> Le 16/09/2022 à 11:49, Hugues MORIN-TRENEULE a écrit :
> > Salut
> >
> > Dans la commande
> > rsync -aPv /xxx/yyy/source /vvv/zzz/destination && sync
> >
> > Le "sync" correspond bien à cette commande:
> > http://manpagesfr.free.fr/man/man8/sync.8.html
> > <http://manpagesfr.free.fr/man/man8/sync.8.html>
> > J'ai compris qu'elle permettait de s'assurer que le contenu en
> > mémoire soit bien inscrit sur le disque mais je ne comprends pas bien
> > pourquoi on l'appelle après rsync?
> > Quelle est sa fonction dans le processus de copie?
>
> Dans un disque mécanique, il y a une tete le lecture qui bouge. Plus on
> la fait bouger, plus le mécanisme s'use. C'est donc une bonne idée
> d'économiser les mouvements de cette tete de lecture.
>
> Un moyen simple de le faire, c'est de ne pas aller écrire chaque chose a
> écrire au fur et a mesure mais de les grouper. Il y a donc une mémoire
> cache. Quand tu écris quelque chose sur le disque, en fait c'est pas
> écrit directement sur le disque mais dans la mémoire cache. Quand cette
> mémoire cache est pleine, tout son contenu est écrit en une fois sur le
> disque. Et puis ca recommence.
>
> Comme le système fait beaucoup de toutes petites écritures (a savoir
> rajouter une ligne dans un fichier de log) le fait de grouper ainsi les
> écritures fait économiser beaucoup de mouvements de la tete de lecture,
> et prolonge d'autant la durée de vie du disque.
>
> Mais ca a aussi un défaut : quand tu écris quelque chose sur le disque,
> en fait ca s'écrit pas, ca attend que le cache soit plein pour s'écrire
> vraiment. Typiquement si tu écris un gros fichier, ca remplit le cache,
> ca l'écrit sur le disque, ca re-remplit le cache, ca l'écrit sur le
> disque, etc… un certain nombre de fois. Et puis arrive la fin du
> fichier. Le dernier morceau du fichier n'est pas assez gros pour remplir
> le cache, alors il est pas écrit tout de suite. Et tu te retrouve
> pendant un certain temps avec un fichier qui est écrit sur le disque,
> sauf la toute fin. Combien de temps dure ce "certain temps" ? Jusqu'a ce
> que tu ait écrit suffisamment d'autres trucs pour finir de remplir le
> cache.
>
> La commande sync force l'écriture de ce qui est dans le cache, meme si
> il n'est pas plein. Tu peux la lancer a la main, et elle est aussi
> lancée automatiquement quand tu démonte un truc. C'est pour ca qu'il ne
> faut pas débrancher un disque externe sans l'éjecter au préalable. Quand
> tu éjecte le disque externe, ca lance sync pour vider le cache et ca le
> démonte. Tu peux alors le débrancher sans qu'il n'y ait le dernier bout
> du dernier fichier écrit qui reste oublié dans le cache.
>
> PS : les clef USB, les cartes mémoire, les disque SSD (tout ce qui est
> de la mémoire flash en fait) n'ont pas de tete de lecture qui bouge.
> Grouper ainsi les écritures n'économise en rien leur usure. Dans ce cas,
> le cache est plus une source d'ennui qu'autre chose. Ca oblige a faire
> une action manuelle pour prévenir le système qu'on va débrancher. Ca
> fait des fichiers corrompus en cas de débranchement intempestif. Qui n'a
> jamais eu de faux contact dans une prise USB ???
>
> Et puis ca empeche de faire une barre de progression réaliste pour les
> trucs avec une vitesse d'écriture un peu lente.
>
> Tu a peut etre remarqué que quand tu écris un gros fichier sur une clef
> USB, au début la barre de progression avance super vite. Tu te dis
> "super, ca va pas durer longtemps". Et puis la barre de progression
> ralentit brusquement et sur la fin du fichier elle avance comme un
> escargot, pendant que tu fulmine en disant "et alors, qu'est-ce que ca
> attend, ca allait vite au début". Quand la copie est enfin terminée, tu
> fais "ejecter la clef" et la ca se met a te faire poireauter encore un
> bon moment avant de te dire "ca y est, vous pouvez retirer la clef sans
> risque".
>
> Tout ca c'est la faute du cache. Au début ca va super vite parce que ca
> n'écrit pas sur la clef mais dans le cache. Quand de cache est plein, ca
> se met a écrire vraiment sur la clef, et la barre de progression
> ralentit beaucoup. Ce n'est qu'a ce moment la que tu vois la vraie
> vitesse d'écriture de la clef. Quand ca t'affiche que la copie est
> finie, en fait ca veut dire que ca a fini d'écrire le fichier dans le
> cache. Quand tu éjecte, ca force a écrire ce qui reste dans le cache,
> c'est pour ca que ca met des plombes avant de te dire "vous pouvez
> retirer sans risque".
>
> Je rève d'un système qui sache faire la différence entre les disques
> mécaniques et les mémoires flash, pour utiliser automatiquement un cache
> d'écriture sur les disques mécaniques mais PAS sur la mémoire flash.
>
>

Répondre à