Comme le déclare ZFS exclusivement ,ZFS est invulnérable ZFS accepte qu'il pourrait être vulnérable aux pannes de courant.
Je n'ai pas pu trouver une telle déclaration pour BTRFS. Est-il (ou conçu / prévu pour être) durable entre les coupures de courant?
btrfs
failure-resistance
ceremcem
la source
la source
zpool clear -F
commandesync
ou unflush
qui écrit des caches sur le disque, ou pas pendant une panne de courant, ces données seront perdues. ZFS peut fonctionner parfaitement si le disque dur est sain et qu'il n'y a pas de coupure de courant (ou si un onduleur est connecté pour arrêter correctement l'ordinateur en cas de panne). Ce que vous ne pouvez pas dire sur FAT32.should be ok if your hw isn't "buggy"
où pas - "buggy" signifieyour hw has correct flush/barrier semantics
. J'ai publié un lien vers cette question sur IRC, j'espère que quelqu'un prendra du temps pour élaborer; mais pour l'instant c'est tout.Réponses:
TL; DR: Cela signifie que btrfs est protégé contre la corruption de données due à une perte d'alimentation de la même manière que ZFS.
Voici pourquoi: L'idée générale derrière ZFS et btrfs est similaire. Les deux utilisent des arbres Merkle comme structure de données . Les écritures peuvent nécessiter la mise à jour de plusieurs blocs sur le ou les disques. Le système de fichiers gère cela en écrivant les nouvelles données dans des blocs vides (même si un fichier existant est en cours de modification, il n'a donc pas besoin de modifier les blocs qui reflètent l'ancien état) et en construisant une nouvelle arborescence mise à jour. Une fois que tous les efforts sont effectués et que les données + l'arborescence mise à jour ont été écrites sur le disque, le pointeur de la tête est mis à jour vers la nouvelle arborescence, ce qui rend le changement visible.
Voici comment les choses sont censées se comporter lors de l'écriture dans un fichier:
Si l'alimentation est coupée après (4), la transaction est terminée. En cas de coupure de courant au cours des étapes (1) à (3), le système de fichiers retrouvera l'ancien état (les données écrites à l'étape (1) sont perdues mais le système de fichiers est cohérent). Notez qu'il n'est pas nécessaire de vérifier les erreurs du système de fichiers, ce qui signifie que le système de fichiers est disponible immédiatement, ce qui est un gros avantage (la vérification de grands systèmes de fichiers peut prendre très longtemps!).
Voici un exemple de la façon dont les choses peuvent mal se passer avec du matériel "buggy":
Le système de fichiers deviendra incohérent en cas de panne de courant entre (4) et (5) ou lors de l'exécution de l'étape (5). Par conséquent, l'arborescence Merkle et / ou les données peuvent être partiellement écrites, ce qui rend le système de fichiers incohérent.
En pratique, vous devez être particulièrement prudent lorsque vous utilisez des contrôleurs RAID . Ils désactivent généralement les caches de réécriture sur le disque et utilisent leur propre cache de réécriture à la place. Il y a deux façons courantes pour que les choses tournent mal:
* Je simplifie les choses ici. Il n'est en fait pas nécessaire de copier tout l'arbre. Seules les parties modifiées doivent être ajoutées - les parties restantes peuvent être partagées entre l'ancienne et la nouvelle arborescence .
la source