Azure Add-AzureDisk无法正常工作

时间:2018-02-13 14:50:21

标签: powershell azure

我正在使用PowerShell ISE。当我运行Add-AzureDisk时 我得到一个CLI向导并填写DiskName 我的剪贴板中有vhd文件uri(从门户网站复制) 当我使用没有"..."的uri时,我得到了:

  

Add-AzureDisk:无效的URI:无法解析主机名。

     

在行:1字符:1

     
      
  • 添加-AzureDisk
  •   
  • ~~~~~~~~~~~~~      
        
    • CategoryInfo:NotSpecified:(:) [Add-AzureDisk],UriFormatException
    •   
    • FullyQualifiedErrorId:System.UriFormatException,Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.AddAzureDisk   命令
    •   
  •   

当我使用"uri here"时,我得到:

  

Add-AzureDisk:无效的URI:URI-scheme无效。在行:1 char:1

我使用了这个按钮:

enter image description here

我开始认为我的powershell模块已过时或类似,所以我将Get-Module AzureRm.Profile -ListAvailable作为suggested here运行:

  

目录:C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ PowerShell \ ResourceManager \ AzureResourceManager

     

ModuleType版本名称ExportedCommands
  ---------- ------- ---- ----------------
  清单4.0.0 AzureRM.Profile {Disable-AzureRmDataCollection,Disable-AzureRmContextAutosave,...

但我也有v5(在the docs website上找到了这个):

  

Get-Module -ListAvailable -Name AzureRm.Resources |选择版本

     

     

5.0.0

正如您可能已经猜到的那样,我更习惯于Webportal。但我正在尝试使用两个 un 托管磁盘vhd创建一个新的虚拟机,这些磁盘位于我的blob存储容器中。

编辑我尝试了Azure CLI:

  

az vm create -n" tmp-vm" -g" resource-tmp" --attach-os-disk" https://the-uri-copied-from-ui.blob.core.windows.net/vhd-container/vm-osdisk.vhd" --size Standard_DS1_v2 --use-unmanaged-disk --os-type windows

得到了:

At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details. 
{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "DiskBlobPendingCopyOperation",
        "message": "Disk blob https://the-uri-copied-from-ui.blob.core.windows.net/vhd-container/vm-osdisk.vhd is not ready. Copy state: Failed. Please retry when the blob is ready."
      }
    ]
  }
}  Correlation ID: 0e1231a9-aa0e-4d79-8953-92ea43c658eb

我使用我在这里找到的powershell命令创建了vhd: https://stackoverflow.com/a/45569760/169714或许那次失败了?我没有错误或什么?我该如何巩固它?

edit2 我尝试了templates并且很难获得调试信息。但我现在发现了这个错误。它和以前一样:

enter image description here

blob似乎有预期的大小。租赁状态说可用。上次修改日期是第二次修改,这是否意味着底层存储仍在进行中?我试图运行Get-AzureStorageBlobCopyState -Blob tmpvmosdisk.vhd -Container vhd-containers -WaitForComplete,但这给出了一个关于非必需(我不知道)参数的错误: Get-AzureStorageBlobCopyState : Could not get the storage context. Please pass in a storage context or set the current storage context.

编辑3 数据磁盘似乎再次刷新。它是512gb,现在又回到了零? enter image description here

所以当我想将vhd添加为磁盘时,我再次收到未准备好的消息......

2 个答案:

答案 0 :(得分:1)

我可以突出显示多个问题,我会尽力回答所有问题。

首先,添加Add-AzureDisk是一个ASM(经典部署)命令,但您提到的是AzureRM模块。它是ARM还是ASM部署?

其次,CLI是ARM部署,由于您复制了VHD并且尚未执行复制操作而失败,因此您无法使用VHD。在使用VHD之前,您应该能够使用az storage blob show命令验证VHD复制/移动是否已完成。

希望这有帮助。

答案 1 :(得分:1)

正如汉内尔所说,mLinearLayoutManager.findViewByPosition(mLinearLayoutManager.findFirstVisibleItemPosition())是一个经典命令。您无法使用它来创建ARM模式VM。

Add-AzureDisk它需要一个托管磁盘,现在,您提供一个非托管磁盘(VHD),因此,您将获得错误日志。请参阅此link

根据您的方案,简单的方法是使用模板创建VM。您可以使用此template:Create a Virtual Machine from a User Image

如果您有现有的VNet,也可以使用此template