VMware vSphere Web Services SDK编程指南(十)- 10.7 创建及管理 Datastores
10.7 创建及管理 Datastores每个数据存储都是一个逻辑容器,类似于逻辑卷上的文件系统,其中主机放置虚拟磁盘文件和其他虚拟机文件。数据存储隐藏了物理存储设备的细节,并为存储虚拟机文件提供统一的模型存储虚拟文件。
10.7 创建及管理 Datastores
本章包括以下主题:
■ 10.1 Storage 管理对象
■ 10.2 Storage 简介
■ 10.3 选择要使用的 Storage API
■ 10.4 配置磁盘分区
■ 10.5 多路径管理
■ 10.6 配置 iSCSI 存储
■ 10.7 创建及管理 Datastores
■ 10.8 管理 VMFS 卷拷贝(Resignaturing)
■ 10.9 管理诊断分区
■ 10.10 示例代码参考
本节从第7节开始。
10.7 创建及管理 Datastores
每个数据存储都是一个逻辑容器,类似于逻辑卷上的文件系统,其中主机放置虚拟磁盘文件和其他虚拟机文件。数据存储隐藏了物理存储设备的细节,并为存储虚拟机文件提供统一的模型存储虚拟文件。
HostDatastoreSystem 托管对象提供了创建和管理数据存储的方法,所有的 HostDatastoreSystem 方法需要一个到 HostDatastoreSystem 的托管对象引用,当创建后返回一个 Datastore 对象的引用。
HostDatastoreSystem 可以让你创建、扩展、查询和删除或更新数据存储。通过调用 ConfigureDatastorePrincipal 还可以配置数据存储负责人,所有相关的虚拟机文件 I/O 都在该用户下执行。
VMFS 配置任务通常执行如下:
1 调用 QueryAvailableDisksForVmfs 获取用于保存 VMFS 数据存储的磁盘子集
QueryAvailableDisksForVmfs 获取可以被用于包含 VMFS 数据存储区的磁盘列表,你可以提供一个数据存储名称来获取磁盘列表,这些磁盘包含指定的 VMFS 数据存储区。
该操作不返回当前被 VMFS 数据存储使用的磁盘,也不返回被 RDMS 引用的管理 LUNs 及磁盘。RDM 磁盘不能用于 VMFS 数据存储。
2 获取关于配置选项的信息(通过调用下列的其中某个方法,传入所选磁盘)
■ QueryVmfsDatastoreCreateOptions – 获取在磁盘上创建一个新的 VMFS 数据存储的有关配置信息
■ QueryVmfsDatastoreExpandOptions – 获取关于扩展现有 VMFS 数据存储分区的选项信息
■ QueryVmfsDatastoreExtendOptions – 获取关于磁盘扩展现有的 VMFS 数据存储的选项信息
3 如果需要,调用 HostStorageSystem.ComputeDiskPartitionInfo 改变磁盘分区布局,然后调用 HostStorageSystem.UpdateDiskPartition 调整分区大小
4 调用 CreateVmfsDatastore、ExtendVmfsDatastore 或 ExpandVmfsDatastore 来完成 VMFS 的配置操作
10.7.1 访问 Datastores
下面的 Datastore 托管对象类图说明了如何访问或指定数据存储,可查阅 Datacenter Inventory 了解更多有关托管对象的层级结构信息。
■ 每个 Datacenter 托管对象拥有一个 datastore 属性,其包含一组 datastore。
■ 每个 Datacenter 托管对象拥有一个 datastoreFolder 属性,它是一个到 folder 的引用,其包含该 datacenter 的 datastore。
■ 每个 Datacenter 托管对象拥有一个 hostFolder 属性,它是一个到 folder 的引用,其包含该数据中心的计算资源、主机和集群,每个 HostSystem 或 ComputeResource 拥有一个 datastore 属性,它是一组 Datastore 托管对象。
Datastore 托管对象
10.7.2 创建或修改一个 VMFS Datastore
datastore 是一个可管理的存储实体,通常用作虚拟机文件(包括日志文件、脚本、配置文件、虚拟磁盘等)的存储库。
VMFS 是 VMware 为虚拟机设计的一个专用文件系统,VMFS 非常适合存储一小部分大型数据文件,比如虚拟磁盘,这些文件主要用于单个主机。
VMFS 不同于其他的文件系统格式如 FAT16/FAT32 等,因此它可以被通过连接到同一 SAN LUN 的多个主机来访问它。
你可以在任何基于 SCSI 的主机能够访问的存储设备上设置 VMFS datastore,VMFS 卷创建、扩展及扩张需要首先进行分区操作和 VMFS 卷操作。
设置磁盘分区
设置磁盘分区包含以下任务:
调用 HostStorageSystem.RetrieveDiskPartitionInfo 获取现有分区相关信息
调用 HostStorageSystem.ComputeDiskPartition,传入所需磁盘布局,服务器为指定的磁盘计算一个新的分区信息对象,表示所需布局,并返回可以在 HostDiskPartitionSpec 中使用的 HostDiskPartitionInfo 对象,您可以将它传递到 UpdateDiskPartitions。
调用 HostStorageSystem.UpdateDiskPartitions,传入 HostDiskPartitionSpec 进行分区更新。
创建 VMFS Datastore
创建 VMFS Datastore 包含下列任务:
1 配置和安装你的存储所需的任何第三方适配器并通过调用 HostStorageSystem.RescanAllHba 扫描适配器;
2 调用 HostDatastoreSystem.QueryAvailableDisksForVmfs 查询有关可以用来包含VMFS数据存储的磁盘的信息;
该方法过滤现有 VMFS 当前正在使用的磁盘,除非 VMFS 使用的磁盘是被扩展的磁盘。它还将过滤出 RDMs 所引用的管理 LUN 和磁盘,这些磁盘 LUN 也不适合 VMFS 使用。
该方法返回一个 HostScisiDisk 对象数组。
3 调用 HostDatastoreSystem.QueryVmfsDatastoreCreateOptions 查询创建一个新的 VMFS datastore 相关选项信息,返回一个允许你访问相配的 UUID 的 VmfsDatastoreCreateOption 数据对象数组;
4 (可选)如果没有适合你的 VMFS 卷的分区,你必须先创建分区,使用 HostStorageSystem 中的 ComputeDiskPartitionInfo 和 UpdateDiskPartitions 方法;
5 创建数据存储;
■ 调用 HostDatastoreSystem.CreateVmfsDatastore 创建一个 VMFS 数据存储,该方法携带一个由 partition、HostVmfsSpec 及 可选的 extent 组成的 VmfsDatastoreCreateSpec 数据对象。其中 HostVmfsSpec 指定 VMFS 的块大小、扩展、主版本及卷名称。
■ 调用 HostDatastoreSystem.CreateNasDatastore 创建一个基于 datastore 的附加网络。
之后你可以调用下面某个方法扩展 VMFS datastore:
■ 首先调用 QueryVmfsDatastoreExpandOptions ,然后调用 ExpandVmfsDatastore 扩展一个现有的 VMFS datastore,通过使用 VmfsDatastoreExpandSpec 数据对象(其包含扩展和分区信息的名称)提供的规范。
如果需要的话,ExpandVmfsDatastore 会将数据存储的大小增加到为数据存储提供的完整大小。
■ 首先调用 QueryVmfsDatastoreExtendOptions,然后调用 ExtendVmfsDatastore 扩展一个现有的 VMFS datastore,通过使用 VmfsDatastoreExtendSpec 数据对象提供的规范。
10.7.3 删除和更新 Datastores
■ RemoveDatastore – 从主机中删除一个数据存储
■ UpdateLocalSwapDatastore – 为该主机选择 localSwapDatastore,对这个设置的任何更改都会影响虚拟机,这些虚拟机随后会从这个主机的挂起状态启动或恢复,或者在启动时迁移到这个主机上。当前在主机上已启动的虚拟机不受影响。
10.7.4 用 HostStorageSystem 管理 VMFS Datastores
在大多数情况下,数据存储方法适合于创建和管理 VMFS 数据存储,但下列这些情况使用 HostStorageSystem 代替:
■ AttachVmfsExtent – 扩展一个 VMFS,通过附加一个磁盘分区来扩展
■ ExpandVmfsExtent – 扩展一个磁盘分区为规范指定的 VMFS 范围
■ FormatVmfs – 根据传入的 HostVmfsSpec,在磁盘分区上格式化一个新的 VMFS,返回一个代表新的 VMFS 文件系统的HostVmfsVolume,HostVmfsVolume 包含块大小、磁盘的 VMFS 扩展的名称列表及其他包含 UUID 的信息。
该命令是一个低级的 API,你可以显式地用于分区磁盘,大多数情况下, 使用 Datastore VMFS 命令更适合。
■ RescanVmfs – 重新扫描新的 VMFS 实例
■ UpgradeVmfs – 将 VMFS 升级到当前的 VMFS 版本
更新和升级
■ HostStorageSystem.UpdateScsiLunDisplayName – 更新与 SCSI LUN 相关联的可变显示名称,使用 LUN UUID 标识要更新的 SCSI LUN
■ HostStorageSystem.UpgradeVmLayout – 遍历所有已注册的虚拟机
对于每个虚拟机,升级布局并记录事件,当方法被调用时,VirtualMachineFileLayout 数据对象中的信息是正确的。
原文:
VMware vSphere 6.5 Documentation Center:Creating and Managing Datastores
更多推荐
所有评论(0)