Как удалить учетную запись хранения Azure, содержащую выделенный большой двоичный объект?

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.

Пытаясь удалить сам большой двоичный объект (виртуальный жесткий диск объемом 30 ГБ) в Azure Storage Explorer, я получаю эту ошибку:

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

Таким образом, моя оценка состоит в том, что этот BLOB-объект арендован (предыдущей, теперь удаленной виртуальной машиной), и я не могу удалить его, пока не получу этот ID аренды.

Вопрос: как я могу удалить этот BLOB-объект и, следовательно, учетную запись хранения?

Фернандо Коррейя
источник

Ответы:

332

Ключом к решению является сообщение о том, что в контейнере имеется активный дисковый артефакт, и рекомендации по его удалению из хранилища.

Процедура удаления образа диска из хранилища BLOB-объектов:

  • Перейдите на портал управления Windows Azure .
  • Нажмите на Виртуальные машины.
  • Нажмите на Диски.
  • Нажмите на диск.
  • Нажмите на Удалить диск.

После этого учетная запись хранения может быть удалена.

Ноты:

  • Это применимо, даже если вы уже удалили все свои виртуальные машины и показывает 0; все еще будут артефакты под вкладкой дисков.
  • Диски отсоединяются от удаленной виртуальной машины асинхронно, после удаления виртуальной машины может пройти несколько минут, чтобы очистить это поле.

См. Также: Невозможно удалить виртуальный жесткий диск, «В настоящий момент существует аренда объекта blob…»

Фернандо Коррейя
источник
Одно важное замечание: кнопка удаления не работает должным образом с IE9. Я не мог следить за этим с IE, но с Chrome у меня не было проблем.
Пол Кейстер
@PaulKeister В Firefox 17.0.1 он тоже глючит. Я должен был попробовать несколько раз.
Джастин Скилз
В дополнение к комментарию @ DavideIcardi: в этой теме на форуме MSDN объясняется, что аренда BLOB-объектов освобождается асинхронно, и эта операция может длиться не более 2 часов.
Edymtt
1
Мне пришлось перейти на старый портал> Хранилище> выбрать учетную запись хранения из списка> нажать вкладку «Контейнеры» вверху> нажать vhds> выбрать большой двоичный объект для удаления. Теперь вы можете удалить учетную запись хранения.
chdev77
1
то же самое @ chdev77. Мне также пришлось пойти на старый портал, чтобы диски появились. Вау, это было чертовски неприятно!
Harristrader
16

К сожалению, ответ Фернандо не сработал для меня, поскольку хранилище было «бесхозным», поскольку я удалил его виртуальную машину перед удалением хранилища. Я не смог найти способ сделать это с портала, поэтому я установил 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>

dimid
источник
2
Была точно такая же проблема. У меня была куча осиротевших дисков и образов, которые нельзя удалить на портале. Если бы я только нашел этот ответ четыре месяца назад!
Джеймс Уилсон
12

К сожалению, есть случай, когда ВМ была удалена, но Диски показывают ВМ, присоединенную к BLOB-объекту (30 ГБ VHD), исключая удаление. Кроме того, в случае использования обозревателя хранилища Azure вы обнаружите несуществующий, но арендованный большой двоичный объект VHD, который невозможно удалить, и на портале предварительного просмотра отсутствует ссылка.

FM
источник
3
Его ответ неверен при ВСЕХ обстоятельствах. В настоящее время у меня есть три (3) «Диска», которые перечислены в разделе «Виртуальные машины -> Диски», которые не могут быть удалены (следовательно, BLOB-объект не может быть удален). Я понятия не имею, как от них избавиться, так как единственный известный мне способ - использовать портал. kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Джейсон
Как уже отмечал @Jason, иногда вы не можете удалить диск, даже если вы уже удалили соответствующую виртуальную машину. По моему опыту, похоже, проблема времени. Попробуйте подождать несколько минут, и вы сможете удалить его.
Давиде Икарди
4
Я ждал 3 месяца ... я должен продолжать ждать вопроса о сроках?
Давеси
Вы можете найти образ VHD-диска в разделе «Обзор» (на новом портале)
Стэн Баштавенко,
8

Перейдите на виртуальные машины, затем нажмите на диски. Пометьте диск и выберите «Удалить диск» внизу. Теперь вы можете выбрать, хотите ли вы сохранить или удалить соответствующий VHD.

Прежде всего, важно удалить диск через виртуальные машины, а не через хранилище.

Philluxx
источник
1
Я думаю, что многие из вас имеют RTFM, а не вопрос. Это осиротевшие арендованные заблокированные виртуальные жесткие диски ... У меня та же проблема, в которой у меня НИЧЕГО нет на Azure, кроме двух виртуальных жестких дисков, и они не будут удалены, поскольку арендованы и заблокированы (что является ошибкой, поскольку арендовать их нечего)
Давеси
5

В моем случае, хранилище не может быть удалено из-за vmimages.

Используйте команду Power Shell

get-azurevmimage | Where-Object -Property Category -in -Value "пользователь"

для вывода списка всех изображений Для удаления ВСЕХ ИЗОБРАЖЕНИЙ используйте следующий скрипт:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }
Андреас Столле
источник
Вы также можете удалить изображения с вкладки «Изображения» (в разделе «Виртуальные машины») на портале управления Classic Azure.
Вагнер Бертолини Младший
4

Как FM уже заявил; существует сценарий, при котором при удалении виртуальной машины диск все равно отображается как подключенный к виртуальной машине, даже если виртуальная машина была удалена.

Для меня это произошло потому, что у меня был установлен лимит расходов. Когда лимит расходов достигнут, ваши услуги отключены. Все созданные вами VPN-шлюзы и виртуальные машины будут удалены. Затем, в довершение всего, диски, подключенные к удаленным виртуальным машинам, все еще думают, что они подключены :(

Я нашел этот блог, который объясняет проблему и показывает, как использовать PowerShell для решения.

Надеюсь, что это помогает другим пользователям.

Ричард Уэстон
источник
1
здорово! Ваша ссылка привела меня к инструменту, который он создал несколько дней спустя, который позволяет вам «отключить» ваш VHD: biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/…
Янник Смитс
0

Иногда мы через новый портал удаляем учетную запись хранения Azure, но не можем удалить ее и получаем эту ошибку: «Не удалось удалить учетную запись хранения« jason1disks796 ». Ошибка: учетная запись хранения не может быть удалена из-за использования ее артефактов. «

Мы можем использовать PowerShell для вывода списка всех двоичных объектов VHD учетной записи хранения ( модуль 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

Кроме того, существует другой сценарий: в этой учетной записи хранения нет контейнера или большого двоичного объекта ( пустая учетная запись хранения , мы не можем найти большой двоичный объект или контейнер в этой учетной записи хранения через PowerShell или портал), когда мы используем портал для удаления учетной записи хранения. и сообщение об ошибке «Не удалось удалить учетную запись хранения« jason1disks796 ». Ошибка: учетная запись хранения не может быть удалена из-за использования ее артефактов ». В этом сценарии мы можем создать новую виртуальную машину и указать учетную запись хранения для проблемной учетной записи хранения, а затем снова удалить ее.

Джейсон Йе
источник
0

Проверьте перед удалением вашей учетной записи хранения; Для каждой созданной учетной записи хранения должны быть соответствующие виртуальные машины, диски и образы. Перейти на портал Azure

Выберите вкладку «Виртуальные машины» на левой панели. Нажмите на «Образы и диски экземпляров».

Обратите внимание, что к отдельным виртуальным машинам прикреплены диски, которые отображаются в области дисков. Перед удалением виртуальной машины сначала удалите связанные диски, а на виртуальной машине - диск второй. Затем удалите учетную запись хранения последней. Также обратите внимание на сеть в той же левой панели, если она связана с учетной записью, которую вы хотите удалить.

На новом обновленном портале Azure многие из указанных выше страниц конфигурации изменены. Параметры «Изображения и диски» можно увидеть на панели «Все ресурсы». В более новой версии портала Azure вы можете легко идентифицировать виртуальные машины, связанные с ними Диски и его учетную запись хранения, на смежных вертикальных панелях на одной странице с различными изображениями значков.

vembutech
источник
0

Для тех, кто полагается на графический интерфейс для управления Azure и не имеет представления об использовании PowerShell или других ответах, теперь вы можете удалить зависшую учетную запись хранилища, установив флажок «Удалить неприкрепленные изображения» при попытке удалить хранилище.

Это автоматически удалит хранилище без особых хлопот.

Vylix
источник
Я сделал это только сейчас, но забыл точную формулировку флажка.
Vylix