接上回,继续整理针对虚拟机的各种操作。

5、创建与恢复快照

  1. /// <summary>
  2. /// 创建快照
  3. /// </summary>
  4. public void CreateSnapshot()
  5. {
  6. //虚拟机的资源路径,同前,本例是针对vm100打快照
  7. string path = "DataCenter/vm/vm100";
  8. //根据虚拟机的资源路径获取资源的引用
  9. ManagedObjectReference vmRef = m_Service.FindByInventoryPath(m_Content.searchIndex, path);
  10. if(vmRef != null)
  11. {
  12. //调用服务实例上的CreateSnapshot_Task来创建虚拟机快照(异步),此处没有等待任务完成
  13. ManagedObjectReference taskRef = m_Service.CreateSnapshot_Task(vmRef, "SnapshotName", "Description", true, true);
  14. }
  15. }
  16. /// <summary>
  17. /// 恢复当前快照
  18. /// </summary>
  19. public void RevertToCurrentSnapshot()
  20. {
  21. //虚拟机的资源路径,同前,本例是针对vm100恢复当前
  22. string path = "DataCenter/vm/vm100";
  23. //根据虚拟机的资源路径获取资源的引用
  24. ManagedObjectReference vmRef = m_Service.FindByInventoryPath(m_Content.searchIndex, path);
  25. if(vmRef != null)
  26. {
  27. //调用服务实例上的RevertToCurrentSnapshot_Task来恢复虚拟机当前快照(异步),此处没有等待任务完成
  28. ManagedObjectReference taskRef = m_Service.RevertToCurrentSnapshot_Task(vmRef, null);
  29. }
  30. }

6、在同一台主机上从模板复制虚拟机

先要指出,模板本身也是虚拟机,以VI系统中它的类型就是VirtualMachine,只是有特殊属性标明它是模板,因此不能运行。

注意此方法要求源与目标在同一台主机上,后面会讲到如何在不同主机间复制。

  1. /// <summary>
  2. /// 从模板部署虚拟机
  3. /// </summary>
  4. public void Deploy()
  5. {
  6. //模板路径,与虚拟机相同,此例中模板名叫template100
  7. string templatePath = "DataCenter/vm/template100";
  8. //根据路径获取此模板的引用
  9. ManagedObjectReference templateRef = m_Service.FindByInventoryPath(m_Content.searchIndex, templatePath);
  10. //folder的引用,即逻辑上存储新虚拟机的位置,固定是这样的
  11. ManagedObjectReference folderRef = m_Service.FindByInventoryPath(m_Content.searchIndex, "DataCenter/vm");
  12. //资源池的引用,格式是“中心/host/主机名/Resources”,此例中我们将虚拟机部署到host10这台主机上
  13. ManagedObjectReference poolRef = m_Service.FindByInventoryPath(m_Content.searchIndex, "DataCenter/host/host10/Resources");
  14. //设置部署位置相关的参数
  15. VirtualMachineRelocateSpec vmRelocSpec = new VirtualMachineRelocateSpec();
  16. vmRelocSpec.transform = VirtualMachineRelocateTransformation.sparse;
  17. vmRelocSpec.pool = poolRef;
  18. //设定复制相关参数
  19. VirtualMachineCloneSpec vmCloneSpec = new VirtualMachineCloneSpec();
  20. vmCloneSpec.template = false;        //新虚拟机不是模板
  21. vmCloneSpec.location = vmRelocSpec;  //存放位置
  22. vmCloneSpec.powerOn = true;          //部署完成后是否开机
  23. //调用CloneVM_Task来克隆虚拟机(异步),此处没有等待任务完成
  24. ManagedObjectReference taskRef = m_Service.CloneVM_Task(templateRef, folderRef, vmName, vmCloneSpec);
  25. }

未完待续……

本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/1029417,如需转载请自行联系原作者

利用VMware Infrastructure SDK编程控制虚拟机集群(2)相关推荐

  1. 利用VMware Infrastructure SDK编程控制虚拟机集群(1)

    两年前的一个老项目了,基于VMware Infrastructure 3.5的,整理一下当时的技术资料.至于VMware Infrastructure是什么以及它能干什么,不详细介绍了,感兴趣的同学可 ...

  2. 利用VMware Infrastructure SDK编程控制虚拟机集群(3)

    接上回,继续整理针对虚拟机的各种操作. 7.跨主机克隆虚拟机 网上资料比较少,当时费了很大劲才成功的,与同一台主机上的虚拟机克隆有区别. /// <summary> /// 从模板部署虚拟 ...

  3. 利用FRP跨局域网操纵虚拟机集群

    利用FRP跨局域网操纵虚拟机集群 我们在日常学习和生活中常常遇到这样的痛点,自己有两台笔记本A和B,自己的一台笔记本A安装了三台Linux虚拟机集群在学校机房里面(三台虚拟机都没有公网IP,并在学校局 ...

  4. 如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群

    如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群 克隆集群机器 通过虚拟机搭建Hadoop集群,发现使用的VMware workstation 15 player版本没有克隆功能,于是找 ...

  5. 数据仓库搭建1-Virtual-box虚拟机集群搭建

    数据仓库搭建1-Virtual-box虚拟机集群搭建 前言 Virtual-box遇到的问题 虚拟机安装 虚拟机网络配置 安装必要的软件 前言 我的电脑内存16G,尽量大一点吧,太小的话会在使用的时候 ...

  6. Dapr + .NET 实战(十四)虚拟机集群部署 mDNS + Consul

    前面我们说了在单机模式下和K8S集群下的Dapr实战,这次我们来看看如何在不使用K8S的情况下,在一个传统的虚拟机集群里来部署Dapr. 1.环境准备 我们准备两台centos7虚拟机 Dapr1:1 ...

  7. ELK学习笔记之Kibana权限控制和集群监控

    详细请参考如下四篇博客,注意ELK6中移除了Xpack的默认账户和密码,需要手动设置 Kibana安全特性之权限控制 ELK 集群 Kibana 使用 X-Pack 权限控制,监控集群状态,警报,监视 ...

  8. 虚拟机集群启动,Hadoop常用命令

    虚拟机集群启动,Hadoop常用命令 (一).启动hdfs 1,namenode节点第一次初始化 在namenode安装节点执行命令: hadoop namenode -format 2,单节点启动. ...

  9. Vmware虚拟机集群设置静态ip

    前提准备 1 centos 7系统 2 Vmare为NAT模式 设置静态IP 为方便管理集群,需要为每台机器设置静态ip vi /etc/sysconfig/network-scripts/ifcfg ...

最新文章

  1. 用python画关系网络图-python networkx 包绘制复杂网络关系图
  2. 使用RemObjects Pascal Script
  3. python完全支持面向对象编程思想_面向对象的编程思想和Python的继承和多态,特殊方法,引用计数...
  4. Node开发项目管理工具 Grunt 对比 Gulp
  5. 浮点数运算和金额处理
  6. 美团校招提前批 移动端开发 一面 二面 面经
  7. 25款精选免费小程序源码demo下载
  8. 浅谈 *.axf,*.bin,*.hex 文件
  9. PS教程:利用灰度蒙版实现无级调节
  10. 计算机原理非门,反相器和非门有什么区别
  11. 鱼和熊掌兼得:C++代码在编译时完成白盒测试
  12. 面试分享:专科半年经验面试阿里前端P6+总结
  13. C++设计模式 命令模式(服务员命令厨师)
  14. 小米手机安装Google框架
  15. 基于ARMv8的固件系统架构
  16. Ant design pro入坑指南
  17. 【转帖】Moodle平台的5个新玩法
  18. vs code使用Easy Sass插件编译sass文件路径报错问题解决
  19. 保姆级教程:深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)
  20. 错排的递推公式及推导

热门文章

  1. 自动化测试学习之路--java 数组
  2. mysql pdo insert_PDO数据库操作类——插入数据的实现
  3. mybatis 三级缓存查询循序_MyBatis手把手跟我做系列(五) --- 一级缓存与二级缓存
  4. matplotlib.pyplot 中文乱码问题解决
  5. HttpClient工具类 HttpClientUtils.java
  6. Applet授权细节
  7. Windows 下 PHP 开发环境配置系列三 - eclipse PDT + Zend Debugger 调试web 项目
  8. flowable工作流 流程变量_信也科技工作流平台的技术实践
  9. Problem Statement
  10. 智能跳过节假日算法java_Quartz 定时任务使用 —— 排除指定节假日时间执行任务(十一)...