目前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. P4317 花神的数论题

    题目 洛谷 数学方法学不会%>_<% 做法 爆搜二进制下存在\(i\)位\(1\)的情况,然后快速幂乘起来 My complete code #include<bits/stdc++ ...

  2. 二、linux题型

    1.[root@pyrene ~]# 这里root是当前登录用户  @分割     pyrene是主机名    -:表示当前登录环境   #:表示管理员 2.在/data下面创建一个文件oldboy. ...

  3. flume 使用遇到问题及解决

    1. ../flume/fchannel/spool/data/ 目录下发生缓存文件积压 可能原因:同一时间同一客户端下向两个监控目录mv文件:或同一时间多个客户端向服务端上传文件 2.清空../fl ...

  4. hql join

    文章一: 1.用hql语句 ` String hql="select student.id, student.name ,class.name from student映射实体类名 as s ...

  5. NLP-特征选择

    文本分类之特征选择 1 研究背景 对于高纬度的分类问题,我们在分类之前一般会进行特征降维,特征降维的技术一般会有特征提取和特征选择.而对于文本分类问题,我们一般使用特征选择方法. 特征提取:PCA.线 ...

  6. 使用struts2的iterator标签出现的错误

    错误如下所示: 代码如下所示: <body> <s:debug></s:debug> 获取list的值第一种方式 <!-- 3 获取值栈list集合数据 -- ...

  7. 使用<s:property value="4"/>是报错

    报错的情况是 在jsp中引入标签 <%@ taglib uri="/struts-tags" prefix="s" %> 项目中也有ognl.jar ...

  8. js判断是pc还是移动端

    //判断pc还是移动端 var isM = function () { var ua = navigator.userAgent; /* navigator.userAgent 浏览器发送的用户代理标 ...

  9. thinkphp中如何使用phpspreadsheet插件

    thinkphp中如何使用phpspreadsheet插件 一.总结 一句话总结:多百度,百度什么都有 1.thinkphp中用composer安装的插件的命名空间是什么? use PhpOffice ...

  10. python3 列表属性

    1.合并 >>> l1=[1,2,3,'e']>>> l2=['f',34,'feel']>>> l1+l2[1, 2, 3, 'e', 'f', ...