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

简介:

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


1、通过什么方式访问VI中心

VMware Infrastructure对外提供WebService,供第三方应用调用,以实现针对主机、虚拟机等资源的控制。针对.Net,提供了一个VimService2003.dll,开发时需要把它加入项目引用。


2、如何查看VI集群中各资源的信息

除了使用Vmware Infrastructure Client以外,可以使用浏览器查看,地址是http://localhost:8080/mob。 其中的8080是vfxd服务设置的监听端口。


3、如何登录VI中心

 
  1. public class ViDemo 
  2.     //以下是VI开发中会用到的所有对象 
  3.     private VimService m_Service; 
  4.     private ServiceContent m_Content; 
  5.     private ManagedObjectReference m_SvcRef; 
  6.     private ManagedObjectReference m_Collector; 
  7.     private UserSession m_Session; 
  8.  
  9.     /// <summary> 
  10.     /// 登录,耗时会比较长 
  11.     /// </summary> 
  12.     public void Connect() 
  13.     { 
  14.         m_SvcRef = new ManagedObjectReference(); 
  15.         m_SvcRef.type = "ServiceInstance"
  16.         m_SvcRef.Value = "ServiceInstance"
  17.      
  18.         m_Service = new VimService(); 
  19.         m_Service.Url = "http://localhost:8080/sdk"
  20.         m_Content = m_Service.RetrieveServiceContent(m_SvcRef); 
  21.         m_Collector = m_Content.propertyCollector; 
  22.         if(m_Content.sessionManager != null
  23.         { 
  24.             m_Session = m_Service.Login(m_Content.sessionManager, "USER""PASS"null); 
  25.         } 
  26.     } 
  27.  
  28.     /// <summary> 
  29.     /// 注销 
  30.     /// </summary> 
  31.     public void Disconnect() 
  32.     { 
  33.         if(m_Service != null
  34.         { 
  35.             m_Service.Logout(m_Content.sessionManager); 
  36.             m_Service.Dispose(); 
  37.             m_Service = null
  38.             m_Content = null
  39.             m_Session = null
  40.         } 
  41.     } 


4、虚拟机开机及关机

 
  1. /// <summary> 
  2. /// 虚拟机关机
  3. /// </summary> 
  4. public void PowerOff() 
  5.     //虚拟机的资源路径,格式是“中心/vm/虚拟机名称”,本例中中心叫DataCenter,虚拟机是vm100 
  6. //不用关心虚拟机在哪台主机上,因为对VI来说,集群是一个整体
  7.     string path = "DataCenter/vm/vm100"
  8.  
  9.     //根据虚拟机的资源路径获取资源的引用 
  10.     ManagedObjectReference vmRef = m_Service.FindByInventoryPath(m_Content.searchIndex, path); 
  11.     if(vmRef != null
  12.     { 
  13.         //调用服务上的PowerOffVM_Task来关闭虚拟机(异步),此处没有等待任务完成
  14. //如果是开机,调用PowerOnVM_Task方法 
  15.         ManagedObjectReference taskRef = m_Service.PowerOffVM_Task(vmRef); 
  16.     } 


未完待续……

 




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


相关文章
|
5天前
|
安全 虚拟化 数据中心
Xshell 连接 VMware虚拟机操作 截图和使用
Xshell 连接 VMware虚拟机操作 截图和使用
28 4
|
13天前
|
Linux 虚拟化
vmware虚拟机安装2024(超详细)
vmware虚拟机安装2024(超详细)
118 6
|
18天前
|
虚拟化 网络虚拟化 网络架构
虚拟机 VMware Workstation 16 PRO 的网络配置
虚拟机 VMware Workstation 16 PRO 的网络配置
53 2
|
1月前
|
存储 SQL 数据挖掘
虚拟化数据恢复—VMware虚拟机vmdk文件被误删除的数据恢复案例
虚拟化数据恢复环境: 某品牌服务器(部署VMware EXSI虚拟机)+同品牌存储(存放虚拟机文件)。 虚拟化故障: 意外断电导致服务器上某台虚拟机无法正常启动。查看虚拟机配置文件发现这台故障虚拟机除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。管理员联系VMware工程师寻求帮助。VMware工程师尝试新建一个虚拟机来解决故障,但发现ESXi存储空间不足。于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除,然后重建一个虚拟机并且分配固定大小的虚拟磁盘。
|
2月前
|
虚拟化
vmware虚拟机使用主机代理访问谷歌
vmware虚拟机使用主机代理访问谷歌
|
4月前
|
Unix Linux 虚拟化
虚拟机VMware知识积累
虚拟机VMware知识积累
|
2月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
85 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
2月前
|
编解码 Linux 虚拟化
超详细VMware虚拟机安装Win10操作系统过程图解
这篇文章提供了一个详细的VMware虚拟机安装Windows 10操作系统的图解教程,包括了从创建虚拟机到安装操作系统的全过程,以及安装后的一些基本设置,如屏幕分辨率调整等。作者还提到了后续会分享关于磁盘分区的创建过程。
超详细VMware虚拟机安装Win10操作系统过程图解
|
3月前
|
存储 Linux 虚拟化
入职必会-开发环境搭建32-VMware虚拟机下载和安装
VMware虚拟机是一种基于VMware虚拟化技术的软件解决方案,它可以在一台物理计算机上创建多个独立的虚拟计算机环境。这些虚拟机可以运行不同的操作系统,如Windows、Linux等,使用户能够在单台计算机上同时运行多个操作系统。
115 0
入职必会-开发环境搭建32-VMware虚拟机下载和安装
|
3月前
|
存储 SQL 运维
服务器数据恢复—Isilon存储误删除vmware虚拟机的数据恢复案例
Isilon存储使用的是分布式文件系统OneFS。在Isilon存储集群里面每个节点均为单一的OneFS文件系统,所以Isilon存储在进行横向扩展的同时不会影响数据的正常使用。Isilon存储集群所有节点提供相同的功能,节点与节点之间没有主备之分。当用户向Isilon存储集群中存储文件时,OneFS文件系统层面将文件划分为128K的片段分别存放到不同的节点中,而节点层面将128K的片段分成8K的小片段分别存放到节点的不同硬盘中。用户文件的Indoe信息、目录项及数据MAP则会分别存储在所有节点中,这样可以确保用户不管从哪个节点都可以访问到所有数据。Isilon存储在初始化时会让用户选择相应的
67 12

热门文章

最新文章