¿Cómo puedo optimizar ext4 para la confiabilidad?

11

Como ext4 se introdujo como más confiable que ext3 con las publicaciones en bloque, ¿hay alguna posibilidad de suponer que sea 100% confiable? ¿Qué sucede si se habilita el diario de bloque en él, que está deshabilitado de manera predeterminada?

Como guía de un amigo para explicar mi caso con más detalle: tengo un dispositivo Linux incorporado, después de la instalación, el teclado y el monitor se desconectan y funcionan de manera independiente.

Mi deber es asegurarme de que tenga un sistema de archivos confiable, de modo que con los errores no haya manera de corregir los fallos manuales en el dispositivo. No puedo obligar a mi cliente a usar un ups con cada dispositivo para garantizar que no haya fallas por fallas de energía.

¿Qué más me puede ofrecer ext4 además de bloquear el diario?

Gracias por adelantado.

amin
fuente
Sé que tengo algunas características de habilitación de intercambio como el diario de bloques, pero estoy aferrado a la confiabilidad y estoy listo para pagarlo
Amin
Consulte también: serverfault.com/questions/244095/how-to-make-ext4-more-reliable , cerrado por ser demasiado ambiguo.
Olli
Sí, hice mi pregunta allí y no hubo ayuda. Mi sistema Linux es un sistema integrado sin monitor o teclado conectado. así que quiero que sea más confiable en caso de falla de energía, etc. Sé que el diario de bloques es una forma, pero quiero saber si hay alguna otra opción. No puedo ofrecerle a mi cliente un ups para cada dispositivo.
amin
1
@amin La información sobre su caso de uso sería más útil en su pregunta, probablemente por eso fue cerrada por ser demasiado ambigua; agregue más información a su pregunta!
Jorge Castro
2
La pregunta es muy vaga. ¿Qué significa "100% confiable"? Suponiendo que por "bloqueo de publicación" te refieres a data = journal, entonces eso es solo una enorme pérdida de tiempo. El FS es inherentemente confiable; un diario solo se asegura de que no tenga que esperar durante un largo fsck después de un accidente.
psusi

Respuestas:

11

No. Nunca se puede suponer que algo sea 100% confiable.

Los sistemas de archivos de diario minimizan la pérdida de datos en caso de una interrupción inesperada. Las extensiones y barreras ayudan aún más, pero no pueden eliminar todos los problemas asociados. Personalmente, nunca he experimentado pérdida de datos debido a la corrupción del sistema de archivos cuando uso sistemas de archivos de registro en diario.

Además, el registro en diario no está deshabilitado de forma predeterminada.

Aquí hay una buena descripción general de ext4 y sus mejoras: http://kernelnewbies.org/Ext4

djeikyb
fuente
1
+1 para "nunca se puede suponer que algo sea 100% confiable"
Lekensteyn
como el diario de bloques de Comparison_of_file_systems está desactivado mientras el diario de metadatos está activado, eso es un compromiso entre confiabilidad y velocidad
amin
Acabo de reiniciar el servidor para encontrar corrupción masiva de datos en ext4 donde los archivos contienen datos no válidos. Esto no podría haber sucedido en zfs o btrfs porque los datos tienen sumas de verificación.
user239558
5

Una nueva característica agregada a ext4 e introducida con el kernel 3.5 es lo que se conoce como 'sumas de verificación de metadatos', que es otra característica de ext4 que se supone que mejora la confiabilidad y la integridad de la estructura del sistema de archivos.

La implementación general se explica bien en los novatos de Kernel :

Los sistemas de archivos modernos como ZFS y Btrfs han demostrado que garantizar la integridad del sistema de archivos utilizando sumas de verificación es una característica valiosa. Ext4 ha agregado la capacidad de almacenar sumas de verificación de varios campos de metadatos. Cada vez que se lee un campo de metadatos, la suma de verificación de los datos leídos se compara con las sumas de verificación almacenadas, si son diferentes significa que los metadatos están dañados (tenga en cuenta que esta característica no cubre datos, solo las estructuras internas de metadatos y no tiene capacidades de "autocuración").

Cualquier sistema de archivos ext4 puede actualizarse para usar sumas de verificación utilizando el comando "tune2fs -O metadata_csum" o "mkfs -O metadata_csum" en el momento de la creación. Una vez que esta característica está habilitada en un sistema de archivos, los núcleos más antiguos sin soporte de suma de verificación solo podrán montarla en modo de solo lectura.

Artículos como este en kernel.org discuten con mayor detalle técnico cómo el uso de sumas de verificación de metadatos puede evitar que los metadatos dañados dañen la estructura del sistema de archivos.

Sin embargo, el artículo también advierte que:

El código de suma de comprobación de metadatos comenzó a entrar en la línea principal en Linux 3.5, y a partir de 3.7-rc1 se está sometiendo a algunas pruebas de usuario. Este código aún no es sólido como una roca.

No está habilitado de manera predeterminada en Ubuntu 12.10, y probablemente sea mejor no habilitarlo por el momento después de los problemas recientes con el sistema de archivos ext4, como se señala aquí .


fuente
1

Podría deshabilitar la asignación retrasada en ext4 (nodelalloc), lo que haría que sea mucho más probable que recupere más datos si / cuando sufrió un corte de energía durante una escritura, pero tendría el costo de una mayor fragmentación del archivo sistema a lo largo del tiempo.

usuario3495444
fuente