从专用磁盘创建 Windows VM

通过使用 Powershell 将专用托管磁盘附加为 OS 磁盘来创建新 VM。 专用磁盘是保留原始 VM 中的用户帐户、应用程序和其他状态数据的现有 VM 中虚拟硬盘 (VHD) 的副本。

使用专用 VHD 创建新 VM 时,新 VM 将保留原始 VM 的计算机名。 还会保留其他计算机特定信息,在某些情况下,这种重复信息可能会导致问题。 请注意,在复制 VM 时,应用程序依赖哪些类型的计算机特定信息。

可以使用两个选项:

上传 VHD

复制现有的 Azure VM

本主题演示如何使用托管磁盘。 如果有需要使用存储帐户的旧版部署,请参阅从存储帐户中的专用 VHD 创建 VM

开始之前

如果使用 PowerShell,请确保使用的是最新版本的 AzureRM.Compute PowerShell 模块。

PowerShell复制

Install-ModuleAzureRM.Compute-RequiredVersion2.6.0

有关详细信息,请参阅Azure PowerShell 版本控制

选项 1:上传专用 VHD

可从使用本地虚拟化工具(如 Hyper-V)创建的专用 VM 或从另一个云导出的 VM 上传 VHD。

准备 VM

如果想要使用当前 VHD 创建新 VM,请确保完成以下步骤。

准备好要上传到 Azure 的 Windows VHD不要使用 Sysprep 通用化 VM。

删除 VM 上安装的所有来宾虚拟化工具和代理(例如 VMware 工具)。

确保 VM 配置为通过 DHCP 来提取其 IP 地址和 DNS 设置。 这确保服务器在启动时在 VNet 中获取 IP 地址。

获取存储帐户

需要 Azure 中的存储帐户来存储上传的 VHD。 可以使用现有存储帐户,也可以创建新存储帐户。

显示可用的存储帐户,请键入:

PowerShell复制

Get-AzureRmStorageAccount

如果要使用现有存储帐户,请转到上传 VHD部分。

若要创建存储帐户,请执行以下步骤:

需要应在其中创建存储帐户的资源组的名称。 若要查找订阅中的所有资源组,请键入:

PowerShell复制

Get-AzureRmResourceGroup

若要在中国北部区域中创建名为myResourceGroup的资源组,请键入:

PowerShell复制

New-AzureRmResourceGroup-NamemyResourceGroup-Location"China North"

使用New-AzureRmStorageAccountcmdlet 在此资源组中创建名为mystorageaccount的存储帐户:

PowerShell复制

New-AzureRmStorageAccount-ResourceGroupNamemyResourceGroup-Namemystorageaccount-Location"China North"`-SkuName"Standard_LRS"-Kind"Storage"

将 VHD 上传到存储帐户

使用Add-AzureRmVhdcmdlet 将 VHD 上传到存储帐户中的容器。 本示例将文件myVHD.vhd从"C:\Users\Public\Documents\Virtual hard disks\"上传到myResourceGroup资源组中名为mystorageaccount的存储帐户。 该文件存储在名为mycontainer的容器中,新文件名为myUploadedVHD.vhd

PowerShell复制

$resourceGroupName="myResourceGroup"$urlOfUploadedVhd="https://mystorageaccount.blob.core.chinacloudapi.cn/mycontainer/myUploadedVHD.vhd"Add-AzureRmVhd-ResourceGroupName$resourceGroupName-Destination$urlOfUploadedVhd`-LocalFilePath"C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"

如果成功,会显示类似于下面的响应:

PowerShell复制

MD5 hash is being calculatedforthe file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.MD5 hash calculation is completed.Elapsed timeforthe operation:00:03:35Creating new page blob of size53687091712...Elapsed timeforupload:01:12:49LocalFilePath          DestinationUri-------------          --------------C:\Users\Public\Doc...  https://mystorageaccount.blob.core.chinacloudapi.cn/mycontainer/myUploadedVHD.vhd

完成执行此命令可能需要一段时间,具体取决于网络连接速度和 VHD 文件的大小

从 VHD 创建托管磁盘

使用New-AzureRMDisk通过存储帐户中的专用 VHD 创建托管磁盘。 此示例使用myOSDisk1作为磁盘名称,将磁盘置于StandardLRS存储中并使用https://storageaccount.blob.core.chinacloudapi.cn/vhdcontainer/osdisk.vhd作为源 VHD 的 URI。

创建适用于新 VM 的新资源组。

PowerShell复制

$destinationResourceGroup='myDestinationResourceGroup'New-AzureRmResourceGroup-Location$location-Name$destinationResourceGroup

从上传的 VHD 创建新 OS 磁盘。

PowerShell复制

$sourceUri= (https://storageaccount.blob.core.chinacloudapi.cn/vhdcontainer/osdisk.vhd)$osDiskName='myOsDisk'$osDisk=New-AzureRmDisk-DiskName$osDiskName-Disk`    (New-AzureRmDiskConfig-AccountTypeStandardLRS-Location$location-CreateOptionImport `-SourceUri$sourceUri) `-ResourceGroupName$destinationResourceGroup

选项 2:复制现有 Azure VM

通过拍摄 VM 快照来创建使用托管磁盘的 VM 副本,并使用该快照创建一个新的托管磁盘和一个新 VM。

拍摄 OS 磁盘快照

可拍摄整个 VM(包括所有磁盘)快照或仅拍摄单个磁盘快照。 以下步骤展示了如何使用New-AzureRmSnapshotcmdlet 拍摄仅 VM 的 OS 磁盘的快照。

设置一些参数。

PowerShell复制

$resourceGroupName='myResourceGroup'$vmName='myVM'$location='chinanorth'$snapshotName='mySnapshot'

获取 VM 对象。

PowerShell复制

$vm=Get-AzureRmVM-Name$vmName-ResourceGroupName$resourceGroupName

获取 OS 磁盘名称。

PowerShell复制

$disk=Get-AzureRmDisk-ResourceGroupName$resourceGroupName-DiskName$vm.StorageProfile.OsDisk.Name

创建快照配置。

PowerShell复制

$snapshotConfig=New-AzureRmSnapshotConfig-SourceUri$disk.Id-OsTypeWindows-CreateOptionCopy-Location$location

创建快照。

PowerShell复制

$snapShot=New-AzureRmSnapshot-Snapshot$snapshotConfig-SnapshotName$snapshotName-ResourceGroupName$resourceGroupName

如果计划使用快照创建需要高性能的 VM,请结合使用-AccountType Premium_LRS参数和 New-AzureRmSnapshot 命令。 该参数创建快照,使其作为高级托管磁盘进行存储。 高级托管磁盘比标准托管磁盘开销大。 因此使用该参数前,请确保确实需要高级托管磁盘。

从快照创建新磁盘

使用New-AzureRMDisk从快照创建托管磁盘。 此示例使用“myOSDisk”作为磁盘名称。

创建适用于新 VM 的新资源组。

PowerShell复制

$destinationResourceGroup='myDestinationResourceGroup'New-AzureRmResourceGroup-Location$location-Name$destinationResourceGroup

设置 OS 磁盘名称。

PowerShell复制

$osDiskName='myOsDisk'

创建托管磁盘。

PowerShell复制

$osDisk=New-AzureRmDisk-DiskName$osDiskName-Disk`    (New-AzureRmDiskConfig-Location$location-CreateOptionCopy `-SourceResourceId$snapshot.Id) `-ResourceGroupName$destinationResourceGroup

创建新 VM

创建新 VM 使用的网络和其他 VM 资源。

创建子网和 vNet

创建虚拟网络的 vNet 和子网。

创建子网。 本示例在资源组“myDestinationResourceGroup”中创建名为“mySubNet”的子网,并将子网地址前缀设置为 10.0.0.0/24。

PowerShell复制

$subnetName='mySubNet'$singleSubnet=New-AzureRmVirtualNetworkSubnetConfig-Name$subnetName-AddressPrefix10.0.0.0/24

创建 vNet。 本示例将虚拟网络名称设置为myVnetName,将位置设置为“中国北部”,将虚拟网络的地址前缀设置为10.0.0.0/16

PowerShell复制

$vnetName="myVnetName"$vnet=New-AzureRmVirtualNetwork-Name$vnetName-ResourceGroupName$destinationResourceGroup-Location$location`-AddressPrefix10.0.0.0/16-Subnet$singleSubnet

创建网络安全组和 RDP 规则

若要使用 RDP 登录到 VM,需要创建一个允许在端口 3389 上进行 RDP 访问的安全规则。 由于新 VM 的 VHD 是从现有专用 VM 创建的,因此可以将源虚拟机中的帐户用于 RDP。

本示例将 NSG 名称设置为myNsg,将 RDP 规则名称设置为myRdpRule

PowerShell复制

$nsgName="myNsg"$rdpRule=New-AzureRmNetworkSecurityRuleConfig-NamemyRdpRule-Description"Allow RDP"`-AccessAllow-ProtocolTcp-DirectionInbound-Priority110`-SourceAddressPrefixInternet-SourcePortRange* `-DestinationAddressPrefix*-DestinationPortRange3389$nsg=New-AzureRmNetworkSecurityGroup-ResourceGroupName$destinationResourceGroup-Location$location`-Name$nsgName-SecurityRules$rdpRule

有关终结点和 NSG 规则的详细信息,请参阅Opening ports to a VM in Azure using PowerShell(使用 PowerShell 在 Azure 中打开 VM 端口)。

创建公共 IP 地址和 NIC

若要与虚拟网络中的虚拟机通信,需要一个公共 IP 地址和网络接口。

创建公共 IP。 在此示例中,公共 IP 地址名称设置为myIP

PowerShell复制

$ipName="myIP"$pip=New-AzureRmPublicIpAddress-Name$ipName-ResourceGroupName$destinationResourceGroup-Location$location`-AllocationMethodDynamic

创建 NIC。 在此示例中,NIC 名称设置为myNicName

PowerShell复制

$nicName="myNicName"$nic=New-AzureRmNetworkInterface-Name$nicName-ResourceGroupName$destinationResourceGroup`-Location$location-SubnetId$vnet.Subnets[0].Id-PublicIpAddressId$pip.Id-NetworkSecurityGroupId$nsg.Id

设置 VM 名称和大小

此示例将 VM 名称设置为“myVM”,将 VM 大小设置为“Standard_A2”。

PowerShell复制

$vmName="myVM"$vmConfig=New-AzureRmVMConfig-VMName$vmName-VMSize"Standard_A2"

添加 NIC

PowerShell复制

$vm=Add-AzureRmVMNetworkInterface-VM$vmConfig-Id$nic.Id

添加 OS 磁盘

使用Set-AzureRmVMOSDisk将 OS 磁盘添加到配置。 此示例将磁盘大小设置为128 GB并附加托管磁盘作为WindowsOS 磁盘。

PowerShell复制

$vm=Set-AzureRmVMOSDisk-VM$vm-ManagedDiskId$osDisk.Id-StorageAccountTypeStandardLRS `-DiskSizeInGB128-CreateOptionAttach-Windows

完成该 VM

使用刚刚创建的New-AzureRMVM配置创建 VM。

PowerShell复制

New-AzureRmVM-ResourceGroupName$destinationResourceGroup-Location$location-VM$vm

如果此命令成功,会看到类似于下面的输出:

PowerShell复制

RequestId IsSuccessStatusCode StatusCode ReasonPhrase

--------- ------------------- ---------- ------------

True        OK OK

验证是否已创建 VM

应会在Azure 门户的“浏览” > “虚拟机”下看到新建的 VM,也可以使用以下 PowerShell 命令查看该 VM:

PowerShell复制

$vmList=Get-AzureRmVM-ResourceGroupName$destinationResourceGroup$vmList.Name

后续步骤

若要登录到新虚拟机,请在门户中浏览到该 VM,单击“连接”,然后打开远程桌面 RDP 文件。 使用原始虚拟机的帐户凭据登录到新虚拟机。 有关详细信息,请参阅How to connect and log on to an Azure virtual machine running Windows(如何连接并登录到运行 Windows 的 Azure 虚拟机)。立即访问http://market.azure.cn

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容