Azure Stories: Cómo borrar VHDs bloqueados en una cuenta de almacenamiento de Azure

En mi trabajo diario me encuentro con muchas inquietudes de partners y clientes acerca del trabajo con la nube. Adicionalmente, es pan de cada día para mí crear arquitecturas de solución en la nube para diversos tipos de problemas de software. He decidido recopilar todo este conocimiento en una serie de artículos que a futuro pienso recopilar en un libro llamado Azure Stories. Arranco pues con esta experiencia explicando a un cliente cómo borrar discos antes asociados a máquinas virtuales en la nube.

Dentro de la vertiente de IaaS, Azure obviamente ofrece el hosting de máquinas virtuales. Éstas máquinas virtuales vienen provistas de un disco duro mecánico de 128GB para el sistema operativo y adicionalmente un disco duro local temporal de un tamaño variable dependiendo del tamaño de la máquina seleccionada cuyos datos desaparecen cada vez que la máquina se reinicia.

El disco duro para el OS no reside en el mismo conjunto de componentes de hardware de la máquina virtual, sino en un espacio de almacenamiento dedicado y centralizado que en Azure se conoce como el Blob Storage. En el blob storage, éste disco duro se representa como un archivo .vhd (disco duro virtual). Para poder acceder al blob storage, se requiere de una cuenta de almacenamiento. En esta cuenta de almacenamiento se pueden crear discos duros virtuales adicionales y agregárselos a la máquina virtual que estamos trabajando. 

El manejo de recursos y servicios en Azure se hace de dos maneras hoy en día. De la manera clásica y de la manera de administrador de recursos (Azure Resource Manager o ARM). Cada una de esta maneras se puede trabajar desde su propio portal de administración. (Portal Clásico. Portal Moderno).  El modelo moderno o de ARM, representa una gran ventaja frente al clásico, por cuanto permite la creación de grupos lógicos de recursos en Azure. Por ejemplo, una máquina virtual con sus discos quedan lógicamente agrupados, así que cuando se elimina una máquina virtual creada en el esquema ARM, también se eliminan los discos duros asociados a ella. En la manera clásica no podía existir un agrupamiento lógico de recursos nativo en Azure. Así pues, una máquina virtual quedaba separada no solo físicamente sino también lógicamente de los discos que usaba.

Por ende, borrar una VM clásica no borra automáticamente el disco de OS que se le ha asignado. El usuario tiene que elegir borrarlo o no. En caso de que no escojamos hacer el borrado del disco al mismo tiempo que el de la máquina, éstos discos quedan en estado de uso activo como si todavía estuvieran pegados a una máquina en particular. Entonces si luego intentamos borrar la cuenta de almacenamiento en la que se almacena el disco, o aunque sea solo el VHD en el cual está el disco, obtendremos este error o uno parecido: Error deleting VHD: There is currently a lease on the blob and no lease ID was specified in the request.

 

image

 

Para poder borrar el VHD o la cuenta en el esquema clásico, es necesario borrar primero el disco. Desde el portal de administración moderno de Azure esto se ejecuta buscando la sección OS Disk (classic) o en español. Discos de SO.

De allí se podrá eliminar el disco y subsecuentemente el vhd o la cuenta de almacenamiento si es necesario.