¿ZFS optimizado en viabilidad de entorno de baja RAM?

10

Actualmente estoy configurando un servidor de archivos y he llegado al punto de configurar realmente las unidades de datos. El sistema tiene 4 unidades (un disco del sistema operativo, 3 discos de datos). El disco del sistema operativo está formateado como ext4 y no se agregará al grupo ZFS (si elijo ejecutar ZFS). Mi principal preocupación es la integridad de los datos y el riesgo mínimo de pérdida de datos (el almacenamiento en caché de la unidad está deshabilitado en la BIOS). Para esto, ZFS parece ser el candidato perfecto, ya que tiene una versión estable para Linux (¿correcto?), Y admite duplicación de datos, agrupación y raidz, donde los discos duros no tienen que ser del mismo tamaño.

Pero éste es mi problema. El servidor solo tiene 2 GB de RAM y esto no se puede actualizar en un futuro próximo, y de manera realista solo 1.5 serán accesibles para ZFS después de instalar todos los demás servicios. Un máximo de aproximadamente 10 clientes lo usarán en cualquier momento (más como 4 en promedio). ¿Es esto demasiado bajo para ser considerado seguro?

Por lo que entiendo, ZFS puede bloquearse en situaciones de poca RAM y llevarse el grupo. Escuché opiniones contradictorias sobre si el intercambio ayudará a aliviar este problema (tengo una unidad dedicada de intercambio de 20 GB). ¿Alguien ha experimentado la pérdida de datos con ZFS con poca RAM y qué optimizaciones incluyó para evitar eso?

Teniendo en cuenta lo anterior, ¿sería posible seguir ejecutando ZFS, aunque reduzca el tamaño del ack y reduzca un poco o esto será demasiado arriesgado?

Especificaciones del sistema: sistema operativo de unidad de intercambio de 2 GB de RAM y 20 GB, Debian 7, instalación mínima, con FTP y XBMC, DNLA (para dar una idea del requisito de RAM). Se utiliza para el servidor de almacenamiento y la transmisión de música a otros dispositivos.

Thomas E
fuente
1
Estoy no un gurú de ZFS, pero sé bastante sobre los sistemas de ficheros en general, y sé un lugar que tendrá que mirar hacia fuera - a lo grande - para el consumo de memoria es la deduplicación de datos. No especifica qué tan grandes son sus discos, ni cuántos datos residirán en ellos; esto es enorme, ya que ZFS necesita mantener una tabla de búsqueda en memoria. No puedo hablar de otras preocupaciones, pero definitivamente mataría la deduplicación. Además, btrfs es bastante maduro para los datos respaldados, ahora; lo has considerado? Visite arstechnica.com/civis/viewtopic.php?f=16&t=1226135 para obtener algunas ideas (con las que, sin duda, algunos no estarán de acuerdo).
ravenpi
Oh sí, me lo perdí. El grupo será de 3.35tb (tanto discos como datos, ya que respaldará a 9 clientes diariamente, así que supongo que se llenará rápidamente, supongo que eso no significa duplicación al menos, ya que freebsd sugiere 5 gb de ram por cada espacio de almacenamiento de tb . gracias por señalar btrfs, yo no era consciente de que ahora era estable, supongo que voy a tener una buena mirada en ella.
Thomas E
"Estable" es algo que no podría apresurarme a llamarlo; uno duda en llamar a CUALQUIER sistema de archivos más o menos nuevo "estable". Pero está llegando allí. LWN (Linux Weekly News) acaba de hacer una serie al respecto; es bueno, échale un vistazo aquí: lwn.net/Articles/576276
ravenpi

Respuestas:

5

Usted declara la integridad de los datos y el riesgo mínimo de pérdida de datos como preocupaciones principales. Ejecutar ZFS con solo 2GiB de memoria es arriesgado y no recomendable. Demasiada poca RAM mata el rendimiento y fue la causa de numerosos grupos no montables en el pasado. El proyecto FreeNAS establece 8GiB de RAM como mínimo.

Además, dado que su preocupación es la pérdida de datos, querrá usar RAM ECC. Dado que su caja solo puede admitir 2GiB de RAM, supongo que es una caja realmente antigua que no sería una buena opción para ZFS.

Para responder tu pregunta:

[…] Y admite la duplicación de datos

En la práctica, olvídate de la deduplicación cuando no tengas al menos 32GiB, solo como regla general. Es posible que necesite significativamente más RAM, según el tamaño del grupo. En segundo lugar, haga los cálculos si la deduplicación + los costos de RAM son más baratos que un puñado de discos adicionales. La mayoría de las veces, más discos son la alternativa más barata.

¿Es esto demasiado bajo para ser considerado seguro?

Sí, es demasiado bajo.

Por lo que entiendo, ZFS puede bloquearse en situaciones de poca RAM y llevarse el grupo.

Eso es cierto y muchas personas han perdido sus piscinas debido a la poca RAM.

Escuché opiniones contradictorias sobre si el intercambio ayudará a aliviar este problema

Olvídate de swap, tu caja ZFS nunca debe usar swap.

EDITAR: si se siente aventurero y no le importa el riesgo de pánicos ocasionales o pérdida de datos, lea la guía de ajuste ZFS y adapte las configuraciones mencionadas. Aquí los ajustes de ejemplo para un sistema de 768MiB de memoria.

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

De lo contrario, invierta cien dólares en una tira de memoria y disfrute de un sistema estable y eficiente.

Marco
fuente
3
Veo. Solo para explicar que sí, tengo ecc ram y la máquina es hp proliant microserver gen7, que admite hasta 8 / 16gb ram, actualmente no es financieramente viable comprar más ram. Sabía que freenas recomienda 8 gb, sin embargo, la documentación de freebsd y Solaris sugiere 1 gb como mínimo, que es la razón de la pregunta. Supongo que, a la luz de esto, debería seguir con ext4 y duplicar manualmente con rsync y dd en discos sin conexión, probablemente la solución más segura.
Thomas E
¿Puede explicar por qué ZFS no debería usar SWAP?
CMCDragonkai
No hay ninguna razón para usar ZFS sin ECC es más peligroso que ejecutar el mismo hardware con otro sistema de archivos.
Alicia
55
¿Por qué la comunidad de ZFS siempre comenta con un esnobismo tan arrogante? ¡No todos los que quieren datos confiables tienen $ 100 solo para cumplir con algunos requisitos de diseño completamente ridículos ! Yo, por ejemplo, tengo un pequeño servidor doméstico ARM con 1 GB de RAM cableada y discos duros USB. Quiero que los datos estén a salvo de la descomposición de bits, ya que se detectan y corrigen, y tienen instantáneas con fines de copia de seguridad. No hay necesidad de velocidad. Y btrfs está simplemente roto por diseño. Entonces, ZFS sería sensato, si algún idiota no lo hubiera diseñado para implosionar de la depresión cada vez que tenga <128 exabytes de RAM.
Evi1M4chine
0

En los sistemas de alta presión de memoria (Linux) es realmente necesario actualizar la memoria. Todavía hay un error ( enlace ) en el que el intercambio bloquea la E / S (tarea bloqueada del kernel) que la deja inutilizable a menos que se reinicie. Creo que vm.swappiness = X no tiene efecto en zfs, por lo que limitar el arco a cierto número podría ayudar un poco.

satch_boogie
fuente