VMware VSAN API
原文:http://www.virtuallyghetto.com/2014/02/vmware-vsan-apis.html
对于现在正在评估VMware VSAN 的客户而言,vSphere WebClient 是管理和配置 VSAN 的主要界面。但是,从自动化角度来看,这些完全相同的 VSAN 操作也可以通过编程方式访问。我在实验室花了很多时间使用 VSAN,研究了 VSAN 的一些 API,我在想,分享一些映射到了对应 API 上的常见 VSAN 操作可能会非常有用。
使用 VSAN 的时候,您应该知道两种主要的操作类别:
[*] VSAN 专用操作
[*] 虚拟机存储策略操作
VSAN 操作
VSAN 专用操作已经作为vSphere5.5 API 的一部分提供,以下列表是受支持的操作:
启用/禁用vSphere 群集上的VSAN(自动声明):
[*] 使用ReconfigureComputeResource_Task(),将spec->vsanConfig->enabled 设置为 True 或 False,将spec->vsanConfig->defaultConfig->autoClaimStorage 设置为 True
为ESXi 主机手动声明磁盘:
[*] 每个 ESXi 主机都提供了vsanSystem 管理器,位置在configManager->vsanSystem,可以实现以下磁盘管理方法
[*] AddDisks_Task()
[*] InitializeDisks_Task()
[*] QueryDisksForVsan()
[*] QueryHostStatus()
[*] RemoveDisk_Task()
[*] RemoveDiskMapping_Task()
[*] UpdateVsan_Task()
为VMkernel 接口启用VSAN 流量类型
[*] 使用ReconfigureComputeResource_Task(),将spec->vsanHostConfigSpec->HostSystem 设置为您想要配置的 ESXi 主机,将spec->vsanHostConfigSpec->networkInfo->port->device 设置为您想要启用 VSAN 流量类型的特定 VMkernel 接口
访问低级别CMMDS(群集监控、成员身份和目录服务)、对象和磁盘管理API 的内部VSAN 管理器:
[*] 每个 ESXi 主机都提供了vsanInternalSystem 管理器,位置在configManager->vsanInternalSystem,可以实现以下使用 VSAN 低级别系统的方法
[*] QueryCmmds()
[*] QueryObjectsOnPhysicalVsanDisk()
[*] QueryPhysicalVsanDisks()
[*] QueryVsanObjects()
更改虚拟机主目录的虚拟机存储策略或虚拟机主目录和虚拟磁盘的虚拟机存储策略:
[*] 使用ReconfigVM_Task(),将spec->vmProfile 设置为虚拟机存储策略 ID
更改虚拟机虚拟磁盘的虚拟机存储策略:
[*] 使用ReconfigVM_Task(),将spec->deviceChange->device 设置为要重新配置的特定虚拟磁盘,将spec->deviceChange->vmProfile 设置为虚拟机存储策略 ID
进入VSAN 群集ESXi 主机的维护模式:
[*] 使用 EnterMaintenanceMode_Task(),将 spec->
maintenanceSpec->vsanMode->objectAction 设置为此处定义的特定数据访问模式
创建和删除VSAN 数据存储上的目录:
[*] 使用DatastoreNamespaceManager,可以实现以下两种方法
[*] CreateDirectory()
[*] DeleteDirectory()
SPBM
对于虚拟机存储策略,VSAN 将使用SPBM(基于存储策略的管理) 框架,该框架允许管理员创建策略,定义特定的存储功能,例如可以应用于虚拟机的性能和可靠性。SPBMAPI 在 vCenter Server 中表现为单独的 API 端点,如果您想要创建利用 VSAN 存储功能的额外虚拟机存储策略,您将需要这个 API。
查询定义的可用虚拟机存储配置文件列表:
[*] 使用PbmQueryProfile()
创建虚拟机存储策略:
[*] 使用PbmCreate()
删除虚拟机存储策略:
[*] 使用PbmDelete()
检查虚拟机存储策略合规性:
[*] 使用PbmCheckCompliance()
给定虚拟机主目录或虚拟磁盘,提供关联的虚拟机存储配置文件:
[*] 使用PbmQueryAssociatedEntity()
给定虚拟机存储配置文件,提供关联的虚拟机主目录或虚拟磁盘:
PbmQueryAssociatedEntity
[*] 使用PbmQueryAssociatedProfiles()
PbmQueryAssociatedProfiles
希望这些内容能够为您概括介绍一些常见的 VSAN /SPBM 操作及其关联的 API 方法。如果我有空闲时间,我可能会创建一些利用其中一些 API 方法的示例脚本。同时,您还可以看看此处和此处这些同时利用 VSAN 和 SPBM API 的RVC(vSphere SDK for Ruby) 模块。
额外资源:
[*] 如果您想要评估 VSAN 及其关联的 API,请在此处注册,获取公共测试版。
[*] 请在此处注册,了解特殊 VSAN 活动
[*] 虚拟机存储策略 API,即存储配置文件 API,将在 vSphere 5.5 中提供
[*] vSphere 5.5 中的 SPBM(基于存储策略的管理)MOB
欢迎在微博上关注我,这样在我发布博客文章后您就会收到通知,并可以让您了解更多有关 VMware 存储的信息:@VMware中国
————————————————————————————————————————————
作者:William Lam
现任 VMwareR&D 主管工程师,隶属 SDDC 新兴解决方案团队的一员。目前,他在 VMware 公司从事原型设计,构建新解决方案并将其推向市场。他的工作主要侧重于从 API 和 SDK 这两个角度进行软件定义的数据中心 (SDDC) 自动化以及 SDDC 通用集成和操作。他还与 VMware 内部的多个工程团队紧密合作,帮助提供设计和架构方面的前期反馈。最后,通过客户互动和反馈,他不断应对客户的挑战、坚持满足客户的需求,从而更好地改进 VMware 产品。
页:
[1]