• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 信息科技 > 正文

    基于VMware,vSphere,SDK的虚拟化客户应用程序实现

    时间:2020-09-19 07:54:08 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:服务器虚拟化技术可以大大提高对服务器的整合和管理效率,便于快速部署各种应用。该文首先简要介绍了VMware vSphere平台的组成结构,然后详细描述了如何利用VMware vSphere SDK开发灵活、简洁并具有友好界面的VMware vSphere客户应用程序的流程步骤和实现方法。

    关键词:VMware vSphere SDK;C#;虚拟化技术;客户应用程序;Manager Of Reference(MOR)

    中图分类号:TP391文献标识码:A文章编号:1009-3044(2010)02-331-03

    Completion of the Virtualization Client Applications Based on VMware vSphere SDK

    CHEN Bo1,2, TANG Ling-li1, ZHOU Zhong-hai1, YUAN Zhi-ping1

    (1.Jiangnan Computing Technology Institute, Wuxi 214083, China; 2.95846 PLA Troops, Fuzhou 350000, China)

    Abstract: Server virtualization technology can improve the efficiency of server integration and management greatly, and it also can be convenient to deploy all kinds of application. At first, this paper introduces the architecture of VMware vSphere platform simply, and then describes how to use the VMware vShpere SDK to develop the flexible, compact VMware vShpere client application with friendly interface in detail.

    Key words: VMware vSphere SDK; C#; virtualization technology; client applications; manager of reference(MOR)

    近年来,随着计算机技术、网络技术的发展,许多企事业单位配备了越来越多的应用系统,相应地,服务器的数量也越来越多。但是这些服务器通常只能承载单一的应用服务,过高的服务器硬件配置将使得服务器的优越性能难以得到充分利用,从而造成资源浪费;而过低的硬件配置又怕不能满足后续的用户需求;此外,服务器数量的逐年增加也使得管理变得日益复杂。而虚拟化技术的引入能够提高服务器的利用率、加快应用部署的速度,从而提供高可靠性、高可用的应用服务。

    虚拟化技术是当前大型数字化中心进行硬件资源整合和提高能效的重要技术之一,主要有完全虚拟化、部分虚拟化和操作系统层虚拟化三种方式。虚拟化是一个抽象层,它打破了物理硬件与操作系统的物理连接。服务器虚拟化系统就是通过虚拟化技术从服务器中虚拟出多个客户机进行统一的整合管理,而这些客户机可以相互独立运行安装不同的操作系统和应用程序。作为一个面向用户的系统,如何能够设计一个具有简洁友好界面的虚拟化客户应用程序,以便更好地满足用户灵活有效地管理服务器虚拟化系统,是一个有待解决的问题。

    1 VMware vSphere SDK工作原理

    1.1 组成结构图

    VMware vSphere是VMware公司开发的构建云计算架构的最佳平台,使用VMware vSphere来构建云计算基础架构,可以减少运行的服务器数量,降低资金成本和运营成本。VMware vSphere虚拟化多个系统间的基础物理硬件资源,同时为数据中心提供大量虚拟资源。作为云操作系统,VMware vSphere可作为无缝和动态操作环境管理大型基础架构(例如CPU、存储器和网络),同时还管理复杂的数据中心。VMware vSphere主要由以下基本组件构成:ESX主机(主服务器)、vCenter Server(虚拟中心服务器)、vSphere SDK、vSphere Web Access或vSphere Client等,组成结构图如图1所示。

    VMware vSphere SDK是一种为VMware和第三方解决方案提供标准界面以访问VMware vSphere功能的开发包。VMware vSphere Web Services SDK 4.0是VMware提供的最新软件开发包,包含了VMware vSphere API实现的所有必需组件,其中包括WSDL文件、各种库文件、帮助文档和例程,是一个服务器虚拟化系统的二次开发平台。我们可以利用这个平台开发灵活方便的客户应用程序来管理、监控和维护VMware vSphere组件。

    1.2 接口函数

    主要接口函数如下:

    Login(ManagedObjectReference _this,string userName,string password,string locale);

    //建立一个服务器连接,ManagedObjectReference(受管对象引用)类型是一个指向对象的指针,其中_this参数指定一个特定的SessionManager受管对象引用,userName参数指定连接的服务器的用户名,password参数指定该用户名所对应的密码,locale参数指定所在区域,缺省为服务器的所在区域。

    CreateVM_Task(ManagedObjectReference _this, VirtualMachineConfigSpec config, ManagedObjectReference pool, ManagedObjectReference host);

    //在指定目录下创建一个新的虚拟机,其中_this参数指定一个特定的Folder受管对象引用,config参数指定新建虚拟机的相关配置,pool参数指定该虚拟机所在的资源池,host参数指定该虚拟机所在的目标主机。

    RetrieveProperties(ManagedObjectReference _this,PropertyFilterSpec[] { specSet });

    //取回相关实体的属性,包含与虚拟机相关的信息,实现对虚拟机的监控,其中_this参数指定一个特定PropertyCollector受管对象引用,specSet参数指定需要获得属性的清单。

    ReconfigVM_Task(ManagedObjectReference _this, VirtualMachineConfigSpec spec);

    //对虚拟机进行重新配置,实现对虚拟机的管理,其中_this参数指定需要重新配置的虚拟机,spec参数指定需要重新配置的相关值。

    2 客户应用程序功能模块

    该客户应用程序系统是创建、管理、操作虚拟机的主界面,并可以访问虚拟机控制台。包括:虚拟机创建模块、虚拟机操作模块、虚拟机管理配置模块、虚拟机监控模块,功能模块图如图2所示。

    各功能模块完成的功能如下:

    虚拟机创建模块:完成虚拟机的创建工作,包括虚拟机硬件资源的分配、操作系统的选择等;

    虚拟机操作模块:完成对已建虚拟机的各项操作,包括对虚拟机的电源操作、快照操作、克隆迁移操作等;

    虚拟机监控模块:监控主机的CPU、内存、存储器、网络等资源的使用情况;

    虚拟机管理配置模块:查看并动态分配主机服务器的CPU、内存、电源、存储器、网络等资源给各个虚拟机。

    3 客户应用程序开发步骤和实现方法

    3.1 开发环境

    搭建vSphere系统环境。首先在各主服务器上安装VMware ESX 4.0,然后在虚拟中心服务器中安装Windows 2003操作系统,并在上面安装VMware vCenter Server。安装完成之后进行网络配置。

    3.2 开发工具

    VMware推荐使用Java或者C#作为开发语言。本实例中我们选择C#作为开发语言,Microsoft Visual Studio 2005作为开发环境。另外,开发客户应用程序所需要的工具包括Microsoft .NET Framework 2.0和vSphere Web Services SDK 4.0,所需的动态链接库包括AppUtil.dll,Vim25Service2005.dll,VimService2005.dll,Vim25Service2005.XmlSerializers.dll, VimService2005.XmlSerializers.dll,VMware.Security.CredentialStore.dll等。这些动态链接库可通过正确设置环境变量,并运行vSphere Web Services SDK 4.0工具包中的Build2005产生。

    3.3 开发方法

    客户应用程序的开发既可采用浏览器/服务器(B/S)模式(如vSphere Web Access),也可采用客户端/服务器(C/S)模式(如vSphere Client),本文选择客户端/服务器(C/S)模式实现开发。在Microsoft Visual Studio 2005中新建一个项目,并添加上述动态链接库以及Web引用,之后就可以进行客户应用程序的功能开发。下面简要说明整个客户应用程序的开发过程。

    3.3.1 连接服务器的实现

    用SDK创建客户应用程序首先应该连接到服务器。

    SimpleClient可以实现连接到服务器、与服务器的通信,并可获得该服务器下相关实体的一些信息。步骤如下:

    Step1 //创建一个特定于服务器MOR

    _svcRef = new ManagedObjectReference();

    _svcRef.type = "ServiceInstance";

    其中MOR(managed object reference),即受管对象引用,受管对象具有特定于服务器的MOR。MOR是指向对象的指针。

    Step2 //VMA代理实例化

    _service = new VimService();

    Step3 //获得ServiceContent对象

    _sic = _service.RetrieveServiceContent(_svcRef);

    Step4 //调用Login方法实现与服务器的连接

    if (_sic.sessionManager != null) {

    _service.Login(_sic.sessionManager, username, password, null);}

    Step5 //获取服务器相关信息

    _sic.getAbout().getFullName();

    _sic.getAbout().getApiType();

    _sic.getAbout().getApiVersion()等。

    3.3.2 创建虚拟机的实现

    连接到服务器之后,可以在主服务器上创建新的虚拟机。主要步骤如下:

    Step1 //VMA代理实例化

    _service = cb.getConnection()._service;

    Step2 //创建相关MOR数据对象

    ManagedObjectReference dcmor

    = cb.getServiceUtil().GetDecendentMoRef(null,"Datacenter",dcName);

    ManagedObjectReference hfmor

    = cb.getServiceUtil().GetMoRefProp(dcmor, "hostFolder");

    Step3 //创建VirtualMachineConfigSpec数据对象

    VirtualMachineConfigSpec vmConfigSpec

    =vmUtils.createVmConfigSpec(vmname,datastorename,int.Parse(disksize),crmor, hostmor);

    Step4 //调用CreateVM_Task方法实现虚拟机的创建

    ManagedObjectReference taskmor

    = _service.CreateVM_Task(vmFolderMor, vmConfigSpec, resourcePool, hostmor);

    3.3.3 虚拟机监控的实现

    可以对已经创建的虚拟机实现监控。步骤如下:

    Step1 //初始化

    private static AppUtil.AppUtil cb = null;

    static VimService _service = cb.getConnection()._service;

    static ServiceContent _sic = cb.getConnection()._sic;

    Step2// 对PropertyFilterSpec进行实例化

    PropertySpec pSpec = new PropertySpec();

    ObjectSpec oSpec = new ObjectSpec();

    PropertyFilterSpec pfSpec = new PropertyFilterSpec();

    pfSpec.propSet = new PropertySpec[] { pSpec };

    pfSpec.objectSet = new ObjectSpec[] { oSpec };

    Step3 //调用RetrieveProperties方法获得虚拟机的相关信息,以实现对虚拟机的监控

    ObjectContent[] ocs = new ObjectContent[20];

    ocs=_service.RetrieveProperties(_sic.propertyCollector,new PropertyFilterSpec[] { pfSpec });

    3.3.4 虚拟机管理配置的实现

    对已经创建的虚拟机进行管理配置,步骤如下:

    Step1//初始化

    private static AppUtil.AppUtil cb = null;

    private ManagedObjectReference _virtualMachine = null;

    Step2//实例化

    _virtualMachine=cb.getServiceUtil().GetDecendentMoRef(null, "VirtualMachine", vmName);

    VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec();

    Step3 //调用ReconfigVM_Task方法实现虚拟机的重新配置

    ManagedObjectReference tmor

    = cb.getConnection()._service.ReconfigVM_Task(_virtualMachine, vmConfigSpec);

    4 程序演示

    4.1 客户应用登陆运行结果显示

    如图3所示。

    4.2 客户应用程序主界面展示

    如图4所示。

    5 结束语

    目前企事业单位的服务器虚拟化整合是数字化应用部署的一个趋势,不仅可以有效地利用有限的设备经费,还能够满足企事业单位应用服务种类的不断增加、数据库资源数量不断增长的需求。而自己开发的客户应用程序可以为用户提供一个方便简洁灵活的操作界面,实现与主服务端和虚拟中心服务器之间的交互,以达到从客户需求的角度有效管理和使用整个计算机系统的目标。

    参考文献:

    [1] vSphere Web Services SDK Programming Guide(vSphere Web Services SDK 4.0)[EB/OL]./support/pubs/sdk_pubs.html.

    [2] Developer’s Setup Guide(VMware vSphere Web Services SDK 4.0)[EB/OL]./support/pubs/sdk_pubs.html.

    [3] VMware vSphere简介[EB/OL]./support/pubs.html.

    [4] 王石.精通Visual C#2005-语言基础、数据库系统开发、Web开发[M].北京:人民邮电出版社,2007.

    [5] 金海,廖小飞.面向计算系统的虚拟化技术[J].中国基础科学,2008(6):12-18.

    [6] 金海等.计算系统虚拟化——原理与应用[M].北京:清华大学出版社,2008.

    相关热词搜索: 应用程序 客户 虚拟 VMware vSphere

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网