Oracle® Solaris Cluster 4.3 数据服务规划和管理指南

退出打印视图

更新时间: 2016 年 4 月
 
 

如何设置 HAStoragePlus 资源类型以使本地 ZFS 文件系统具有高可用性

主要通过以下任务使本地 ZFS 文件系统具有高可用性:

  • 创建 ZFS 存储池。

  • 在 ZFS 存储池中创建一个 ZFS 文件系统。

  • 设置管理该 ZFS 存储池的 HAStoragePlus 资源。

本节介绍如何完成这些任务。


Caution

注意  -  如果打算手动导入已经由群集管理的 ZFS 池,请确保没有在多个节点上导入该池。在多个节点上导入一个池可能会出现问题。有关更多信息,请参见更改 HAStoragePlus 资源管理的 ZFS 池的配置



注 -  还可以使用 Oracle Solaris Cluster Manager 浏览器界面在一个操作中创建用于 ZFS 文件系统的 HAStoragePlus 资源以及包含该资源的新资源组。有关 Oracle Solaris Cluster Manager 登录说明,请参见Oracle Solaris Cluster 4.3 系统管理指南 中的 如何访问 Oracle Solaris Cluster Manager。登录后,单击 "Tasks"(任务),然后单击 "Highly Available Storage"(高可用性存储)以启动向导。

此向导要求所有群集节点都具有相同 root 密码。


  1. 创建 ZFS 存储池。

    Caution

    注意  -  请勿将已配置的法定设备添加到 ZFS 存储池中。在将一个已配置的法定设备添加到存储池中的时候,该磁盘会被重新标为 EFI 磁盘,法定配置信息将丢失,并且该磁盘将不会再向群集提供法定选票。在磁盘处于存储池中之后,可以将该磁盘配置为法定设备。或者,您也可以先取消配置磁盘,将其添加到存储池中,然后将该磁盘重新配置为法定设备。


    在 Oracle Solaris Cluster 配置中创建 ZFS 存储池时,请遵守以下要求:

    • 确保可以从群集中的所有节点访问要用于创建 ZFS 存储池的所有设备。必须在 HAStoragePlus 资源所属的资源组的节点列表中配置这些节点。

    • 确保指定给 zpool(1M) 命令的 Oracle Solaris 设备标识符(例如 /dev/dsk/c0t0d0)对 cldevice list -v 命令可见。


    注 -  可以使用完整磁盘或磁盘分片创建 ZFS 存储池。
    • 为实现最佳性能,请使用整个磁盘创建 ZFS 存储池。通过启用磁盘写高速缓存,指定 Oracle Solaris 逻辑设备作为 ZFS 文件系统可以实现更好性能。在提供完整磁盘时,ZFS 文件系统用 EFI 来标记磁盘。

    • 如果您要在 did 设备上创建 zpool,则必须指定一个分片。请不要使用 /dev/did/dsk/dN,因为可能会损坏磁盘标签。


    有关如何创建 ZFS 存储池的信息,请参见Managing ZFS File Systems in Oracle Solaris 11.3 中的 Creating ZFS Storage Pools

  2. 在刚创建的 ZFS 存储池中,创建一个 ZFS 文件系统。

    在 ZFS 池中创建 ZFS 文件系统时,请遵守以下要求:

    • 可以在同一个 ZFS 存储池中创建多个 ZFS 文件系统。

    • HAStoragePlus 不支持在 ZFS 文件系统卷上创建的文件系统。

    • 请勿将 ZFS 文件系统放在 FilesystemMountPoints 扩展属性中。

    • 如有必要,将 ZFS failmode 属性设置更改为 continuepanic,具体取决于哪一个最适合您的要求。


      注 -  默认情况下,ZFS 池 failmode 属性设置为 wait。此设置可能导致 HAStoragePlus 资源阻塞,从而可能阻碍资源组故障转移。建议的 zpool 设置为 failmode=continue。在管理此 zpool 的 HAStoragePlus 资源中,将 RebootOnFailure 属性设置为 TRUE。另外,zpool failmode=panic 还可以保证在存储丢失时进入紧急状态并进行故障转储和故障转移。不管如何设置 RebootOnFailure 属性,failmode=panic 设置都有效。但是,设置 RebootOnFailure=TRUE 可以提高响应速度,因为监视器能够更快地检测到存储故障。
    • 在创建 ZFS 文件系统时,可以选择为其加密。HAStoragePlus 资源在联机期间,会自动挂载池中的所有文件系统。在挂载过程中需要以交互方式输入密钥或密码短语的加密文件系统将遇到资源联机问题。为避免出现问题,请勿将 keysource=raw | hex | passphrase,prompt|pkcs11: 用于由使用 HAStoragePlus 资源的群集管理的 ZFS 存储池的加密文件系统。您可以使用 keysource=raw | hex | passphrase,file://|https://,这样 HAStoragePlus 资源要联机的群集节点可以访问密钥或密码短语的位置。

    有关如何在 ZFS 存储池中创建 ZFS 文件系统的信息,请参见在 Oracle Solaris 11.3 中管理 ZFS 文件系统 中的 创建 ZFS 存储池

  3. 在群集中的任一节点上,承担可提供 solaris.cluster.modify RBAC 授权的 root 角色。
  4. 创建一个故障转移资源组。
    # clresourcegroup create resource-group
  5. 注册 HAStoragePlus 资源类型。
    # clresourcetype register SUNW.HAStoragePlus
  6. 为本地 ZFS 文件系统创建一个 HAStoragePlus 资源。
    # clresource create -g resource-group -t SUNW.HAStoragePlus \
    -p Zpools=zpool -p ZpoolsSearchDir=/dev/did/dsk \
    resource

    用于搜索 ZFS 存储池设备的默认位置是 /dev/dsk。可以使用 ZpoolsSearchDir 扩展属性覆盖此设置。

    资源在创建后处于启用状态。

  7. 使包含 HAStoragePlus 资源的资源组联机并处于受管状态。
    # clresourcegroup online -M resource-group
示例 48  设置 HAStoragePlus 资源类型以使本地 ZFS 文件系统对全局群集具有高可用性

以下示例展示了用于使本地 ZFS 文件系统具有高可用性的命令。

phys-schost-1% su
Password:
# cldevice list -v

DID Device          Full Device Path
----------          ----------------
d1                  phys-schost-1:/dev/rdsk/c0t0d0
d2                  phys-schost-1:/dev/rdsk/c0t1d0
d3                  phys-schost-1:/dev/rdsk/c1t8d0
d3                  phys-schost-2:/dev/rdsk/c1t8d0
d4                  phys-schost-1:/dev/rdsk/c1t9d0
d4                  phys-schost-2:/dev/rdsk/c1t9d0
d5                  phys-schost-1:/dev/rdsk/c1t10d0
d5                  phys-schost-2:/dev/rdsk/c1t10d0
d6                  phys-schost-1:/dev/rdsk/c1t11d0
d6                  phys-schost-2:/dev/rdsk/c1t11d0
d7                  phys-schost-2:/dev/rdsk/c0t0d0
d8                  phys-schost-2:/dev/rdsk/c0t1d0
您可以通过指定 Solaris 设备标识符使用磁盘分片创建 ZFS 存储池:
# zpool create HAzpool c1t8d0s2
您也可以通过指定逻辑设备标识符使用磁盘分片创建 ZFS 存储池
# zpool create HAzpool /dev/did/dsk/d3s2
# zfs create HAzpool/export
# zfs create HAzpool/export/home
# clresourcegroup create hasp-rg
# clresourcetype register SUNW.HAStoragePlus
# clresource create -g hasp-rg -t SUNW.HAStoragePlus -p Zpools=HAzpool hasp-rs
# clresourcegroup online -M hasp-rg
示例 49  设置 HAStoragePlus 资源类型以使本地 ZFS 文件系统对区域群集具有高可用性

以下示例展示了用于使本地 ZFS 文件系统在区域群集 sczone 中具有高可用性的步骤。

phys-schost-1# cldevice list -v
# zpool create HAzpool c1t8d0
# zfs create HAzpool/export
# zfs create HAzpool/export/home
# clzonecluster configure sczone
clzc:sczone> add dataset
clzc:sczone:fs> set name=HAzpool
clzc:sczone:fs> end
clzc:sczone:fs> exit
# clresourcegroup create -Z sczone hasp-rg
# clresourcetype register -Z sczone SUNW.HAStoragePlus
# clresource create -Z sczone -g hasp-rg -t SUNW.HAStoragePlus \
-p Zpools=HAzpool hasp-rs
# clresourcegroup online -Z -sczone -M hasp-rg