15 votos

Elegir una tecnología SAN para 100 servidores web VM

El problema

Tenemos un problema con el rendimiento en una plataforma existente, así que me dirijo a la mente de la colmena para una segunda opinión sobre esto. El problema de rendimiento hasta ahora se relaciona con IOPS más que con el rendimiento.

El escenario

Un centro de la hoja de 16 huéspedes, cada uno con 64 GB de RAM. (Es un Dell M1000e con M610s, pero eso probablemente no es relevante) 500 máquinas virtuales, todos los servidores web (o tecnologías web asociadas como MySQL, balanceadores de carga, etc.), alrededor del 90% son Linux y el resto Windows. El hipervisor es VMWare vSphere. Necesitamos proveer un host HA, así que el almacenamiento local está fuera. Como tal, los hosts sólo tienen una tarjeta SD para boot.

Un poco de pensamiento de fondo

En este momento tenemos hasta 6 hosts (el centro blade estará a plena capacidad en un año con el crecimiento actual) y estamos ejecutando iSCSI a un Dell MD3220i con MD1220 para la expansión.

Posibles opciones que hemos considerado, y pensamientos inmediatos junto con ellas:

  • Difundir las máquinas virtuales en los almacenes de datos de NFS y ejecutar el almacenamiento en NFS que cumpla los requisitos de rendimiento para un número determinado de máquinas virtuales. NFS parece más barato de escalar, así como se ha abstraído un poco más que el almacenamiento a nivel de bloque para que podamos moverlo según sea necesario.
  • Añadiendo más controladores/objetivos MD3220i. Sin embargo, nos preocupa que hacer esto pueda tener un efecto negativo de alguna manera en la forma en que VMWare maneja el tener muchos objetivos.
  • Intercambiando todos los discos de Nearline SAS a SSD. Esto debería resolver completamente el problema de IOPS, pero tiene el obvio efecto secundario de reducir nuestra capacidad de almacenamiento. Además, sigue siendo muy caro.
  • vSphere 5 tiene un dispositivo de almacenamiento. No hemos investigado tanto, pero debe funcionar bien

La pregunta

¿Qué tipo de almacenamiento harías debajo de todo eso? No necesitaría escalar a otro centro de cuchillas, sólo tendría que proporcionar un rendimiento relativamente bueno para todos esos VM.

No busco respuestas de "Compra SAN x porque es la mejor". Estoy buscando ideas sobre las diversas tecnologías SAN (iSCSI, FC, FCoE, InfiniBand, NFS, etc.), los diferentes tipos de almacenamiento (SATA, SAS, SSD), y las metodologías para manejar el almacenamiento de cientos de máquinas virtuales (consolidación, separación, fragmentación, etc.).

Absolutamente cualquier pensamiento, enlace, guía, puntero, etc. son bienvenidos en esto. También me encantaría escuchar los pensamientos sobre las opciones anteriores que ya hemos considerado.

¡Muchas gracias de antemano por cualquier aportación!

Actualización 5 de Marzo '12

Algunas respuestas fantásticas hasta ahora, ¡muchas gracias a todos!

Siguiendo las respuestas a esta pregunta hasta ahora, empiezo a pensar que la siguiente ruta es el camino:

  • Ordene el almacenamiento disponible en el clúster de VMWare y coloque los discos de VM en el almacenamiento adecuado para sus cargas de trabajo.
  • Potencialmente hacer uso de una SAN que es capaz de gestionar la colocación de los datos en un almacenamiento adecuado de forma automática.
  • Infiniband parece ser el más rentable para obtener el ancho de banda necesario con los anfitriones a plena capacidad.

Definitivamente suena como si valiera la pena hacer uso de los servicios de pre-venta de un importante proveedor de SAN para obtener su opinión sobre el escenario.

Voy a seguir considerando este problema por un tiempo. Mientras tanto, cualquier otro consejo recibido con gratitud.

13voto

Basil Puntos 6650

La clave de una buena plataforma de almacenamiento VMWare es entender qué tipo de carga genera VMWare.

  • En primer lugar, al albergar muchos servidores, la carga de trabajo suele ser aleatoria. Hay muchos flujos de IO en marcha al mismo tiempo, y no muchos de ellos pueden ser pre-cacheados con éxito.
  • En segundo lugar, es variable. Durante las operaciones normales, puedes ver un 70% de lecturas aleatorias, sin embargo, en el momento en que decidas mover una máquina virtual a un nuevo almacén de datos o algo así, verás una escritura secuencial masiva de 60 GB. Si no tienes cuidado con la arquitectura, esto puede paralizar la capacidad de tu almacenamiento para manejar el IO normal.
  • En tercer lugar, una pequeña parte de su entorno suele generar una gran parte de la carga de trabajo de almacenamiento.

La mejor manera de abordar la creación de almacenamiento para una plataforma VMWare es comenzar con los fundamentos.

  • Necesita la capacidad de dar servicio a una gran carga de trabajo de lectura aleatoria, lo que significa unidades más pequeñas y rápidas, así como posiblemente SSD. La mayoría de los sistemas de almacenamiento modernos permiten mover los datos automáticamente en función de cómo se acceda a ellos. Si vas a utilizar una unidad SSD, debes asegurarte de que así es como la utilizas. Debería estar ahí como una forma de reducir gradualmente los puntos calientes. Tanto si usas SSD como si no, es beneficioso poder repartir todo el trabajo entre todas las unidades, por lo que algo con un tipo de agrupación de almacenamiento sería beneficioso.
  • Necesitas la capacidad de dar servicio a escrituras grandes intermitentes, lo que no se preocupa tanto por la velocidad de los discos subyacentes, pero sí por la eficiencia de la pila de controladores y el tamaño de la caché. Si tienes una caché en espejo (que no es opcional a menos que estés dispuesto a volver a las copias de seguridad cada vez que tengas un fallo de la controladora), el ancho de banda entre las dos cachés utilizadas para el espejo será tu cuello de botella para las grandes escrituras secuenciales, por lo general. Asegúrate de que lo que adquieras tenga una interconexión de controlador (o clúster) de alta velocidad para el almacenamiento en caché de escritura. Haz todo lo posible por conseguir una red frontal de alta velocidad con tantos puertos como puedas conseguir sin dejar de ser realista con el precio. La clave para un buen rendimiento del front end es distribuir la carga de almacenamiento entre el mayor número posible de recursos del front end.
  • Puede reducir seriamente los costes teniendo un nivel para el almacenamiento de baja prioridad, así como el aprovisionamiento ligero. Si su sistema no migra automáticamente bloques individuales a unidades grandes/lentas baratas (como SAS o SATA nearline con 7200 RPM y tamaños de más de 2TB), intente hacerlo manualmente. Las unidades grandes y lentas son excelentes objetivos para archivos, copias de seguridad, algunos sistemas de archivos e incluso servidores con poco uso.
  • Insista en que el almacenamiento esté integrado en VAAI para que VMWare pueda desasignar las partes no utilizadas de las máquinas virtuales, así como los almacenes de datos.

10voto

Tina Puntos 21

Mis grandes despliegues de VMWare son NFS e iSCSI sobre 10GbE. Eso significa HBA de doble puerto 10GbE en los servidores, así como en el cabezal de almacenamiento. Soy un fanático del almacenamiento basado en ZFS para esto. En mi caso, está envuelto en un sistema de almacenamiento comercial. NexentaStor pero algunos optan por rodar por su cuenta.

Las características clave del almacenamiento basado en ZFS en este contexto serían la funcionalidad de almacenamiento en caché ARC/L2ARC, lo que le permitiría el almacenamiento por niveles. Los datos más activos encontrarían su camino en la RAM y el almacenamiento SSD como segundo nivel. También sería beneficioso ejecutar el grupo de almacenamiento principal con unidades SAS de 10k o 15k.

Este es otro caso de perfilado y comprensión de su carga de trabajo. Trabaje con alguien que pueda analizar sus patrones de almacenamiento y le ayude a planificar. En el lado de ZFS/NexentaStor, me gusta PogoStorage . Sin este tipo de conocimiento, el método de transporte (FC, FCoE, iSCSI, NFS) puede no importar. ¿Dispone de algún tipo de monitorización de su infraestructura actual? ¿Qué aspecto tiene la actividad de E/S ahora?

8voto

Ryan Sampson Puntos 2898

La pregunta clave es: "¿dónde está el cuello de botella?". Mencionas las IOPS, pero ¿significa eso que has identificado positivamente que los propios discos son el cuello de botella, o simplemente que los puertos de la SAN no están funcionando a su capacidad, o que las máquinas virtuales están en mucho más iowait de lo que te gustaría?

Si has identificado definitivamente que los discos son el factor limitante, entonces cambiar a NFS o infiniband o lo que sea no va a hacer nada por tu rendimiento - necesitas SSDs (o al menos almacenamiento por niveles con SSDs en la mezcla) o un montón más de husillos (una solución que se ha vuelto mucho más cara recientemente desde que la producción mundial de motores paso a paso fue arrastrada al océano).

Sin embargo, si no estás seguro al 100% de dónde está el cuello de botella, primero tienes que encontrarlo: cambiar partes de tu infraestructura de almacenamiento más o menos al azar basándote en las suposiciones de otras personas no va a ser muy efectivo (especialmente teniendo en cuenta lo caro que va a ser implementar cualquier cambio).

4voto

tony roth Puntos 2985

Si quieres iscsi o nfs entonces como mínimo querrás unos puertos de 10/40gb o infiniband que es la opción más barata con diferencia pero las soluciones de almacenamiento nativas para infiniband parecen ser limitadas. El tema será el módulo para el bladecenter cuales son sus opciones, normalmente 8gb fc o 10 \1gbe y quizás infiniband. Tenga en cuenta que infiniband se puede utilizar con nfs y nada se le acerca en términos de rendimiento \price. si el blade center soporta qdr infiniband lo haría con un host linux de algún tipo con un tca qdr infiniband vía nfs. Aquí hay un buen enlace que describe esto http://www.zfsbuild.com/2010/04/15/why-we-chose-infiniband-instead-of-10gige

pero si el bladecenter puede soportar qdr infiniband y usted puede permitirse infiniband nativo entonces esa es la solución que debe elegir.

Actualmente se pueden conseguir switches de 40gbe mucho más baratos (eso es un pensamiento extraño) que switches de 10gbe pero dudo que tu centro de blade lo soporte.

-3voto

Nils Puntos 5486

¿Se acabó el almacenamiento local? Estoy bastante contento con el rendimiento de escritura de mi RAID 5 local, duplicado con DRBD8 en el clúster asociado a mi máquina XEN... (pero esto "no es compatible", por supuesto).

Aparte de eso estoy bastante seguro de que mySQL es tu problema de rendimiento (nunca he visto una BD peor). Intenta afinarla y/o intenta poner toda la BD en la caché del sistema de archivos (para el acceso de lectura)...

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: