Làm cách nào để xóa tài khoản lưu trữ Azure có chứa blob thuê?


155

Tôi đã chơi với máy ảo Windows Azure bền. Cuối cùng, tôi đã xóa máy ảo (thành công) và cố gắng xóa tài khoản lưu trữ liên quan.

Yêu cầu xóa tài khoản lưu trữ không thành công.

Trên Cổng thông tin xem trước (Manage.windowsazure.com) khi tôi xóa tài khoản lưu trữ, tôi gặp lỗi này:

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.

Trên cổng thông tin trước đó (windows.azure.com) tôi gặp lỗi này:

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.

Khi cố gắng tự xóa blob (30 GB VHD) trên Azure Storage Explorer, tôi gặp lỗi này:

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

Vì vậy, đánh giá của tôi là blob này được cho thuê (bởi máy ảo trước đây đã bị xóa) và tôi không thể xóa nó trừ khi tôi có thể nhận được ID thuê này.

Câu hỏi là: làm thế nào tôi có thể xóa blob này và, do đó, tài khoản lưu trữ?

Câu trả lời:


332

Chìa khóa cho giải pháp là thông báo rằng thùng chứa có tạo tác đĩa hoạt động và lời khuyên để loại bỏ nó khỏi kho lưu trữ.

Quy trình xóa ảnh đĩa khỏi kho lưu trữ blob là:

Sau đó, tài khoản lưu trữ có thể bị xóa.

Ghi chú:

  • Điều này áp dụng ngay cả khi bạn đã xóa tất cả các Máy ảo của mình và nó hiển thị 0; vẫn sẽ có các tạo tác dưới tab đĩa.
  • Các đĩa được tách ra khỏi VM bị xóa không đồng bộ, có thể mất vài phút sau khi VM bị xóa để trường này xóa.

Xem thêm: Không thể xóa VHD, Hiện tại hiện đang có hợp đồng thuê trên blob


Một lưu ý quan trọng: nút xóa không hoạt động đúng với IE9. Tôi không thể làm theo điều này với IE, nhưng với Chrome tôi không gặp vấn đề gì.
Paul Keister

@PaulKeister Nó cũng có lỗi trên Firefox 17.0.1. Tôi đã phải thử một vài lần.
Justin Skiles

Ngoài nhận xét của @ DavideIcardi: về chủ đề này trên diễn đàn MSDN , giải thích rằng hợp đồng thuê blob được phát hành không đồng bộ và hoạt động này có thể kéo dài tối đa 2 giờ.
edymtt

1
Tôi đã phải truy cập vào cổng thông tin cũ> Lưu trữ> chọn tài khoản lưu trữ từ danh sách> nhấp vào tab Container ở trên cùng> nhấp vào vhds> chọn blob để xóa. Bây giờ bạn có thể xóa tài khoản lưu trữ.
chdev77

1
ditto @ chdev77. Tôi cũng đã phải đi đến cổng thông tin cũ để các đĩa hiển thị. Wow thật là khó chịu!
harristrader 15/03/2016

16

Thật không may, câu trả lời của Fernando không phù hợp với tôi, vì bộ lưu trữ là "mồ côi", vì tôi đã xóa VM của nó trước khi xóa bộ lưu trữ. Tôi không thể tìm ra cách để làm điều đó từ cổng thông tin vì vậy tôi đã cài đặt azure-cli và sau khi xác thực đã chạy các lệnh sau:

azure storage account delete <my-account>

Điều này không thành công và thông báo lỗi chứa tên thủ phạm, ví dụ:

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

Sau đó tôi xóa hình ảnh vi phạm

azure vm disk delete <my-image>

Và đã thử một lần nữa để xóa bộ nhớ, lần này thành công.

azure storage account delete <my-account>


2
Có cùng một vấn đề chính xác. Tôi đã có một loạt các đĩa và hình ảnh mồ côi mà bạn không thể xóa trong cổng thông tin. Giá như tôi đã tìm thấy câu trả lời này bốn tháng trước!
James Wilson

12

Thật không may, có trường hợp VM đã bị xóa nhưng Disks cho thấy VM được gắn vào blob (VHD 30 GB) không bao gồm việc xóa. Ngoài ra, có trường hợp sử dụng Azure Storage Explorer, bạn tìm thấy một blob VHD nhưng được thuê mà không thể xóa và không có tài liệu tham khảo trên Cổng thông tin xem trước.


3
Câu trả lời của ông không đúng trong TẤT CẢ hoàn cảnh. Tôi hiện có ba (3) "Đĩa" được liệt kê trong phần "Máy ảo -> Đĩa", không thể xóa được (do đó không thể xóa blob). Tôi không biết làm thế nào để thoát khỏi chúng vì cách duy nhất hiện tại tôi biết là sử dụng cổng thông tin. k Dieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason

Như đã lưu ý bởi @Jason đôi khi bạn không thể xóa đĩa nếu bạn đã xóa máy ảo tương ứng. Theo kinh nghiệm của tôi dường như chỉ là một vấn đề thời gian. Hãy cố gắng chờ vài phút và bạn sẽ có thể xóa nó.
Davide Icardi

4
Tôi đã đợi 3 tháng ... tôi có nên tiếp tục chờ đợi vấn đề thời gian không?
Dawesi

Bạn có thể tìm thấy hình ảnh đĩa VHD trong Duyệt (trong cổng thông tin mới)
Stan Bashtavenko

8

Đi đến máy ảo, sau đó bấm vào đĩa. Đánh dấu đĩa và chọn xóa đĩa ở phía dưới. Bây giờ bạn có thể chọn nếu bạn muốn giữ hoặc xóa vhd tương ứng.

Điều quan trọng trước tiên là xóa đĩa qua máy ảo không xóa qua bộ nhớ.


1
Tôi nghĩ rằng nhiều bạn có RTFM và không phải là câu hỏi. Đây là những đứa trẻ mồ côi bị khóa vhd ... Tôi có một vấn đề tương tự, ở đó tôi KHÔNG CÓ trên Azure nhưng hai VHD và họ sẽ không xóa vì chúng được cho thuê và khóa (đó là một lỗi, vì không có gì để cho thuê)
Dawesi


5

Trong trường hợp của tôi, lưu trữ không thể bị xóa vì vmimages.

Sử dụng lệnh shell power

get-azurevmimage | Trường hợp-Object -Property -in -Value "user"

để liệt kê tất cả các hình ảnh Để xóa TẤT CẢ CÁC HÌNH ẢNH BẠN sử dụng tập lệnh sau:

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

Bạn cũng có thể xóa hình ảnh khỏi tab Hình ảnh (bên trong phần máy ảo) trên Cổng thông tin quản lý Azure cổ điển.
Wagner Bertolini Junior

4

Như FM đã nêu; có một kịch bản trong đó khi xóa VM, đĩa vẫn hiển thị như được gắn vào VM mặc dù VM đã bị xóa.

Đối với tôi điều này xảy ra bởi vì tôi đã đặt ra giới hạn chi tiêu. Khi giới hạn chi tiêu bị tấn công, dịch vụ của bạn sẽ bị vô hiệu hóa. Bất kỳ cổng VPN nào bạn đã tạo và VM sẽ bị xóa. Sau đó, trên hết các đĩa được gắn vào các máy ảo đã xóa vẫn nghĩ rằng chúng được đính kèm :(

Tôi đã tìm thấy blog này giải thích vấn đề và chỉ ra cách sử dụng powershell để giải quyết.

Hy vọng điều này sẽ giúp người dùng khác.


1
tuyệt quá! liên kết của bạn đưa tôi đến một công cụ mà anh ấy đã tạo ra một vài ngày sau đó cho phép bạn "giải phóng" vhd của bạn: biztalkgurus.com/biztalk_server/biztalk_bloss/b/biztalk/archive/iêu
Yannick Smits

0

Đôi khi chúng tôi thông qua cổng thông tin mới để xóa tài khoản lưu trữ azure, nhưng chúng tôi không thể xóa nó và gặp lỗi này: Không thể xóa tài khoản lưu trữ 'jason1disks796'. Lỗi: Tài khoản lưu trữ không thể bị xóa do các thành phần của nó đang được sử dụng. Cúc

Chúng tôi có thể sử dụng PowerShell để liệt kê tất cả các đốm màu VHD của tài khoản lưu trữ ( mô-đun 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

Nếu tài khoản lưu trữ của bạn nằm trong mô-đun ASM , bạn có thể sử dụng tập lệnh này để xóa tài khoản lưu trữ:

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

Ngoài ra, có một kịch bản khác, không có container hoặc blob trong tài khoản lưu trữ này (tài khoản lưu trữ trống , chúng tôi không thể tìm thấy blob hoặc container trong tài khoản lưu trữ này qua PowerShell hoặc cổng thông tin), khi chúng tôi sử dụng cổng thông tin để xóa tài khoản lưu trữ và thông báo lỗi không thể xóa tài khoản lưu trữ 'jason1disks796'. Lỗi: Tài khoản lưu trữ không thể bị xóa do các thành phần của nó đang được sử dụng. Trong trường hợp này, chúng ta có thể tạo một VM mới và chỉ định tài khoản lưu trữ cho Tài khoản lưu trữ có vấn đề, sau đó xóa lại.


0

Hãy kiểm tra trước khi xóa tài khoản lưu trữ của bạn; phải có (các) máy ảo, Đĩa và Hình ảnh liên quan cho mỗi tài khoản lưu trữ bạn đã tạo. Truy cập cổng thông tin Azure

Chọn tab Máy ảo trên khung bên trái Nhấp vào Trường hợp Hình ảnh và Đĩa

Lưu ý rằng, các máy ảo riêng lẻ có các đĩa đính kèm hiển thị trên khu vực Đĩa. Trước khi xóa máy ảo, trước tiên hãy xóa các đĩa liên quan và xóa máy ảo có đĩa thứ hai. Sau đó xóa tài khoản lưu trữ lần cuối. Ngoài ra, hãy chú ý đến Mạng trong cùng phía bên trái nếu có liên kết với tài khoản bạn muốn xóa.

Trong cổng thông tin Azure được cập nhật mới, nhiều trang cấu hình đã nêu ở trên được thay đổi. Bạn có thể thấy các tùy chọn Hình ảnh và Đĩa trong ngăn "Tất cả tài nguyên". Trong phiên bản mới hơn của cổng thông tin Azure, bạn có thể dễ dàng xác định các VM được liên kết và tài khoản lưu trữ của nó rõ ràng trên các ô dọc liền kề của nó trong một trang với các hình ảnh biểu tượng khác nhau.


0

Đối với những người dựa vào GUI để quản lý Azure và không có ý tưởng sử dụng PowerShell hoặc thực hiện các câu trả lời khác, giờ đây bạn có thể xóa tài khoản lưu trữ bị kẹt bằng cách chọn "Xóa hình ảnh không được lưu trữ" khi cố gắng xóa bộ nhớ.

Nó sẽ tự động xóa bộ nhớ mà không gặp nhiều rắc rối.


Tôi vừa mới làm điều này, nhưng quên từ ngữ chính xác của hộp kiểm.
Vylix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.