ฉันจะลบบัญชีหน่วยเก็บข้อมูล Azure ที่มี blob เช่าได้อย่างไร


155

ฉันเล่นกับเครื่องเสมือน Windows Azure ที่ทนทาน ในที่สุดฉันก็ลบเครื่องเสมือน (สำเร็จ) และพยายามที่จะลบบัญชีการจัดเก็บข้อมูลที่เกี่ยวข้อง

การร้องขอให้ลบบัญชีที่เก็บข้อมูลล้มเหลว

บนพอร์ทัลตัวอย่าง (Manage.windowsazure.com) เมื่อฉันลบบัญชีที่จัดเก็บฉันได้รับข้อผิดพลาดนี้:

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.

ในพอร์ทัลก่อนหน้า (windows.azure.com) ฉันได้รับข้อผิดพลาดนี้:

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.

พยายามที่จะลบหยดตัวเอง (30GB VHD) บน Azure Storage Explorer ฉันได้รับข้อผิดพลาดนี้:

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

ดังนั้นการประเมินของฉันคือหยดนี้เช่า (โดยก่อนหน้านี้ตอนนี้ลบเครื่องเสมือน) และฉันไม่สามารถลบเว้นแต่ว่าฉันจะได้รับรหัสสัญญาเช่านี้

คำถามคือ: ฉันจะลบ blob นี้ได้อย่างไรและจากนั้นบัญชีการจัดเก็บ?

คำตอบ:


332

กุญแจสำคัญในการแก้ปัญหาคือข้อความที่ภาชนะมีสิ่งประดิษฐ์ดิสก์ที่ใช้งานและคำแนะนำในการลบออกจากพื้นที่เก็บข้อมูล

ขั้นตอนการลบอิมเมจดิสก์ออกจากที่เก็บ blob คือ:

  • ไปที่Windows Azure พอร์ทัลการจัดการ
  • คลิกที่เครื่องเสมือน
  • คลิกที่ดิสก์
  • คลิกที่ดิสก์
  • คลิกที่ Delete Disk

หลังจากนั้นบัญชีการจัดเก็บสามารถลบได้

หมายเหตุ:

  • สิ่งนี้ใช้ได้แม้ว่าคุณจะลบ Virtual Machine ทั้งหมดของคุณแล้วและมันแสดงเป็น 0; ยังคงมีสิ่งประดิษฐ์อยู่ภายใต้แท็บดิสก์
  • ดิสก์จะถูกแยกออกจาก VM ที่ถูกลบแบบอะซิงโครนัสอาจใช้เวลาสองสามนาทีหลังจากที่ VM ถูกลบสำหรับเขตข้อมูลนี้เพื่อล้างข้อมูล

ดูเพิ่มเติม: ไม่สามารถลบ VHD“ ขณะนี้มีการเช่าบน blob …”


หมายเหตุสำคัญหนึ่ง: ปุ่มลบทำงานไม่ถูกต้องกับ IE9 ฉันไม่สามารถติดตามสิ่งนี้กับ IE ได้ แต่ด้วย Chrome ฉันไม่มีปัญหา
Paul Keister

@PaulKeister มันเป็นรถใน Firefox 17.0.1 เช่นกัน ฉันต้องลองสองสามครั้ง
Justin Skiles

นอกจากความคิดเห็นของ @ DavideIcardi: ในกระทู้ในฟอรัม MSDNนี้มีการอธิบายว่าสัญญาเช่าหยดถูกปล่อยออกมาแบบอะซิงโครนัสและการดำเนินการนี้อาจใช้เวลาไม่เกิน 2 ชั่วโมง
edymtt

1
ฉันต้องไปที่พอร์ทัลเก่า> ที่เก็บข้อมูล> เลือกบัญชีที่เก็บจากรายการ> คลิกแท็บคอนเทนเนอร์ที่ด้านบน> คลิก vhds> เลือก blob เพื่อลบ ตอนนี้คุณสามารถลบบัญชีที่เก็บข้อมูลได้
chdev77

1
ditto @ chdev77 ฉันต้องไปที่พอร์ทัลเก่าเพื่อให้ดิสก์ปรากฏขึ้น ว้าวมันน่ารำคาญเหมือนนรก!
harristrader

16

น่าเสียดายที่คำตอบของเฟอร์นันโดไม่ได้ผลสำหรับฉันเนื่องจากพื้นที่เก็บข้อมูลเป็น "เด็กกำพร้า" เนื่องจากฉันลบ VM ก่อนที่จะลบที่เก็บข้อมูล ฉันไม่สามารถหาวิธีที่จะทำได้จากพอร์ทัลดังนั้นฉันจึงติดตั้งazure-cliและหลังจากการตรวจสอบสิทธิ์ใช้คำสั่งต่อไปนี้:

azure storage account delete <my-account>

สิ่งนี้ล้มเหลวและข้อความแสดงข้อผิดพลาดประกอบด้วยชื่อผู้ร้ายเช่น:

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

จากนั้นฉันก็ลบภาพที่ละเมิด

azure vm disk delete <my-image>

และพยายามลบที่เก็บข้อมูลอีกครั้งคราวนี้สำเร็จ

azure storage account delete <my-account>


2
มีปัญหาเดียวกันแน่นอน ฉันมีดิสก์และรูปภาพจำนวนมากที่คุณไม่สามารถลบในพอร์ทัลได้ ถ้าเพียงฉันได้พบคำตอบนี้สี่เดือนที่ผ่านมา!
James Wilson

12

น่าเสียดายที่มีกรณีที่ VM ถูกลบ แต่ดิสก์แสดง VM ที่แนบมากับ blob (30GB VHD) การตัดการลบ นอกจากนี้ยังมีกรณีของการใช้ Azure Storage Explorer ที่คุณพบ orfan แต่ให้เช่า VHD blob ที่ไม่สามารถลบได้และไม่มีการอ้างอิงบน Portal Preview


3
คำตอบของเขาไม่ถูกต้องในทุกสถานการณ์ ขณะนี้ฉันมี "ดิสก์" สาม (3) รายการที่อยู่ภายใต้หัวข้อ "เครื่องเสมือน -> ดิสก์" ที่ไม่สามารถลบได้ (ดังนั้นหยดนี้ไม่สามารถลบได้) ฉันไม่รู้ว่าจะกำจัดพวกเขาออกไปได้อย่างไรในทางเดียวที่ฉันรู้ในปัจจุบันคือใช้พอร์ทัล kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason

ตามที่ระบุไว้แล้วโดย @Jason บางครั้งคุณไม่สามารถลบดิสก์ได้หากคุณได้ลบเครื่องเสมือนที่สอดคล้องกันแล้ว จากประสบการณ์ของฉันดูเหมือนจะเป็นเพียงปัญหาเวลา ลองรอสักครู่และคุณควรจะสามารถลบได้
Davide Icardi

4
ฉันรอมา 3 เดือนแล้ว ... ฉันควรจะรอเรื่องการกำหนดเวลาต่อไปหรือไม่
Dawesi

คุณสามารถค้นหาดิสก์อิมเมจ VHD ภายใต้เรียกดู (ในพอร์ทัลใหม่)
Stan Bashtavenko

8

ไปที่เครื่องเสมือนจากนั้นคลิกที่ดิสก์ ทำเครื่องหมายแผ่นดิสก์และเลือกลบแผ่นดิสก์ที่ด้านล่าง ตอนนี้คุณสามารถเลือกได้ว่าต้องการเก็บหรือลบ vhd ที่เกี่ยวข้อง

สิ่งสำคัญอันดับแรกคือการลบดิสก์ผ่านเครื่องเสมือนไม่ต้องลบผ่านที่เก็บข้อมูล


1
ฉันคิดว่าคุณหลายคนมี RTFM ไม่ใช่คำถาม นี่คือกำพร้า vhd leased ล็อคเช่าของ ... ฉันมีปัญหาเดียวกันที่ฉันไม่มีอะไรใน Azure แต่สอง VHD และพวกเขาจะไม่ลบเมื่อพวกเขาจะเช่าและล็อค (ซึ่งเป็นข้อผิดพลาดเนื่องจากไม่มีอะไรให้เช่าพวกเขา)
Dawesi


5

ในกรณีของฉันไม่สามารถลบที่เก็บได้เนื่องจาก vmimages

ใช้คำสั่ง power shell

get-azurevmimage | จุดที่วัตถุหมวดหมู่ทรัพย์สิน - ใน - ค่า "ผู้ใช้"

เพื่อแสดงภาพทั้งหมดในการลบภาพทั้งหมดที่คุณใช้ให้ใช้สคริปต์ต่อไปนี้:

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

คุณสามารถลบภาพจากแท็บรูปภาพ (ในส่วนเครื่องเสมือน) บน Classic Azure Management Portal ได้เช่นกัน
Wagner Bertolini Junior

4

ตามที่ FM ได้ระบุไว้แล้ว มีสถานการณ์ที่เมื่อลบ VM ดิสก์จะยังคงแสดงตามที่แนบมากับ VM แม้ว่า VM จะถูกลบไปแล้ว

สำหรับฉันสิ่งนี้เกิดขึ้นเพราะฉันมีชุดวงเงินการใช้จ่าย เมื่อถึงขีด จำกัด การใช้จ่ายบริการของคุณจะถูกปิดใช้งาน VPN เกตเวย์ใด ๆ ที่คุณสร้างขึ้นและ VMs จะถูกลบ จากนั้นไปด้านบนปิดดิสก์ที่แนบมากับ VMs ที่ถูกลบยังคงคิดว่าพวกเขาจะแนบ :(

ฉันพบบล็อกนี้ที่อธิบายถึงปัญหาและแสดงวิธีการใช้ PowerShell เพื่อแก้ไขปัญหา

หวังว่านี่จะช่วยผู้ใช้รายอื่น


1
ที่ดี! ลิงก์ของคุณนำฉันมาที่เครื่องมือที่เขาสร้างขึ้นในไม่กี่วันต่อมาซึ่งจะช่วยให้คุณ "ปลดเปลื้อง" vhd ของคุณ: biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/…
Yannick Smits

0

บางครั้งเราผ่านพอร์ทัลใหม่เพื่อลบบัญชีที่เก็บข้อมูลสีฟ้า แต่เราไม่สามารถลบได้และได้รับข้อผิดพลาดนี้:” ไม่สามารถลบบัญชีที่เก็บข้อมูล 'jason1disks796' ข้อผิดพลาด: ไม่สามารถลบบัญชีที่เก็บข้อมูลได้เนื่องจากมีการใช้งานสิ่งประดิษฐ์อยู่

เราสามารถใช้ PowerShell เพื่อแสดงรายการ VHD blobs ทั้งหมดของบัญชีการจัดเก็บ ( โมดูล 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

หากบัญชีที่เก็บข้อมูลของคุณอยู่ในโมดูล ASMคุณสามารถใช้สคริปต์นี้เพื่อลบบัญชีที่เก็บข้อมูล:

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

นอกจากนี้ยังมีสถานการณ์อื่นที่ไม่มีคอนเทนเนอร์หรือ Blob ในบัญชีที่เก็บข้อมูลนี้ (บัญชีที่เก็บข้อมูลว่างเราไม่พบ Blob หรือคอนเทนเนอร์ในบัญชีที่เก็บข้อมูลนี้ผ่าน PowerShell หรือพอร์ทัล) เมื่อเราใช้พอร์ทัลเพื่อลบบัญชีที่เก็บข้อมูล และข้อความแสดงข้อผิดพลาด” ไม่สามารถลบบัญชีที่เก็บข้อมูล 'jason1disks796' ข้อผิดพลาด: ไม่สามารถลบบัญชีที่เก็บข้อมูลได้เนื่องจากมีการใช้งานสิ่งประดิษฐ์อยู่ " ในสถานการณ์นี้เราสามารถสร้าง VM ใหม่และระบุบัญชีการจัดเก็บไปยังบัญชีการจัดเก็บข้อมูลที่มีปัญหาจากนั้นลบอีกครั้ง


0

ตรวจสอบก่อนที่จะลบบัญชีที่เก็บข้อมูลของคุณ จะต้องมีเครื่องเสมือนที่เกี่ยวข้องดิสก์และรูปภาพสำหรับบัญชีที่จัดเก็บแต่ละบัญชีที่คุณสร้าง ไปที่พอร์ทัล Azure

เลือกแท็บเครื่องเสมือนที่บานหน้าต่างด้านซ้ายคลิกที่อินสแตนซ์ภาพและดิสก์

โปรดทราบว่าเครื่องเสมือนส่วนบุคคลมีดิสก์ที่แนบซึ่งแสดงบนพื้นที่ดิสก์ก่อนที่จะลบเครื่องเสมือนลบดิสก์ที่เกี่ยวข้องก่อนและลบเครื่องเสมือนมีดิสก์ที่สองแล้วลบบัญชีหน่วยเก็บข้อมูลล่าสุด มองหาเครือข่ายในบานหน้าต่างด้านซ้ายมือเดียวกันหากมีสิ่งใดที่เกี่ยวข้องกับบัญชีที่คุณต้องการลบ

ในพอร์ทัล Azure ที่อัปเดตใหม่หน้ากำหนดค่าที่ระบุไว้ด้านบนหลายหน้าจะเปลี่ยนไป คุณสามารถเห็นตัวเลือกรูปภาพและดิสก์ในบานหน้าต่าง "ทรัพยากรทั้งหมด" ในเวอร์ชันใหม่ของพอร์ทัล Azure คุณสามารถระบุ VMs ดิสก์ที่เกี่ยวข้องและบัญชีสตอเรจของมันอย่างชัดเจนบนบานหน้าต่างแนวตั้งที่อยู่ติดกันทั้งหมดในหน้าเดียวด้วยไอคอนรูปต่าง ๆ


0

สำหรับผู้ที่ต้องพึ่งพา GUI ในการจัดการ Azure และไม่มีความคิดในการใช้ PowerShell หรือทำคำตอบอื่นตอนนี้คุณสามารถลบบัญชีที่เก็บข้อมูลที่ติดอยู่ได้โดยตรวจสอบ "ลบภาพที่ไม่ได้แนบ" เมื่อพยายามลบที่เก็บข้อมูล

มันจะลบการจัดเก็บโดยอัตโนมัติโดยไม่ต้องยุ่งยากมาก


ฉันทำสิ่งนี้ไปแล้ว แต่ลืมถ้อยคำที่แน่นอนของช่องทำเครื่องหมาย
Vylix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.