[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Copier 300GB d'un disque dur a un autre



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 <hamster@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.


Reply to: