《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中。如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2014-12-05 Microsoft Azure News(4) Azure新D系列虚拟机上线
2014-12-05 Windows Azure Cloud Service (38) 微软IaaS与PaaS比较