主要通过以下任务使本地 Solaris ZFS 具有高可用性:
创建 ZFS 存储池。
在 ZFS 存储池中创建一个 ZFS 文件系统。
设置管理该 ZFS 存储池的 HAStoragePlus 资源。
本节介绍如何完成这些任务。
注意 - 如果打算手动导入已经由群集管理的 ZFS 池,请确保没有在多个节点上导入该池。在多个节点上导入一个池可能会出现问题。有关更多信息,请参见更改 HAStoragePlus 资源管理的 ZFS 池的配置。 |
注意 - 请勿将已配置的法定设备添加到 ZFS 存储池中。在将一个已配置的法定设备添加到存储池中的时候,该磁盘会被重新标为 EFI 磁盘,法定配置信息将丢失,并且该磁盘将不会再向群集提供法定选票。在磁盘处于存储池中之后,可以将该磁盘配置为法定设备。或者,您也可以先取消配置磁盘,将其添加到存储池中,然后将该磁盘重新配置为法定设备。 |
在 Oracle Solaris Cluster 配置中创建 ZFS 存储池时,请遵守以下要求:
确保可以从群集中的所有节点访问要用于创建 ZFS 存储池的所有设备。必须在 HAStoragePlus 资源所属的资源组的节点列表中配置这些节点。
确保指定给 zpool(1M) 命令的 Oracle Solaris 设备标识符(例如 /dev/dsk/c0t0d0)对 cldevice list -v 命令可见。
有关如何创建 ZFS 存储池的信息,请参见Managing ZFS File Systems in Oracle Solaris 11.2 中的Creating a Basic ZFS Storage Pool。
在 ZFS 池中创建 ZFS 文件系统时,请遵守以下要求:
可以在同一个 ZFS 存储池中创建多个 ZFS 文件系统。
HAStoragePlus 不支持在 ZFS 文件系统卷上创建的文件系统。
请勿将 ZFS 文件系统放在 FilesystemMountPoints 扩展属性中。
如有必要,将 ZFS failmode 属性设置更改为 continue 或 panic,具体取决于哪一个最适合您的要求。
在创建 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 文件系统分层结构。
# clresourcegroup create resource-group
# clresourcetype register SUNW.HAStoragePlus
# clresource create -g resource-group -t SUNW.HAStoragePlus \ -p Zpools=zpool -p ZpoolsSearchDir=/dev/did/dsk \ resource
用于搜索 ZFS 存储池设备的默认位置是 /dev/dsk。可以使用 ZpoolsSearchDir 扩展属性覆盖此设置。
资源在创建后处于启用状态。
# clresourcegroup online -M resource-group
以下示例展示了用于使本地 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示例 2-41 设置 HAStoragePlus 资源类型以使本地 ZFS 文件系统对区域群集具有高可用性you can create a ZFS storage pool using a disk slice by specifying a Solaris device identifier: # zpool create HAzpool c1t8d0s2or 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
以下示例展示了用于使本地 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