Como ZFS declara exclusivamente ,Se afirma que ZFS es invulnerable ZFS acepta que podría ser vulnerable a fallas de energía.
No pude encontrar tal declaración para BTRFS. ¿Es (o diseñado / planeado para ser) duradero entre cortes de energía?
btrfs
failure-resistance
ceremcem
fuente
fuente
zpool clear -F
comandosync
o unaflush
que escribe cachés en el disco, o no durante un corte de energía, esos datos se perderán. ZFS podría funcionar perfectamente si el disco duro está en buen estado y no hay cortes de energía (o si un UPS está conectado para apagar la computadora correctamente en caso de un corte). Lo que no puedes decir sobre FAT32 más o menos.should be ok if your hw isn't "buggy"
donde no significa "buggy"your hw has correct flush/barrier semantics
. He publicado un enlace a esta pregunta en IRC, espero que alguien tome tiempo para elaborar; pero por ahora esto es todo.Respuestas:
TL; DR: Esto significa que btrfs está protegido contra la corrupción de datos debido a la pérdida de energía de manera similar a ZFS.
Aquí está la razón: la idea general detrás de ZFS y btrfs es similar. Ambos usan árboles de Merkle como estructura de datos . Las escrituras pueden requerir que se actualicen varios bloques en los discos. El sistema de archivos está manejando esto escribiendo los datos nuevos en bloques vacíos (incluso si se está modificando un archivo existente, por lo tanto, no necesita modificar bloques que reflejen el estado anterior) y construyendo un nuevo árbol actualizado. Una vez que se realiza todo el trabajo pesado y los datos + el árbol actualizado se han escrito en el disco, el puntero de la cabeza se actualiza al nuevo árbol haciendo visible el cambio.
Así es como se supone que deben comportarse las cosas al escribir en un archivo:
Si se pierde energía después de (4) la transacción se ha completado. Si se pierde energía durante los pasos (1) a (3), el sistema de archivos mostrará el estado anterior (los datos escritos en el paso (1) se pierden pero el sistema de archivos es coherente). Tenga en cuenta que no es necesario verificar si hay errores en el sistema de archivos, lo que significa que el sistema de archivos está disponible de inmediato, lo cual es una gran ventaja (¡verificar sistemas de archivos grandes puede llevar mucho tiempo!).
Aquí hay un ejemplo de cómo las cosas pueden salir mal con el hardware "defectuoso":
El sistema de archivos se volverá inconsistente si se pierde energía entre (4) y (5) o mientras se realiza el paso (5). Como consecuencia, el árbol de Merkle y / o los datos solo pueden escribirse parcialmente, lo que hace que el sistema de archivos se vuelva inconsistente.
En la práctica, debe tener especial cuidado al utilizar controladores RAID . Por lo general, deshabilitan las memorias caché de reescritura en el disco y utilizan su propia memoria caché de reescritura. Hay dos formas comunes de que las cosas salgan mal aquí:
* Estoy simplificando las cosas aquí. En realidad no es necesario copiar todo el árbol. Solo se deben agregar las partes que cambiaron; las partes restantes se pueden compartir entre el árbol antiguo y el nuevo .
fuente