Puedo decir esto por experiencia personal porque estoy lidiando con este mismo problema mientras hablamos. El lugar donde actualmente trabajo como contratista tiene este tipo de entorno para sus sistemas de desarrollo de SQL Server. Estoy tratando de desarrollar una B.I bastante modesta sistema en este entorno y realmente luchando con los problemas de rendimiento.
TLB falla y las E/S emuladas son muy lentas en una máquina virtual ingenua. Si su O/S tiene soporte de paravirtualización (que aún no es una tecnología madura en Windows) utiliza E/S paravirtualizada (esencialmente un controlador de dispositivo que engancha en una API en la VM). Las versiones recientes de Opteron tienen soporte para tablas de páginas anidadas, lo que elimina la necesidad de emular el MMU en el software (que es realmente lento).
Por lo tanto, las aplicaciones que ejecutan conjuntos de datos de gran tamaño y realizan muchos procesos de E/S como (por ejemplo) ETL tropiezan con el talón de Aquiles de la virtualización. Si tiene algo así como un sistema de depósito de datos que podría ser difícil para la memoria o la E/S de disco, debería considerar otra cosa. Para una aplicación transaccional simple, probablemente sean O.K.
Poniendo en perspectiva los sistemas que estoy usando se ejecutan en blades (un servidor de IBM) en una SAN con 4x enlaces F/C de 2 gbit. Esta es una SAN de rango medio. La VM tiene 4 GB de RAM IIRC y ahora dos CPU virtuales. En el mejor de los casos (cuando la SAN está en silencio), esta sigue siendo solo la mitad de la velocidad de mi XW9300, que tiene 5 discos SCSI (sistema, tempdb, registros, datos, datos) en 1 bus U320 y 4 GB de RAM.
Su kilometraje puede variar, pero recomiendo ir con sistemas de estaciones de trabajo como el que describí para desarrollar cualquier E/S pesada en lugar de servidores virtuales en una SAN. A menos que sus requisitos de uso de recursos vayan más allá de este tipo de kit (en cuyo caso están más allá de un servidor virtual de todos modos) esta es una solución mucho mejor. El hardware no es tan caro, ciertamente mucho más económico que un SAN, un chasis blade y licencias de VMWare. La edición de desarrollador de SQL Server viene con V.S. Pro y arriba.
Esto también tiene la ventaja de que su equipo de desarrollo se ve obligado a lidiar con la implementación desde el primer momento: tiene que crear una arquitectura que sea fácil de implementar con un solo clic. No es tan dificíl como suena. Redgate SQL Compare Pro es tu amigo aquí. Sus desarrolladores también obtienen un conocimiento básico de trabajo de administración de bases de datos.
Un viaje rápido a HP's website me tiene un precio de alrededor de 4.600 $ para un xw8600 (su modelo actual basado en Xeon) con un chip Xeon de cuatro núcleos, 4 GB de RAM y 1x146 y 4x73GB 15k discos duros SAS. El precio de la calle probablemente será algo menor. Compare esto con el precio de un SAN, chasis blade y licencias de VMware y el costo de la copia de seguridad para esa configuración. Para la copia de seguridad puede proporcionar un recurso compartido de red con copia de seguridad donde las personas pueden soltar archivos de copia de seguridad de base de datos comprimidos según sea necesario.
EDITAR: This whitepaper on AMD's web-site analiza algunos puntos de referencia en una máquina virtual. De los puntos de referencia en la parte posterior, la pesada carga de trabajo de E/S y MMU realmente perjudica el rendimiento de la VM. Su punto de referencia (que debe tomarse con un grano de sal ya que es una estadística suministrada por el proveedor) sugiere una penalización de velocidad 3.5x en un punto de referencia OLTP. Si bien esto es proveedor suministra uno debe tener en cuenta:
Se puntos de referencia de virtualización ingenuo y lo compara con una solución para-virtualizado, no rendimiento-metal desnudo.
Un OLTP de referencia tendrá una mayor de acceso aleatorio/carga de trabajo I O, y se pasar más tiempo esperando a que el disco busca. Un disco patrón de acceso más secuencial (característica de consultas de almacén de datos) tendrá una penalización superior, y una operación de la memoria-pesado (SSAS, por ejemplo, es un cerdo memoria bíblica) que tiene un gran número de TLB fallas también incurrir en sanciones adicionales. Esto significa que las ralentizaciones en este tipo de procesamiento probablemente serían más pronunciadas que la penalización de referencia de OLTP citada en el documento técnico.
Lo que hemos visto aquí es que TLB falla y las E/S son muy caras en una VM. Una buena arquitectura con controladores paravirtualizados y soporte de hardware en la MMU mitigarán parte o todo esto. Sin embargo, creo que Windows Server 2003 no admite la paravirtualización en absoluto, y no estoy seguro de qué nivel de soporte se brinda en el servidor de Windows 2008. Ciertamente, es mi experiencia que una máquina virtual ralentizará radicalmente un servidor cuando se trabaja en un proceso ETL y compilaciones de cubo SSAS en comparación con el hardware bare-metal de especificaciones relativamente modesto.
Vale la pena señalar que esta pregunta es bastante antigua, y muchos de los problemas discutidos aquí se resuelven en gran medida, al menos en teoría. Sin embargo, desde que escribí la respuesta aceptada, realicé varios conciertos en sitios con entornos de BD virtualizados y vi problemas de rendimiento en la mayoría de estos sitios. A pesar de lo que dicen los proveedores, todavía debe prestar atención a la configuración de almacenamiento y sintonización en entornos DB virtualizados. – ConcernedOfTunbridgeWells