Azure ARM (13) 从现有VHD文件,创建新的ARM VM
《Windows Azure Platform 系列文章目录》
本文参考了Git Hub的ARM Template:
但是Git Hub上的Template不包含Availability Set
笔者修改了这个Template,可以设置高可用集Availability Set:
https://github.com/leizhang1984/AzureChinaPowerShell/tree/master/ARM/VMSpecializedVHD
在很多时候,我们需要从Classic VM的操作系统盘的VHD文件,创建新的ARM VM。
这里的关键步骤如下:
1.创建Classic VM,并获得OS Disk的VHD路径
2.通过ARM Portal: https://portal.azure.cn,创建新的
- Azure ARM Resource Group
- ARM Storage Account
- ARM Virtual Network和Subnet
3.如果Classic VM是开机状态,请用AzCopy工具,把OS Disk和Data Disk的VHD文件,拷贝到同一个存储账号(Classic Storage)的不同Container下。
然后把VHD从Classic Storage Account,拷贝到ARM Storage Account
4.如果Classic VM是关机状态,请直接用AzCopy工具,把OS Disk和Data Disk的VHD文件,拷贝到ARM Storage Account里
5.运行Azure PowerShell,执行Template Deployment
接下来开始本节的内容
1.首先我们在ASM模式下(https://manage.windowsazure.cn),创建新的Azure Classic VM。步骤略。
2.查看这个Classic VM的OS Disk和Data Disk,如下图红色部分:

3.通过ARM Portal: https://portal.azure.cn,创建新的
- Azure ARM Resource Group
- ARM Storage Account
- ARM Virtual Network和Subnet
4.为了方便拷贝VHD,我们先把虚拟机关机。(注意关机前请先绑定固定VIP和内网DIP)
5.使用AzCopy工具,把OS Disk和Data Disk的VHD文件,拷贝到ARM Storage Account里。图略。
6.拷贝完毕后,我们需要修改相应的ARM Template
https://github.com/leizhang1984/AzureChinaPowerShell/tree/master/ARM/VMSpecializedVHD
7.Git Hub中的azuredeploy.json,不需要修改
8.Git Hub中的azuredeploy.parameters.json,进行以下修改:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dnsNameForPublicIP": {
//必须为小写
"value": "leiarmvmpublicip"
},
"existingVirtualNetworkName": {
//虚拟网络名称,手动预选创建好
"value": "LeiARMVNet"
},
"existingVirtualNetworkResourceGroup": {
//ARM模式下,Resource Group名称
"value": "LeiARMRG"
},
"subnetName": {
//ARM 模式下,虚拟网络子网名称
"value": "subnet-1"
},
"osDiskVhdUri": {
//操作系统的VHD文件
"value": "https://leiarmstorage.blob.core.chinacloudapi.cn/vhds/LeiASMWeb01-LeiASMWeb01-2017-03-27.vhd"
},
"vmName": {
//虚拟机名称
"value": "LeiARMVMWeb01"
},
"osType": {
//操作系统类型
"value": "Windows"
},
"vmSize": {
//虚拟机实例大小
"value": "Standard_D1_V2"
},
"diagStorageAccountName":{
//diag 用的Storage Account Name,必须为小写
//可以与osDiskVhdUri所在的Storage Account Name相同
"value": "leiarmstoragediag"
},
"availabilitySetName":{
//高可用集名称
"value": "Web-AvbSet"
}
}
}
10.运行Azure PowerShell,进行验证:
#Login Azure China Cloud
Add-AzureRmAccount -EnvironmentName AzureChinaCloud; # 选择Azure China 订阅ID
Select-AzureRmSubscription -SubscriptionID '[订阅ID]' #执行Azure Deploy
New-AzureRmResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName LeiARMRG -Mode Incremental -TemplateFile 'D:\vmforuserimage\azuredeploy.json' -TemplateParameterFile 'D:\vmforuserimage\azuredeploy.parameters.json'
11.执行完毕后,会进行ARM Storage Account的VHD文件,新建新的ARM VM中。如下:

Azure ARM (13) 从现有VHD文件,创建新的ARM VM的更多相关文章
- Azure ARM (15) 根据现有VHD文件,创建ARM VM
<Windows Azure Platform 系列文章目录> 在很多时候,我们需要根据现有VHD文件,创建ARM VM.在这里笔者简单介绍一下相关的Azure PowerShell 这里 ...
- 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM
本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘. 计划迁移到托管磁盘 本部分可帮助你针对 VM 和磁盘类型做出最佳决策. 位置 选取 Azure 托管磁盘可用 ...
- 使用 Azure CLI 2.0 从自定义磁盘创建 Linux VM
本文说明如何在 Azure 中上传自定义的虚拟硬盘 (VHD) 或复制现有 VHD,并从自定义磁盘创建 Linux 虚拟机 (VM). 可以根据要求安装并配置 Linux 分发版,并使用该 VHD 快 ...
- Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
<Windows Azure Platform 系列文章目录> Update: 2016-11-3,如果大家在使用Linux VM,使用FIO进行IOPS测试的时候,请使用以下命令: su ...
- ARM 环境下使用azure powershell 从远程blob中拉去vhd 并创建虚拟机
最近需要从指定公共访问的blob中复制vhd到自己的订阅存储账户,并使用vhd创建AZURE ARM虚拟机(非经典版),而且在portal.azure.cn中无法实现虚拟机映像创建等功能,于是自己使用 ...
- 上传通用化 VHD 并使用它在 Azure 中创建新 VM
本主题逐步讲解如何使用 PowerShell 将通用化 VM 的 VHD 上传到 Azure.从该 VHD 创建映像,然后从该映像创建新 VM. 可以上传从本地虚拟化工具或其他云导出的 VHD. 对新 ...
- 关于Azure存储账户中存储虚拟机VHD文件的注意事项
Joy Qiao from MSFT Thu, Mar 12 2015 3:16 PM 我们在使用Azure时经常都会在Azure存储账户中放一些文件,包括Azure虚机的VHD文件也都是放在存储 ...
- 系统重装 WIN7如何创建和使用VHD文件
1 在磁盘管理中,点击操作-创建VHD,然后可以创建一个空的VHD文件 2 右击这个磁盘,点击初始化磁盘,然后可以新建简单卷 3 右击这个磁盘,设置为脱机或者联机就可以在计算机中显示和隐藏这个 ...
- 豹哥嵌入式讲堂:ARM开发中有用的文件(1)- source文件
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的source文件种类. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就 ...
随机推荐
- TP字母函数
http://wenku.baidu.com/view/2a0ec9c13c1ec5da50e27099.html?from=search
- windows或mac上对iOS设备截图
1.需要在设备上安装插件“设置”--“开发者”的选项 2.启动"com.apple.mobile.screenshotr"服务 3.和设备scoket通讯,拿到截图.
- ASP.NET SignalR 高可用设计
在 One ASP.NET 的架构图中,微软将 WebAPI 和 SignalR 归类到 Services 类型与 MVC.Web Forms 同列为一等公民,未来的 ASP.NET 5 尽管还在be ...
- 剑指Offer面试题:27.最小的k个数
一.题目:最小的k个数 题目:输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 这道题是典型的TopK问题,其最简单的思路莫过于 ...
- Linux的tree命令
发现Linux下有个很好的命令,tree,能把目录以树的形式列出来,还支持很强大的参数. 但默认情况下是不带的,得自己去安装,先到这里下载它的代码:http://mama.indstate.edu/u ...
- 新版C#编译器关于函数闭包的一处更改
感谢@DiryBoy的补充,他提到这个问题在MSDN上是有说明的: http://msdn.microsoft.com/en-us/library/vstudio/hh678682.aspx 在Vis ...
- 一个不错的vue表单验证插件
github文档 用着不错,官方的文档例子很简单 <body> <div id="app"> <validator name="valida ...
- hibernate学习笔记之四 Hibernate的增删改查
采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...
- WCF 客户端代理生成 通过SvcUtil.exe
WCF服务调用通过两种常用的方式:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式,一种是通过ChannelFactory直接创建服务代理对象进行服务调用. 下面简单说下如何通过Sv ...
- C#设计模式-外观模式
在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模 ...