2015-09-07 2 views
0

Я пытаюсь загрузить vhd в azure (фиксированный размер 30 ГБ), но он всегда дает мне ошибку после окончания загрузки.Ошибка 400 при использовании Add-AzureVhd

До этого я импортировал мой публиковать файл настроек, я установить по умолчанию моего subscritption и я установил хранение по умолчанию для файлов VHD

Add-AzureVhd -Destination "https://*****.blob.core.windows.net/vhds/vm.vhd" -LocalFilePath "C:\Users\****\Desktop\vm.vhd" MD5 hash is being calculated for the file C:\Users\****\Desktop\vm.vhd. MD5 hash calculation is completed. Elapsed time for the operation: 00:02:59 Creating new page blob of size 32212255232... Add-AzureVhd : The remote server returned an error: (400) Bad Request. At line:1 char:1 + Add-AzureVhd -Destination "https://*****.blob.core.windows.net/vhds ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Add-AzureVhd], StorageException + FullyQualifiedErrorId : Microsoft.WindowsAzure.Storage.StorageException,Microsoft.WindowsAzure.Commands.ServiceM anagement.StorageServices.AddAzureVhdCommand

Есть ли у вас какие-либо идеи о том, как устранить это?

ответ

2

Вот некоторые идеи по устранению неполадок. Я просто пробовал такую ​​же задачу без проблем.

Первый, я думаю, что ваша ошибка появляется перед загрузкой. Потому что весь процесс выглядит так. И кажется, что ваша ошибка появляется сразу после попытки создать новый blob. После этого происходит длительный процесс, в котором обнаружены пустые пространства VHD.

PS C:\Users\pkirch> Add-AzureVhd -LocalFilePath 'C:\Hyper-V\Virtual Hard Disks\test30gb.vhd' -Destination "https://webdavsvr.blob.core.windows.net/vhds/test30gb.vhd" 
MD5 hash is being calculated for the file C:\Hyper-V\Virtual Hard Disks\test30gb.vhd. 
MD5 hash calculation is completed. 
Elapsed time for the operation: 00:02:58 
Creating new page blob of size 32212255232... 
Detecting the empty data blocks in the local file. 
Detecting the empty data blocks completed. 
Elapsed time for upload: 00:00:00 

LocalFilePath        DestinationUri           
-------------        --------------           
C:\Hyper-V\Virtual Hard Disks\test30gb.vhd https://webdavsvr.blob.core.windows.net/vhds/test30gb.vhd 

Некоторое время назад я разместил script to upload a VHD on GitHub Gist. Посмотрите, если вы не пропустите шаг. В основном это:

  1. Установка текущей подписки.
  2. (если у вас уже есть учетная запись , и вам не нужно создавать новую учетную запись)
  3. Установка текущей учетной записи хранения для текущей подписки.
 

    # Settings 

    $SubscriptionName = "Azure MSDN - pkirchner" 
    $StorageAccountName = "pkteststorageaccount" 
    $Container = "vhds" 
    $LocalVhd = "C:\Users\pkirch\fixedvhd20mb.vhd" 

    # Select my Microsoft Azure Subscription. 
    Select-AzureSubscription -SubscriptionName $SubscriptionName 

    # Create new storage account. 
    New-AzureStorageAccount -Location "West Europe" -StorageAccountName $StorageAccountName -Type Standard_LRS 

    # Create container for VHDs. 
    $StorageAccountKey = Get-AzureStorageKey -StorageAccountName $StorageAccountName 

    New-AzureStorageContext -StorageAccountKey $StorageAccountKey.Primary -StorageAccountName $StorageAccountName | ` 
    New-AzureStorageContainer -Name $Container -Permission Off 

    # Add-AzureVhd needs the CurrentStorageAccountName to be set. 
    Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccountName $StorageAccountName 

    # Build destination path automatically. 
    $NewContainer = Get-AzureStorageContainer -Name $Container 
    $VhdFile = Split-Path -Path $LocalVhd -Leaf 
    $Destination = $NewContainer.CloudBlobContainer.Uri.AbsoluteUri + "/" + $VhdFile 

    # Upload VHD 
    Add-AzureVhd -Destination $Destination -LocalFilePath $LocalVhd 

Второй, если вы не хватает каких-либо шагов, я хотел бы попытаться искать ошибки с помощью Fiddler. Использование Fiddler с PowerShell для Azure не является простым. Вот blog post как это сделать.

+0

Это работает! Я понятия не имею, почему это не сработало раньше ... Но большое спасибо! – Swell