用于网络文件系统 (NFS) 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

注册和配置 Sun Cluster HA for NFS

此过程介绍了如何使用 scrgadm(1M) 命令注册和配置 Sun Cluster HA for NFS。


注意 –

通过其它选项也可以注册和配置数据服务。有关这些选项的详细信息,请参阅 Sun Cluster 数据服务和规划指南(适用于 Solaris OS) 》 中的 “Tools for Data Service Resource Administration”


注册和配置 Sun Cluster HA for NFS 之前,请运行以下命令以检验是否已在群集上安装了 Sun Cluster HA for NFS 软件包 SUNWscnfs


# pkginfo -l SUNWscnfs

如果尚未安装该软件包,请参见安装 Sun Cluster HA for NFS 软件包以获得有关如何安装该软件包的说明。

如何注册和配置 Sun Cluster HA for NFS

本节介绍了如何注册和配置 Sun Cluster HA for NFS。

  1. 成为某个群集成员的超级用户。

  2. 检验所有群集节点是否都处于联机状态。


    # scstat -n
    
  3. 创建 Pathprefix 目录。

    Pathprefix 目录位于 Sun Cluster HA for NFS 用来维护管理和状态信息的群集文件系统中。

    您可以指定任意目录用于此用途。但是,您必须为所创建的每个资源组手动创建一个 admin-dir 目录。例如,创建目录 /global/nfs


    # mkdir -p /global/admin-dir
    
  4. 创建故障切换资源组以包含 NFS 资源。


    # scrgadm -a -g resource-group -y Pathprefix=/global/admin-dir [-h nodelist]
    -a

    指定您要添加新配置。

    -g resource-group

    指定故障切换资源组。

    -y Pathprefix =path

    在群集文件系统上指定 Sun Cluster HA for NFS 用来维护管理和状态信息的目录。

    [-h nodelist]

    指定一个可选的、用逗号分隔的物理节点名称或 ID 的列表,这些节点名称或 ID 标识潜在的主节点。列表中的顺序确定了 Resource Group Manager (RGM) 在故障切换过程中考虑主节点的顺序。

  5. 检验是否已将您的所有逻辑主机名资源添加到名称服务数据库中。

    为避免因名称服务查找而出现任何故障,请检验 Sun Cluster HA for NFS 使用的所有 IP 地址与主机名之间的映射是否都存在于服务器和客户机的 /etc/inet/hosts 文件中。此要求同样适用于 Sun Cluster HA for NFS 使用的逻辑主机名的任何 IPMP 测试 IP 地址。

  6. 在群集节点上的 /etc/nsswitch.conf 文件中配置名称服务映射,以在尝试访问 NIS 或 NIS+ 进行 rpc 查找之前先检查本地文件。

    执行此操作可防止在公共网络或名称服务不可用时发生与计时相关的错误。

  7. 修改 /etc/nsswitch.conf 中的主机项,以便在本地解析名称时,主机先不联系 NIS/DNS,而是立即返回一个成功状态。

    执行此操作可使 HA-NFS 在发生公共网络故障时正确地进行故障切换。


    # hosts: cluster files [SUCCESS=return] nis
    # rpc: files nis
    
  8. (可选)定制 nfsdlockd 启动选项。

    1. 要定制 nfsd 选项,请在每个群集节点上打开 /etc/init.d/nfs.server 文件,查找以 /usr/lib/nfs/nfsd 开始的命令行,然后添加所需的任何其它变量。

    2. 要定制 lockd 启动选项,请在每个群集节点上打开 /etc/init.d/nfs.client 文件,查找以 /usr/lib/nfs/lockd 开始的命令行,然后添加所需的任何命令行变量。

      从 Solaris 9 开始,您可以在 /etc/default/nfs 文件中使用 LOCKD_GRACE_PERIOD 参数设置 lockd 宽延期。但是,如果在 /etc/init.d/nfs.client 文件中的命令行变量中设置了宽延期,这将覆盖 LOCKD_GRACE_PERIOD 中设置的值。


    注意 –

    这些命令行必须在一行内。不支持断为多行的命令行。其它变量必须为 nfsd(1M)lockd(1M) 手册页中介绍的有效选项。


  9. 将所需的逻辑主机名资源添加到故障切换资源组中。

    您必须按此步骤设置逻辑主机名资源。要用于 Sun Cluster HA for NFS 的逻辑主机名不能SharedAddress 资源类型。


    # scrgadm -a -L -g resource-group -l logical-hostname, … [-n netiflist]
    -a

    指定您要添加新配置。

    -L -g resource-group

    指定用于保存逻辑主机名资源的资源组。

    -l logical-hostname, …

    指定要添加的逻辑主机名资源。

    -n netiflist

    指定一个可选的、用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理 组。netiflist 中的每个元素的格式必须为 netif@nodenetif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1sc_ipmp@phys-schost-1


    注意 –

    Sun Cluster 目前不支持将适配器名称用作 netif


  10. 在任意群集节点上为 NFS 配置文件创建一个目录结构。

    Pathprefix 特性于步骤 4 中标识的目录下面创建管理子目录,例如 /global/nfs/SUNW.nfs


    # mkdir Pathprefix/SUNW.nfs
  11. 步骤 10 中创建的 SUNW.nfs 目录中创建一个 dfstab.resource 文件,并设置共享选项。

    1. 创建 Pathprefix/SUNW.nfs/dfstab.resource 文件。

      此文件包含一组使用共享路径名的 share 命令。共享路径应为群集文件系统的子目录。


      注意 –

      选择一个 resource 名称后缀以标识要创建的(在步骤 13 中)NFS 资源。一个好的资源名称可以指代此资源要执行的任务。例如,对于共享用户起始目录的 NFS 资源而言,名称 user-nfs-home 就是一个好的候选资源名称。


    2. 为您创建的、要共享的每个路径设置 share 选项。

      此文件的格式与 /etc/dfs/dfstab 文件中所用的格式完全相同。


      share [-F nfs] [-o] specific_options [-d “description”] pathname 
      
      -F nfs

      将文件系统类型标识为 nfs

      -o specific_options

      授予所有客户机读写访问权限。有关选项的列表,请参见 share(1M) 手册页。为 Sun Cluster 设置 rw 选项。

      -d description

      说明要添加的文件系统。

      pathname

      标识要共享的文件系统。

    设置共享选项时,请注意以下几点。

    • 构造 share 选项时,请不要使用 root 选项,并且不要将 rorw 选项同时使用。

    • 不要授权访问群集互连上的主机名。

      将读写访问权限授予所有群集节点和逻辑主机,以使 Sun Cluster HA for NFS 监视功能可以执行完整的任务。但是,您可以限制对文件系统的写入访问,也可以使整个文件系统处于只读状态。如果执行了上述操作,Sun Cluster HA for NFS 故障监视功能仍可以在不具备写入权限的情况下执行监视。

    • 如果在 share 命令中指定一个客户机列表,请包含与群集相关的所有物理主机名和逻辑主机名以及群集连接的所有公共网络中的所有客户机的主机名。

    • 如果在 share 命令中使用网络组(而不是单个主机的名称),请将所有此类群集主机名添加到相应的网络组。

    share -o rw 命令将授予所有客户机(包括 Sun Cluster 软件使用的主机名)写入权限。此命令能够使 Sun Cluster HA for NFS 故障监视功能的运行效率最佳。有关详细信息,请参见以下手册页。

    • dfstab(4)

    • share(1M)

    • share_nfs(1M)

  12. 注册 NFS 资源类型。


    # scrgadm -a -t resource-type
    
    -a -t resource-type

    添加指定的资源类型。对于 Sun Cluster HA for NFS,资源类型为 SUNW.nfs

  13. 在故障切换资源组中创建 NFS 资源。


    # scrgadm -a -j resource -g resource-group -t resource-type
    
    -a

    指定您要添加配置。

    -j resource

    指定要添加的、在步骤 11 中定义的资源名称。您可以选择此名称,但它在群集中必须唯一。

    -g resource-group

    指定先前创建的、要添加此资源的资源组的名称。

    -t resource-type

    指定此资源所属的资源类型的名称。此名称必须是已注册的资源类型的名称。

  14. 运行 scswitch(1M) 命令以执行以下任务。

    • 启用资源和资源故障监视器。

    • 管理资源组。

    • 将资源组切换到 ONLINE 状态。


    # scswitch -Z -g resource-group
    

示例——设置和配置 Sun Cluster HA for NFS

下例说明了如何设置和配置 Sun Cluster HA for NFS。


(创建逻辑主机资源组并指定 NFS 所用的管理文件的路径 (Pathprefix)。)
# scrgadm -a -g resource-group-1 -y Pathprefix=/global/nfs
 
(将逻辑主机名资源添加到逻辑主机资源组中。)
# scrgadm -a -L -g resource-group-1 -l schost-1
 
(使目录结构包含 Sun Cluster HA for NFS 配置文件。)
# mkdir -p /global/nfs/SUNW.nfs
 
(在 nfs/SUNW.nfs 目录下创建 dfstab.resource 文件并设置共享选项。)
# share -F nfs -o rw=engineering -d “home dirs” nfs/SUNW.nfs
 
(注册 NFS 资源类型。)
# scrgadm -a -t SUNW.nfs
 
(在资源组中创建 NFS 资源。)
# sc
rgadm -a -j r-nfs -g resource-group-1 -t SUNW.nfs
 
(启用资源及其监视器,管理资源组并将资源组切换到联机状态。)
# scswitch -Z -g resource-group-1

如何更改 NFS 文件系统上的共享选项

如果使用 share -o 命令的 rwrw=roro= 选项,则 NFS 故障监视功能在以下情况下运行效果最佳:授权访问与所有 Sun Cluster 服务器相关的所有物理主机或 netgroups

如果在 share(1M) 命令中使用 netgroups,请将所有 Sun Cluster 主机名添加到相应的 netgroup 中。理想的做法是将读写访问权限授予所有 Sun Cluster 主机名,以使 NFS 故障探测可以执行完整的任务。


注意 –

更改共享选项之前,请阅读 share_nfs(1M) 手册页以了解哪些选项组合是有效的。


您还可以动态修改共享路径和选项而无需使 Sun Cluster HA for NFS 资源脱机。请参见如何动态更新 NFS 文件系统上的共享路径

要在 Sun Cluster HA for NFS 资源处于脱机状态时修改 NFS 文件系统上的共享选项,请执行以下步骤。

  1. 成为群集节点的超级用户。

  2. 关闭 NFS 资源的故障监视功能。


    # scswitch -n -M -j resource
    
    -M

    禁用资源故障监视器

  3. 测试新的 share 选项。

    1. 在编辑带有新的共享选项的 dfstab.resource 文件之前,请执行新的 share 命令以检验选项组合的有效性。


      # share -F nfs [-o] specific_options [-d “description”] pathname
      
      -F nfs

      将文件系统类型标识为 NFS。

      -o specific_options

      指定一个选项。您可以使用 rw,它可将读写访问权限授予所有客户机。

      -d description

      说明要添加的文件系统。

      pathname

      标识要共享的文件系统。

    2. 如果新的 share 命令失败,请立即执行另一个带有旧选项的 share 命令。如果新的命令成功执行,请继续步骤 4

  4. 编辑带有新的共享选项的 dfstab.resource 文件。

    1. 要删除 dfstab.resource 文件中的路径,请按顺序执行以下步骤。

      1. 执行 unshare(1M) 命令。

      2. dfstab.resource 文件中,删除要删除路径的 share 命令。


      # unshare [-F nfs] [-o specific_options] pathname
      # vi dfstab.resource
      
      -F nfs

      将文件系统类型标识为 NFS。

      -o specific_options

      指定特定于 NFS 文件系统的选项。

      pathname

      标识不可用的文件系统。

    2. 要在 dfstab. resource 文件中添加路径或更改现有路径,请先检验装载点是否有效,然后编辑 dfstab.resource 文件。


    注意 –

    此文件的格式与 /etc/dfs/dfstab 文件中所用的格式完全相同。每行包括一个 share 命令。


  5. 启用 NFS 资源的故障监视功能。


    # scswitch -e -M -j resource
    

如何动态更新 NFS 文件系统上的共享路径

您可以动态修改 NFS 文件系统上的共享路径而无需使 Sun Cluster HA for NFS 资源脱机。一般步骤包括:修改 Sun Cluster HA for NFS 的 dfstab.resource 文件,然后手动运行相应的命令(shareunshare 命令)。命令将立即生效,而 Sun Cluster HA for NFS 将使这些路径具有高可用性。

确保在故障转移期间 Sun Cluster HA for NFS 始终可以使用这些共享路径,从而确保不使用本地路径(在非 HA 文件系统中)。

如果共享了 HAStoragePlus 所管理的文件系统上的路径,则 HAStoragePlus 资源必须与 Sun Cluster HA for NFS 资源在同一资源组中,并且必须正确设置这些资源之间的依赖性。

  1. 使用 scstat -g 命令查找 Sun Cluster HA for NFS 资源处于联机状态的节点。

  2. 在此节点上运行 /usr/sbin/share 命令查看当前共享的路径的列表。确定要对此列表进行的更改。

  3. 要添加新的共享路径,请执行以下步骤。

    1. share 命令添加到 dfstab.resource 文件中。

      Sun Cluster HA for NFS 将在下次检查该文件时共享新的路径。检查的频率由 Thorough_Probe_Interval 特性来控制(缺省值为 120 秒)。

    2. 手动运行 share 命令使新添加的共享路径立即生效。建议手动运行此命令,因为这样做用户可确保潜在客户机能够使用共享路径。Sun Cluster HA for NFS 将检测是否已共享新添加的路径且未报错。

  4. 要取消路径共享,请执行以下步骤。

    1. 运行 dfmounts(1M) 命令以确保当前没有客户机使用此路径。

      虽然可在客户机仍在使用路径时取消路径共享,但这样做客户机将得到无效文件错误句柄并需要执行特殊操作(强制卸载,甚至重新引导)才能恢复。

    2. 删除 dfstab.resource 文件中的共享路径。

    3. 手动运行 unshare 命令。

  5. 要修改现有共享路径的选项,请执行以下步骤。

    1. 根据需要修改 dfstab.resource 文件。

    2. 手动运行相应的命令(shareunshare)。

如何调整 Sun Cluster HA for NFS 方法超时

Sun Cluster HA for NFS 方法完成所需要的时间取决于资源通过 dfstab. resource 文件共享的路径的数目。这些方法的缺省超时值为 300 秒。

一般情况下,为每个共享路径分配 10 秒的方法超时值。缺省超时值设计为处理 30 个共享路径。

如果共享路径的数目大于 30,请更新以下方法超时。

Prenet_start_timeout Postnet_stop_timeout Monitor_Start_timeout
Start_timeout Validate_timeout Monitor_Stop_timeout
Stop_timeout Update_timeout Monitor_Check_timeout

要更改方法超时,请使用 scrgadm -c 选项(如下例所示)。


% scrgadm -c -j resource -y Prenet_start_timeout=500

如何配置 SUNW.HAStoragePlus 资源类型

Sun Cluster 3.0 5/02 中新增了 SUNW.HAStoragePlus 资源类型。这种新资源类型可以执行与 SUNW.HAStorage 相同的功能,并可以同步 HA 存储和 Sun Cluster HA for NFS 之间的操作。SUNW.HAStoragePlus 还具备使本地文件系统具有高可用性的附加功能。Sun Cluster HA for NFS 是磁盘密集型程序,并且可以进行故障切换,因此您应当设置 SUNW.HAStoragePlus 资源类型。

有关背景信息,请参阅 SUNW.HAStoragePlus(5) 手册页和 Sun Cluster 数据服务和规划指南(适用于 Solaris OS) 》 中的 “Relationship Between Resource Groups and Disk Device Groups”。有关过程信息,请参见用于 Solaris OS 的 Sun Cluster 数据规划和管理指南》中的“在资源组和磁盘设备组之间同步启动”。(如果您使用的是 5/02 之前的 Sun Cluster 3.0 版本,则必须设置 SUNW.HAStorage 而不是 SUNW.HAStoragePlus。有关过程信息,请参见用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“在资源组和磁盘设备组之间同步启动”。)