it-swarm-es.com

ZFS vs XFS

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?

64
Tamas Czinege

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).

45
Mark Renouf

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/[email protected]
# cd filesystem/home/user/.zfs/snapshot/tuesday

Clonación del sistema de archivos:

# zfs clone filesystem/home/[email protected] filesystem/home/user2

Sistema de archivos enviar/recibir:

# zfs send filesystem/home/[email protected] | ssh otherserver "zfs receive -v filesystem/home/user"

Envío/recepción incremental:

# zfs send -i filesystem/home/[email protected] | 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.

75
Chris

usar instantáneas de lvm y xfs en sistemas de archivos en vivo es una receta para el desastre especialmente cuando se usan 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 se agote 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: usted no quiere 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í!)
18
sehe

Un par de cosas adicionales para pensar.

  • Si una unidad muere en una matriz RAID de hardware, independientemente del sistema de archivos que esté 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 se mantengan consistentes en el disco y repara cualquier problema que encuentre antes de que resulte en la pérdida de datos.

  • 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.

14
3dinfluence

ZFS es absolutamente asombroso. Lo estoy usando como mi servidor de archivos de inicio para un 5 x 1 TB servidor de archivos HD, y también lo estoy usando en producción con casi 32 TB de disco duro espacio en el disco. 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.

8
X-Istence

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. 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

7
Miklo

¿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.

7
Kjetil Limkjær

No es una respuesta orientada a FS, lo siento, pero tenga en cuenta que varios controladores de disco no se ocuparán de> 2TB LUNS/discos lógicos; esto puede limitar bastante la forma en que organiza su almacenamiento. 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.

5
Chopper3

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.

1
James

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 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.

1
user718960

Bueno chicos, no nos olvidemos de la última incorporación a zfs: deduplicación. Y hablemos de 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.

0
PiL

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.

0
Jauder Ho