Microsoft, su tecnología y yo

El Blog de David Cervigón (Microsoft)

Trucos para mejorar el rendimiento en Virtual Server

Trucos para mejorar el rendimiento en Virtual Server

  • Comments 3

Hola

Trataremos estos temas en la Webcast de este jueves sobre cómo virtualizar servidores con roles de infraestructura, en la que os podéis registrar gratuitamente en el enlace correspondiente de nuestra página de Eventos y Webcasts. Hay cambio de ponente y esta vez me toca hablar a mí.

Mientras, he recolectado algunas recetas dispersas allá y acá para mejorar el rendimiento de las máquinas virtuales bajo Virtual Server, y esta es la lista de recomendaciones:

Configuración del Host:

  • Por supuesto, la mayor cantidad de memoria y mejores procesadores multi-core que podamos permitirnos. Es conveniente reservar 512 MB de RAM para el host
  • Evitar otros servicios/aplicaciones corriendo en el host
  • Excluir las rutas de las máquinas virtuales de los paths de monitorización de los antivirus. También es conveniente excluir las extensiones asociadas: .vhd .vud .vsv .vfd .vmc
  • No utilizar el modificador /3GB en el boot.ini para dar más espacio de direccionamiento virtual a los procesos del usuario a costa del kernel. Los entornos virtualizados hacen uso intensivo de éste último.
  • En las opciones de rendimiento, es preferible tener los recursos del procesador configurados para mejor rendimiento de los servicios en segundo plano y la configuración de memoria optimizada para System Cache.
  • Siempre que sea posible, usar varias tarjetas de red Gigabit. Dedicar una NIC al Host y repartir las demás entre las máquinas virtuales según su demanda de ancho de red.
  • Configuración del sistema de almacenamiento: Definitivamente este es quizás uno de los puntos definitivos ya que las operaciones de E/S se multiplican a medida que el número de máquinas virtuales concurrentes aumenta. Por eso es importante:
    • Los discos, cuanto más rápidos mejor.
    • Usar diferentes discos para el Sistema Operativo del Host que para las máquinas virtuales
    • Si es posible, utilizar diferentes controladoras.
    • Dedicar un disco a cada máquina virtual. O mejor aún, dedicar a cada una de las máquinas virtuales sus propios volúmenes que comprendan varios discos (RAID 0, o RAID 0+1 si queremos tolerancia a fallos). Y si es posible en SAN, mejor aún.
    • Utilizar volúmenes NTFS con la compresión de datos habilitada. Es más óptimo escribir en disco los datos ya comprimidos, y además ahorraremos un buen porcentaje del tamaño del .vhd
    • Cuidado con los hosts que sean además Controladores de Dominio. El disco que contenga la partición donde se almacena la base de datos del Directorio Activo tendrá la cache de disco deshabilitada. No será buena idea poner un .vhd ahí.

Configuración de las Máquinas Virtuales:

  • Asegurarse de tener instaladas la últimas VM Additions en todas las máquinas virtuales del host.
  • Tener las máquinas conectadas a la red, aunque sea la red interna de Virtual Server, que solo ofrece conectividad local entre las máquinas conectadas a ella
  • Utilizar RDP para conectarse a las máquinas virtuales en lugar de VRMC. Con ello podremos:
    • Cortar y pegar contenido de nuestro escritorio al de la VM.
    • Usar nuestras unidades locales, incluso las USB.
    • Utilizar y la impresora local.
  • Usar discos diferenciales para máquinas virtuales muy similares entre sí (esto más por ahorro de espacio que por rendimiento).
  • Darle a la máquina virtual suficiente memoria RAM y configurar adecuadamente el fichero de paginación. Así evitaremos paginación en la VM que se pueda traducir en E/S para el host.
  • Configuración de los discos virtuales: Nuevamente un punto con especial importancia
    • Utilizar discos virtuales SCSI en lugar de IDE.
    • Utilizar discos de tamaño fijo. Ofrecen mejor rendimiento que los dinámicos.
    • Realizar mantenimiento periódico de los ficheros .vhd:
      • Desfragmentar dentro de la propia VM.
      • Usar el Precompactor.iso
      • Compactar el .vhd

Todo esto esta sacado principalmente de aquí y de aquí. Espero que os sirva, y si alguien tiene algún truco más, para eso están los comentarios.

Saludos

Comments
  • La verdad es que has hecho un estupendo resumen, yo pienso que la clave esta en pensar en las maquinas virtuales como maquinas fisicas, si vas a montar un SQL Server seguro que montas raids diferentes para logs y BDs, pues al montar maquinas virtuales no hay ninguna razon para ponerlo todo en un solo disco, lo mismo con la memoria o si tiene que ir en cluster o no.

    Añadiria que es muy importante que no se olviden los aspectos de seguridad una maquina virtual tiene las mismas necesidades de actualización y fortificación que una fisica, me estoy encontrando casos de gente que actualiza los host pero no lo guests, el cliente de wsus tambien funciona sobre virtual server :-), lo mismo para las DMZ, si un equipo lo pondrias en una DMZ ¿por que la maquina virtual no?.

    Permiteme tambien añadir, que aquellas maquinas virtuales que sean criticas se pueden montar sobre un cluster de virtual server, o podemos montar clusters sobre clusters de Virtual Server asi teniendo cada nodo virtual sobre diferentes nodos fisicos del cluster de VS lograremos un fuerte nivel de tolerancia a fallos.

  • Totalmente de acuerdo. La regla de oro es que los únicos que saben que la máquina es virtual son los administradores. Por tanto para cualquier amenaza no dejan de ser una máquina más.

    La seguridad del host es CRITICA. En Windows Server Virtualization se introducen novedades al respecto, pero pensemos que desde el host eres capaz de ver en tiempo real toda la RAM de los guests. Es decir, un atacante que se haga con el host se hace automáticamente el amo de todo lo que corra en el. Y a la alta disponibilidad le aplica la misma regla.

  • Estoy de acuerdo con todo lo que comentais, pero por desgracia la mayoria de administradores nos encontramos clientes con muy poco presupuesto y también para estos casos la virtualización es una gran herramienta, te permite hacer burradas que además funcionan y tener a los clientes contentos.

    Como en cualquier implantación hay que ser conscientes de la carga de trabajo que el sistema va a tener, pero como de buen programador es optimizar el código de sus desarrollos, a los de sistemas la virtualización nos permite optimizar al máximo nuestras c.p.d., me quedo con los consejos que cuestan poco esfuerzo y dinero y que todos podemos aplicar, para tener por ejemplo (o sin mas remedio) un host con 1,5gb. ram, 2 tarjetas de red y un raid 1 sata 160gb.+ 1 disco 72gb sata.  para un 2003+isa, un s.b.s con todo y servidor de archivos y un 2003 como segundo controlador de dominio, servidor de impresoras y alguna cosita mas, de los que tiran entre 6 y 10 personas y nadie ha protestado de nada nunca. Además decir también que en un sistema virtual, cualquier pequeña ampliación está rápidamente rentabilizada.

    Para todo ello, como dice David, configurar bien el firewall del host,intentar que este sea de 64 bits (todos los procesadores lo soportan actualmente), matener todo actualizado, las exclusiones de los antivirus, opciones de rendimiento, vm adittions, replicación a través de red interna, configurar archivo de paginación, programar degragmentaciónes, mantener cerca una máquina en la que hayamos probados que las máquinas virtuales arrancan perféctamente, mantener copia actualizada de las mismas y escuchar a los usuarios para terminar de ajustar el sistema.

Page 1 of 1 (3 items)
Leave a Comment
  • Please add 8 and 8 and type the answer here:
  • Post