VMware vSphere Web Services SDK编程指南(六)- 6 Datacenter Inventory

6 Datacenter Inventory


vSphere 清单是 vSphere datacenter 和 在 datacenter 中的对象的一种表示。
了解数据中心中的对象和其他对象是如何相互关联的,可以帮助你遍历清单层次结构并访问想要操作的对象。
:本文及之后文章将 Inventory 译为清单。

本章包括以下主题:

清单概述
清单层次结构和服务实例
访问清单对象
创建清单对象
清单管理所需权限
受管和独立的 ESX/ESXi 主机


6.1 清单概述

vSphere 清单包括如下对象类型:

■ 数据中心的系统: Host、VirtualMachine 和 VirtualApp

■ 支持组件: ComputeResource、Datastore、Network 和虚拟设备

■ 组织组件: Folder 、Datacenter

当你管理虚拟基础结构时,基于清单位置访问对象及其属性、方法。因此,理解清单层次结构对于任何编程都是至关重要的任务。
遍历清单的层次结构总是从与会话关联的 ServiceInstance 开始,这是清单的根对象。查看 Property Collector。如何访问对象取决于你的客户机应用程序是否连接到 vCenter 服务器或 ESXi 主机。

6.2 清单层次结构和服务实例

当你开启一个会话,vSphere 创建一个 ServiceInstance 其中包含一个root folder、一个数据中心和四个持有不同清单对象类型的 folder。

当你访问一个 vCenter 服务器系统,下图显示了可以遍历的清单层次结构。

vCenter 服务器清单层次结构

这里写图片描述


注意:
如果你的 ESX/ESXi 主机是由 vCenter 服务器管理的,那么你必须总是通过 vCenter 服务器访问你的主机,vCenter 服务器记录所有的同步和异步操作,并获得每个 ESX/ESXi 主机最新的状态和清单信息。
因此,直接连接到一台有 vCenter 服务器管理的主机可能会得到不正确或不完整的数据。

当你的 ESX/ESXi 主机不是由 vCenter 服务器管理的,你的应用程序可以直接连接到每台主机。


6.2.1 清单层次结构中的 Folders

如果你的设备包含一个 vCenter 服务器系统,你可以在 root folder 下创建额外的数据中心,对于每个 Datacenter 对象,服务器会自动创建以下 Folder 对象:

■ 用于 VirtualMachine、template 和 VirtualApp 对象的 folder

■ 用于 ComputeResource 层次结构的 folder

■ 用于 Network、DistributedVirtualSwitch 和 DistributedVirtualPortgroup 对象的 folder

■ 用于 Datastore 对象的 folder

在大型部署中,嵌套结构允许你通过使用多 folder 和 datacenter 来组织 datacenter 中的对象到一个简单的结构。

对于一个独立的 ESX/ESXi 系统,仅支持单个 datacenter,并且 Folder 管理实体不支持创建额外的 Folder 对象 和 Datacenter 对象。

6.2.2 ESXi 清单层次结构

当你直接访问一个 ESXi 主机,下图显示了可以遍历的清单层次结构。

ESXi 清单层次结构

这里写图片描述

6.3 访问清单对象

要从清单对象中获取信息,需要从清单根对象 ServiceInstance 开始,使用 TraversalSpec 结合属性收集器(property collector)来访问对象,使用其属性确定一个对象在层次结构中的位置。

■ 每个托管实体有一个确认其在清单结构中相对位置的父属性。

■ Folder 托管对象有一个 childEntity 属性,用于确认在 folder 实例中的对象

下图显示了 childEntity 和 folder 属性定义了一个在独立的 ESX/ESXi 系统清单中的默认对象,该清单开始于 ServiceContent.rootFolder 属性, rootFolder 有一个由托管对象引用到 Datacenter 托管对象组成的 childEntity 属性。

清单中 Root Folder 的实例图

这里写图片描述

6.4 创建清单对象

Folder 托管实体提供了用于创建以下托管实体实例的方法:

■ Datacenter
■ DistributedVirtualSwitch
■ VirtualMachine
■ Cluster
■ Folder

当创建这些对象时,它们在你调用创建方法时在 folder 中被自动创建。

当一些托管实体通过 Folder 托管实体上的方法被创建,其它的托管实体就直接被实例化了。
例如,HostDatastoreSystem 有创建 datastore 的方法如 CreateNasDatastore 和 CreateVmfsDatastore。


重要
当你创建一个清单对象,你必须在主机的能力范围内,通过HostSystem.capability 属性可访问的,是一个 HostCapability 数据对象。
例如,一个 HostCapability 对象可能有指定 maxSupportedVMs 属性。


6.5 清单管理所需权限

浏览清单需要一个能够连接到服务器并获得有效会话的用户帐户,与会话关联的用户身份称为主体。当客户端应用程序试着访问清单中的对象,服务器检查权限对象,并将该权限与主体的权限进行比对。

例如,创建一个虚拟机需要关联会话的主体拥有如下权限:

■ 在 folder 上的 VirtualMachine.Inventory.Create 权限

■ 在资源池上的 Resource.AssignVMToPool 权限,从这虚拟机可以获得 CPU 和内存资源的分配。

读取 PerformanceManager 托管对象的 perfCounter 属性需要有根目录上的 System.view 权限。


重要:某些权限特定于 vCenter 服务器或 ESX/ESXi 上的对象。
例如,与 AlarmManager 关联的 Alarm.Create 权限只有在 vCenter 服务器系统上可用。


查阅 认证和授权 获取更多有关 认证、授权、角色和用户身份的信息。

Privileges(权限)
权限是与 VMware vSphere 托管对象相关联的系统定义的必要条件,权限是静态的,对于一个产品的某个版本来说是不变的。vSphere 组件的权限定义如下:

<group>[.<group>].privilege
For example:
Datacenter.Create
Host.Config.Connection
Host.Config.Snmp

Permissions(许可,访问权限)
访问权限是在指定管理实体上角色和权限的结合。你可以使用访问权限来指定哪些用户可以访问哪个托管实体。

如果父实体的 propagate (传播)属性被设置为true,子实体将继承其父实体的访问权限,如果权限直接在子实体被设置,会覆盖在父实体中的访问权限。
要对 Datacenter 对象的所有子实体对象授权,可对 Datacenter 对象分配权限并设置 Permission 对象的 propagate 属性为 true 即可。

下图显示了 root 用户和 vpxuser 用户两者在清单的 rootFolder 上都拥有的权限。vpxuser 是由 vCenter 服务器系统在一个主机上创建的帐户,当该主机被添加到vCenter服务器系统时。vCenter 服务器需要访问主机系统管理的清单对象,所以 vpxuser 账户被授予每个主机的 rootFolder 访问权限。

清单和访问权限

这里写图片描述

6.6 受管和独立的 ESX/ESXi 主机

ESX/ESXi 可以作为受管的或独立的 ESX/ESXi 主机运行。

■ 独立的 ESX/ESXi 主机,功能有限。独立的主机清单能够支持多个虚拟机及多个资源池,但只包含单个默认的数据中心和单个根目录。默认的数据中心和根目录在 vSphere 客户端上是看不到的,但他们确实在独立的主机上存在,可以在 MOB(托管对象浏览器)查到。

■ 受管 ESX/ESXi 主机被添加到 vCenter 服务器清单。可用的特性取决于该主机可用的许可。
例如, 你可以给 VMware DRS 资源管理或 VMware HA 失效备援保护配置两个或多个主机。

下表汇总了清单包含的多个对象之间的差异。

独立的 ESX/ESXi 和 vCenter 服务器清单

ManagedEntity 子类ESX/ESXi 清单vCenter 服务器清单
ClusterComputeResource支持多个实例
ComputeResource仅一个支持多个实例
Datacenter仅一个,不能被销毁,透明的支持多个实例
Datastore支持多个实例支持多个实例
DistributedVirtualSwitch支持多个实例支持多个实例
Folder仅一个,不能被销毁,透明的支持多个实例
HostSystem仅一个支持多个实例
Network支持多个实例支持多个实例
ResourcePool支持多个实例支持多个实例
VirtualApp支持多个实例
VirtualMachine支持多个实例支持多个实例




原文:
VMware vSphere 6.5 Documentation Center:Datacenter Inventory

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vSphere Web Services SDKVMware vSphere提供的一组工具和库,用于开发和管理vSphere环境。它提供了一种与vSphere服务器进行通信和交互的方式,并可以使用各种编程语言来编写自定义的应用程序。 要使用vSphere Web Services SDK获取vCloud Director(vCD)的信息,首先需要建立与vCD服务器的连接。可以使用vSphere Web Services SDK中提供的vCloud API来进行连接和交互。 连接到vCD服务器后,开发人员可以使用vSphere Web Services SDK提供的各种方法和类来获取vCD的信息。例如,可以使用vSphere Web Services SDK提供的VimService类来执行各种操作,如查询组织架构、虚拟机、网络、存储等资源的信息。 需要注意的是,使用vSphere Web Services SDK获取vCD信息需要具有相应的权限。开发人员需要根据自己的角色和权限配置相应的访问权限,以便能够通过vSphere Web Services SDK访问和获取vCD的信息。 在编写应用程序时,可以根据具体需求选择不同的编程语言和工具。vSphere Web Services SDK提供了多种编程语言的开发包,如Java、C#等。开发人员可以选择适合自己的编程语言和工具,并参考官方文档和示例代码来实现获取vCD信息的功能。 总之,使用vSphere Web Services SDK可以方便地获取vCloud Director的信息,并根据具体需求进行自定义开发和管理。它为开发人员提供了丰富的工具和库,使他们能够更好地与vCD服务器进行交互和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值