Me gustaría construir un servidor de almacenamiento (basado en GNU / Linux o FreeBSD) que estará encendido todo el tiempo. Para evitar la corrupción de datos (lo cual es poco probable que ocurra ya que nunca tuve un problema así, pero es mejor prevenir que curar) Me gustaría usar la RAM ECC.
Aunque no es tan bueno como EDD (?) (Que es mucho más caro) y proporciona protección adicional. ECC parece corregir solo errores de un solo bit.
La RAM registrada en ECC solo se puede utilizar con placas de estación de trabajo / servidor como Intel Xeon o AMD interlagos / magny-cours / valencia g34 o c32.
El ECC sin búfer se puede usar en Intel Xeon lga1155 o AMD AM3 + en las placas Asus.
La segunda opción será mucho más barata en el lado del procesador y la placa base, y dudo que necesite más de 16 GB de RAM (4x4 GB ECC sin búfer son las unidades más grandes y asequibles).
La duda que tengo es (principalmente con respecto a la placa asus am3 +): ¿la RAM sin búfer ECC es tan buena como la RAM registrada con ECC (desde el punto de vista de la seguridad y la fiabilidad)? ¿O es una peor elección? No me importa mucho la velocidad.
Más detalles: el servidor utilizará una carcasa de servidor con unidades de hasta 24 x 3.5 '' y debería consumir la menor cantidad posible. LGA1155 parece ser en ese sentido una mejor apuesta (TDP ~ 20-95W) en comparación con los demás (> 80W) por el doble del precio. Cualquier sugerencia es bienvenida. Digamos menos de 120W en inactivo (~ con 10 discos duros de 24).
fuente
Respuestas:
Bueno, si usa solo 16 GB de RAM, que no es un rango de RAM del servidor, estará bien con cualquier RAM / sys de escritorio estándar.
Si es solo un servidor de almacenamiento, ni siquiera necesitará tanto rendimiento de CPU.
Como dijiste, ve con Sandy bridge, te dará un sistema genial, eficiente y confiable.
Hablando de rangos de RAM de 16 GB, no tiene que preocuparse por las cosas de ECC.
fuente
Correcto. Corregir más errores requeriría más bits. Tal como están las cosas, ya usa 10 bits para almacenar 8 bits de información, 'desperdiciando' el 20% de los chips de memoria para permitir una corrección de un solo bit y hasta dos bits de detección de errores.
Funciona de la siguiente manera. Imagina una
0
o una1
. Si leo cualquiera de los dos, solo tengo que esperar leer lo correcto. Si un 0 se volcó a un 1 por alguna radiación cósmica o por un chip malo, entonces nunca lo sabré.En el pasado tratamos de resolver eso con paridad. Parity estaba agregando un noveno bit por cada 8 bits almacenados. Verificamos cuántos ceros y cuántos 1 había en el byte. El noveno se estableció para que sea un número par. (para una paridad uniforme) Si alguna vez leyó un byte y el número estaba equivocado, entonces sabía que algo estaba mal. Sin embargo, no sabes qué parte estuvo mal.
ECC se expandió en eso. Utiliza 10 bits y un algoritmo complejo para descubrir cuándo se volcó un solo bit. También sabe cuál era el valor original. Una manera muy simple de explicar cómo lo hace sería esto:
Reemplace todos los
0
s con000
. Reemplace todos los1
s con111
.Ahora puedes leer seis combinaciones:
000
001
010
100
101
111
Nunca estamos 100% seguros de lo que se almacenó originalmente. Si leemos
000
entonces eso podría haber sido justo000
lo que esperábamos, o los tres bits podrían haber cambiado. Esto último es muy improbable. Los bits no cambian aleatoriamente, aunque sucede. Digamos que sucede una de cada diez veces para algunos cálculos fáciles (la realidad es mucho menos). Eso funciona con las siguientes posibilidades de leer el valor correcto:000
-> Cualquiera000
(99.9% seguro), o un triple flip (1/1000 de probabilidad)001
-> Sabemos que algo salió mal. Pero fue000
y un bit volcó (posibilidad 1:10), o fue111
y dos bits voltearon (una probabilidad 1: 100). Así que tratémoslo como si leyeramos000
pero registramos el error.010
-> Igual que el anterior.100
-> Igual que el anterior.011
-> Igual que el anterior, pero suponiendo que fuera un111
101
-> Igual que el anterior, pero suponiendo que fuera un111
110
-> Igual que el anterior, pero suponiendo que fuera un111
111
-> O111
(99.9% seguro), o un triple flip (1/1000 de probabilidad)111
-> O000
(99.9% seguro), o un triple flip (1/1000 de probabilidad)Los ECC hacen trucos similares pero lo hacen de manera más eficiente. Para 8 bits (un byte) solo usan 10 bits para detectar y corregir.
Ya mencioné cuál era la parte de ECC, ahora la parte registrada frente a la parte sin búfer.
En las CPU modernas, el controlador de memoria está en el dado de la CPU, comenzando hace mucho tiempo para los chips AMD Opteron y con la serie Core i para Intel. La mayoría de las CPU de escritorio se comunican directamente con los zócalos DIMM que sostienen la RAM. Funciona y no se necesita lógica adicional. Es barato de construir, y la velocidad es alta porque no hay demoras desde el controlador de memoria a la RAM.
Pero un controlador de memoria solo puede conducir una corriente limitada a altas velocidades. Esto significa que hay un límite en la cantidad de sockets de memoria que se pueden agregar a una placa base. (Y para hacerlo más complejo, cuánto pueden usar los DIMM, lo que lleva a rangos de memoria. Lo omitiré ya que esto ya es largo).
En las placas de servidor, a menudo desea utilizar más memoria que un sistema de escritorio. Por lo tanto, se agrega un búfer de "registro" a la memoria. Las lecturas de los chips en el DIMM se copian primero en este búfer. Un ciclo de reloj más tarde, este búfer se conecta al controlador de memoria para transferir los datos.
Este búfer / registro retrasa las cosas, haciendo que la memoria sea más lenta. Eso no es deseable y, por lo tanto, solo se usa / necesita en placas que tienen muchos bancos de memoria. La mayoría de las placas de consumo no necesitan esto, y la mayoría de las CPU de consumo no lo admiten.
La RAM sin búfer conectada directamente frente a la RAM registrada / con búfer no es un caso en el que uno sea mejor o peor que el otro. Simplemente tienen diferentes compensaciones en términos de cuántas ranuras de memoria puede tener. La RAM registrada permite más RAM a costa de cierta velocidad (y posiblemente gasto). En la mayoría de los casos donde necesita tanta memoria como sea posible, esa memoria adicional compensa con creces la RAM que se ejecuta a una velocidad ligeramente más lenta.
Desde el punto de vista de la seguridad y la estabilidad, ECC sin búfer y ECC registrado son lo mismo.
24 unidades consumirán mucha energía. Cuánto depende de las unidades. Mi unidad SAS de 140 GB y 15 K RPM está consumiendo solo 10 vatios en reposo, igual que el disco SATA 7k2 de 1 TB. En uso ambos dibujan más.
Multiplique eso por 24. 24x10 vatios en inactivo significa 240 vatios simplemente manteniendo los discos girando, superando la resistencia del aire. Doble ish para uso.
Intel es mejor con CPU de baja potencia, al momento de escribir y para las CPU que mencionó.
Si optas por FreeBSD, mira detenidamente a ZFS. Puede ser genial Muchas de sus funciones más avanzadas (por ejemplo, deduplicación y / o compresión) utilizan una gran potencia de la CPU y necesitan mucha memoria. ZFS para uso básico con ZRAID funcionará bien en ambos conjuntos de CPU que mencionó y con 16 GB, pero si activa funciones como la deduplicación, debe buscar cuidadosamente la memoria recomendada necesaria para la capacidad de su disco; Se recomiendan hasta 5 GB por TB de almacenamientoAlgunas guías .
Dos cosas mas:
fuente
Dos cuestiones separadas.
ECC Vs no ECC
Vs registrados sin búfer:
fuente