ZFS vs XFS

62

Estamos considerando construir un servidor de almacenamiento de ~ 16 TB. Por el momento, estamos considerando tanto ZFS como XFS como sistema de archivos. ¿Cuáles son las ventajas, desventajas? ¿Qué tenemos que buscar? ¿Hay una tercera mejor opción?

Tamas Czinege
fuente
77
Ni siquiera los compares. ZFS es un sistema de archivos moderno de nivel empresarial como jfs2, wafl. XFS era bueno hace 10 años, pero hoy es solo una edad de piedra fs.
disserman
De alguna manera, no puedes compararlos: XFS es un sistema de archivos; ZFS es un sistema de archivos y mucho más: reemplaza el sistema de archivos, el administrador de volúmenes (como LVM) y RAID además. Sin embargo, JFS ya no se mantiene si la memoria sirve: sin embargo, XFS está activo, mantenido y robusto. De cualquier manera, ZFS o XFS, no puedes equivocarte en mi opinión.
Mei
1
Todavía creo que esta pregunta es relevante, así que escribiré nuestra experiencia aquí: XFS es simple, lo instala, lo ejecuta, es rápido, funciona. (HW incursión a continuación). ZFS es guardar, tiene compresión, pero es mucho trabajo para afinarse para que funcione tan rápido como XFS. Por lo tanto, también depende de la situación que espere que se ejecute el servidor. (backend del clúster. almacenamiento de usuario, archivo, ...)
SvennD
También hay Hammer2 dragonflybsd.org/hammer
skan

Respuestas:

44

He encontrado que XFS es más adecuado para sistemas de archivos extremadamente grandes con posiblemente muchos archivos grandes. He tenido un sistema de archivos XFS 3.6TB en funcionamiento durante más de 2 años sin problemas. Definitivamente funciona mejor que ext3, etc. a ese tamaño (especialmente cuando se trata de muchos archivos grandes y muchas E / S).

Lo que obtienes con ZFS es la agrupación de dispositivos, la creación de bandas y otras características avanzadas integradas en el propio sistema de archivos. No puedo hablar con detalles (dejaré que otros comenten), pero por lo que puedo decir, querrás usar Solaris para obtener el mayor beneficio aquí. Tampoco me queda claro cuánto ayuda ZFS si ya está utilizando RAID de hardware (como yo).

Mark Renouf
fuente
33
La característica clave de ZFS que (por lo general) no obtiene en otros lugares es el CRC a nivel de bloque, que se supone que detecta (y con suerte previene) la corrupción silenciosa de datos. La mayoría de los sistemas de archivos asumen que si una escritura se completa con éxito, los datos se escribieron en el disco. Ese no es siempre el caso, especialmente si un sector está comenzando a ser "marginal". ZFS detecta esto comprobando el CRC contra la escritura resultante.
Avery Payne
3
Y sí, me gusta mucho XFS. :) El único problema que debes tener en cuenta es la propensión a cero sectores que fueron "malos" durante la recuperación de un diario. En algunos casos (raros), puede terminar con una pérdida de datos ... Encontré este documento con el término de búsqueda de Google "xfs ceros sectores al recuperarse" pages.cs.wisc.edu/~vshree/xfs.pdf
Avery Payne
3
Una de las cosas que me gustan en XFS es el programa de xfs_fsr"desfragmentación".
Cristian Ciupitu
1
La utilidad de los CRC de nivel de bloque ZFS es cuestionable. Los discos duros y las SSD utilizan el código ECC de Hamming para corregir errores de un solo bit e informar errores de dos bits. Si el ECC no puede corregir de forma transparente el error de lectura física, los datos se perderán de todos modos y se informará al sistema operativo de un error de lectura. Los CRC no corrigen errores. Esta característica es promovida como un beneficio importante de ZFS, pero la verdad es que es redundante y no tiene valor. En cuanto al error XFS zero-after-power-fail, que se corrigió hace mucho tiempo y hoy no es relevante.
Jody Lee Bruchon
@JodyLeeBruchon lo que escribió es incorrecto: si bien es cierto que los dispositivos de almacenamiento ya tienen un código de paridad adjunto a los datos, no significa que sean capaces de proteger los datos de extremo a extremo. Para lograr este objetivo sin un sistema de archivos de chechsumming, necesita a) una pila de almacenamiento SAS T10 / DIF / DIX ob) usar devicemapper dm-integridad .
shodanshok
75

ZFS le dará ventajas más allá de RAID de software. La estructura del comando está muy bien diseñada e intuitiva. También tiene compresión, instantáneas, clonación, envío / recepción del sistema de archivos y dispositivos de caché (esas unidades SSD nuevas y elegantes) para acelerar la indexación de metadatos.

Compresión:

#zfs set compression=on filesystem/home

Admite instantáneas simples de copiar y escribir que se pueden montar en vivo:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

Clonación del sistema de archivos:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

Sistema de archivos enviar / recibir:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Envío / recepción incremental:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Dispositivos de almacenamiento en caché:

# zpool add filesystem cache ssddev

Todo esto es solo la punta del iceberg. Recomiendo encarecidamente tener una instalación de Open Solaris y probar esto.

http://www.opensolaris.org/os/ TryOpenSolaris/

Editar : Esto es muy antiguo, Open Solaris ha sido descontinuado, la mejor manera de usar ZFS es probablemente en Linux o FreeBSD .


Divulgación completa: solía ser un arquitecto de almacenamiento de Sun, pero no he trabajado para ellos en más de un año, solo estoy entusiasmado con este producto.

Chris
fuente
Ese enlace no funcionó para mí con www. Usohttp://opensolaris.org/os/TryOpenSolaris/
agregado
De hecho, diría que la mejor apuesta para zfs sigue siendo FreeBSD. Ha sido parte del sistema durante bastantes años. Así que supongo que existe la menor posibilidad de sorpresas desagradables. Aunque solo son mis $ 0.02.
Fox
18

El uso de instantáneas lvm y xfs en sistemas de archivos en vivo es una receta para el desastre, especialmente cuando se utilizan sistemas de archivos muy grandes.

He estado ejecutando exclusivamente en LVM2 y xfs durante los últimos 6 años en mis servidores (en casa, incluso porque zfs-fuse es demasiado lento) ...

Sin embargo, ya no puedo contar los diferentes modos de falla que encontré al usar instantáneas. He dejado de usarlos por completo, es demasiado peligroso.

La única excepción que haré ahora es mi propia copia de seguridad personal del servidor de correo / servidor web, donde haré copias de seguridad durante la noche utilizando una instantánea efímera, que siempre es igual al tamaño de la fuente fs, y se elimina inmediatamente después.

Aspectos más importantes a tener en cuenta:

  1. Si tiene un sistema de archivos grande (ish) que tiene una instantánea, el rendimiento de escritura se degrada terriblemente
  2. Si tiene un sistema de archivos grande (ish) que tiene una instantánea, el tiempo de arranque se retrasará literalmente con decenas de minutos mientras el disco se agita y agita durante la importación del grupo de volúmenes. No se mostrarán mensajes. Este efecto es especialmente horrible si la raíz está en lvm2 (porque esperar a que el dispositivo raíz agote el tiempo de espera y el sistema no arranque)
  3. Si tiene una instantánea, es muy fácil quedarse sin espacio. Una vez que se queda sin espacio, la instantánea está dañada y no se puede reparar.
  4. Las instantáneas no se pueden deshacer / fusionar en este momento (consulte http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Esto significa que la única forma de restaurar los datos de una instantánea es copiarla (rsync?). PELIGRO PELIGRO: no desea hacer esto si la capacidad de la instantánea no es al menos del tamaño de la fuente fs; Si no lo hace, pronto golpeará la pared de ladrillo y terminará con la fuente fs y la instantánea corrompidas. (¡He estado allí!)
sehe
fuente
1
De hecho, justo hoy alguien confirmó que el vg con instantánea: no se puede iniciar linux todavía está actualizado: bugs.launchpad.net/lvm2/+bug/360237
sehe
Revisando este error, todavía piensan que los problemas abismales de arranque con instantáneas son "comportamiento normal para lvm": bugs.launchpad.net/lvm2/+bug/360237/comments/7 (el 2012-01-07)
sehe
1
Actualización: mismo estado. Solo que ahora han pasado 7 años más.
sehe
14

Un par de cosas adicionales para pensar.

  • Si una unidad muere en una matriz RAID de hardware, independientemente del sistema de archivos que se encuentre encima, todos los bloques del dispositivo deben reconstruirse. Incluso los que no tenían ningún dato. ZFS, por otro lado, es el administrador de volúmenes, el sistema de archivos, y gestiona la redundancia de datos y la creación de bandas. Por lo tanto, puede reconstruir de manera inteligente solo los bloques que contenían datos. Esto da como resultado tiempos de reconstrucción más rápidos que cuando el volumen está 100% lleno.

  • ZFS tiene depuración en segundo plano que asegura que sus datos permanezcan consistentes en el disco y repara cualquier problema que encuentre antes de que se pierda la información.

  • Los sistemas de archivos ZFS siempre están en un estado coherente, por lo que no hay necesidad de fsck.

  • ZFS también ofrece más flexibilidad y características con sus instantáneas y clones en comparación con las instantáneas ofrecidas por LVM.

Haber ejecutado grandes agrupaciones de almacenamiento para la producción de video de gran formato en una pila Linux, LVM, XFS. Mi experiencia ha sido que es fácil caer en la microgestión de su almacenamiento. Esto puede generar grandes cantidades de espacio asignado no utilizado y tiempo / problemas con la administración de sus volúmenes lógicos. Esto puede no ser un gran problema si tiene un administrador de almacenamiento a tiempo completo cuyo trabajo es micro-administrar el almacenamiento. Pero descubrí que el enfoque de almacenamiento en grupo de ZFS elimina estos problemas de administración.

3dinfluence
fuente
8

ZFS es absolutamente asombroso. Lo estoy usando como mi servidor de archivos doméstico para un servidor de archivos HD de 5 x 1 TB, y también lo estoy usando en producción con casi 32 TB de espacio en el disco duro. Es rápido, fácil de usar y contiene la mejor protección contra la corrupción de datos.

Estamos utilizando OpenSolaris en este servidor en particular porque queríamos tener acceso a las funciones más nuevas y porque proporcionaba el nuevo sistema de administración de paquetes y la forma de actualización.

X-Istence
fuente
7

¿Qué sistema operativo planea ejecutar? ¿O es esa otra parte de la consideración? Si está ejecutando Solaris, XFS ni siquiera es una opción que yo sepa. Si no está ejecutando Solaris, ¿cómo planea usar ZFS? El soporte es limitado en otras plataformas.

Si está hablando de un servidor Linux, me quedaría con Ext3 personalmente, aunque solo sea porque recibe la mayor cantidad de pruebas. zfs-fuse todavía es muy joven. Además, tuve problemas con XFS una vez, cuando un error causó daños en los datos después de una actualización del kernel. Las ventajas de XFS sobre Ext3 definitivamente no superaron los costos involucrados en la restauración de la máquina, que se encontraba en un centro de datos remoto.

Kjetil Limkjær
fuente
66
FreeBSD tiene un puerto nativo maduro de ZFS
Brian Gianforcaro
77
wiki.freebsd.org/ZFSKnownProblems Creo que su definición de maduro podría ser diferente a la mía :-) Quizás lo consideraría después de que se lance 8.0.
Kjetil Limkjær
99
ext3 con 16TB? No no no. No lo hagas. Llorarás. ZFS o XFS son los mejores sistemas de archivos que existen en mi opinión. Use ZFS si puede (no lo ejecute en Linux). Lo digo con mucha experiencia en grandes volúmenes en Linux y Solaris durante 5 años.
Thomas
3
FreeBSD 7.2 después de 20090601 ha representado la mayor parte del problema ZFSKnownProblems. Si está ejecutando la versión AMD64 del sistema operativo, ahora es estable. En 8.0, FreeBSD ha marcado a ZFS como lo suficientemente estable para Producción.
Walter
3
ZFS en Linux ya está disponible ( zfsonlinux.org )
James Moore
7

No creo que debas enfocarte en el rendimiento. ¿Sus datos están seguros con XFS, ext4, etc.? No. Lea estas tesis doctorales y trabajos de investigación:

XFS no es seguro contra la corrupción de datos: pages.cs.wisc.edu/~vshree/xfs.pdf

Y tampoco lo es ext3, JFS, ReiserFS, etc.: zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent "Encontré la fascinante tesis doctoral de Vijayan Prabhakaran, IRON File Systems, que analiza cómo cinco sistemas de archivos de registro de diario de productos básicos (NTFS, ext3, ReiserFS, JFS y XFS) manejan los problemas de almacenamiento.

En pocas palabras, descubrió que todos los sistemas de archivos tienen

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

Pero ZFS protege con éxito sus datos. Aquí hay un trabajo de investigación sobre esto: zdnet.com/blog/storage/zfs-data-integrity-tested/811


fuente
5

No es una respuesta orientada al FS, lo siento, pero tenga en cuenta que varios controladores de disco no manejarán> 2TB LUNS / discos lógicos; esto puede limitar la forma en que organiza su almacenamiento un poco. Solo quería que estuvieras al tanto para que puedas verificar tu sistema de extremo a extremo para asegurarte de que lidie con 16 TB en todo momento.

Chopper3
fuente
1

Depende de las características que desee ..., las dos opciones razonables son xfs y zfs como ha dicho, el código xfs está bastante bien probado. Lo usé por primera vez hace 8 años bajo IRIX

Es posible obtener instantáneas de xfs (usando lvm y xfs_freeze)

Es posible tener un dispositivo de registro separado, por ejemplo, SSD

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

Las xfs grandes tradicionalmente necesitan mucha memoria para verificar

El problema con la aparición de ceros era una función de "seguridad", que creo que desapareció hace un tiempo.

James
fuente
1

Además de lo que ya se mencionó, desde el punto de vista del rendimiento, xfs en la incursión de la base MD funciona mejor que zfs en los medios de transmisión. He usado exactamente el mismo hardware durante media década con xfs y casi la misma cantidad de tiempo con zfs en mi servidor de medios. En el Intel Atom 330 con xfs nunca experimento más, en zfs en escenas complejas el mismo hardware no puede mantener el ritmo y comienza a soltar cuadros.

usuario718960
fuente
0

En lugar de construir uno propio, una alternativa es el Sun 7410, también conocido como Toro. Tiene un software muy útil que viene incluido con la solución.

Jauder Ho
fuente
0

Bueno chicos, no nos olvidemos de la última incorporación a zfs: deduplicación. Y hablemos sobre el compartir iscsi, nfs o smb sobre la marcha. Como ya han dicho otros, las exportaciones de sistemas de archivos zfs, instantáneas, suma de verificación de bloque raidz (= raid5), ancho de banda dinámico, gestión de caché y muchos otros. Yo voto por zfs.

PiL
fuente