VMware vSphere Web Services SDK编程指南(十)- 10.8 管理 VMFS 卷拷贝及诊断分区

10.8 管理 VMFS 卷拷贝及诊断分区


本章包括以下主题:

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 示例代码参考

本节从第8节开始。


10.8 管理 VMFS 卷拷贝(Resignaturing)

默认情况下,ESX/ESXi 主机挂载所有的 VMFS 数据存储,在 LUN 上的分区中创建的每个 VMFS 数据存储都有一个惟一的UUID,存储在文件系统的超级块中。此外,源 LUN 的 LUN ID 是惟一的,并存储在 VMFS 元数据中。

当一个 LUN 被复制或作为一个副本时,产生的 LUN 副本与原来的 LUN 相同,每个字节都是一样的,因此,如果原始 LUN 包含一个带有 UUID X 的 VMFS 数据存储,那么 LUN 副本似乎包含一个相同的 VMFS 数据存储,或者一个 VMFS 数据存储拷贝,使用的是相同的UUID X。
ESX/ESXi 能够确定一个 LUN 是否包含 VMFS datastore 副本,并认为该副本没有得到解决,并且不会自动挂载它。

要使在 LUN 副本上的数据可用,你可以强制挂载副本,如果你确定原始文件没有使用,或者您可以重新签名副本。当你执行数据存储签名时,需考虑以下几点:

    ■ 数据存储的签名是不可逆转的,因为它覆盖了原始的VMFS UUID。

    ■ 包含你重新签名的 VMFS 数据存储的 LUN 副本不再被视为 LUN 副本,而是作为独立的数据存储出现,与副本的源没有任何关系。

    ■ 只有在所有的区段都是联机的情况下,跨数据存储才可以被重新签名。

    ■ 这一过程是崩溃和容错性的,如果进程被中断,您可以稍后重新开始。

    ■ 你可以挂载新的 VMFS 数据存储,而不存在其 UUID 与其他任何数据存储的 UUID 发生冲突的风险,比如在 LUN 快照的层次结构中的父类或子类。

重新签名未解决的卷最容易的方法就是通过使用 HostDatastoreSystem.ResignatureUnresolvedVmfsVolume_Task 方法,该方法分配一个新的 DiskUUID 给 VMFS 卷,但是保持它的内容完整,该方法支持跨主机的安全卷共享,并在大多数情况下是合适的。

你也可以使用低级 HostStorageSystem 方法来查找、强制挂载或卸载未处理的卷:

■ HostStorageSystem.QueryUnresolvedVmfsVolume – 获取未挂载 VMFS 卷的列表

    为了跨主机共享卷,VMFS 卷被绑定到它的底层块设备存储。当执行一个低级的块副本被拷贝或移除 VMFS 卷,复制的卷是未绑定的。

■ HostStorageSystem.ResolveMultipleUnresolvedVmfsVolumes – 重新签名或强制挂载未绑定的 VMFS 卷

    该方法以一个 HostUnresolvedVmfsResolutionSpec 数据对象作为输入,HostUnresolvedVmfsResolutionSpec.resolutionSpec 属性是一个包含HostUnresolvedVmfsResolutionSpecVmfsUuidResolution 枚举的 HostUnresolvedVmfsResolutionSpec 数据对象数组,该枚举值为forceMount 和 resignature。

■ UnmountForceMountedVmfsVolume – 卸载强制挂载的 VMFS 卷

    当执行一个低级的块副本被拷贝或移除 VMFS 卷,复制的卷是未解析的。为了使 VMFS 卷可用,将应用一个解析操作。作为解析操作的一部分,你可能决定保留原始的 VMFS UUID。一旦应用了该解决方案,就将 VMFS 卷挂载在主机上以供其使用。
    该方法允许你卸载 VMFS 卷,如果该卷没有被任何已注册的虚拟机使用的话。

10.9 管理诊断分区

主机必须有一个诊断分区(dump 分区)来存储用于调试的核心 dump ,并使用由 VMware 提供的技术支持。在(http://kb.vmware.com/kb/1004128 )上的 VMware 知识库文章说明了如何在 ESXi 中为紫色屏幕错误收集诊断分区。

建议为每个主机提供100MB的诊断分区,如果不只一个 ESX/ESXi 主机使用相同的 LUN 作为诊断分区,那么 LUN 必须被分区,所有的 ESX/ESXi 主机才能够访问它。
每个 ESX/ESXi 主机需要 100MB 空间,所以 LUN 的大小决定了多少服务器能够共享它,每个 ESX/ESXi 主机被映射到一个诊断槽。
如果服务器共享一个诊断分区,VMware 建议磁盘空间至少 16 个插槽(1600 MB)。
你可以用 FibreChannel 或硬件 iSCSI 建立一个 SAN LUN, SAN LUN 不支持通过一个软件 iSCSI 启动程序访问。


注意:如果两个主机共享诊断分区失败并将核心转储(core dumps)保存到相同的槽位中,那么核心转储可能会丢失。要收集核心转储数据,在主机失败后立即重新启动主机并提取日志文件。
如果另一主机在你收集第一台主机的诊断数据之前失败,那么第二台主机不保存 core dump。


10.9.1 获取诊断分区信息

HostDiagnosticSystem 托管对象允许你用下列几种方式获取信息:

■ 从 HostDiagnosticSystem.activePartition 属性获取 HostDiagnosticPartition 对象,以检查活动分区的属性

■ 调用 HostDiagnosticPartition.QueryAvailablePartition 方法获取可用的诊断分区列表,按适当的次序

■ 调用 HostDiagnosticPartition.QueryPartitionCreateOptions 方法获取拥有足够空间来包含特定类型的诊断分区的磁盘列表,按适当的次序返回。

10.9.2 创建诊断分区

创建一个针对分区需要使用其中一个查询方法找到合适的分区,然后获取一个创建规范,并执行实际的创建。

创建诊断分区

1 调用 HostDiagnosticPartition.QueryAvailablePartition 或 HostDiagnosticPartition.QueryPartitionCreateOptions 查询合适的分区

2 调用 HostDiagnosticPartition.CreateDiagnosticPartition,传入一个 HostDiagnosticPartitionCreateSpec,其包含诊断类型、id、存储类型等信息。

如果成功,该方法将创建分区,并在活动参数中指定分区为活动分区;
如果失败,诊断分区可能存在,但即使分区是活动的,也不会激活诊断分区。

10.10 示例代码参考

vSphere Web Services SDK (SDK\vsphere-ws\java\JAXWS\samples\com\vmware\)有一些在本章讨论主题的示例应用程序。Java 对应的程序为:

■ scsilun\SCSILunName.java

■ httpfileaccess\GetVMFiles.java




原文:
VMware vSphere 6.5 Documentation Center:Managing VMFS Volume Copies (Resignaturing)
VMware vSphere 6.5 Documentation Center:Managing Diagnostic Partitions
VMware vSphere 6.5 Documentation Center:Sample Code Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值