原文: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。
查询定义的可用虚拟机存储配置文件列表:
创建虚拟机存储策略:
删除虚拟机存储策略:
检查虚拟机存储策略合规性:
给定虚拟机主目录或虚拟磁盘,提供关联的虚拟机存储配置文件:
给定虚拟机存储配置文件,提供关联的虚拟机主目录或虚拟磁盘:
PbmQueryAssociatedEntity
PbmQueryAssociatedProfiles
希望这些内容能够为您概括介绍一些常见的 VSAN /SPBM 操作及其关联的 API 方法。如果我有空闲时间,我可能会创建一些利用其中一些 API 方法的示例脚本。同时,您还可以看看此处和此处这些同时利用 VSAN 和 SPBM API 的RVC(vSphere SDK for Ruby) 模块。
额外资源:
欢迎在微博上关注我,这样在我发布博客文章后您就会收到通知,并可以让您了解更多有关 VMware 存储的信息:@VMware中国
————————————————————————————————————————————
作者:William Lam
现任 VMwareR&D 主管工程师,隶属 SDDC 新兴解决方案团队的一员。目前,他在 VMware 公司从事原型设计,构建新解决方案并将其推向市场。他的工作主要侧重于从 API 和 SDK 这两个角度进行软件定义的数据中心 (SDDC) 自动化以及 SDDC 通用集成和操作。他还与 VMware 内部的多个工程团队紧密合作,帮助提供设计和架构方面的前期反馈。最后,通过客户互动和反馈,他不断应对客户的挑战、坚持满足客户的需求,从而更好地改进 VMware 产品。