¿Es posible abarcar una gran VM en varios servidores físicos básicos?

11

¿Es posible abarcar una gran máquina virtual en varios servidores físicos básicos?

Aquí está nuestro caso de uso:

  • Necesitamos implementar un servidor db de 32 procesadores con 64 GB de RAM
  • No tenemos un servidor físico de tal capacidad
  • Tenemos muchos servidores con recursos más pequeños.

¿Existe una tecnología o (mejor) un producto que nos permita utilizar estos servidores para crear una VM con la capacidad requerida? Digamos, ¿podemos combinar 8 máquinas físicas de 4 procesadores con 8 GB de RAM cada una en una "unidad lógica" de 32 procesadores con 64 GB de RAM y configurar un servidor Oracle que use toda esta capacidad?

Antes de publicar esta pregunta, leímos preguntas similares pero no encontramos una respuesta.

Tal vez, alguien podría darnos una pista ahora?

usuario54614
fuente
2
Esta no es una respuesta a su pregunta, pero es extraño que nadie aconseje mirar las limitaciones del software. Si su empresa crea aplicaciones para negocios de rango medio, me parece obvio que el problema son las limitaciones de software, probablemente el arquitecto del software y los diseñadores no pensaron en una base de datos con miles de millones de registros o con enormes tablas o procedimientos temporales, piensen en eso y cree algunos informes de autocomprobación y error para las consultas lentas para mi, es la forma de resolver el problema ... piense en el límite de 3.3GB en el x86

Respuestas:

7

Existe un producto comercial de ScaleMP llamado vSMP. Le permite agregar múltiples sistemas x86 en una sola instancia virtual. Sin embargo, nunca antes había intentado esto personalmente, pero he tenido una presentación de ellos. Si no recuerdo mal, hay requisitos específicos para que esto funcione, y necesitará obtener hardware adicional (Infiniband para interconexiones rápidas y de baja latencia). ¡También puede costar un centavo bonito!

ryanlim
fuente
1
ScaleMP no emula un entorno x86. Nunca podrá ejecutar Windows o cualquier otro sistema operativo x86 estándar en el entorno virtual. Los únicos sabores admitidos son varias versiones de Linux basadas en la arquitectura de tipo SMP. Y de ese tipo de arquitectura ... hay VARIOS sabores. Incluso los gratuitos.
TheCompWiz
OP no fue específico sobre los otros requisitos. Solo respondí lo que pude reunir de su publicación.
ryanlim
1
Esto se ve muy bien. Sospecho que una caja de 32 núcleos (posible con 2x 16 chips AMD Core) podría ser más barata que un clúster con Infiniband, pero ahí vamos. Esta solución gana más derechos de fanfarronear.
Tom O'Connor
9

No hay forma de obtener exactamente la misma funcionalidad que una sola máquina de 32 procesadores ... con varios servidores separados. Su mejor opción es mirar el agrupamiento o la computación en cuadrícula. Bien hecho, puede terminar con un rendimiento comparable ... y un mayor nivel de alta disponibilidad. Gran parte de su pregunta también depende de su tipo "db". Microsoft SQL Server funciona de manera significativamente diferente a MySQL u Oracle ... y la escalabilidad también se realiza de manera completamente diferente.

Alternativamente ... puede considerar dejar que alguien haga la base de datos por usted ... como usar el EC2 RDS ...

Lamentablemente, no hay forma de combinar varios servidores físicos juntos y aplicar vmware en ellos y terminar con un servidor virtual singularmente potente.

TheCompWiz
fuente
TheCompWiz, gracias por la respuesta. OK, si la respuesta depende de mi tipo de base de datos, que sea Oracle o Microsoft SQL Server. Con estas correcciones, ¿sigue siendo imposible? Sí, sabemos acerca de EC2 pero necesitamos exactamente Oracle o Microsoft SQL Server para probar problemas con un producto de software que entregamos para un cliente ...
user54614
Además, ¿por qué solo tener en cuenta vmware? No nos importan otros hipervisores ...
user54614
La capacidad de atravesar múltiples servidores es una ENORME pesadilla logística ... sin mencionar la falta de ancho de banda disponible entre dispositivos. Piense en lo rápido que es una CPU ... luego, todas las cosas que tendría que hacer que frenarían el proceso ... es decir, CPU -> bus -> puente PCI -> tarjeta de red -> cable de Ethernet -> red stack -> ... incluso antes de que llegue al otro servidor? No querrás esperar 1 segundo para poder agregar 1 + 1. Racimos normalmente son capaces de hacer esto porque las tareas se asignan en "Jobs" y un trabajo se emite para un nodo de cálculo que realiza todas las tareas en ese trabajo ...
TheCompWiz
... y luego envía las respuestas al nodo de administración. Windows no lo hace. No hay forma de configurar un entorno virtual X86 (o X86_64) que incluso intente hacerlo.
TheCompWiz
2
@ user54614: absolutamente no podrá replicar su escenario atando máquinas juntas. Sugeriría hablar con su cliente y con el soporte de Oracle para identificar e identificar los problemas.
Chris Thorpe
-1

"TheCompWiz" respondió su pregunta útilmente.

Todavía me gustaría decir que sí, usted podría construir un hipervisor que permitiera que una sola VM abarcara varios hosts físicos y podría ejecutar esa VM "correctamente" donde todo funcionaba.

Pero, incluso con redes de alta velocidad realmente buenas entre los hosts físicos, el rendimiento de tal cosa sería realmente horrible, ejecutándose mucho más lentamente que una VM más pequeña que cabe dentro de uno de esos hosts. Tendría que simular las propiedades de coherencia de caché de una única VM interceptando cada lectura o escritura de memoria que hizo el sistema operativo invitado y la aplicación, lo que multiplicaría el costo del acceso a la memoria por miles, si no millones.

Por lo tanto, ningún proveedor de hipervisor comercial permite tal cosa. Ha sido probado en el laboratorio. Nadie se ha molestado en hacer un producto con él.

Para subrayar el punto una vez más, mira hacia el agrupamiento para encontrar una solución.

Jake Oshins
fuente
Pero, ¿qué sucede si un producto de software que entregamos funciona bien para la mayoría de los clientes pero no funciona correctamente en el entorno de un gran cliente que ejecuta nuestra aplicación en un servidor Oracle de 32 procesos con 64 GB de RAM. Queremos reproducir esta falla en nuestro entorno.
user54614
2
No sé nada de su software, pero ¿qué sucede con 32 procesadores y 64 GB de RAM que no sucede con 2 procesadores y 8 GB de RAM? Si realmente hay algo repetidamente mal en ese nivel, entonces es un problema de Oracle / OS / driver / IO / hardware.
gravyface
Nunca obtendrá un hipervisor para atravesar máquinas físicas. Todavía están confinados dentro del núcleo físico de la máquina. Dicho esto ... Apuesto a que podrías construir una arquitectura de tipo mainframe similar a la de los gigantes arcaicos de hace mucho tiempo ... pero nunca obtendrás nada x86 ejecutándose en ella.
TheCompWiz
1
Su gran cliente debe tener una segunda instancia de control de calidad de ese monstruoso servidor de base de datos. Si no tienen eso disponible, realmente es su problema. En 15 años de trabajo de TI, nunca he visto a nadie esperar que un proveedor de software duplique su infraestructura (a menos que sea parte de un contrato de servicio que especifique exactamente eso, y el cliente lo pague). Especialmente cuando esa infraestructura es esotérica (aunque en estos días se puede tener un servidor de 32 núcleos y 64 GB por aproximadamente $ 22K de Dell).
rmalayter
¿Qué hay de ScaleMP ( scalemp.com )?
user54614
-2

VMWare lo hace. Se llama DRS o Programador de recursos distribuidos. Le permite combinar los recursos de 16 servidores. Luego puede distribuir ese total a uno o más entornos virtuales.

Rick Dettwyler
fuente
No, esto no es en absoluto lo que hace DRS. DRS permite que una máquina vMotion automáticamente alrededor del clúster se cargue incluso entre los nodos host. De ninguna manera da acceso a múltiples hosts desde una sola VM.
EEAA