¿Cómo elimino una cuenta de almacenamiento de Azure que contiene un blob arrendado?

155

Estaba jugando con máquinas virtuales duraderas de Windows Azure. Al final, eliminé la máquina virtual (con éxito) e intenté eliminar la cuenta de almacenamiento asociada.

La solicitud para eliminar la cuenta de almacenamiento falla.

En el Portal de vista previa (manage.windowsazure.com) cuando elimino la cuenta de almacenamiento, aparece este error:

Failed to delete Storage account 'portalvhdscwtwycpsxxxxx'

Details:

Storage account portalvhdscwtwycpsxxxxx has 1 container(s) which have an active image and/or disk artifacts. Ensure those artifacts are removed from the image repository before deleting this storage account.

En el portal anterior (windows.azure.com) me sale este error:

Submit Failed

Storage account portalvhdscwtwycpsxxxxx has 1 container(s) which have an active image and/or disk artifacts. Ensure those artifacts are removed from the image repository before deleting this storage account.

Al intentar eliminar el blob en sí (un VHD de 30 GB) en Azure Storage Explorer, aparece este error:

There is currently a lease on the blob and no lease ID was specified in the request.

Entonces, mi evaluación es que este blob está arrendado (por la máquina virtual anterior, ahora eliminada) y no puedo eliminarlo a menos que pueda obtener esta ID de arrendamiento.

La pregunta es: ¿cómo puedo eliminar este blob y, en consecuencia, la cuenta de almacenamiento?

Fernando Correia
fuente

Respuestas:

332

La clave de la solución es el mensaje de que el contenedor tiene un artefacto de disco activo y los consejos para eliminarlo del repositorio.

El procedimiento para eliminar la imagen de disco del repositorio de blobs es:

Después de eso, la cuenta de almacenamiento se puede eliminar.

Notas:

  • Esto se aplica incluso si ya ha eliminado todas sus máquinas virtuales y muestra 0; aún habrá artefactos debajo de la pestaña de discos.
  • Los discos se desconectan de una máquina virtual eliminada de forma asincrónica, pueden pasar unos minutos después de que se elimine la máquina virtual para que este campo se borre.

Consulte también: No se puede eliminar VHD, "Actualmente hay un contrato de arrendamiento en el blob ..."

Fernando Correia
fuente
Una nota importante: el botón Eliminar no funciona correctamente con IE9. No pude seguir esto con IE, pero con Chrome no tuve problemas.
Paul Keister el
@PaulKeister También tiene errores en Firefox 17.0.1. Tuve que intentarlo algunas veces.
Justin Skiles
Además del comentario de @ DavideIcardi: en este hilo en el foro de MSDN se explica que el arrendamiento de blobs se lanza de forma asincrónica y esta operación podría durar como máximo 2 horas.
edymtt
1
Tuve que ir al portal anterior> Almacenamiento> elegir cuenta de almacenamiento de la lista> hacer clic en la pestaña Contenedores en la parte superior> hacer clic en vhds> elegir el blob para eliminar. Ahora puede eliminar la cuenta de almacenamiento.
chdev77
1
lo mismo @ chdev77. También tuve que ir al antiguo portal para que aparecieran los discos. Wow, eso fue molesto como el infierno!
Harristrader
16

Desafortunadamente, la respuesta de Fernando no funcionó para mí, ya que el almacenamiento era "huérfano", ya que eliminé su VM antes de eliminar el almacenamiento. No pude encontrar una manera de hacerlo desde el portal, así que instalé azure-cli , y después de la autenticación ejecuté los siguientes comandos:

azure storage account delete <my-account>

Esto falla y el mensaje de error contiene el nombre del culpable, por ejemplo:

error: Storage account <my-account> has some active image(s) and/or disk(s), e.g. <my-image>. Ensure these image(s) and/or disk(s) are removed before deleting this storage

Luego borré la imagen ofensiva

azure vm disk delete <my-image>

E intenté nuevamente eliminar el almacenamiento, esta vez con éxito.

azure storage account delete <my-account>

tenue
fuente
2
Tenía exactamente el mismo problema. Tenía un montón de discos e imágenes huérfanos que no puedes eliminar en el portal. ¡Ojalá hubiera encontrado estas respuestas hace cuatro meses!
James Wilson
12

Desafortunadamente, existe el caso en el que se eliminó la VM, pero Disks muestra la VM adjunta al blob (un VHD de 30 GB) que impide la eliminación. También existe el caso de usar el Explorador de almacenamiento de Azure donde encuentra un blob VHD de orfan pero alquilado que no se puede eliminar y no hay ninguna referencia en el Portal de vista previa.

FM
fuente
3
Su respuesta no es correcta en TODAS las circunstancias. Actualmente tengo tres (3) "Discos" que se enumeran en la sección "Máquinas virtuales -> Discos", que no se pueden eliminar (por lo tanto, el blob no se puede eliminar). No tengo idea de cómo deshacerme de ellos, ya que la única forma actual que conozco es usar el portal. kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason
Como ya señaló @Jason en algún momento, no puede eliminar el disco también si ya ha eliminado la máquina virtual correspondiente. En mi experiencia parece ser solo un problema de tiempo. Intenta esperar unos minutos y deberías poder eliminarlo.
Davide Icardi
44
He esperado 3 meses ... ¿debo seguir esperando el problema del tiempo?
Dawesi
Puede encontrar la imagen del disco VHD en Examinar (en el nuevo portal)
Stan Bashtavenko
8

Vaya a máquinas virtuales, luego haga clic en discos. Marque el disco y elija eliminar disco en la parte inferior. Ahora puede elegir si desea conservar o eliminar el vhd correspondiente.

Primero es importante eliminar el disco mediante máquinas virtuales para no eliminarlo mediante almacenamiento.

Philluxx
fuente
1
Creo que muchos de ustedes tienen RTFM y no la pregunta. Estos son vhd bloqueados arrendados huérfanos ... Tengo el mismo problema, donde no tengo NADA en Azure pero dos VHD y no se eliminarán ya que están arrendados y bloqueados (lo cual es un error, ya que no hay nada para arrendarlos)
Dawesi
5

Puede usar Iaas Management Studio : rompa el contrato de arrendamiento, elimine el blob y luego elimine la imagen huérfana.

Nicolas Dorier
fuente
5

En mi caso, el almacenamiento no se pudo eliminar debido a vmimages.

Use el comando power shell

get-azurevmimage | Where-Object -Property Category -in -Value "user"

para enumerar todas las imágenes Para eliminar TODAS SUS IMÁGENES use el siguiente script:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }
Andreas Stolle
fuente
También puede eliminar imágenes de la pestaña Imágenes (dentro de la sección de máquinas virtuales) en el Portal de administración de Azure clásico.
Wagner Bertolini Junior
4

Como FM ya ha dicho; Hay un escenario en el que al eliminar una VM, el disco todavía se muestra como adjunto a la VM a pesar de que la VM se ha eliminado.

Para mí esto sucedió porque tenía un límite de gasto establecido. Cuando se alcanza el límite de gasto, se deshabilitan sus servicios. Cualquier puerta de enlace VPN que haya creado y las máquinas virtuales se eliminarán. Luego, para colmo, los discos conectados a las máquinas virtuales eliminadas todavía piensan que están conectados :(

Encontré este blog que explica el problema y muestra cómo usar powershell para resolver.

Espero que esto ayude a otros usuarios.

Richard Weston
fuente
1
¡Excelente! su enlace me llevó a una herramienta que creó unos días después que le permite "liberar" su vhd: biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/…
Yannick Smits
0

A veces, a través del nuevo portal, eliminamos la cuenta de almacenamiento azul, pero no podemos eliminarla y aparece este error: "Error al eliminar la cuenta de almacenamiento 'jason1disks796'. Error: la cuenta de almacenamiento no se puede eliminar debido a que sus artefactos están en uso. "

Podemos usar PowerShell para enumerar todos los blobs VHD de la cuenta de almacenamiento ( módulo ARM ):

PS > Login-AzureRmAccount
PS > $RGName = "jason1"
PS > $SAName = "jason1disks796"
PS > $ConName = "vhds"
PS > $TempObj = New-Object -TypeName PSCustomObject
PS > $TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
PS > $TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
PS > $Keylist = Get-AzureRmStorageAccountKey -ResourceGroupName $RGName -StorageAccountName $SAName
PS > $Key = $Keylist[0].Value
PS > $Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
PS > Get-AzureStorageContainer -Context $ctx
CloudBlobContainer : Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer
Permission         : Microsoft.WindowsAzure.Storage.Blob.BlobContainerPermissions
PublicAccess       : Off
LastModified       : 1/19/2017 1:27:21 AM +00:00
ContinuationToken  :
Context            : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext
Name               : vhds
PS > $List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
PS > $List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }

BlobName              LeaseState
--------              ----------
SQL20170119092405.vhd     Leased

PS > Get-AzureStorageBlob -Blob * -Container $con -Context $ctx | Remove-AzureStorageBlob
PS > Remove-AzureRmStorageAccount -ResourceGroupName $RGname -Name $SAName

Si su cuenta de almacenamiento está en el módulo ASM , puede usar este script para eliminar la cuenta de almacenamiento:

Add-AzureAccount
$SAName = "jason1161"
$ConName = "vhds"
$TempObj = New-Object -TypeName PSCustomObject
$TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
$TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
$Keylist = Get-AzureStorageKey -StorageAccountName $SAName
$Key = $Keylist.primary
$Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
$List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
$List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }
PS > Get-AzureStorageBlob -Blob * -Container $con -Context $ctx | Remove-AzureStorageBlob
PS > Remove-AzureStorageAccount -Name $SAName

Además, hay otro escenario, no hay contenedor o blob en esta cuenta de almacenamiento ( una cuenta de almacenamiento vacía , no podemos encontrar blob o contenedor en esta cuenta de almacenamiento a través de PowerShell o portal), cuando usamos portal para eliminar la cuenta de almacenamiento , y el mensaje de error "Error al eliminar la cuenta de almacenamiento 'jason1disks796'. Error: la cuenta de almacenamiento no se puede eliminar debido a que sus artefactos están en uso ". En este escenario, podemos crear una nueva VM y especificar la cuenta de almacenamiento a la cuenta de almacenamiento problemática, luego eliminarla nuevamente.

Jason Ye
fuente
0

Verifique antes de eliminar su cuenta de almacenamiento; debe haber máquinas virtuales asociadas, discos e imágenes para cada cuenta de almacenamiento que haya creado. Ir al portal de Azure

Seleccione la pestaña Máquinas virtuales en el panel izquierdo Haga clic en Imágenes y discos de instancias

Tenga en cuenta que las máquinas virtuales individuales tienen sus discos adjuntos que se muestran en el área Discos. Antes de eliminar una máquina virtual, elimine primero los discos asociados y elimine la máquina virtual que tiene el disco en segundo lugar. Luego elimine la cuenta de almacenamiento al final. También busque Red en el mismo panel lateral izquierdo si hay alguno asociado con la cuenta que desea eliminar.

En el nuevo portal de Azure actualizado, se modifican muchas de las páginas de configuración mencionadas anteriormente. Puede ver las opciones de Imágenes y Discos en el panel "Todos los recursos". En la versión más reciente de Azure Portal, puede identificar fácilmente las máquinas virtuales, sus discos asociados y su cuenta de almacenamiento claramente en sus paneles verticales adyacentes, todo en una página con diferentes imágenes de iconos.

vembutech
fuente
0

Para aquellos que confían en GUI para administrar Azure y no tienen idea de usar PowerShell o hacer las otras respuestas, ahora puede eliminar la cuenta de almacenamiento atascada marcando "Eliminar imágenes no adjuntas" al intentar eliminar el almacenamiento.

Eliminará automáticamente el almacenamiento sin mucha molestia.

Vylix
fuente
He hecho esto ahora, pero olvidé la redacción exacta de la casilla de verificación.
Vylix