VMware vSphere Web Services SDK编程指南(九)- 9 Hosts

9 Hosts


在 vSphere 环境中,许多操作都涉及到设置虚拟化层运行的 ESXi 主机,可以设置存储、网络,这些设置直接影响虚拟机,所以你还必须管理主机的其他方面,如本章所述:

本章包括以下主题:

9.1 Host 管理对象
9.2 检索主机信息
9.3 配置及重新配置主机
9.4 管理主机生命周期
9.5 查询及改变主机时间
9.6 查询虚拟机内存开销


9.1 Host 管理对象

vSphere Web Services SDK 包含若干个用于主机管理的对象。

重要的一个对象是 HostSystem,每个 HostSystem 的属性是一个数据对象,它封装了主机信息。
例如,capability 属性是一个 HostCapability 对象;
runtime 属性是一个 HostRuntimeInfo 对象。

HostSystem 方法允许你执行 ESX/ESXi 主机上确定的任务。但是很多任务并不是通过 HostSystem 方法执行的,而是通过与 HostSystem 关联的托管对象中的方法。
例如,使用 HostDateTimeSystem 管理主机时间;使用 HostKernelModuleSystem 管理内核模块。

9.2 检索主机信息

通过访问为 HostSystem 定义的数据对象检索主机信息。

■ HostSystem.capability 是一个 HostCapability 对象
    HostCapability 属性表示主机所支持的特性,例如,maintenanceModeSupported 或 recursiveResourcePoolsSupported。

■ HostSystem.runtimeInfo 是一个 HostRuntimeInfo 对象
    该对象包含若干个含有主机当前状态详细信息的数据对象,
    例如,你可以通过 HealthSystemRuntime 对象提取健康状态信息;通过 HostPowerState 对象提取电源状态信息。

■ HostSystem.hardware 是一个 HostHardwareInfo 对象
    该对象可以检索主机硬件配置信息包括 CPU、NUMA(Non Uniform Memory Access Architecture,非统一内存访问架构)信息及内存大小。

■ HostSystem.config 是一个 HostConfigInfo 对象
    该对象类型封装了一组典型的主机配置信息,这些信息对于显示和配置主机非常有用,但仅在托管主机上访问HostConfigInfo 对象,并且只有在主机连接时才可以访问。

HostSystem 还有若干附加属性,允许直接访问与系统相关联的虚拟机、datastores 及网络。

QueryHostConnectionInfo、QueryMemoryOverhead 及 QueryMemoryOverheadEx 方法可以用于信息检索。

HostSystem 及 Information Properties

这里写图片描述

9.3 配置及重新配置主机

当你配置或重新配置 ESX/ESXi 主机,通常不会直接使用 HostSystem 中的方法,而是使用系统部分可配置的托管对象来配置。
例如,HostNetworkSystem 用于配置 network;
HostAuthorizationManager 用于管理主机上的用户、组及权限。

一些方法被定义在 HostSystem 本地。

■ CIM 管理 – AcquireCimServicesTicket

■ 主机生命周期 – RebootHost_Task、ShutdownHost_Task、PowerDownHostToStandBy_Task、PowerUpHostFromStandBy_Task、DisconnectHost_Task、ReconnectHost_Task

■ 维护模式 – EnterMaintenanceMode_Task、ExitMaintenanceMode_Task

■ 更新 – UpdateFlags, UpdateIpmi, UpdateSystemResources

9.4 管理主机生命周期

一个主机的生命周期在一定程度上取决于主机是独立的还是由 vCenter 服务器系统管理的主机。

9.4.1 重启和关机

你可以重启和关闭托管或独立的主机,ShutdownHost_Task 方法并不是被所有主机支持,检查主机 shutdownSupported 功能。

你可以用 force 参数调用这两种方法,该参数指定了是否重启主机(即使虚拟机正在运行),或者在主机上其他运行的操作。如果设置该参数为 false,主机仅当处于维护模式时重启。

■ ShutdownHost_Task – 关闭主机
    如果直接连接到主机,客户端在返回的任务中永远不会收到成功的指示,但是会暂时失去与主机的连接;如果该方法执行失败,则返回一个错误。

■ RebootHost_Task – 重启主机
    如果命令正确,那么主机重启。直接连接到主机的客户端在返回的任务中不会获得成功的指示,但是会暂时失去与主机的连接;如果该方法执行失败,则返回一个错误。

9.4.2 使用待机模式

待机是一种电源状态,此时主机不支持对虚拟机的配置或上电操作。VMware 电源管理模块可能会撤离,并将主机放在待机模式以节省电力。通过使用 PowerUpHostFromStandBy_Task 可以远程启动主机。

下面的方法制成待机模式,这两种方法都是可撤销的:

■ PowerDownHostToStandBy_Task – 将主机设为待机模式
    主机处于待机状态,可以远程启动,主机仅在 standbySupported 功能设置为 true 时才支持该命令。

    当任务运行时,该主机上没有虚拟机能够开启及配置操作能被执行。

    调用此方法并不能直接启动任何操作以撤离或关闭虚拟机,但是,如果 VMware DRS 是启动的,vCenter 服务器根据自动化级别将关闭的虚拟机迁移到不同的主机上,或者建议迁移到不同的主机;如果主机是集群的一部分,并且任务是通过 vCenter 服务器指定方法的 evacuatePoweredOffVms 参数为 true 发出的,该任务不会成功,除非所有的断电虚拟机有在其他主机上重新注册。

■ PowerUpHostFromStandBy_Task – 使主机脱离待机模式
    如果命令正确,主机被唤醒并开始发出心跳,该方法可能被自动调用,通过 VMware DRS 添加功能到集群,如果主机没有处于维护模式。

9.4.3 断开和重新连接主机

可以将主机添加至 VCenter 服务器系统使其成为一个受管主机,之后你可以断开并重新连接主机,如刷新代理。

可以使用以下方法,这些方法仅被 vCenter 服务器系统管理的主机所支持:

■ QueryHostConnectionInfo – 返回一个 HostConnectInfo 对象
    该对象和 Datacenter.QueryConnectionInfo 返回的是相同对象,该对象中的信息可以被连接向导使用,就像在 vSphere 客户端中使用的向导一样。

■ DisconnectHost_Task – 断开主机连接
    断开与主机的连接,并指示 vCenter 服务器系统停止向主机发送心跳。

■ ReconnectHost_Task – 重新连接主机到vCenter服务器系统
    如果该过程与服务器不同步,将重新安装代理并重新配置主机。重新连接过程检查正确的许可证集和主机上的CPU 数量,确保安装了正确的代理,并确保在 vCenter 服务器系统中发现并注册了网络和数据存储。

当执行重新连接操作,客户端应用程序可以改变 IP 地址和主机端口,如果客户端希望保留现有的元数据(如统计数、警报、权限),那么这一点是很有用的,即使主机改变了 IP 地址。

9.5 查询及改变主机时间

HostDateTimeSystem 支持主机上的日期和时间相关配置,并支持NTP配置。

HostDateTimeSystem.dateTimeInfo 属性可以获取和设置日期、时间信息,HostDateTimeInfo 数据对象的属性包含用于日期时间管理的两个数据对象:

■ HostNTPConfig 包含一个主机使用的 NTP 服务器列表

■ HostDateTimeSystemTimeZone 指定时区包括 GMT 偏移、时区标识符和名称

调用下列其中一个 HostDateTimeSystem 方法可以查询主机的时间信息:

■ QueryAvailableTimeZones – 查询主机上可用时区列表
    该方法使用公共领域的 tz 时区数据库,返回一个 HostDateTimeSystemTimeZone 对象的数组。

■ QueryDateTime – 查询主机上当前的日期和时间

调用下面的一个 HostDateTimeSystem 方法可以修改主机的日期时间信息:

■ RefreshDateTimeSystem – 刷新日期和时间相关设置,以获取可能发生的任何更改

■ UpdateDateTime – 使用传入方法的日期和时间更新主机上的日期和时间。
    谨慎使用。网络延迟或执行延迟可能导致时间偏斜。

■ UpdateDateTimeConfig – 更新主机的日期和时间配置。
    使用 HostDateTimeConfig 参数调用该方法,该参数允许您指定 NTP 配置和时区。

9.6 查询虚拟机内存开销

每个启动的虚拟机都需要一定的内存以供其使用,此外,针对每个虚拟机,主机必须有一些可用的内存开销。
要找出内存过高的问题,调用 HostSystem.QueryMemoryOverheadEx 方法,该方法以 virtualMachineConfigInfo 数据对象作为一个参数,并确定开启具有这些特征的虚拟机所需要的内存开销数量。

该方法返回所需内存数量,以字节为单位。




原文:
VMware vSphere 6.5 Documentation Center:Hosts

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值