Administrando las VMs de Hyper-V de nuestro Active Directory: Problema al no iniciar las VMs “General access denied error(0x80070005)”

www.radians.com.ar © 2012Hoy vamos a ver un error que podría ocurrir por varios motivos; y que nos puede dar varios dolores de cabeza al momento de administrar nuestros entornos virtuales de nuestra arquitectura de Active Directory.

Siempre la recomendación es utilizar la exportación e importación, al momento de mover las Maquinas Virtuales (VMs) dentro de nuestros servidores. Si tenemos un VHD que venimos utilizando previamente, generalmente creamos una nueva máquina virtual y simplemente añadimos el VHD.

Sin embargo, se pueden presentar algunos inconvenientes cuando trabajamos con la estructura de directorios y sus permisos.

Para empezar, debemos saber que cuando creamos una VM, generamos aparte del disco VHD, un archivo .XML que contiene la configuración de máquina y una carpeta que contiene instantáneas con su .XML. En una instalación por default, la ubicación de estos archivos se encuentra en: C:\programdata\Microsoft\Windows\Hyper-V\Virtual Machines.

Esta semana, tuve algunos inconvenientes en un cliente que por razones de espacio tuvo que cambiar un RAID 5 de su servidor de VMs. El procedimiento para esto era:

  • Copiar todos los archivos durante la noche a un disco grande de 2TB con robocopy, como vimos en varias notas anteriores (pueden ver las notas en RaDiansBlog pongo en “Mas Información” los links).
  • Eliminar el RAID 5 actual, el de los discos chicos y quitar los discos.
  • Instalar los discos grandes y crear el RAID 5 con estos nuevos discos.
  • Volver a copiar los datos, con RoboCopy pero en sentido inverso, es decir, desde el disco de 2TB al nuevo RAID5 creado.

Si mantenemos este orden, los nombres de las unidades y de los directorios, no deberíamos tener ningún tipo de inconveniente; y sin tocar nada podríamos iniciar las VMs desde la consola de Hyper-V.

Pero, que paso en nuestro caso?

Bueno como esto tardaba, y se necesitaba con urgencia unas VMS, se procedió a copiar los archivos algunos con RoboCopy y otros simplemente con la copia de Windows… ERROR !!!

Al hacer esto no mantuvimos los permisos de los archivos, entonces no funciona y da el siguiente error:

www.radians.com.ar © 2012

Este error generalmente hace se produce si los permisos en el archivo de disco duro virtual (.vhd) o el archivo de instantáneas (.avhd) son incorrectos. Si vemos los permisos del VHD, veremos lo siguiente:

www.radians.com.ar © 2012

Esta faltando algo, que es? como sabemos, Hyper-V utiliza una característica nueva en Windows 2008 llamado SID de servicio. Hyper-V lo utiliza para poder acceder a estos archivos, por lo cual dichos archivos necesitan tener los permisos de acceso asignados a este SID de servicio.

Este SID es una combinación de los SID de servicio "NT VIRTUAL MACHINE"y el GUID de VM, según nuestro ejemplo seria: "NT VIRTUAL MACHINE\A966E784-180D-4714-9998-43BC78BDFA14":

www.radians.com.ar © 2012

El tema es que no es tan fácil como agregar un usuario, porque primero no sabemos el SID que corresponde y después no lo encontraremos a simple vista browseando nuestro AD. Entonces que hacemos? bueno, vamos a asignar los permisos por línea de comando, con los datos que obtendremos de los archivos .XML.

Entonces, abrimos la carpeta "%systemdrive%\programdata\Microsoft\Windows \Hyper-V\Virtual Machines" y vemos lo siguiente:

www.radians.com.ar © 2012

Nos copiamos el SID (también lo vemos en la ventana del error de la consola de Hyper-V, pero el problema es que no lo podemos copiar, con lo cual es mas fácil de esta forma). Entonces ejecutamos desde la línea de comando lo siguiente:

icacls "D:\Virtual Hard Disks\043_ADN_WS2008_SQL08.vhd" /GRANT "NT VIRTUAL MACHINE\A966E784-180D-4714-9998-43BC78BDFA14":(F)

www.radians.com.ar © 2012

Debemos tener en cuenta que le estaos dando control total a este servicio, por defecto lo permisos que se le asignan son mucho mas restrictivos (solo Read&Write). Si tuviéramos instantáneas (snapshoots), también deberíamos verificar que estén asignados los permisos.

Si verificamos los permisos nuevamente veremos que ya fueron asignados:

www.radians.com.ar © 2012

Con esto, debemos poder iniciar sin problemas la VM.

www.radians.com.ar © 2012

Recordemos que este procedimiento es solo para cuando tengamos que recuperar equipos críticos ante una situación de desastre, y no debería ser nuestro procedimiento estándar. De hecho en nuestro caso, fue critico porque las VMs estaban en estado SAVED, con lo cual no nos era posible recuperarlas desde el disco .VHD sin perder los cambios. Sino, simplemente lo que podíamos hacer era volver a crear la VM desde la consola de Hyper-V y apuntar el disco a nuestro .VHD. Aunque esto hubiese requerido que volviéramos a configurar las IPs de las placas de red nuevamente.

Espero que les sea de utilidad. Saludos, Roberto Di Lello.

Mas Información:

Roberto Di Lello

Acerca del autor: Roberto Di Lello

Hola, soy Roberto Di Lello trabajo como Consultor Senior en Infraestructura, especializado en Tecnologias Microsoft con mas de 25 años en la industria. He sido galardonado como MS-MVP en Active Directory-Enterprise Mobility por 10 años, y actualmente soy MVP Windows Insider, ademas de poseer otras certificaciones de Microsoft. He trabajado en distintos projectos que involucran Migraciones, Implementaciones, y soporte de Active Directory y Microsoft Exchange, y en los ultimos años me he desempeñado armando equipos de trabajo para diferentes paises y areas de sistemas, he planificado a distintas migraciones a datacenters (ambiente cloud y mixtos). He tenido la oportunidad de participar como miembro del staff de Microsoft en eventos internacionales como ser TechEd NorteAmerica y MS Ignite (NA) al ser Trainer Certificado por Microsoft (MCT).

You May Also Like

2 Comments

  1. Jorge Sanchez, disculpa mi demora en contestar pero estuve muy complicado con varios temas de trabajo, con el cambio de empresa he estado muy tapado de trabajo, pero voy respondiendo de a poco a medida que puedo y voy a responder todas las consultas.

    Muchisimas gracias por tu comentario. Aprovecho la oportunidad para agradecerte por participar del blog y ayudar a que siga creciendo! Te pido que difundas la direccion del sitio y mi twitter @RaDiansBlog, asi sumamos mas gente. Te invito a que veas los labs, videos, tutoriales, notas. Si querés buscar un tema o necesitas ayuda, tenés la solapa AYUDA donde explico un poco como hacerlo, sino también tenés el buscador de google.

    En 2014 debido a nuevas disposiciones de la ley Argentina debo afrontar distintos gastos para mantener el blog en funcionamiento. Si te parecio util la informacion del blog hace click en el boton “DONATE”

    Seguimos en contacto! Saludos y gracias!

Comments are closed.