Comprobación de sanidad en la configuración del servidor de 40 TB

21

Tengo 40 años en informática, pero nunca he tenido que construir un servidor como este, por lo que esta podría ser una pregunta n00b.

Tengo un cliente que ofrecerá archivos de música de ultra alta definición para descargar. En este caso, eso significa que FLAC-comprimido 24 / 192Khz = ~ 10GB / album. (No, no quiero discutir la conveniencia del producto, solo la configuración del servidor). El catálogo tendrá unos 3,000 álbumes, con versiones de ultra alta y baja definición (para sus iPod, supongo), dando 35-40 TB o más de datos primarios.

Dado que este es un producto muy especializado, el tamaño del mercado es relativamente pequeño (piense: las personas que gastan más de $ 20,000 en sus sistemas de audio), lo que significa que la mayoría de las veces el servidor estará 100% inactivo (o cerca de él). Tengo lo que parece una buena oferta de colocación de ColocationAmerica con una conexión de 1 Gbps y un ancho de banda de aproximadamente $ 20 / TB, por lo que ahora solo tengo que construir una caja para entregar los productos.

El caso de uso de acceso a datos es de escritura única / lectura múltiple, por lo que estoy pensando en usar el software RAID 1 para pares de unidades. Esto me permitiría ( creo ) reconfigurar las unidades de repuesto para las fallidas sobre la marcha, y así poder comenzar la reconstrucción de la segunda unidad antes de que algunos administradores de sistemas noten la luz roja en el sistema (cambian gratis). Sería genial si pudiera hacer que la mayoría de las unidades se apaguen / giren si no son necesarias, lo que será la mayor parte del tiempo para la mayoría de las unidades.

No necesito mucho en cuanto a la potencia de cómputo (esto es solo empujar objetos gordos por el tubo) y, por lo tanto, la CPU / placa base puede ser bastante modesta siempre que pueda admitir este número de unidades.

Actualmente estoy considerando la siguiente configuración:

Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server

Entonces, ¿voy en la dirección correcta, o es esta una forma completamente n00b / dinosaurio de abordar el problema?

Actualice para aclarar un par de puntos:

  1. No tengo experiencia con ZFS, ya que el último producto de Sun que tuve fue a finales de los 80. Haré un poco de RTFMing para ver si se siente bien.
  2. Realmente no necesito que el sistema de archivos haga nada espectacular, ya que los nombres de los archivos serán simples UUID y los objetos se equilibrarán en las unidades (algo así como un gran sistema de almacenamiento en caché). Así que realmente estaba pensando en estos como 40 sistemas de archivos separados, y eso hizo que RAID 1 pareciera correcto (pero admito la ignorancia aquí).
  3. Debido a que nuestras expectativas actuales son que es poco probable que descarguemos más de una docena de archivos a la vez, y en la mayoría de los casos habrá exactamente una persona descargando cualquier archivo dado, no sé si necesitamos toneladas de memoria para tampones. Quizás 8GB sea un poco liviano, pero no creo que 128GB haga nada más que consumir energía.
  4. Hay 2 máquinas separadas que no se mencionan aquí: su tienda web actual y un Download Master casi completamente desacoplado que maneja toda la autenticación, la administración de la ingesta de nuevos productos, la aplicación de políticas (después de todo, este es el patio de juegos de la RIAA), la creación efímera de URL (y posiblemente entregar descargas a más de una de estas bestias si el tráfico excede nuestras expectativas), seguimiento de uso y generación de informes. Eso significa que esta máquina casi podría construirse utilizando jerbos en Quaaludes.

ZFS? ¿Dónde está el beneficio?

OK, estoy abriéndome camino a través de múltiples guías de ZFS, preguntas frecuentes, etc. Perdóname por sonar estúpido, pero realmente estoy tratando de entender el beneficio de usar ZFS sobre mi noción antediluviana de pares N RAID1. En esta página de Mejores Prácticas (desde 2006), incluso sugieren no hacer un ZFS de 48 dispositivos, sino 24 espejos de 2 dispositivos, suena como lo que estaba hablando de hacer. Otras páginas mencionan la cantidad de dispositivos a los que se debe acceder para entregar 1 (un) bloque ZFS. Además, recuerde que con 10 GB por objeto y un 80% de utilización del disco, estoy almacenando un total de 320 archivos por unidad de 4 TB . Mi tiempo de reconstrucción con N RAID 1, para cualquier falla de la unidad, es una escritura de 4TB de un dispositivo a otro.¿Cómo ZFS mejora esto?

Admito que soy un dinosaurio, pero el disco es barato, RAID 1, entiendo, mis necesidades de administración de archivos son triviales, y ZFS en Linux (mi sistema operativo preferido) todavía es un poco joven. Tal vez soy demasiado conservador, pero cuando estoy mirando un sistema de producción, así es como ruedo.

Les agradezco a todos por sus comentarios que me hicieron pensar en esto. Todavía no estoy completamente decidido y es posible que deba volver y hacer más preguntas sobre n00b.

Peter Rowell
fuente
66
Para esta cantidad de almacenamiento, ni siquiera consideraría usar menos de 128 gb de ram. Además, considere utilizar el sistema de archivos zfs.
EEAA
3
Los pares de discos en RAID1 suenan ... horrible. Personalmente, especificaría un servidor / estante de almacenamiento, lo llenaría de unidades SAS cercanas a la línea, lo pondría todo en RAID 10 o 6, agregaría uno o dos de repuesto y lo llamaría un día.
HopelessN00b
3
@etherfish: la RAM no es necesaria para fines computacionales, pero definitivamente es necesaria para la memoria caché del sistema de archivos. El rendimiento con solo 8 GB sería horrible. Aún más si uso ZFS, que es realmente el único fs que consideraría seriamente en este tamaño. ZFS necesita mucha RAM para funcionar bien. Afortunadamente, la RAM es relativamente barata.
EEAA
1
El rendimiento sería demasiado suficiente para saturar 1 Gbps. El rendimiento solo se vería afectado en el sistema de archivos si tuviera que volver a leer los bloques del disco que habían sido eliminados de la memoria caché del búfer y con poca o ninguna expectativa de localidad temporal, el punto de rendimientos decrecientes para RAM adicional se alcanza mucho antes de 128 GB. Dado el sistema de archivos basado en la extensión y los archivos grandes, incluso los metadatos del sistema de archivos ocuparán una cantidad insignificante de RAM. Incluso espera que el uso sea lo suficientemente escaso como para que las unidades puedan reproducirse. '73s.
etherfish
55
Solo una nota sobre cómo girar los discos: ¡NO LO HAGA! (Haga clic en mí para averiguar por qué) Spin-Up / Spin-Down desgasta mucho las partes móviles de un disco duro tradicional y causará fallas prematuras. El dinero que ahorre en energía se perderá reemplazando los discos fallidos.
voretaq7

Respuestas:

12

Según la descripción de su problema, su problema no es tanto el servidor como el almacenamiento.
Desea un sistema de archivos confiable y robusto como ZFS que esté diseñado para manejar bien una gran capacidad de almacenamiento y que tenga capacidades de administración integradas para facilitar la administración de ese extremo del sistema.

Como se mencionó en los comentarios, iría con ZFS para el grupo de almacenamiento (probablemente en FreeBSD porque estoy más familiarizado con ese sistema operativo y porque tiene un historial largo y comprobado de rendimiento sólido con ZFS: mi segunda opción El sistema operativo sería Illumos , nuevamente debido al soporte ZFS bien probado).


En cuanto a la entrega de los archivos, estoy de acuerdo: no necesita mucho en términos de hardware para enviar los datos al puerto de red. Su controlador principal para CPU / RAM será las necesidades del sistema de archivos (ZFS).
La regla general es que ZFS necesita 1 GB de RAM, más 1 GB por cada 10 TB de espacio en disco que administra (por lo que para 40 TB necesitaría 5 GB de RAM para ZFS), aunque la relación no es bastante lineal (hay un montón de buenos libros / tutoriales / documentos sobre ZFS que pueden ayudarlo a elaborar una estimación para su entorno).
Tenga en cuenta que agregar campanas y silbatos ZFS como la deduplicación requerirá más RAM.

Obviamente, redondee los requisitos de RAM hacia arriba en lugar de hacia abajo y no sea tacaño: si su matemática dice que necesita 5 GB de RAM, no cargue el servidor con 8 GB, aumente hasta 16 GB.

Luego puede ejecutar su servidor directamente en la caja de almacenamiento (lo que significa que necesitará aún más RAM en esa caja para admitir los procesos del servidor), o puede montar el almacenamiento de forma remota en servidores "front-end" para En realidad atender las solicitudes de los clientes.
(El primero es más barato inicialmente, el último escala mejor a largo plazo).


Más allá de este consejo, las mejores sugerencias que puedo darle ya están bien cubiertas en nuestra serie de preguntas de Planificación de capacidad : básicamente "Prueba de carga , Prueba de carga , Prueba de carga ".

voretaq7
fuente
Creo que tus matemáticas están apagadas. Según su fórmula, necesitaría 41G.
EEAA
@EEAA De hecho, bajé un cero :-) Y tenga en cuenta que esa es una cantidad mínima de RAM. ZFS estaría muy feliz de usar 41G y empaparlo todo con caché :-)
voretaq7
@ voretaq7: Gracias por el enlace a la planificación de capacidad; es el siguiente en mi lista después de leer sobre ZFS.
Peter Rowell
Si opta
sciurus
1
@PeterRowell Las principales ventajas de ZFS son que está diseñado para manejar sistemas de archivos a escala de varios terabytes: se forjó en el crisol de Sun Microsystems y se construyó como un sistema de archivos del siglo XXI para tamaños de datos del siglo XXI (del tipo del que está hablando) . Una pregunta sobre los beneficios / inconvenientes de ZFS versus <algún otro sistema de archivos> sería un buen tema para otra pregunta por separado, pero descartaré esta pepita: no hay tal cosa como esperar fscksi está usando ZFS y la máquina se bloquea Tenía fscksistemas de archivos de terabytes. Es bastante terrible
voretaq7
2

Yo uso ZFS para un servidor multi-TB y ha sido muy sólido. Comencé con OpenIndiana y ahora me he mudado a FreeNAS, ya que hace lo que necesito que haga.

Recomendaría usar una tarjeta LSI HBA (9211-8i es una buena tarjeta base) con expansores SAS (los casos SuperMicro se pueden pedir con expansores SAS integrales basados ​​en conjuntos de chips LSI). El firmware LSI es compatible con FreeNAS y FreeBSD. Verifique las versiones apropiadas (V16 es bueno en FreeBSD V9.x).

Dada la escritura una vez leída mucha naturaleza de su sistema, usaría una topología ZFS Z2 (evite RAID-5 y Z1 con unidades de este tamaño). Dado que está utilizando discos de 4TB, el tiempo de reconstrucción (resistencia) para una gran matriz vDev grande sería mucho tiempo si el grupo está lleno. Para evitar largos tiempos de reconstrucción, organice los vDevs en grupos de 6 o 10 para crear el grupo (recomendaciones de la documentación de FreeNAS). Un grupo compuesto por tres vDevs de 6 unidades (se supone que las unidades de 4TB) tendrían una capacidad utilizable de ~ 48TB y ofrece un buen nivel de tolerancia a fallas (recuerde que aún necesita hacer una copia de seguridad ya que RAID no reemplaza las copias de seguridad :)).

Para acelerar las cosas para los archivos de acceso común, puede agregar un par de SSD para L2ARC (probablemente no sea necesario para su aplicación, pero son bastante baratos para SSD de 120 GB).

Y como se dijo, use mucha RAM. 64 GB no es demasiado caro dado el otro hardware en el sistema. Desafortunadamente, el XEON más pequeño no puede usar más de 32 GB. Podría probarlo, pero más RAM sería mejor de acuerdo con la literatura de ZFS (utilizo el XEON que menciona con 32 GB de RAM y una matriz Z2 de 24 TB de capacidad y funciona bien).

Otra ventaja de ZFS es que puede configurar instantáneas periódicas. De esta manera, puede restaurar versiones anteriores fácilmente y las instantáneas ahorran mucho espacio. Además, puede replicar cualquier instantánea en otro conjunto de datos (local o remoto) y esto se puede hacer a través de SSH por seguridad.

Realmente me gusta la fiabilidad del sistema ZFS. También me gusta el hecho de que es hardware INDEPENDIENTE !! Cualquier sistema que pueda ver las unidades puede importar el grupo. No hay dependencias de firmware, etc., que puedan ocurrir con la incursión de hardware (no es un problema con mejores tarjetas, pero son más caras que las tarjetas HBA y necesitan controladores, etc.).

Dado que esta publicación es anterior, es probable que tenga una solución. Si es así, ¿te importaría decirnos qué construiste?

Aclamaciones,

Scharbag
fuente