J'ai une configuration intégrée utilisant un initramfs pour le système de fichiers racine mais utilisant une partition ext3 personnalisée montée sur un lecteur IDE flash compact. Parce que l'intégrité des données face à la perte de puissance est le facteur le plus important dans toute la configuration, j'ai utilisé les options suivantes pour monter (ci-dessous l'entrée de mon /etc/fstab
fichier
<file system> <mount pt> <type> <options> <dump><pass>
/dev/sda2 /data ext3 auto,exec,relatime,sync,barrier=1 0 2
Je suis venu par ces options en lisant sur Internet. Ce qui m'inquiète, c'est que le contenu de /proc/mounts
donne ce qui suit:
/dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl,
barrier=1,data=writeback 0 0
D'après ce que je comprends en lisant autour, je veux utiliser l' data=journal
option pour ma monture car cela offre la meilleure protection contre la corruption de données. Cependant, à partir de la page de manuel des options ext3 spécifiques, mount
il indique ce qui suit à propos de l'option d'écriture différée:
L'ordre des données n'est pas conservé - les données peuvent être écrites dans le système de fichiers principal après que ses métadonnées ont été validées dans le journal.
Selon les rumeurs, il s'agit de l'option à plus haut débit. Il garantit l'intégrité du système de fichiers interne , mais il peut permettre aux anciennes données d'apparaître dans les fichiers après un crash et une récupération de journal.
Je suis très confus à ce sujet - la page de manuel semble suggérer que pour l'intégrité du système de fichiers, je veux spécifier l' data=writeback
option mount
mais la plupart des autres références que j'ai trouvées (y compris certains livres publiés sur Linux embarqué) suggèrent que je devrais utiliser data=journal
. Quelle serait la meilleure approche à utiliser pour moi? La vitesse d'écriture n'est pas du tout un problème - l'intégrité des données l'est cependant.
la source
data=ordered
: pRéponses:
Ne vous laissez pas induire en erreur par le fait que ne
writeback
mentionne queinternal filesystem integrity
.Avec
ext3
, si vous utilisezjournal
,ordered
ouwriteback
, les métadonnées du système de fichiers est toujours tourillonne et que des moyens l' intégrité du système de fichiers interne.Les modes de données offrent un moyen de contrôler la façon dont les données ordinaires sont écrites dans le système de fichiers.
En
writeback
mode, les modifications de métadonnées sont d'abord enregistrées dans le journal et un bloc de validation est écrit. Une fois le journal mis à jour, les métadonnées et les écritures de données peuvent continuer.data=writeback
peut être un risque de sécurité grave: si le système se bloque lors de l'ajout à un fichier, après la validation des métadonnées (et des blocs de données supplémentaires alloués), mais avant l'écriture des données (blocs de données remplacés par de nouvelles données), puis après le journal récupération ce fichier peut contenir des blocs remplis de données de fichiers précédemment supprimés - de n'importe quel utilisateur 1 .Donc, si l'intégrité des données est votre principale préoccupation et que la vitesse n'est pas importante,
data=journal
c'est la voie à suivre.la source
Comme vous l'avez déjà remarqué, le point principal est que vous ne pouvez pas empêcher votre système de fichiers de tout type de plantage.
Ce que tu peux faire:
À la fin, les options de montage paranoïaque peuvent ressembler à ceci:
Et vous pouvez également garantir l'intégrité des données avec un fsck automatique à chaque démarrage.
la source
Essayez de changer la partie de la page de manuel que vous mettez en valeur:
Comme l'a souligné don_crissti, les autres modes n'ont pas le "cependant".
la source