domingo, 27 de junio de 2010

Arrancar máquinas virtuales en físco con Hyper-V

Imagino que muchos de vosotros habreis sufrido el problema del rendimiento de muchas de vuestras máquinas de desarrollo con 4 GB de RAM al intentar arrancar máquinas virtuales con SharePoint, Visual Studio, SQL Server... Como todos sabemos, la máquina host necesita reservarse cierta cantidad de memoria para controlar la capa de virtualización y ofrecer unas mínimas garantías al sistema operativo de base, así que con un portátil de 4GB de RAM nos vemos forzado a arrancar máquinas de entre 2 y 3 GB de RAM virtualizados, que son la pesadilla de cualquier desarrollador que quiera avanzar más o menos rápido en sus proyectos.

Una buena solución en estos casos es poder arrancar la máquina virtual directamente como si fuera nuestro sistema operativo principal (arranque en físico). Es decir, no lanzar la MV desde nuestro sistema operativo normal, sino que la MV sea nuestro sistema operativo normal.

Si dispones de un sistema operativo Windows 7 o SQL Server 2008 y creas máquinas con Hyper-V, esto es bastante sencillo de conseguir. Los pasos son los siguientes:

1.-Preparar la máquina virtual en Hyper-V hasta disponer del fichero vhd correctamente configurado.
2.- Abrir una línea de comandos con permisos de administración
3.- Introducir el comando:  bcdedit /copy {default} /d "x:\x\x.vhd" sustituyendo las x por los parámetros de nuestra ruta hacia el fichero vhd.
4.- Anotamos el GUID que nos devuelve la operación anterior
5.- Introducimos el comando: bcdedit /set {GUID} device vhd=[Unidad:]\x\x.vhd donde GUID es el parámetro anotado en el punto 4, Unidad la letra de la unidad donde se encuetra el archivo vhd y x la ruta o nombre de fichero para llegar a él. Es muy importante introducir el nombre de la unidad entra corchetes [], ya que si no no funcionará bien el arranque.
6.- Introducimos el comando bcdedit /set {GUID} osdevice vhd=[D:]\x\x.vhd con las mismas observaciones que en el punto 5.
7.-Con estos pasos ya deberíamos tener configurado el arranque en físico de nuestra máquina virtual. Podemos ver la configuracion con el comando bcdedit a palo seco, donde nos mostrará información relativa a nuestra configuracion en los dispositivos de arranque y entre la cual deberíamos ver algo similar a la siguiente imagen:
A partir de aquí, cuando arranquemos nuestro PC, el sistema nos mostrará diversas opciones para elegir la carga de nuestro sistema operativo, podremos escoger entre el arranque normal, o una de las máquinas virtuales que hayamos configurado con el procedimiento anterior. Si arrancamos una máquina virtual, esta dispondrá de la totalidad de RAM y recursos del sistema, y no notaremos ninguna relentización por la capa de virtualización.

Podeis configurar el comportamiento de vuestro menú de arranque con el comando msconfig, donde podreis seleccionar que sistema arrancar por defecto o el tiempo de espera antes del arranque por defecto.
 
Siempre podeis encontrar más información en la página oficial de Microsoft.

Espero que os resulte tan útil como a mí, y podais disfrutar de vuestros entornos de SharePoint... ¡Mucho más rápidos!

4 comentarios:

David Martos dijo...

Buenas compañero, sólo un apunte: puedes saltarte el hecho de tener un sistema operativo "principal" e instalar directamente tu sistema operativo en un vhd. De hecho, una vez le coges el vicio a tenerlo todo virtualizado te empiezas a olvidar del uso de particiones y siempre empiezas creando un vhd en el momento de instalación de SO. Te dejo un enlace al respecto:

http://david-martos.blogspot.com/2010/03/entorno-de-desarrollo-en-sharepoint.html

Ignasi Tebé Tena dijo...

Excelente post el de tu blog al que haces referencia, David. Gracias por enriquecer la entrada con tu siempre bien recibida sabiduria.

Un saludo!

rodrigesquivel dijo...

Que tal. Estoy utilizando maquinas virtuales que descargue de microsoft como demostraciones, pero cuando las configuro como comentan en este post, al reiniciar la maquina virtual me indica que debe reparar el sistema operativo y de ese paso, no me permite continuar. ¿Alguna idea?

Muchas gracias.

Ignasi Tebé Tena dijo...

Realmente este método puede dar algún problema cuando se creó una máquina virtual para el arranque en físico y de repente se quiere transformar a arranque virtual (no físico). Esto es devido al que el arranque en físico instala los DRIVERS de todos los componentes de tu máquina física, cosa que no pasa en el virtual y puede dar algún error de compatibilidad. En el caso inverso (máquina virtual que queremos arrancar en físico) no debería dar esos problemas, pero puede ser debido por un motivo similar.

¿Has probado a pasarle un "Chkdsk /f /r" ?