Pourquoi est-ce cp --reflink=auto
pas le comportement par défaut? Pourrait-il causer un préjudice pour l'activer?
Est-il possible de lui permettre de compiler l'heure, de sorte qu'il est utilisé partout dans le système, pas seulement dans des obus interactifs?
Ce n'est pas la valeur par défaut depuis pour des raisons de robustesse, on peut vouloir qu'une copie ait lieu pour protéger contre la corruption des données. De plus, pour des raisons de performances, vous voudrez peut-être que les écritures se produisent à la période de copie plutôt que de certains processus sensibles de la latence travaillant sur un fichier de vache et en étant retardés par les écritures éventuellement à une autre partie d'un disque mécanique. Notez que de Coreutils V8.24 MV reflétera par défaut, car il n'a pas les contraintes ci-dessus.
Je ne sais pas pourquoi ce n'est pas la valeur par défaut, peut-être que cela se comporte de la même manière que d'autres utilitaires de copie (rsync
, cpio
, pax
, tar
. ..) qui n'ont aucun support pour celui-ci (ou lorsque les fichiers sont copiés sur une interface qui ne le permettent pas (comme NFS, Samba, des couches de systèmes de fichiers de fusibles ...).
J'étais dans la même situation il y a quelques années et j'esigne GNU Code CP rapidement, il est toujours identique, vous devez corriger le code pour obtenir un comportement par défaut différent:
--- coreutils-8.21/src/cp.c~ 2013-06-22 21:50:26.265639114 +0100
+++ coreutils-8.21/src/cp.c 2013-06-22 21:51:06.880513924 +0100
@@ -775,7 +775,7 @@ cp_option_init (struct cp_options *x)
x->interactive = I_UNSPECIFIED;
x->move_mode = false;
x->one_file_system = false;
- x->reflink_mode = REFLINK_NEVER;
+ x->reflink_mode = REFLINK_AUTO;
x->preserve_ownership = false;
x->preserve_links = false;
Un gros problème est le potentiel de manquer d'espace pour faire la copie lorsque vous écrivez.
Avec une copie normale, puis dès que la copie se termine, vous n'avez jamais à vous soucier d'une écriture sur des parties existantes de l'échec du fichier: l'espace est entièrement attribué et ne disparaîtra pas avant de supprimer le fichier. Mais avec une copie de reflexion, il y a toujours un risque que, à quelques semaines ou quelques mois sur la route, une inscription à une partie existante du fichier échouera car il n'y avait pas assez d'espace pour effectuer une copie.
Découvrez que votre système a fait des copies reflètes derrière votre dos lorsqu'une opération comme celle-ci a échoué serait une jolie mauvaise surprise.
alias cp='cp --reflink=auto --sparse=always'
fait un meilleur sens que de corriger le code
Les raisons de la robustesse peut vouloir que une copie ait lieu pour protéger contre les données "Perte".
Nous ne savons pas que c'est la raison, mais les mauvaises choses qui peuvent arriver sont limitées à la destruction des médias. La plupart des appareils bloquants auront une forme d'identification de la corruption (CRC), sinon la correction d'erreur renvoyée (parité).
Pas pour des raisons de performance.
La vache arrive quand seule une partie de la? Effacer? bloc est écrit à. Avec moderne! Disque! Dispositif La taille du bloc matériel est un multiple de 4k. La modification de la partie du 4k provoque la lecture du lecteur de 4K et de l'écrire à nouveau, mais au-dessus de cela, le noyau va faire la même chose donc il n'y aura pas d'écrivies partielles pour atteindre le dispositif de bloc, SSD ou autre . Le noyau doit effectuer la vache pour les mêmes raisons, sauf si nous avons une copie en cache, nous ne pouvons pas créer les données qui existent dans les autres parties de l'appareil, sauvegardes pour l'extrémité de contes d'un fichier, mais le point est alors discutable. Mais la mise en cache d'une copie d'un fichier et de copier un fichier varie différentes opérations, le premier est beaucoup moins cher.
L'adresse de l'écriture est immatérielle, mais sachez que "une partie de l'appareil non utilisé" est moins chère à découvrir que "où les blocs du fichier résident actuellement".
Le fait est une méthode de vache est moins chère ou égale à la mise à jour d'un dispositif de blocage. Maintenant, si nous ne parlions pas des appareils de bloc, alors ce serait une autre histoire ... écrite sur bande quelque part.