本文概述了如何通过vSAN API来对vsan对象进行管理,而不必登录ESXi主机和vCenter用命令。vSAN API是vSphere 通用API的一种扩展,vSAN API作为将作为一种系统服务对外提供Web服务,运行在VMware vCenter服务器系统和VMware ESXi系统上。该API提供了对可以用于管理vSAN的方法的访问。
从vSAN(以前称为Virtual SAN)版本6.2开始,VMware引入了新的vSAN管理API。vSAN API 中心关联一小部分受管对象,这些对象又可用于设置和配置vSAN的各个方面以及查询运行时状态。该API可用于查询和修改vSphere Client之外的vSAN系统的各个方面,例如,基于API驱动的工作流。
版本:Version 6.7 Update 3
官方地址:https://code.vmware.com/apis/217/vsan/doc/vim.Folder.html
https://code.vmware.com/apis/693/vsan
https://developer.vmware.com/
相关对象不好找,还在研究中,欢迎路过的大佬不吝赐教!!!
2、需提前要了解的1) ManagedObjectReference:ClusterComputeResource
Folder managed object是用于存储和组织清单对象的容器。它下面还有许多childType,比如:
{ “vim.Folder”, “vim.Datacenter” } - 标识oot folder 及其子文件夹.。Data center folders可以包含子数据中心文件夹和数据中心管理的对象。数据中心对象包含虚拟机、计算资源、网络实体和数据存储文件夹。
{ “vim.Folder”, “vim.Virtualmachine”, “vim.VirtualApp” } - 标识虚拟机文件夹。虚拟机文件夹可能包含子虚拟机文件夹。它还可以包含VirtualMachine managed objects, templates, 和VirtualApp managed objects。
{ “vim.Folder”, “vim.ComputeResource” } - 标识一个compute resource folder, 其中包含子计算资源文件夹和ComputerResource层次结构。
{ “vim.Folder”, “vim.Network” } - 标识网络实体文件夹(network entity folder).,vCenter服务器上的网络实体文件夹可以包含Network、DistributedVirtualSwitch和DistributedVirtualPortgroup managed objects。ESXi主机上的网络实体文件夹(Network entity folders)只能包含 Network objects。
4)ManagedObjectReference:
3、 vSAN API centers中各类管理API对象 2.1)vsanVcDiskManagementSystem它是VSAN磁盘相关的配置和查询API,仅在vCenter Server中的VSAN群集级别上运行;通过vsan-disk-management-system来访问,
VimClusterVsanVcDiskManagementSystem增强了vSAN磁盘管理部分,提供了vSAN所有闪存磁盘组支持,提供了vSAN磁盘组的更多详细信息,有助于配置和管理vSAN磁盘组。它不支持AddDisks_Task和InitializeDisks_Task API,而是通过QueryDiskMappings API来暴露VimVsanHostDiskMapInfoEx,显示磁盘组是否全是flash,是否启用重复数据删除和压缩,也不支持通过config来暴露diskMapping。它有如下操作管理方法:
1)InitializeDiskMappings:
该API用于在指定主机上创建新的vSAN磁盘组或将更多磁盘挂载到已有的vSAN磁盘组中。不支持AddDisks_Task和InitializeDisks_Task接口,支持创建hybrid和all闪存盘组。还可以通过API QueryDisksForVsan检索到符合vSAN服务条件的Scsi磁盘。
2)QueryClusterDataEfficiencyCapacityState:
3)QueryDiskMappings,
4)RebuildDiskMapping,、
5) RetrieveAllFlashCapabilities
2.2) VimClusterVsanVcStretchedClusterSystem该API用于配置和管理vSAN扩展集群;
vSAN延伸群集,是在避免灾难/停机作为关键要求的环境中实施的特定配置。带有见证主机的vSAN扩展群集,是指用户在包括一定主机的2个活动站点配置vSAN的群集,该群集具有2个活动/活动站点,一定数量的ESXi主机分布在两个站点之间。这些站点通过高带宽/低延迟链路进行连接。而托管vSAN Witness Host的第三个站点又连接到这两个活动/活动数据站点。此连接也是通过低带宽/高延迟链接进行。每个站点均配置为vSAN故障域。这样的vSAN扩展集群配置可描述为X + Y + Z,其中X是数据站点A上的ESXi主机数,Y是数据站点B上的ESXi主机数,Z是c站点上见证主机数数量,其中数据站点就是部署虚拟机的位置。最大配置为15 + 15 + 1(31个节点)。
它的管理方法有:
VSANIsWitnessVirtualAppliance,
VSANVcAddWitnessHost
VSANVcConvertToStretchedCluster
VSANVcGetPreferredFaultDomain
VSANVcGetWitnessHosts
VSANVcIsWitnessHost
VSANVcRemoveWitnessHost
VSANVcRetrieveStretchedClusterVcCapability
VSANVcSetPreferredFaultDomain
此管理对象类型提供了一种全面的方法来管理以下区域中的vSAN群集配置:
1)启用或禁用vSAN
2)为磁盘组启用或禁用自动声明模式
3)启用或禁用数据效率功能
4)配置vSAN iSCSI目标功能
5)管理磁盘组
6)管理故障域
7)检索vSAN常规配置
8)检索数据效率配置
它的管理方法有:
VsanClusterGetConfig
VsanClusterGetRuntimeStats
VsanClusterReconfig
VsanEncryptedClusterRekey_Task
VsanQueryClusterDrsStats
此托管对象提供对vSAN健康相关配置和查询API的访问,这些配置和查询API在vSAN群集级别上运行。它可以通过“vsan群集健康系统”的MOID,通过vCenter服务器端的vsan服务进行访问。
它的管理方法有:
VsanAttachVsanSupportBundleToSr, VsanDownloadAndInstallVendorTool_Task, VsanDownloadHclFile_Task, VsanHealthGetVsanClusterSilentChecks, VsanHealthIsRebalanceRunning, VsanHealthQueryVsanClusterHealthCheckInterval, VsanHealthQueryVsanClusterHealthConfig, VsanHealthRepairClusterObjectsImmediate, VsanHealthSendVsanTelemetry, VsanHealthSetLogLevel, VsanHealthSetVsanClusterHealthCheckInterval, VsanHealthSetVsanClusterSilentChecks, VsanHealthSetVsanClusterTelemetryConfig, VsanHealthTestVsanClusterTelemetryProxy, VsanPurgeHclFiles, VsanQueryAllSupportedHealthChecks, VsanQueryAttachToSrHistory, VsanQueryVcClusterCreateVmHealthHistoryTest, VsanQueryVcClusterCreateVmHealthTest, VsanQueryVcClusterHealthSummary, VsanQueryVcClusterHealthSummaryTask, VsanQueryVcClusterNetworkPerfHistoryTest, VsanQueryVcClusterNetworkPerfTest, VsanQueryVcClusterObjExtAttrs, VsanQueryVcClusterSmartStatsSummary, VsanQueryVcClusterVmdkLoadHistoryTest, VsanQueryVcClusterVmdkWorkloadTypes, VsanRebalanceCluster, VsanStopRebalanceCluster, VsanVcClusterGetHclInfo, VsanVcClusterQueryVerifyHealthSystemVersions, VsanVcClusterRunVmdkLoadTest, VsanVcUpdateHclDbFromWeb, VsanVcUploadHclDb
2.5)Managed Object - VsanObjectSystem(vim.cluster.VsanObjectSystem)此托管对象类型提供一个服务接口,用于为一个vSAN对象配置存储策略和查询vSAN对象状态信息,如其存储配置文件、运行状况。它充当集群级API;
它的方法有:
VosQueryVsanObjectInformation(queryVsanObjectInformation)
VosSetVsanObjectPolicy
VsanDeleteObjects_Task
VsanQueryInaccessibleVmSwapObjects
VsanQueryObjectIdentities
2.6)Managed Object - HostVsanInternalSystem(vim.host.VsanInternalSystem)该托管对象类型在集群下的主机级别:
它的方法有:
AbdicateDomOwnership, CanProvisionObjects, DeleteVsanObjects, GetVsanObjExtAttrs, QueryCmmds, QueryObjectsOnPhysicalVsanDisk, QueryPhysicalVsanDisks, QuerySyncingVsanObjects, QueryVsanObjects, QueryVsanObjectUuidsByFilter, QueryVsanStatistics, ReconfigurationSatisfiable, ReconfigureDomObject, RunVsanPhysicalDiskDiagnostics, UpgradeVsanObjects
其中:DeleteVsanObjects,此API是内部使用的,仅用于故障排除/调试。这个API可能会很慢,因为我们对所有对象都执行IOs。此API可用于删除VSAN对象。DOM不允许访问已丢失仲裁的对象。可以使用可选的“force”标志删除此类对象。但是,如果缺席的组件恢复可访问(网络分区得到解析等),这些对象就可能会重新出现在仲裁中。