Jak usunąć konto magazynu platformy Azure zawierające wydzierżawiony obiekt BLOB?

155

Bawiłem się wytrzymałymi maszynami wirtualnymi Windows Azure. W końcu usunąłem maszynę wirtualną (pomyślnie) i próbowałem usunąć skojarzone z nią konto magazynu.

Żądanie usunięcia konta magazynu kończy się niepowodzeniem.

W portalu podglądu (manage.windowsazure.com) po usunięciu konta magazynu pojawia się ten błąd:

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.

Na poprzednim portalu (windows.azure.com) pojawia się ten błąd:

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.

Próbując usunąć sam obiekt BLOB (30 GB VHD) w Eksploratorze usługi Azure Storage Otrzymuję ten błąd:

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

Więc moja ocena jest taka, że ​​ten obiekt BLOB jest dzierżawiony (przez poprzednią, teraz usuniętą maszynę wirtualną) i nie mogę go usunąć, chyba że mogę uzyskać ten identyfikator dzierżawy.

Pytanie brzmi: jak mogę usunąć ten obiekt BLOB, a tym samym konto magazynu?

Fernando Correia
źródło

Odpowiedzi:

332

Kluczem do rozwiązania jest komunikat, że kontener ma aktywny artefakt dysku i rada, aby usunąć go z repozytorium.

Procedura usuwania obrazu dysku z repozytorium obiektów blob jest następująca:

Następnie konto magazynu można usunąć.

Uwagi:

  • Ma to zastosowanie, nawet jeśli usunąłeś już wszystkie swoje maszyny wirtualne i pokazuje 0; nadal będą artefakty na karcie dyski.
  • Dyski są odłączane od usuniętej maszyny wirtualnej asynchronicznie, wyczyszczenie tego pola może zająć kilka minut po usunięciu maszyny wirtualnej.

Zobacz także: Nie można usunąć VHD „Nie ma obecnie dzierżawi na blob ...”

Fernando Correia
źródło
Jedna ważna uwaga: przycisk usuwania nie działa poprawnie z IE9. Nie mogłem tego śledzić w IE, ale z Chrome nie miałem żadnych problemów.
Paul Keister
@PaulKeister To błędne również w przeglądarce Firefox 17.0.1. Musiałem spróbować kilka razy.
Justin Skiles
Oprócz komentarza @ DavideIcardi: w tym wątku na forum MSDN jest wyjaśnione, że dzierżawa blobów jest zwalniana asynchronicznie i ta operacja może trwać maksymalnie 2 godziny.
edymtt
1
Musiałem przejść do starego portalu> Magazyn> wybierz konto magazynu z listy> kliknij kartę Kontenery u góry> kliknij vhds> wybierz obiekt blob do usunięcia. Teraz możesz usunąć konto magazynu.
chdev77
1
jak wyżej @ chdev77. Musiałem też przejść do starego portalu, aby dyski się pojawiły. Wow, to było irytujące jak cholera!
harristrader
16

Niestety, odpowiedź Fernando nie zadziałała dla mnie, ponieważ pamięć była „osierocona”, ponieważ usunąłem maszynę wirtualną przed usunięciem pamięci. Nie mogłem znaleźć sposobu na zrobienie tego z portalu, więc zainstalowałem azure-cli i po uwierzytelnieniu uruchomiłem następujące polecenia:

azure storage account delete <my-account>

To się nie udaje, a komunikat o błędzie zawiera nazwę sprawcy, np .:

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

Następnie usunąłem obraźliwy obraz

azure vm disk delete <my-image>

I ponownie spróbowałem usunąć magazyn, tym razem pomyślnie.

azure storage account delete <my-account>

słaby
źródło
2
Miałem dokładnie ten sam problem. Miałem kilka osieroconych dysków i obrazów, których nie można usunąć w portalu. Gdybym tylko znalazł te odpowiedzi cztery miesiące temu!
James Wilson
12

Niestety istnieje przypadek, w którym maszyna wirtualna została usunięta, ale Dyski pokazują maszynę wirtualną dołączoną do obiektu BLOB (dysk VHD o pojemności 30 GB), co wyklucza usunięcie. Istnieje również przypadek użycia Eksploratora usługi Azure Storage, w którym znajduje się orfan, ale dzierżawiony obiekt blob VHD, którego nie można usunąć i nie ma odniesienia w portalu wersji zapoznawczej.

FM
źródło
3
Jego odpowiedź nie jest poprawna we WSZYSTKICH okolicznościach. Obecnie mam trzy (3) „Dyski”, które są wymienione w sekcji „Maszyny wirtualne -> Dyski”, których nie można usunąć (stąd nie można usunąć obiektu BLOB). Nie mam pojęcia, jak się ich pozbyć, bo jedyny znany mi obecnie sposób to korzystanie z portalu. kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason
Jak już zauważył @Jason, czasami nie możesz usunąć dysku, również jeśli usunąłeś już odpowiednią maszynę wirtualną. Z mojego doświadczenia wynika, że ​​jest to tylko problem z synchronizacją. Spróbuj poczekać kilka minut, a powinieneś być w stanie go usunąć.
Davide Icardi,
4
Czekałem 3 miesiące ... czy powinienem nadal czekać na problem z synchronizacją?
Dawesi
Obraz dysku VHD można znaleźć w
zakładce
8

Przejdź do maszyn wirtualnych, a następnie kliknij dyski. Zaznacz płytę i wybierz usuń płytę na dole. Możesz teraz wybrać, czy chcesz zachować, czy usunąć odpowiedni dysk VHD.

Ważne jest, aby najpierw usunąć dysk za pośrednictwem maszyn wirtualnych, aby nie usuwać go z pamięci masowej.

Philluxx
źródło
1
Myślę, że wielu z was ma RTFM, a nie pytanie. Są to osierocone, wydzierżawione, zablokowane dyski vhd ... Mam ten sam problem, w którym nie mam NIC na Azure, ale dwa VHD i nie zostaną usunięte, ponieważ są wydzierżawione i zablokowane (co jest błędem, ponieważ nie ma ich do dzierżawy)
Dawesi
5

W moim przypadku nie można usunąć magazynu z powodu obrazów vmimages.

Użyj polecenia Power Shell

get-azurevmimage | Where-Object -Property Category -in -Value „user”

aby wyświetlić wszystkie obrazy Aby usunąć WSZYSTKIE OBRAZY, użyj następującego skryptu:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }
Andreas Stolle
źródło
Obrazy można usuwać na karcie Obrazy (w sekcji maszyn wirtualnych) również w klasycznym portalu zarządzania Azure.
Wagner Bertolini Junior
4

Jak już stwierdził FM; istnieje scenariusz, w którym podczas usuwania maszyny wirtualnej dysk nadal jest wyświetlany jako dołączony do maszyny wirtualnej, mimo że maszyna wirtualna została usunięta.

U mnie stało się tak, ponieważ miałem ustalony limit wydatków. Po osiągnięciu limitu wydatków Twoje usługi są wyłączone. Wszystkie utworzone bramy VPN i maszyny wirtualne zostaną usunięte. Następnie na dodatek dyski podłączone do usuniętych maszyn wirtualnych nadal myślą, że są podłączone :(

Znalazłem tego bloga, który wyjaśnia problem i pokazuje, jak rozwiązać problem za pomocą programu PowerShell.

Mam nadzieję, że to pomoże innym użytkownikom.

Richarda Westona
źródło
1
świetny! twój link doprowadził mnie do narzędzia, które stworzył kilka dni później, które pozwala ci "uwolnić" twój vhd: biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/…
Yannick Smits
0

Czasami za pośrednictwem nowego portalu usuwamy konto magazynu Azure, ale nie możemy go usunąć i uzyskać tego błędu: „Nie udało się usunąć konta magazynu„ jason1disks796 ”. Błąd: nie można usunąć konta magazynu, ponieważ jego artefakty są w użyciu.

Możemy użyć PowerShell, aby wyświetlić listę wszystkich obiektów blob VHD konta magazynu ( moduł 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

Jeśli Twoje konto magazynu znajduje się w module ASM , możesz użyć tego skryptu, aby usunąć konto magazynu:

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

Poza tym istnieje inny scenariusz, nie ma kontenera ani obiektu blob na tym koncie magazynu ( puste konto magazynu , nie możemy znaleźć obiektu blob lub kontenera na tym koncie magazynu za pośrednictwem programu PowerShell lub portalu), gdy używamy portalu do usuwania konta magazynu i komunikat o błędzie „Nie udało się usunąć konta magazynu„ jason1disks796 ”. Błąd: nie można usunąć konta magazynu, ponieważ jego artefakty są w użyciu ”. W tym scenariuszu możemy utworzyć nową maszynę wirtualną i określić konto magazynu do problematycznego konta magazynu, a następnie usunąć je ponownie.

Jason Ye
źródło
0

Sprawdź przed usunięciem konta magazynu; dla każdego utworzonego konta magazynu muszą istnieć skojarzone maszyny wirtualne, dyski i obrazy. Przejdź do witryny Azure Portal

Wybierz kartę Maszyny wirtualne w lewym okienku Kliknij Obrazy instancji i dyski

Zauważ, że poszczególne maszyny wirtualne mają dołączone dyski, które są wyświetlane w obszarze Dyski. Przed usunięciem maszyny wirtualnej najpierw usuń skojarzone dyski i usuń maszynę wirtualną, która ma drugi dysk, a następnie usuń konto magazynu na końcu. Zwróć także uwagę na Sieć w tym samym panelu po lewej stronie, jeśli jest powiązana z kontem, które chcesz usunąć.

W nowej, zaktualizowanej witrynie Azure Portal zmieniono wiele z wyżej wymienionych stron konfiguracji. Możesz zobaczyć opcje Obrazy i Dyski w panelu „Wszystkie zasoby”. W nowszej wersji portalu Azure można łatwo zidentyfikować maszyny wirtualne, z którymi są skojarzone dyski i konto magazynu, wyraźnie na sąsiednich panelach pionowych na jednej stronie z różnymi obrazami ikon.

vembutech
źródło
0

Dla tych, którzy polegają na graficznym interfejsie użytkownika do zarządzania platformą Azure i nie mają pojęcia o używaniu programu PowerShell lub wykonywaniu innych odpowiedzi, mogą teraz usunąć zablokowane konto magazynu, zaznaczając opcję „Usuń niedołączone obrazy” podczas próby usunięcia magazynu.

Automatycznie usunie pamięć bez większych kłopotów.

Vylix
źródło
Zrobiłem to przed chwilą, ale zapomniałem dokładnego brzmienia pola wyboru.
Vylix