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

退出打印视图

更新时间: 2014 年 9 月
 
 

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

主要通过以下任务使本地 Solaris ZFS 具有高可用性:

  • 创建 ZFS 存储池。

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

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

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


Caution

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


  1. 创建 ZFS 存储池。

    Caution

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


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

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

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


    注 -  可以使用完整磁盘或磁盘分片创建 ZFS 存储池。最好通过指定 Oracle Solaris 逻辑磁盘来创建一个使用完整磁盘的 ZFS 存储池,因为 ZFS 文件系统可通过启用磁盘写入高速缓存来提高性能。在提供完整磁盘时,ZFS 文件系统用 EFI 来标记磁盘。如果您要在 did 设备上创建 zpool,则必须指定一个分片。请不要使用 /dev/did/dn,因为可能会损坏磁盘标签。

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

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

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

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

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

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

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


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

    有关如何在 ZFS 存储池中创建 ZFS 文件系统的信息,请参见在 Oracle Solaris 11.2 中管理 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
示例 2-40  设置 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
you can create a ZFS storage pool using a disk slice by specifying a Solaris device
identifier:
# zpool create HAzpool c1t8d0s2
or you can create a ZFS storage pool using disk slice by specifying a logical device
identifier
# 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
示例 2-41  设置 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