Comment supprimer un compte de stockage Azure contenant un objet blob loué?

155

Je jouais avec des machines virtuelles durables Windows Azure. En fin de compte, j'ai supprimé la machine virtuelle (avec succès) et essayé de supprimer le compte de stockage associé.

La demande de suppression du compte de stockage échoue.

Sur le portail de prévisualisation (manage.windowsazure.com), lorsque je supprime le compte de stockage, j'obtiens cette erreur:

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.

Sur le portail précédent (windows.azure.com), j'obtiens cette erreur:

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.

Essayer de supprimer l'objet blob lui-même (un disque dur virtuel de 30 Go) sur Azure Storage Explorer, j'obtiens cette erreur:

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

Donc, mon évaluation est que cet objet blob est loué (par la machine virtuelle précédente, maintenant supprimée) et je ne peux pas le supprimer à moins que je puisse obtenir cet ID de bail.

La question est: comment puis-je supprimer cet objet blob et, par conséquent, le compte de stockage?

Fernando Correia
la source

Réponses:

332

La clé de la solution est le message indiquant que le conteneur a un artefact de disque actif et le conseil de le supprimer du référentiel.

La procédure pour supprimer l'image disque du référentiel d'objets blob est la suivante:

Après cela, le compte de stockage peut être supprimé.

Remarques:

  • Cela s'applique même si vous avez déjà supprimé toutes vos machines virtuelles et qu'il affiche 0; il y aura toujours des artefacts sous l'onglet disques.
  • Les disques sont détachés d'une machine virtuelle supprimée de manière asynchrone, cela peut prendre quelques minutes après la suppression de la machine virtuelle pour que ce champ s'efface.

Voir aussi: Impossible de supprimer le VHD, "Il existe actuellement un bail sur l'objet blob…"

Fernando Correia
la source
Une remarque importante: le bouton de suppression ne fonctionne pas correctement avec IE9. Je n'ai pas pu suivre cela avec IE, mais avec Chrome, je n'ai eu aucun problème.
Paul Keister
@PaulKeister Cela bogue également sur Firefox 17.0.1. J'ai dû essayer plusieurs fois.
Justin Skiles
En plus du commentaire de @ DavideIcardi: sur ce fil du forum MSDN, il est expliqué que le bail blob est libéré de manière asynchrone et que cette opération pourrait durer au plus 2 heures.
edymtt
1
Je devais accéder à l'ancien portail> Stockage> choisir le compte de stockage dans la liste> cliquez sur l'onglet Conteneurs en haut> cliquez sur vhds> choisissez le blob à supprimer. Vous pouvez maintenant supprimer le compte de stockage.
chdev77
1
idem @ chdev77. J'ai également dû me rendre sur l'ancien portail pour que les disques apparaissent. Wow c'était ennuyeux comme l'enfer!
harristrader
16

Malheureusement, la réponse de Fernando n'a pas fonctionné pour moi, car le stockage était "orphelin", car j'ai supprimé sa VM avant de supprimer le stockage. Je n'ai pas trouvé de moyen de le faire à partir du portail, j'ai donc installé azure-cli et, après l'authentification, j'ai exécuté les commandes suivantes:

azure storage account delete <my-account>

Cela échoue et le message d'erreur contient le nom du coupable, par exemple:

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

Puis j'ai supprimé l'image incriminée

azure vm disk delete <my-image>

Et essayé à nouveau de supprimer le stockage, cette fois avec succès.

azure storage account delete <my-account>

dimide
la source
2
Avait exactement le même problème. J'avais un tas de disques et d'images orphelins que vous ne pouvez pas supprimer dans le portail. Si seulement j'avais trouvé ces réponses il y a quatre mois!
James Wilson
12

Malheureusement, il y a le cas où la machine virtuelle a été supprimée mais Disks montre la machine virtuelle attachée à l'objet blob (un disque dur virtuel de 30 Go) empêchant la suppression. Il existe également le cas de l'utilisation de l'explorateur de stockage Azure, vous trouvez un objet blob VHD orfan mais loué qui ne peut pas être supprimé et il n'y a aucune référence sur le portail de prévisualisation.

FM
la source
3
Sa réponse n'est pas correcte dans TOUTES les circonstances. J'ai actuellement trois (3) "Disques" qui sont répertoriés dans la section "Machines virtuelles -> Disques", qui ne peuvent pas être supprimés (par conséquent le blob ne peut pas être supprimé). Je ne sais pas comment m'en débarrasser car le seul moyen actuel que je connaisse est d'utiliser le portail. kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason
Comme déjà noté par @Jason, vous ne pouvez pas toujours supprimer le disque si vous avez déjà supprimé la machine virtuelle correspondante. D'après mon expérience, cela semble être juste un problème de timing. Essayez d'attendre quelques minutes et vous devriez pouvoir le supprimer.
Davide Icardi
4
J'ai attendu 3 mois ... dois-je continuer à attendre le problème de timing?
Dawesi
Vous pouvez trouver l'image disque VHD sous Parcourir (dans le nouveau portail)
Stan Bashtavenko
8

Accédez aux machines virtuelles, puis cliquez sur les disques. Marquez le disque et choisissez Supprimer le disque en bas. Vous pouvez maintenant choisir si vous souhaitez conserver ou supprimer le vhd correspondant.

Il est important de supprimer d'abord le disque via des machines virtuelles pour ne pas supprimer via le stockage.

Philluxx
la source
1
Je pense que beaucoup d'entre vous ont la RTFM et non la question. Ce sont des vhd verrouillés loués orphelins ... J'ai le même problème, où je n'ai RIEN sur Azure mais deux VHD et ils ne seront pas supprimés car ils sont loués et verrouillés (ce qui est un bogue, car il n'y a rien à louer)
Dawesi
5

Dans mon cas, le stockage n'a pas pu être supprimé à cause de vmimages.

Utiliser la commande Power Shell

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

pour lister toutes les images Pour supprimer TOUTES VOS IMAGES utilisez le script suivant:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }
Andreas Stolle
la source
Vous pouvez également supprimer des images de l'onglet Images (dans la section des machines virtuelles) sur Classic Azure Management Portal.
Wagner Bertolini Junior
4

Comme FM l'a déjà dit; il existe un scénario dans lequel lors de la suppression d'une machine virtuelle, le disque s'affiche toujours comme attaché à la machine virtuelle même si la machine virtuelle a été supprimée.

Pour moi, cela s'est produit parce que j'avais fixé une limite de dépenses. Lorsque la limite de dépenses est atteinte, vos services sont désactivés. Toutes les passerelles VPN que vous avez créées et les VM seront supprimées. Ensuite, pour couronner le tout, les disques attachés aux VM supprimées pensent toujours qu'ils sont attachés :(

J'ai trouvé ce blog qui explique le problème et montre comment utiliser PowerShell pour le résoudre.

J'espère que cela aide les autres utilisateurs.

Richard Weston
la source
1
génial! votre lien m'a amené à un outil qu'il a créé quelques jours plus tard et qui vous permet de "libérer" votre vhd: biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/…
Yannick Smits
0

Parfois, nous via le nouveau portail pour supprimer le compte de stockage azure, mais nous ne pouvons pas le supprimer et obtenir cette erreur: "Échec de la suppression du compte de stockage" jason1disks796 ". Erreur: le compte de stockage ne peut pas être supprimé en raison de l'utilisation de ses artefacts. "

Nous pouvons utiliser PowerShell pour répertorier tous les objets blob VHD du compte de stockage ( module 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 votre compte de stockage se trouve dans le module ASM , vous pouvez utiliser ce script pour supprimer le compte de stockage:

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

En outre, il existe un autre scénario, il n'y a aucun conteneur ou objet blob dans ce compte de stockage ( un compte de stockage vide , nous ne pouvons pas trouver l'objet blob ou le conteneur dans ce compte de stockage via PowerShell ou le portail), lorsque nous utilisons le portail pour supprimer le compte de stockage et le message d'erreur «Impossible de supprimer le compte de stockage 'jason1disks796'. Erreur: le compte de stockage ne peut pas être supprimé car ses artefacts sont en cours d'utilisation ». Dans ce scénario, nous pouvons créer une nouvelle machine virtuelle et spécifier le compte de stockage sur le compte de stockage problématique, puis le supprimer à nouveau.

Jason Ye
la source
0

Vérifiez avant de supprimer votre compte de stockage; il doit y avoir la ou les machines virtuelles, disques et images associés pour chaque compte de stockage que vous avez créé. Accédez au portail Azure

Sélectionnez l'onglet Machines virtuelles dans le volet gauche Cliquez sur Instances Images et disques

Notez que les machines virtuelles individuelles ont leurs disques attachés qui s'affichent dans la zone Disques.Avant de supprimer une machine virtuelle, supprimez d'abord les disques associés et supprimez la machine virtuelle a le disque en second, puis supprimez le compte de stockage en dernier. Recherchez également le réseau dans le même volet de gauche, le cas échéant, associé au compte que vous souhaitez supprimer.

Dans le nouveau portail Azure mis à jour, de nombreuses pages de configuration mentionnées ci-dessus sont modifiées. Vous pouvez voir les options Images et disques dans le volet "Toutes les ressources". Dans la version plus récente d'un portail Azure, vous pouvez facilement identifier les machines virtuelles, ses disques associés et son compte de stockage clairement sur ses volets verticaux adjacents, le tout sur une seule page avec différentes images d'icônes.

vembutech
la source
0

Pour ceux qui comptent sur l'interface graphique pour gérer Azure et qui n'ont aucune idée d'utiliser PowerShell ou de faire les autres réponses, vous pouvez maintenant supprimer le compte de stockage bloqué en cochant «Supprimer les images non associées» lors de la tentative de suppression du stockage.

Il supprimera automatiquement le stockage sans trop de tracas.

Vylix
la source
Je viens de le faire, mais j'ai oublié le libellé exact de la case à cocher.
Vylix