¿Qué tan beneficiosos son los sistemas de archivos autorreparables para uso general?

¿Qué tan beneficiosos son los sistemas de archivos autorreparables para uso general?

Recientemente investigué sistemas de archivos avanzados (Btrfs, ZFS) para la redundancia y disponibilidad de datos y me interesé en la funcionalidad adicional que brindan, especialmente sus capacidades de "autocuración" contra la corrupción de datos.

Sin embargo, creo que necesito dar un paso atrás y tratar de entender si este beneficio supera sus desventajas (errores de Btrfs y problemas no resueltos y disponibilidad de ZFS e impacto en el rendimiento) para el uso general en el hogar/PYMES, en comparación con un mdadm-Raid1 + convencional. Solución ext4. Una copia de seguridad reflejada está disponible de cualquier manera.

Supongamos que tengo un par de servidores de archivos que se utilizan con fines de archivo y tienen recursos limitados, pero memoria ECC y una fuente de energía estable.

  1. ¿Qué posibilidades hay de que encuentre corrupción de datos real que haga que los archivos sean ilegibles? ¿Cómo?
  2. ¿Puede Ext4 o el administrador de archivos del sistema detectar errores de datos en operaciones de copiar/mover, haciéndome al menos consciente de un problema?
  3. ¿Qué sucede si una de las unidades madam-Raid1 contiene datos diferentes debido a que una de las unidades tiene sectores defectuosos? ¿Aún podré recuperar el archivo correcto o la matriz no podrá decidir cuál es el archivo correcto y lo perderá por completo?

Respuesta1

Sí, un sistema de archivos funcional con suma de verificación es algo muy bueno. Sin embargo, la verdadera motivación no se encuentra en el mítico "bitrot" que, si bienhacesucede, es muy raro. Más bien, la principal ventaja es que dicho sistema de archivos proporciona ysuma de comprobación de datos de un extremo a otro, protegiéndolo activamente contra el comportamiento erróneo del disco, como escrituras mal dirigidas y corrupción de datos relacionados con fallas o mal comportamiento de la caché DRAM privada del disco debido a un problema de suministro de energía.

Experimenté ese problema de primera mano, cuando una matriz RAID 1 de Linux se estropeó debido a un problema de suministro de energía. El caché de un disco comenzó a corromper los datos y el ECC integrado en los sectores del disco no detectó nada, simplemente porque los datos escritosya estaban corruptosy el ECC se calculó a partir de los propios datos corruptos.

Gracias a su diario de suma de comprobación, que detectó algo extraño y suspendió el sistema de archivos, XFS limitó el daño; sin embargo, algunos archivos/directorios estaban irremediablemente dañados. Como se trataba de una máquina de respaldo que no enfrentaba ninguna presión de inactividad inmediata, la reconstruí con ZFS. Cuando el problema volvió a ocurrir, durante la primera limpieza, ZFS corrigió el bloque afectado leyendo las copias buenas de los otros discos. Resultado: sin pérdida de datos ni tiempo de inactividad. Éstas son dos muy buenas razones para utilizar un sistema de archivos de suma de comprobación.

Vale la pena señalar que la suma de verificación de datos es tan valiosa que un mapeador de dispositivos pretende proporcionarla (emulando las especificaciones T-10 DIF/DIX), llamadointegridad dm, fue desarrollado precisamente para extender esta protección a los dispositivos de bloque clásicos (especialmente los redundantes como RAID1/5/6). En virtud de laproyecto estratis, se integrará en una CLI/API de gestión integral.

Sin embargo, tiene razón en que cualquier ventaja potencial aportada por dicho sistema de archivos debe compararse con la desventaja que hereda. El principal problema de ZFS es que no está integrado en el kernel estándar, pero por lo demás es muy rápido y estable. Por otro lado, BTRFS, aunque es principal,tiene muchas cuestiones importantesy problema de rendimiento (la sugerencia común para bases de datos o máquinas virtuales es deshabilitar CoW, lo que, a su vez, deshabilitó la suma de verificación, lo cual, francamente, no es una respuesta aceptable). En lugar de usar BTRFS, usaría XFS y esperaría lo mejor, o usaría dispositivos protegidos con integridad DM.

Respuesta2

  1. Tenía un disco duro Seagate que comenzaba a fallar en las sumas de comprobación cada vez que ejecutaba zfs Scrub. Falló después de unas semanas. ZFS y Btrfs tienen sumas de verificación para datos y metadatos. ext4 solo tiene sumas de comprobación de metadatos.

  2. Sólo errores CRC y errores de suma de comprobación de metadatos. Puede ocurrir corrupción de datos.

  3. Si tiene sectores malos no es un problema. Todo el disco "fallará", pero el otro disco estará "bien". El problema es cuando los datos tienen CRC correcto, pero están dañados. Esto puede ocurrir aleatoriamente debido a discos grandes.

Respuesta3

He estado usando ZFS en producción, tanto para servidores como para un NAS de oficina doméstica, tanto en Linux como en FreeBSD, durante más de 6 años. He descubierto que es estable, rápido, confiable y personalmente lo he visto detectar y (cuando puede) corregir errores que un simple mddispositivo o ext4sistema de archivos no habría podido.

Sin embargo, creo que debo dar un paso atrás y tratar de comprender si este beneficio supera sus desventajas (errores de Btrfs y problemas no resueltos y disponibilidad de ZFS e impacto en el rendimiento).

En cuanto a las licencias, ZFS es de código abierto y acaba de publicarse bajo la licencia CDDL, que no está disponible.legalmentecompatible con la licencia GPLv2 bajo la cual se publica el kernel de Linux.Detalles aquí. Esto no significa que esté en un estado de "limbo de licencias por un tiempo" ni significa que haya algunatécnicoincompatibilidad. Simplemente significa que la fuente principal del kernel de Linux no tiene los módulos y deben recuperarse de algún lugar comohttps://zfsonlinux.org.Tenga en cuenta que algunas distribuciones, como Debian, incluyen ZFS en su distribución.La instalación de ZFS en Debian/Ubuntu normalmente se puede realizar con un solo aptcomando.

En cuanto al rendimiento, con suficiente RAM, el rendimiento de ZFS para mí va desde cerca de ext4 hasta superar a ext4, dependiendo de la memoria, el espacio disponible en el grupo y la compresibilidad de los datos. En mi opinión, la mayor desventaja de ZFS es el uso de memoria: si tiene menos de 16 GiB de RAM para un servidor de producción, es posible que desee evitar ZFS. Ésta es una regla general demasiado simplificada; Hay mucha información en línea sobre los requisitos de memoria para ZFS. Personalmente ejecuto un grupo de 10 TB y un grupo de 800 GB junto con algunos grupos de respaldo en un sistema Linux de oficina en casa con 32 GB de RAM y el rendimiento es excelente. Este servidortambiénejecuta LXC y tiene múltiples servicios en ejecución.

Las funciones de ZFS van mucho más allá de la suma de verificación de datos y las capacidades de autorreparación; sus potentes instantáneas son mucho mejores que las instantáneas LVM y su compresión lz4 en línea puede mejorar el rendimiento al reducir las escrituras en el disco. Personalmente, logro un ahorro de 1,55 veces en el grupo de 10 TB (almacenando 9,76 GiB de datos en solo 6,3 GiB de espacio en disco)

En mi experiencia, el rendimiento de ZFS se degrada cuando el grupo alcanza el 75 % o el 80 % de uso. Mientras se mantenga por debajo de ese punto, el rendimiento debería ser más que suficiente para el uso general en el hogar y las PYMES.

En los casos en los que he visto que ZFS detecta y corrige datos incorrectos, la causa raíz no estaba clara, pero probablemente era un bloque de disco defectuoso. También tengo memoria ECC y uso un UPS, por lo que no creo que los datos estén dañados en la RAM. De hecho, necesita RAM ECC para beneficiarse de las sumas de comprobación ZFS. Sin embargo, he visto unos cuantos (~10-15) casos de bloques que no superaron las sumas de verificación en los últimos 6 años.Una ventaja importante de ZFS sobre un md RAID es que ZFS sabe qué archivos se ven afectados por un error de suma de comprobación.. Entonces, en los casos en los que un grupo de respaldo sin redundancia tenía un error de suma de verificación, ZFS me dijo elexactoarchivos que se vieron afectados, permitiéndome reemplazar esos archivos.

A pesar de que la licencia que utiliza ZFS no es compatible con el kernel de Linux, instalar los módulos es muy fácil (al menos en Debian) y, una vez familiarizado con el conjunto de herramientas, la administración es sencilla. A pesar de que muchas personas mencionan el temor a la pérdida total de datos con ZFS en Internet, tengonuncaPerdí datos desde que me mudé a ZFS, y la combinación de instantáneas de ZFS y sumas de verificación/redundancia de datos me ha salvado personalmente de experimentar pérdida de datos varias veces. Es una victoria clara y personalmente nunca volveré a una mdmatriz.

Respuesta4

Puedo agregar que ZFS es increíblemente robusto, principalmente gracias a sus orígenes (fue desarrollado por Sun Microsystems en 2001). La versión de código abierto actualmente disponible es una bifurcación de una de las últimas versiones de código abierto lanzadas por Sun Microsystems hace unos 10 años y que ha sido desarrollada aún más por la comunidad de código abierto después de que Oracle cerrara el código fuente ZFS después de adquirir Sun Microsystems.

Los propios Oracle también mantienen una versión de código cerrado de ZFS que se utiliza en sus sistemas de almacenamiento empresarial.

Sin embargo, ZFS tiene una pequeña curva de aprendizaje, ya que es bastante poderoso y hay muchas cosas que se pueden modificar. También es uno de los pocos sistemas de archivos de almacenamiento en los que he trabajado y cuyo mantenimiento es realmente sencillo. Tuve un caso en el que era necesario migrar un grupo de una configuración RAID5 a un RAID6 (o más correctamente de un RAID-Z1 a un RAID-Z2). Normalmente, una operación como esta significaría copiar todos los datos, reconfigurar el RAID y volver a copiar los datos. En ZFS, usted conecta su almacenamiento secundario y copia el grupo con un solo comando, reconfigura la matriz como desee. y copie el grupo nuevamente con otro comando.

Sin embargo, hay algunas trampas:

  1. Para obtener algún beneficio de ZFS, deberá dejar que ZFS maneje los discos por sí mismo. Por lo tanto, su controlador de unidad debe ser compatible con JBOD, para que ZFS vea los discos directamente. Todas las configuraciones RAID se manejan en ZFS, ya que utiliza los datos de paridad para la limpieza y otras tareas, no puede ocultarlos mediante un controlador RAID.
  2. Como otros han dicho, la memoria ECC esmuy recomendado. ZFS no lo requiere, pero espera que todo lo escrito en la RAM sea inmutable y no se corrompa. Entonces, si lo ejecuta en un sistema con RAM sin ECC y su memoria falla, ZFS podría corromper sus datos mientras limpia la matriz (limpiar significa que ZFS lee datos del grupo, calcula lo que debería haber leído de la paridad información guardada en otras unidades y corrige cualquier error que encuentre).
  3. Aunque ZFS es excelente para prevenir la pérdida de datos, su RAID-Z1 todavía sufre los mismos problemas que RAID5, también conocido como. que grandes conjuntos de unidades grandes (1TB+) pueden fallar completamente después de una falla de un solo disco al reconstruir el conjunto si la tasa URE de las unidades es demasiado alta, ya que simplemente leer todos los datos de paridad del resto de las unidades mientras se reconstruye matemáticamente casi garantiza un error de lectura irrecuperable debido al tamaño de las unidades. Ejecute RAID6/RAID-Z2 si no es un experto en sistemas operativos de almacenamiento y sabe lo que está haciendo.

Para principiantes y entornos domésticos, generalmente recomiendo FreeNAS, está muy bien mantenido y es fácil de configurar, lo cual es bueno para un principiante.

información relacionada