VMware vSphere Web Services SDK编程指南(六)- 6 Datacenter Inventory
来源:互联网 发布:seo网络优化培训 编辑:程序博客网 时间:2024/09/21 06:34
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>].privilegeFor example:Datacenter.CreateHost.Config.ConnectionHost.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
- VMware vSphere Web Services SDK编程指南(六)- 6 Datacenter Inventory
- VMware vSphere Web Services SDK编程指南(三)- VMware vSphere 和 vSphere Management APIs
- VMware vSphere Web Services SDK编程指南(四)- vSphere API 编程模型(一)
- VMware vSphere Web Services SDK编程指南(四)- vSphere API 编程模型(二)
- VMware vSphere Web Services SDK编程指南(十一)- 11.1 vSphere Networks
- VMware vSphere Web Services SDK编程指南(十一)- 11.3 VMware 标准虚拟交换机
- VMware vSphere Web Services SDK编程指南(一)-SDK简介
- VMware vSphere Web Services SDK编程指南(五)- 5.4 客户端应用(Web 服务器会话令牌)
- VMware vSphere Web Services SDK编程指南(五)- 5.1 客户端应用(vCenter 服务器连接)
- VMware vSphere Web Services SDK编程指南(八)- 8.1 认证和授权(相关对象)
- VMware vSphere Web Services SDK编程指南(二)-Java 开发设置
- VMware vSphere Web Services SDK编程指南(七)- 7 属性收集器(Property Collector)
- VMware vSphere Web Services SDK编程指南(七)- 7.4 PropertyCollector 示例 (RetrievePropertiesEx)
- VMware vSphere Web Services SDK编程指南(七)- 7.5 清单遍历
- VMware vSphere Web Services SDK编程指南(七)- 7.6 客户端数据同步
- VMware vSphere Web Services SDK编程指南(七)- 7.7 服务器数据传输和 PropertyCollector 性能
- VMware vSphere Web Services SDK编程指南(七)- 7.9 SearchIndex
- VMware vSphere Web Services SDK编程指南(八)- 8.5 使用 AuthorizationManager 管理角色和权限
- 沃顿商学院自我管理课——谢丽尔.桑德伯格
- bootstrap系列之十六标签、徽章、大屏展播、页面标题
- pandas官方文档cookbook(4)中Arithmetic&Slicing&Sorting翻译
- JAVA IO其他类
- PAT题解——1083. List Grades (25)
- VMware vSphere Web Services SDK编程指南(六)- 6 Datacenter Inventory
- Codefoces 828C
- 点击按钮事件穿透
- [SMOJ1989]圆括号
- C语言接口实现弗洛伊德算法
- Java异常处理基础
- 查看jvm内存使用命令
- bootstrap系列之十七缩略图和警告框
- node-sass 的安装和使用