《Windows Azure Platform 系列文章目录

  

  本文参考了Git Hub的ARM Template:

  https://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-specialized-vhd-existing-vnet/azuredeploy.json

  但是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的更多相关文章

  1. Azure ARM (15) 根据现有VHD文件,创建ARM VM

    <Windows Azure Platform 系列文章目录> 在很多时候,我们需要根据现有VHD文件,创建ARM VM.在这里笔者简单介绍一下相关的Azure PowerShell 这里 ...

  2. 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM

    本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘. 计划迁移到托管磁盘 本部分可帮助你针对 VM 和磁盘类型做出最佳决策. 位置 选取 Azure 托管磁盘可用 ...

  3. 使用 Azure CLI 2.0 从自定义磁盘创建 Linux VM

    本文说明如何在 Azure 中上传自定义的虚拟硬盘 (VHD) 或复制现有 VHD,并从自定义磁盘创建 Linux 虚拟机 (VM). 可以根据要求安装并配置 Linux 分发版,并使用该 VHD 快 ...

  4. Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM

    <Windows Azure Platform 系列文章目录> Update: 2016-11-3,如果大家在使用Linux VM,使用FIO进行IOPS测试的时候,请使用以下命令: su ...

  5. ARM 环境下使用azure powershell 从远程blob中拉去vhd 并创建虚拟机

    最近需要从指定公共访问的blob中复制vhd到自己的订阅存储账户,并使用vhd创建AZURE ARM虚拟机(非经典版),而且在portal.azure.cn中无法实现虚拟机映像创建等功能,于是自己使用 ...

  6. 上传通用化 VHD 并使用它在 Azure 中创建新 VM

    本主题逐步讲解如何使用 PowerShell 将通用化 VM 的 VHD 上传到 Azure.从该 VHD 创建映像,然后从该映像创建新 VM. 可以上传从本地虚拟化工具或其他云导出的 VHD. 对新 ...

  7. 关于Azure存储账户中存储虚拟机VHD文件的注意事项

     Joy Qiao from MSFT  Thu, Mar 12 2015 3:16 PM 我们在使用Azure时经常都会在Azure存储账户中放一些文件,包括Azure虚机的VHD文件也都是放在存储 ...

  8. 系统重装 WIN7如何创建和使用VHD文件

    1 在磁盘管理中,点击操作-创建VHD,然后可以创建一个空的VHD文件   2 右击这个磁盘,点击初始化磁盘,然后可以新建简单卷   3 右击这个磁盘,设置为脱机或者联机就可以在计算机中显示和隐藏这个 ...

  9. 豹哥嵌入式讲堂:ARM开发中有用的文件(1)- source文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的source文件种类. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就 ...

随机推荐

  1. js将数字转成大写中文

    <script type="text/javascript"> //主函数 function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/ ...

  2. myeclipse tomcat内存溢出解决方法

    Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出.MyEclipse启动Tomcat无视catalina.bat中设置内存大小的问题.在 tomcat的catalina.bat ...

  3. SQL服务器在执行这条语句时会先进行运算然后执行

    1.打开地址,我们可以看到是一个正常的页面. 2..然后在地址后面加上-1,变成:http://site/news.asp?id=123-1,若返回的页面和前面不同,是另一个正常的页面,则表示存在注入 ...

  4. Web应用程序的自动化测试库-FluentAutomation

    FluentAutomation是流畅的自动化应用编程接口,支持Selenium和WatiN 连同它们所有的风格和驱动程序.自从Fluient支持Selenium,那就意味着你可以使用Selenium ...

  5. Css 动画的回调

    在做项目中经常会遇到使用动画的情况.以前的情况是用js写动画,利用setTimeout函数或者window.requestAnimationFrame()实现目标元素的动画效果.虽然后者解决了刷新频率 ...

  6. TDDL分库分表规则

    规则如下: 判断一个ID在哪个库里的公式是:id % 4 / 2判断一个ID在哪个表里的公式是:id % 4 % 2 其中4表示总共有多少个分表,2表示总共有多少个数据库:上面这个例子,表示总共有2个 ...

  7. Silverlight和WPF中DataContractJsonSerializer对时间的处理差异

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com Silverlight脱胎于WPF,他们的行为不完全并不完全相同,DataContractJsonSerializ ...

  8. [nRF51822] 13、浅谈nRF51822和NRF24LE1/NRF24LU1/NRF24L01经典2.4G模块无线通信配置与流程

    前言:  nRF51可以支持基于2.4G的互相通信.与NRF24LE1的通信.与NRF24LU1的通信.与NRF24L01的通信. 一.nRF51822基于2.4G和nRF51822通信 其中nRF5 ...

  9. 由乱序播放说开了去-数组的打乱算法Fisher–Yates Shuffle

    之前用HTML5的Audio API写了个音乐频谱效果,再之后又加了个播放列表就成了个简单的播放器,其中弄了个功能是'Shuffle'也就是一般播放器都有的列表打乱功能,或者理解为随机播放. 但我觉得 ...

  10. .NET 基础 一步步 一幕幕 [前言]

    .NET 基础 一步步 一幕幕 [前言部分] 本人小白一枚,虽然说从去年就开通博客了,到现在也没有写多少东东,虽然工作了,也没有更好得总结.故此重新祭出博客园法宝,修炼技术,争取早日走上大神之位. 故 ...