目前Azure上复制VM可以有多种方法:

1 创建User Image,可以快速复制多台VM,但目前托管磁盘只支持Generalized的模式,需要对User和配置进行重置。

2 从VHD或托管磁盘复制VM,通过Json Template、Powershell、CLI或SDK的方式等,都可以快速复制VM,但需要自己添加数据盘

本文的Powershell脚本将通过采用对VHD或托管磁盘的复制实现对VM的复制,包括OS Disk和Data Disk。

具体实现方式:

1 读取csv配置文件

具体参数如下

  • location:chinanorth或chinaeast
  • oldrgname:源VM的资源组名称
  • vmname:源VM的名称
  • vnetrgname:新VM将要加入的VNET的资源组名称
  • vnetname:新VM将要加入的VNET的名称
  • subnetname:新VM将要加入的Subnet名称
  • newrgname:新VM的资源组名称,如果没有将新建
  • newvmname:新VM的名称
  • DiagStorageAccountName:新VM诊断的存储账户名称,如果没有这个存储账户,将新建
  • vmsize:新VM的型号
  • vmStorageType:新VM的存储类型,Standard_LRS或Premium_LRS
  • osType:Linux或Windows
  • avsname:Availability Set的名称,如果没有将新建

2 复制Disk

根据源VM的信息,把源VM的OS Disk和Data Disk进行复制。

具体复制方式为:如果是托管磁盘,直接进行复制;如果是VHD文件,先在同存储账号下创建临时的container,把vhd文件复制到这个container里,再通过这个临时container内的VHD文件复制托管磁盘。

3 创建VM

根据参数文件的参数创建:

  • 创建NIC
  • 把复制的OS Disk挂载到VM
  • 创建VM
  • 把Data Disk挂载到VM

具体的脚本链接:

https://github.com/hengv/Azure/tree/master/VM/Create-vmfromvm-withdatadisk

总结:

采用Powershell把源VM的OS Disk和Data Disk进行复制,由复制的托管磁盘创建VM,实现Azure VM的复制。

Azure VM复制的更多相关文章

  1. 在 Azure VM 中使用应用商店映像创建 HPC Pack 群集的头节点

    使用 Azure 应用商店和 Azure 门户中的 Microsoft HPC Pack 2012 R2 虚拟机映像创建 HPC 群集的头节点. 此 HPC Pack VM 映像基于预安装了 HPC ...

  2. 使用 CLI 创建 Azure VM 的自定义映像

    自定义映像类似于应用商店映像,不同的是自定义映像的创建者是你自己. 自定义映像可用于启动配置,例如预加载应用程序.应用程序配置和其他 OS 配置. 在本教程中,你将创建自己的 Azure 虚拟机自定义 ...

  3. Azure VM从ASM迁移到ARM(一)

    Azure的IaaS有ASM和ARM两个版本,ARM的一些优点前面已经聊过很多了.ARM有更细的管理颗粒度,更多的功能等. 如果想从ASM迁移到ARM,目前有两类方法可以实现: 1. Azure平台支 ...

  4. 【应用程序见解 Application Insights】使用Azure Monitor Application Insights Agent获取Azure VM中监控数据及IIS请求指标等信息

    问题情形 为了使用Application Insights也可以监控Azure VM中的相关性能数据,如CPU, Memory,IIS Reuqest等信息,可以在VM中开始一个一个扩展插件: Azu ...

  5. 【Azure Developer】使用Java代码启动Azure VM(虚拟机)

    问题描述 在使用Java的启动Azure VM的过程中,遇见了com.azure.core.management.exception.ManagementException: Status code ...

  6. 使用PuTTY连接Azure VM

    使用PuTTY连接Azure VMhtml { -webkit-print-color-adjust: exact } * { box-sizing: border-box; -webkit-prin ...

  7. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP

    <Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...

  8. Windows Azure Virtual Machine 之用程序控制Azure VM

    我们在很多时候可能会需要用程序来控制VM的创建,删除工作. 而在这些工作之中,用程序创建一个VM将会是一个非常复杂的过程,因为他涉及到很多步骤. 具体步骤如下 1 创建一个Hosted cloud s ...

  9. Windows Azure Virtual Machine (24) Azure VM支持多网卡功能

    <Windows Azure Platform 系列文章目录> Update 2016-03-30 一个VM的多张网卡可以在一个VNet的同一个Subnet子网下,笔者亲自测试过了. 如果 ...

随机推荐

  1. MySQL-重做日志 redo log -原理

    [redo log buffer][redo log file]-原理 目录: 1.重做日志写入过程图 2.相关知识点汇总图 3.redo_log_buffer 原理 4.redo_log_file ...

  2. INSPIRED启示录 读书笔记 - 第11章 评估产品机会

    市场需求文档 大多数的公司产品选择权是由高管.市场部门.开发团队甚至是大客户,在这种情况下公司会跳过市场需求文档或是误写成产品规范文档,回避评估产品机会 在正常情况下,应该是由业务人员会撰写一份论证产 ...

  3. 机器学习性能指标之ROC和AUC理解与曲线绘制

    一. ROC曲线 1.roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性. 横轴:负正类率(false po ...

  4. MongoDB快速入门(一)

    MongoDB是一个跨平台,面向文档的数据库,提供高性能,高可用性和易于扩展.MongoDB是工作在集合和文档上一种概念. 数据数 数据库是一个集合的物理容器.每个数据库获取其自己设定在文件系统上的文 ...

  5. Xshell 5 上传下载插件

    #yum -y install lrzsz #rz 上传 sz用法: 下载一个文件 sz filename 下载多个文件 sz filename1 filename2 下载dir目录下的所有文件,不包 ...

  6. mssql 函数STUFF 的用法

    DECLARE @limitDay INT;SET @limitDay = 92;IF DATEDIFF(DAY, '2017-12-13 00:00:00', '2017-12-13 18:00:0 ...

  7. JAVA8新特性——方法引用

    JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 在Lamda新特性的支持下,JAVA8中可以使用lamda表达式来创建匿名方法.然而,有时候我们仅仅是需要调用一个已存在的方法(如 ...

  8. Python — 多线程与多进程

    1.多线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位,一个进程可以包含多个线程.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线 ...

  9. 找到Office 2016 for MAC中AutoUpdate等组件的本地下载位置

    更新:64位delta升级文件如: $ &>/dev/null /private/var/folders/8g/7f3zrs2j3hb1jx58z1_vkykh0000gn/T/MSau ...

  10. cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现

    cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html   cassandra的索引查询和排序 cassandra的查询虽然很弱,但 ...