Come si elimina un account di archiviazione di Azure contenente un BLOB in leasing?


155

Stavo giocando con macchine virtuali durevoli di Windows Azure. Alla fine, ho eliminato la macchina virtuale (correttamente) e ho provato a eliminare l'account di archiviazione associato.

La richiesta di eliminare l'account di archiviazione non riesce.

Sul portale di anteprima (manage.windowsazure.com) quando elimino l'account di archiviazione ottengo questo errore:

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.

Sul portale precedente (windows.azure.com) viene visualizzato questo errore:

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.

Nel tentativo di eliminare il BLOB stesso (un disco rigido virtuale da 30 GB) in Azure Storage Explorer, viene visualizzato questo errore:

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

Quindi la mia valutazione è che questo BLOB è stato noleggiato (dalla precedente macchina virtuale ora eliminata) e non posso eliminarlo a meno che non riesca a ottenere questo ID contratto di locazione.

La domanda è: come posso eliminare questo BLOB e, di conseguenza, l'account di archiviazione?

Risposte:


332

La chiave della soluzione è il messaggio che il contenitore ha un artefatto del disco attivo e il consiglio di rimuoverlo dal repository.

La procedura per rimuovere l'immagine del disco dal repository BLOB è:

Successivamente, l'account di archiviazione può essere eliminato.

Appunti:

  • Questo vale anche se hai già eliminato tutte le tue macchine virtuali e mostra 0; ci saranno ancora artefatti nella scheda dei dischi.
  • I dischi vengono scollegati da una VM eliminata in modo asincrono, potrebbero essere necessari alcuni minuti dopo l'eliminazione della VM per la cancellazione di questo campo.

Vedi anche: Impossibile eliminare il disco rigido virtuale, "Al momento è presente un contratto di locazione sul BLOB ..."


Una nota importante: il pulsante Elimina non funziona correttamente con IE9. Non ho potuto seguirlo con IE, ma con Chrome non ho avuto problemi.
Paul Keister,

@PaulKeister È buggy anche su Firefox 17.0.1. Ho dovuto provare alcune volte.
Justin Skiles,

Oltre al commento di @ DavideIcardi: su questo thread sul forum MSDN viene spiegato che il contratto di locazione BLOB viene rilasciato in modo asincrono e questa operazione potrebbe durare al massimo 2 ore.
edymtt,

1
Ho dovuto accedere al vecchio portale> Archiviazione> selezionare l'account di archiviazione dall'elenco> fare clic sulla scheda Contenitori in alto> fare clic su VHD> scegliere il BLOB da eliminare. Ora puoi eliminare l'account di archiviazione.
chdev77,

1
idem @ chdev77. Ho anche dovuto andare al vecchio portale per visualizzare i dischi. Caspita che era fastidioso da morire!
harristrader,

16

Sfortunatamente, la risposta di Fernando non ha funzionato per me, poiché l'archiviazione era "orfana", poiché ho eliminato la sua macchina virtuale prima di eliminare l'archiviazione. Non sono riuscito a trovare un modo per farlo dal portale, quindi ho installato azure-cli e dopo l'autenticazione eseguito i seguenti comandi:

azure storage account delete <my-account>

Ciò non riesce e il messaggio di errore contiene il nome del colpevole, ad esempio:

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

Quindi ho eliminato l'immagine offensiva

azure vm disk delete <my-image>

E riprovato a eliminare l'archiviazione, questa volta correttamente.

azure storage account delete <my-account>


2
Aveva lo stesso identico problema. Avevo un sacco di dischi e immagini orfani che non è possibile eliminare nel portale. Se solo avessi trovato questa risposta quattro mesi fa!
James Wilson,

12

Sfortunatamente c'è il caso in cui la VM è stata eliminata ma Disks mostra la VM collegata al BLOB (un disco rigido virtuale da 30 GB) che preclude la cancellazione. Inoltre, nel caso di Azure Storage Explorer, trovi un BLOB orfan ma in affitto VHD che non può essere eliminato e non c'è alcun riferimento nel portale di anteprima.


3
La sua risposta non è corretta in TUTTE le circostanze. Al momento ho tre (3) "Dischi" elencati nella sezione "Macchine virtuali -> Dischi", che non possono essere eliminati (quindi il BLOB non può essere eliminato). Non ho idea di come sbarazzarmi di loro come l'unico modo attuale che conosco è quello di utilizzare il portale. kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason

Come già notato da @Jason qualche volta non è possibile eliminare il disco anche se è già stata eliminata la macchina virtuale corrispondente. Nella mia esperienza sembra essere solo un problema di tempistica. Prova ad attendere qualche minuto e dovresti essere in grado di eliminarlo.
Davide Icardi,

4
Ho aspettato 3 mesi ... dovrei continuare ad aspettare il problema dei tempi?
Dawesi,

Puoi trovare l'immagine del disco VHD in Sfoglia (nel nuovo portale)
Stan Bashtavenko

8

Vai a macchine virtuali, quindi fai clic su dischi. Contrassegna il disco e scegli Elimina disco in basso. Ora puoi scegliere se vuoi conservare o eliminare il VHD corrispondente.

È importante innanzitutto eliminare il disco tramite macchine virtuali per non eliminare tramite l'archiviazione.


1
Penso che molti di voi abbiano RTFM e non la domanda. Si tratta di vhd bloccati in affitto orfani ... Ho lo stesso problema, in cui non ho NULLA su Azure ma due dischi rigidi virtuali e non verranno eliminati in quanto vengono noleggiati e bloccati (il che è un bug, in quanto non vi è nulla in cui noleggiarli)
Dawesi,


5

Nel mio caso, l'archiviazione non può essere eliminata a causa di vmimages.

Usa il comando power shell

get-azurevmimage | Where-Object -Property Categoria -in -Value "utente"

per elencare tutte le immagini Per eliminare TUTTE LE IMMAGINI, utilizzare il seguente script:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }

Puoi eliminare le immagini dalla scheda Immagini (all'interno della sezione macchine virtuali) anche sul portale di gestione di Azure classico.
Wagner Bertolini Junior,

4

Come FM ha già affermato; c'è uno scenario in cui quando si elimina una VM il disco mostra ancora come collegato alla VM anche se la VM è stata eliminata.

Per me questo è successo perché avevo fissato un limite di spesa. Quando viene raggiunto il limite di spesa, i servizi vengono disabilitati. Eventuali gateway VPN creati e macchine virtuali verranno eliminati. Quindi, per finire, i dischi collegati alle macchine virtuali eliminate pensano ancora che siano collegati :(

Ho trovato questo blog che spiega il problema e mostra come utilizzare PowerShell per risolvere.

Spero che questo aiuti altri utenti.


1
grande! il tuo link mi ha portato a uno strumento che ha creato alcuni giorni dopo, che ti consente di "scatenare" il tuo disco rigido virtuale
Yannick Smits

0

A volte, tramite il nuovo portale, eliminiamo l'account di archiviazione azzurro, ma non possiamo eliminarlo e viene visualizzato questo errore: "Impossibile eliminare l'account di archiviazione 'jason1disks796'. Errore: l'account di archiviazione non può essere eliminato a causa dei suoi artefatti in uso.

Possiamo usare PowerShell per elencare tutti i BLOB VHD dell'account di archiviazione ( modulo 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

Se il tuo account di archiviazione si trova nel modulo ASM , puoi utilizzare questo script per rimuovere l'account di archiviazione:

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

Inoltre, esiste un altro scenario, non vi è alcun contenitore o BLOB in questo account di archiviazione ( un account di archiviazione vuoto , non è possibile trovare BLOB o contenitore in questo account di archiviazione tramite PowerShell o portale), quando si utilizza il portale per eliminare l'account di archiviazione e il messaggio di errore "Impossibile eliminare l'account di archiviazione" jason1disks796 ". Errore: l'account di archiviazione non può essere eliminato a causa dei suoi artefatti in uso ”. In questo scenario è possibile creare una nuova macchina virtuale e specificare l'account di archiviazione nell'account di archiviazione problematico, quindi eliminarlo di nuovo.


0

Controlla prima di cancellare il tuo account di archiviazione; ci devono essere le macchine virtuali associate, i dischi e le immagini per ciascun account di archiviazione creato. Vai al portale di Azure

Selezionare la scheda Macchine virtuali nel riquadro a sinistra Fare clic su Immagini e dischi delle istanze

Si noti che alle singole macchine virtuali sono associati dischi che vengono visualizzati nell'area Dischi. Prima di eliminare una macchina virtuale, eliminare prima i dischi associati ed eliminare la macchina virtuale con il secondo disco, quindi eliminare l'ultimo account di archiviazione. Cerca anche Network nello stesso riquadro di sinistra, se presente associato all'account che desideri eliminare.

Nel nuovo portale di Azure aggiornato, molte delle pagine di configurazione sopra indicate vengono modificate. Puoi visualizzare le opzioni Immagini e Dischi nel riquadro "Tutte le risorse". Nella versione più recente di un portale di Azure, è possibile identificare facilmente le macchine virtuali i dischi associati e l'account di archiviazione chiaramente sui riquadri verticali adiacenti in un'unica pagina con immagini di icone diverse.


0

Per coloro che si affidano alla GUI per gestire Azure e non hanno idea di usare PowerShell o fare le altre risposte, ora è possibile eliminare l'account di archiviazione bloccato selezionando "Elimina immagini non collegate" quando si tenta di eliminare l'archiviazione.

Eliminerà automaticamente la memoria senza troppi problemi.


L'ho fatto proprio ora, ma ho dimenticato l'esatta formulazione della casella di controllo.
Vylix,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.