Memoria no ECC con ZFS: ¿una idea estúpida?

16

Tengo un nuevo servidor y planeo actualizar los miserables 2 GB de memoria a un máximo de 16 GB. (En teoría, 8 GB es el límite, pero empíricamente se ha demostrado que 16 GB funcionan). Algunas guías aconsejan que la memoria ECC no es tan importante, pero no estoy tan seguro de creerlo.

Instalé FreeNAS y planeo agregar volúmenes ZFS tan pronto como lleguen mis nuevos discos duros. ¿Sería estúpido escatimar y obtener memoria no ECC para un NAS basado en ZFS? Si es necesario, entonces morderé la bala, pero si es solo paranoia, entonces probablemente la omita.

¿Hay alguna razón por la que ZFS o FeeeNAS específicamente requieran memoria ECC, o sufran especialmente cuando se ejecuta en un sistema que usa memoria no ECC?

iconoclasta
fuente
11
En términos generales, para cualquier tipo de aplicación de producción / servidor que desee pagar por la RAM ECC. Las guías que sugieren que la memoria ECC "no es tan importante" son sospechosas en el mejor de los casos: me atrevería a decir que están escritas por alguien que nunca ha tenido un error de un solo bit en un sistema de producción.
voretaq7
1
¿Qué estarías haciendo con un microservidor que necesita 16 GB de RAM?
tombull89
Para empezar, ZFS necesita mucha RAM y planeo instalar ESXi y ejecutar FreeNas además de eso. De esta manera, cuando necesito algún otro servidor, simplemente creo una nueva VM, evitando una gran cantidad de cajas y cables. (Si hay alguna solución de automatización del hogar que no apesta como X-10, tengo una caja para ello. Si quiero usar Git Lab para repositorios privados, tengo una caja para eso. Etc.)
iconoclast
2
Creo que si eliminó el contexto sobre su equipo de mini-torre que podría ser un poco loco en la producción, la cuestión de si usar o no la memoria ECC para una instalación de ZFS es realmente la parte importante.
Kent Fredric
1
Matt Ahrens, quien cofundó ZFS en 2001, dice :There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem.
Janus Troelsen

Respuestas:

7

Yo diría que ejecutar FreeNAS con RAM no ECC es una idea estúpida, como ejecutarlo como un huésped virtualizado, cuando los datos almacenados en el volumen ZFS son importantes.

Joshua Paetzel, uno de los desarrolladores de FreeNAS, tiene una buena reseña sobre este tema: http://www.freenas.org/whats-new/2015/02/a-complete-guide-to-freenas-hardware-design -parte-i-propósito-y-mejores-prácticas.html .

TL; DR

ZFS hace algo que ningún otro sistema de archivos tendrá disponible para usted: comprueba su información y suma los metadatos utilizados por ZFS, y suma las sumas de comprobación. Si sus datos están dañados en la memoria antes de ser escritos, ZFS escribirá felizmente (y sumará) los datos dañados. Además, ZFS no tiene un comprobador de coherencia premontado o una herramienta que pueda reparar el daño del sistema de archivos. [...] Si un módulo de memoria no ECC se vuelve loco, puede causar daños irreparables a su grupo de ZFS que puede causar la pérdida completa del almacenamiento.

Ronald
fuente
Gracias. Estoy convencido. Esto es exactamente lo que necesitaba saber.
iconoclasta
@iconoclast Espero que no hayas esperado 2 años por esta respuesta.
ewwhite
13

ZFS solo protege su inversión en los datos del disco. Si el servidor debe estar en producción, entonces desea el mayor tiempo de actividad posible y ECC lo ayuda al permitir que el servidor tolere un error de UN BIT en la memoria defectuosa. Esto puede darle tiempo para programar y reemplazar la memoria defectuosa sin pánico.

mdpc
fuente
@iconoclast Depende de qué bit se voltee. Si se trata de datos cifrados, o la clave de cifrado, entonces acaba de perder todo ...
Michael Hampton
1
@MichaelHampton: en otras palabras, cifrar los datos en mi servidor en realidad aumenta las posibilidades de que se pierdan debido a un fallo de memoria.
iconoclasta
2
@iconoclast Encryption no sustituye a las copias de seguridad. Aunque si encriptas tus discos, es casi seguro que también necesites encriptar tus copias de seguridad.
Michael Hampton
3
@ewwhite Tener una sola fuente de alimentación es un problema de disponibilidad. La RAM no ECC podría afectar tanto la disponibilidad como la integridad . No es difícil imaginar escenarios en los que la integridad sea más importante que la disponibilidad.
Skyhawk
2
Como señalé anteriormente. Este servidor viene con RAM ECC. Todo este argumento es tonto porque no hay razón para usar algo más que los kits de RAM bendecidos por el fabricante .
ewwhite
12

La RAM ECC es algo bueno, pero veamos el contexto ...

Para su uso previsto, un ProLiant Microserver es un buen servidor pequeño de factor de forma y bajo impacto. Carece de algunos de los atributos comúnmente asociados con los sistemas de calidad de producción (solo cuatro bahías de unidades, fuente de alimentación única, CPU más débil). Por lo tanto, creo que se encontrará con problemas asociados con esas deficiencias mucho antes que los efectos de no tener RAM de corrección de errores. Las guías que ha leído son correctas ... ECC RAM no va a ser tan importante en ese sistema en particular ...

Esto no es válido para los sistemas de alta calidad de producción.

Agregaré: El microservidor se especifica con ECC RAM . ¿Por qué no lo usarías?

ewwhite
fuente
1
Supongo que por "calidad de producción" te refieres a calidad de empresa ? Lo tendré en producción (no es para QA, UAT o desarrollo), solo en una escala muy pequeña. Pero los datos serán reales , no datos basura generados para el desarrollo o clonados desde un servidor de producción. Serán datos de producción reales . (Por cierto, ¡gracias por la respuesta muy útil para ayudar a poner las cosas en contexto!)
iconoclast
1
@iconoclast no, la calidad de producción sigue siendo calidad de producción. La fuente de alimentación única no es adecuada para ningún tipo de servidor que sea importante mantener, a menos que desee comprar una fuente de alimentación de repuesto para guardar, lo que sería una estupidez, ya que podría conectar esa fuente de alimentación de repuesto y tener la doble fuente de alimentación de bla bla bla. Mantenerse a salvo no es "empresa"
pauska
3
@iconoclast Las personas generalmente piensan en un servidor de producción como 24/7 y altamente disponible. Este último es ciertamente una escala de costo / beneficio que va desde simplemente tener dos unidades de suministro de energía hasta redundancia de grado de centro de datos. Sin embargo, su configuración no tiene ninguna de estas cosas
Dan
1
Esta charla de PSU es basura, con todo respeto. Mi red está anclada en dos servidores que son compilación personalizada. DNS, DHCP, Active Directory. Ejecutando una placa Micro-ATX en una caja correspondiente, 8 discos SAS + 2 SSD, controlador RAID, PSU SIMPLE. ¿Llamarías eso no HA? Bueno, hágalo: todavía tengo un HPC y una cuadrícula de virtualización colgando de eso como puntos de anclaje (es decir, uno de ellos DEBE estar activado).
TomTom
2
¡Algunas compañías tienen servidores que apagan cuando vuelven a casa al final del día! No haría eso en mi red doméstica, pero algunas empresas realmente no parecen preocuparse / eso / mucho por la disponibilidad de recursos internos.
Kent Fredric