9 准备高可用性解决方案

Oracle Hierarchical Storage Manager and StorageTek QFS Software 高可用性配置设计用于维持不中断的文件系统和归档服务。在高可用性解决方案中,Oracle Hierarchical Storage Manager 或 QFS 软件与 Oracle Solaris Cluster 软件、冗余硬件和冗余通信相集成。因此,如果主机系统或组件出现故障或由管理员停止服务,则 Oracle HSM 服务将自动故障转移到用户和应用程序可以访问的备用主机。高可用性配置因而可最大程度地减少由设备和系统故障导致的停机时间。

但是,高可用性配置比较复杂,必须仔细进行设计和部署以防发生无法预料的交互和可能的数据损坏。因此,本章将首先对支持的配置进行说明。对本节进行学习并选择最能满足您的可用性要求的配置。后续各节将说明如何设置所选配置。

请注意,无法在共享 Oracle Solaris Cluster 配置中混用硬件体系结构。所有节点必须使用 SPARC 体系结构、x86-64 体系结构(仅限 Solaris 11.1)或 32 位 x86 体系结构(Solaris 10 和更早版本)。

了解支持的高可用性配置

在群集多主机解决方案中,必须仔细控制文件系统、应用程序、操作系统、群集软件和存储之间的交互,以确保存储数据的完整性。为使复杂性和潜在风险降至最低,专门针对四个特定的部署要求集量身定制了支持的高可用性 Oracle HSM 配置:

HA-QFS,高可用性 QFS 非共享的独立文件系统配置

高可用性 QFS (High Availability QFS, HA-QFS) 配置可确保 QFS 非共享的独立文件系统在主机发生故障时仍然可以访问。该文件系统在双节点群集中的两个节点上都进行配置,Solaris Cluster 软件将此群集作为 SUNW.HAStoragePlus 类型的资源来管理。但是,在任意给定时间,只有一个节点挂载 QFS 文件系统。如果挂载文件系统的节点出现故障,则群集软件将自动启动故障转移并在剩余节点上重新挂载文件系统。

客户机通过网络文件系统 (Network File System, NFS)、高可用性 NFS (High-Availability NFS, HA-NFS) 或 SMB/CIFS 共享访问数据,活动群集节点充当文件服务器。

有关实施说明,请参见高可用性 QFS 非共享文件系统

HA-COTC,具有高可用性元数据服务器的 QFS 共享文件系统

群集外部的高可用性客户机 (High Availability-Clients Outside the Cluster, HA-COTC) 配置可维持 QFS 元数据服务器的可用性,以便 QFS 文件系统客户机可以在服务器出现故障时继续访问其数据。文件系统是共享的。在由 Solaris Cluster 软件管理的双节点群集上托管 QFS 活动元数据服务器和潜在元数据服务器。SUNW.qfs 类型的 Oracle HSM 高可用性资源可管理群集中共享文件系统服务器的故障转移。所有客户机均托管在群集外部。群集服务器可确保元数据的可用性、签发 I/O 许可证并维持文件系统的一致性。

如果托管活动元数据服务器的节点出现故障,则 Solaris Cluster 软件将自动激活运行正常的节点上的潜在 MDS 并启动故障转移。QFS 文件系统是共享的,因此它已经挂载到新激活的元数据服务器节点上,并在客户机上保持挂载状态。客户机继续接收元数据更新和 I/O 租约,因此,文件系统可无中断地继续运行。

HA-COTC 配置必须将高性能 ma 文件系统与物理独立的 mm 元数据设备和 mr 数据设备配合使用。通用 ms 文件系统和 md 设备不受支持。

您可以使用标准网络文件系统 (Network File System, NFS) 或 SMB/CIFS 与不运行 Oracle HSM 的客户机共享 HA-COTC 文件系统。但不支持 HA-NFS。

有关实施说明,请参见高可用性 QFS 共享文件系统,群集外部的客户机

HA-SAM,高可用性、归档、QFS 共享文件系统配置

高可用性 Oracle Hierarchical Storage Manager (HA-SAM) 配置可通过确保 QFS 元数据服务器和 Oracle Hierarchical Storage Manager 应用程序在服务器主机发生故障的情况下仍能继续运行来维持归档文件系统的可用性。该文件系统在由 Solaris Cluster 软件管理的双节点群集上托管的活动 QFS 元数据服务器和潜在 QFS 元数据服务器之间共享。类型为 SUNW.qfs 的 Oracle HSM 高可用性资源管理服务器的故障转移。

如果活动 Oracle HSM 元数据服务器节点发生故障,则群集软件将自动激活潜在元数据服务器节点并启动故障转移。由于 QFS 文件系统是共享的并已挂载到所有节点上,因此仍可无中断地访问数据和元数据。

客户机通过高可用性网络文件系统 (high-availability Network File System, HA-NFS)、NFS 或 SMB/CIFS 共享访问数据,活动群集节点充当文件服务器。

有关实施说明,请参见高可用性 Oracle HSM 共享归档文件系统

SC-RAC,Oracle RAC 的高可用性 QFS 共享文件系统配置

Solaris Cluster-Oracle Real Application Cluster (SC-RAC) 配置支持使用 QFS 文件系统的高可用性数据库解决方案。RAC 软件协调 I/O 请求、分配工作负荷,并且为群集节点上运行的多个 Oracle 数据库实例维护一组一致的数据库文件。在 SC-RAC 配置中,Oracle 数据库、Oracle Real Application Cluster (RAC) 和 QFS 软件在群集中的两个或更多节点上运行。Solaris Cluster 软件将群集作为 SUNW.qfs 类型的资源进行管理。一个节点配置为 QFS 共享文件系统的元数据服务器 (metadata server, MDS)。剩余节点配置为将文件系统共享为客户机的潜在元数据服务器。如果活动元数据服务器节点发生故障,则 Solaris Cluster 软件将自动激活运行正常的节点上的潜在元数据服务器并启动故障转移。由于 QFS 文件系统是共享的并已挂载到所有节点上,因此仍可无中断地访问数据。

高可用性 QFS 非共享文件系统

要配置高可用性 QFS (high-availability QFS, HA-QFS) 文件系统,需在作为 SUNW.HAStoragePlus 类型的资源进行管理的双节点 Solaris Cluster 中设置两个相同的主机。然后,在两个节点上配置 QFS 非共享文件系统。在任意给定时间,只有一个节点挂载文件系统。但是,如果一个节点发生故障,则群集软件将自动启动故障转移并将文件系统重新挂载在留存下来的节点上。

要设置高可用性 QFS (high-availability QFS, HA-QFS) 文件系统,请执行如下操作:

在两个群集节点上创建非共享 QFS 文件系统

  1. root 用户身份登录到其中一个群集节点。

    在示例中,主机为 qfs1mds-node1qfs1mds-node2。登录主机 qfs1mds-node1

    [qfs1mds-node1]root@solaris:~# 
    
  2. 在主机上配置所需的 QFS 文件系统,但不进行挂载。

    使用配置通用 ms 文件系统配置高性能 ma 文件系统中的说明配置文件系统。HA-QFS 配置不支持 QFS 共享文件系统。

  3. root 用户身份登录其余群集节点。

    在示例中,使用 ssh 登录到 qfs1mds-node2 主机:

    [qfs1mds-node1]root@solaris:~# ssh root@qfs1mds-node2
    Password:
    [qfs1mds-node2]root@solaris:~# 
    
  4. 在第二个节点上配置相同的 QFS 文件系统。

  5. 接下来,配置高可用性 QFS 文件系统

配置高可用性 QFS 文件系统

执行如下操作:

  1. root 用户身份登录到其中一个群集节点。

    在示例中,主机为 qfs1mds-node1qfs1mds-node2。登录主机 qfs1mds-node1

    [qfs1mds-node1]root@solaris:~# 
    
  2. 为 Solaris Cluster 软件定义 SUNW.HAStoragePlus 资源类型(如果尚未执行此操作)。使用命令 clresourcetype register SUNW.HAStoragePlus

    HAStoragePlus 是用于定义和管理磁盘设备组、群集文件系统和本地文件系统之间依赖性的 Solaris Cluster 资源类型。它会协调故障转移后数据服务的启动,以便所有必需组件在服务尝试重新启动时准备就绪。有关详细信息,请参见 SUNW.HAStoragePlus 手册页。

    [qfs1mds-node1]root@solaris:~# clresourcetype register SUNW.HAStoragePlus
    [qfs1mds-node1]root@solaris:~# 
    
  3. 创建 SUNW.HAStoragePlus 类型的新 Solaris Cluster 资源以及包含该资源的新资源组。使用命令 /usr/global/bin/clresource create -g resource-group -t SUNW.HAStoragePlus -x FilesystemMountPoints=/global/mount-point -x FilesystemCheckCommand=/bin/true QFS-resource,其中:

    • resource-group 是您为文件系统资源组选择的名称。

    • mount-point 是挂载 QFS 文件系统的目录。

    • QFS-resource 是您为 SUNW.HAStoragePlus 资源选择的名称。

    在示例中,使用挂载点目录 /global/qfs1SUNW.HAStoragePlus 资源 haqfs 创建资源组 qfsrg(请注意,下面的命令在一行中输入-换行符用反斜杠字符来转义):

    [qfs1mds-node1]root@solaris:~# clresource create -g qfsrg -t SUNW.HAStoragePlus \
    -x FilesystemMountPoints=/global/hsmqfs1/qfs1 \
    -x FilesystemCheckCommand=/bin/true haqfs 
    [qfs1mds-node1]root@solaris:~# 
    
  4. 显示群集中的节点。使用命令 clresourcegroup status

    在示例中,QFS 文件系统主机节点为 qfs1mds-1qfs1mds-2。节点 qfs1mds-1 处于 Online 状态,因此它是挂载文件系统并托管 qfsrg 资源组的主节点:

    [qfs1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name    Node Name    Suspended   Status
    ----------    ---------    ---------   ------
    qfsrg         qfs1mds-1    No          Online
                  qfs1mds-2    No          Offline
    [qfs1mds-node1]root@solaris:~# 
    
  5. 通过将资源组移动到辅助节点确保资源组正确地故障转移。使用 Solaris Cluster 命令 clresourcegroup switch -n node2 group-name,其中 node2 是辅助节点的名称,group-name 是您为 HA-QFS 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 haqfs 资源组移动到 qfs1mds-node2 并确认资源组在指定节点上处于联机状态:

    [qfs1mds-node1]root@solaris:~# clresourcegroup switch -n qfs1mds-node2 qfsrg
    [qfs1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name    Node Name    Suspended   Status
    ----------    ---------    ---------   ------
    qfsrg         qfs1mds-1    No          Offline
                  qfs1mds-2    No          Online
    [qfs1mds-node1]root@solaris:~# 
    
  6. 将资源组移回到主节点。使用 Solaris Cluster 命令 clresourcegroup switch -n node1 group-name,其中 node1 是主节点的名称,group-name 是您为 HA-QFS 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 qfsrg 资源组成功移回到 qfs1mds-node1

    [qfs1mds-node1]root@solaris:~# clresourcegroup switch -n qfs1mds-node1 qfsrg
    [qfs1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsrg       qfs1mds-node1   No          Online
                qfs1mds-node2   No          Offline
    [qfs1mds-node1]root@solaris:~# 
    
  7. 如果您需要配置高可用性网络文件系统 (High-Availability Network File System, HA-NFS) 共享,请立即执行此操作。有关说明,请参见Oracle Solaris Cluster 联机文档库包含的《Oracle Solaris Cluster Data Service for Network File System (NFS) Guide》。

  8. 如果计划使用边带数据库功能,请转至配置报告数据库

  9. 否则,请转至配置通知和日志记录

高可用性 QFS 共享文件系统,群集外部的客户机

群集外部的高可用性客户机 (High Availability-Clients Outside the Cluster, HA-COTC) 配置是非归档 QFS 共享文件系统,用于在 Solaris Cluster 软件所管理的高可用性群集的节点上托管至关紧要的元数据服务器 (metadata server, MDS)。这种安排可为 QFS 元数据和文件访问租约提供故障转移保护,因此,文件系统客户机在服务器出现故障时不会丢失对其数据的访问。但是,文件系统客户机和数据设备保留在群集外部,这样 Solaris Cluster 会与 QFS 软件争夺 QFS 共享数据的控制权。

要配置 HA-COTC 文件系统,请执行以下任务:

在两个 HA-COTC 群集节点上创建 QFS 共享文件系统 Hosts 文件

在 QFS 共享文件系统中,您必须在元数据服务器上配置 hosts 文件,以便所有主机都能访问文件系统的元数据。hosts 文件与 mcf 文件一起存储在 /etc/opt/SUNWsamfs/ 目录中。在共享文件系统的初始创建过程中,sammkfs -S 命令使用该文件中存储的设置配置共享。因此,现在请使用下面的过程创建该文件。

  1. root 用户身份登录到 HA-COTC 群集的主节点。

    在示例中,主机为 qfs1mds-node1qfs1mds-node2。登录主机 qfs1mds-node1

    [qfs1mds-node1]root@solaris:~# 
    
  2. 显示群集配置。使用 /usr/global/bin/cluster show 命令。找出每个 Node Name 的记录,然后记下 privatehostnameTransport Adapter 名称和每个网络适配器的 ip_address 属性。

    命令的输出可能非常冗长,因此,下面的示例将使用省略号 (...) 对较长的显示进行了缩写。

    在示例中,每个节点都有两个网络接口,qfe3hme0

    • hme0 适配器具有群集用于节点间内部通信的专用网络的 IP 地址。Solaris Cluster 软件会分配与每个专用地址相对应的专用主机名。

      默认情况下,主节点和辅助节点的专用主机名分别为 clusternode1-privclusternode2-priv

    • qfe3 适配器具有公共 IP 地址和主机名(即 qfs1mds-node1qfs1mds-node2),群集使用它们来进行数据传输。

    [qfs1mds-node1]root@solaris:~# cluster show
    ...
      === Cluster Nodes ===                        
      Node Name:                                    qfs1mds-node1...
        privatehostname:                               clusternode1-priv...
        Transport Adapter List:                        qfe3, hme0...
        Transport Adapter:                          qfe3...
          Adapter Property(ip_address):                172.16.0.12...
        Transport Adapter:                          hme0...
          Adapter Property(ip_address):                10.0.0.129...
      Node Name:                                    qfs1mds-node2...
        privatehostname:                               clusternode2-priv...
        Transport Adapter List:                        qfe3, hme0...
          Adapter Property(ip_address):                172.16.0.13...
        Transport Adapter:                          hme0
          Adapter Property(ip_address):                10.0.0.122
    
  3. 使用文本编辑器在元数据服务器上创建文件 /etc/opt/SUNWsamfs/hosts.family-set-name,其中 family-set-name 为文件系统的系列集名称。

    在示例中,使用 vi 文本编辑器创建文件 hosts.qfs1。我们添加一些可选标题以显示主机表中的列,每行以井号 (#) 开头表示该行为注释:

    [qfs1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.qfs1
    # /etc/opt/SUNWsamfs/hosts.qfs1
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    
  4. 在表的第一列中,输入主元数据服务器节点和辅助元数据服务器节点的主机名,后跟一些空格。将每个条目放在单独一行上。

    在 hosts 文件中,行即为行(记录),空格为列(字段)分隔符。在本示例中,Host Name 列的前两行包含值 qfs1mds-node1qfs1mds-node2,它们是托管文件系统元数据服务器的群集节点的主机名:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  
    qfs1mds-node2  
    
  5. 在每行的第二列,开始提供主机 Host NameNetwork Interface 信息。输入各个 HA-COTC 群集节点的 Solaris Cluster 专用主机名或专用网络地址,后跟一个逗号。

    HA-COTC 服务器节点使用专用主机名在高可用性群集内进行服务器间的通信。在示例中,使用专用主机名 clusternode1-privclusternode2-priv,这些是 Solaris Cluster 软件分配的默认名称:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv,  
    qfs1mds-node2  clusternode2-priv,  
    
  6. 在每行第二列中的逗号后面,输入活动元数据服务器的虚拟公共主机名,后跟空格。

    HA-COTC 服务器节点使用公共数据网络与客户机通信,所有这些客户机都位于在群集之外。由于活动元数据服务器的 IP 地址和主机名在故障转移期间会发生更改(从 qfs1mds-node1 更改为 qfs1mds-node2,反之亦然),因此,我们对二者都使用虚拟主机名 qfs1mds。稍后,我们将配置 Solaris Cluster 软件配置为始终将 qfs1mds 的请求路由到活动元数据服务器:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv,qfs1mds  
    qfs1mds-node2  clusternode2-priv,qfs1mds  
    
  7. 在每行的第三列中,输入服务器的序号(1 表示活动元数据服务器,2 表示潜在元数据服务器),后跟空格。

    在本示例中,只有一个元数据服务器,主节点 qfs1mds-node1 是活动元数据服务器,因此其序号为 1,辅助节点 qfs1mds-node2 的序号为 2

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv,qfs1mds      1
    qfs1mds-node2  clusternode2-priv,qfs1mds      2
    
  8. 在每行的第四列中,输入 0(零),后跟空格。

    第四列中的值为 0(零)、-(连字符)或空表示该主机处于 on 状态-配置为对共享文件系统有访问权限。1(数字一)表示该主机处于 off 状态-配置为对文件系统没有访问权限(有关在管理共享文件系统时使用这些值的信息,请参见 samsharefs 手册页)。

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv,qfs1mds      1        0
    qfs1mds-node2  clusternode2-priv,qfs1mds      2        0
    
  9. 在主节点行的第五列中,输入关键字 server

    server 关键字用于标识默认的活动元数据服务器:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv,qfs1mds      1        0    server
    qfs1mds-node2  clusternode2-priv,qfs1mds      2        0   
     
    
  10. 为每个客户机主机都添加一行,并将 Server Ordinal 值设置为 0。然后保存文件并关闭编辑器。

    服务器序号为 0 表示该主机是一个客户机而非服务器。HA-COTC 客户机不是群集成员,因此只能通过群集的公共数据网络进行通信。它们仅具有公共 IP 地址。在示例中,使用客户机的公共 IP 地址 172.16.0.133172.16.0.147(而不是主机名)添加两个客户机 qfs1client1qfs1client2

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv,qfs1mds      1        0    server
    qfs1mds-node2  clusternode2-priv,qfs1mds      2        0    
    qfs1client1    172.16.0.133                   0        0
    qfs1client2    172.16.0.147                   0        0
    :wq
    [qfs1mds-node1]root@solaris:~# 
    
  11. 将全局 /etc/opt/SUNWsamfs/hosts.family-set-name 文件的一个副本放在 QFS 潜在元数据服务器(第二个 HA-COTC 群集节点)上。

  12. 现在,在 HA-COTC 群集外的 QFS 服务器和客户机上创建本地 hosts 文件

在 HA-COTC 群集外的 QFS 服务器和客户机上创建本地 Hosts 文件

在与群集外客户机共享文件系统的高可用性配置中,您需要确保客户机仅与使用 Solaris Cluster 软件定义的公共数据网络的文件系统服务器通信。为此,需要使用专门配置的 QFS 本地 hosts 文件选择性地在客户机和服务器的多个网络接口之间路由网络流量。

每个文件系统主机通过首先查看元数据服务器上的 /etc/opt/SUNWsamfs/hosts.family-set-name 文件来确定用于其他主机的网络接口。然后,主机检查自己的特定 /etc/opt/SUNWsamfs/hosts.family-set-name.local 文件。如果没有本地 hosts 文件,则主机将按照全局 hosts 文件中指定的顺序使用该全局文件中指定的接口地址。但是,如果存在本地 hosts 文件,则主机会将其与全局文件进行比较并按照本地文件中指定的顺序仅使用两个文件中同时列出的那些接口。通过在不同的安排下使用各文件中的 IP 地址,您可以控制不同主机使用的接口。

要配置本地 hosts 文件,请使用下面概述的过程:

  1. root 用户身份登录到 HA-COTC 群集的主节点。

    在示例中,主机为 qfs1mds-node1qfs1mds-node2。登录主机 qfs1mds-node1

    [qfs1mds-node1]root@solaris:~# 
    
  2. 在每个活动元数据服务器和潜在元数据服务器上创建一个本地 hosts 文件。使用路径和文件名 /etc/opt/SUNWsamfs/hosts.family-set-name.local,其中 family-set-name 是共享文件系统的设备标识符。请仅包括您希望活动服务器和潜在服务器使用的网络的接口

    在示例中,我们希望活动元数据服务器和潜在元数据服务器通过专用网络互相通信,并通过公共网络与客户机通信。因此活动服务器和潜在服务器上的本地 hosts 文件 hosts.qfs1.local 仅列出活动服务器和潜在服务器的群集专用地址:

    [qfs1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.qfs1.local
    # /etc/opt/SUNWsamfs/hosts.qfs1.local
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv              1        0    server 
    qfs1mds-node2  clusternode2-priv              2        0   
    qfs1client1    172.16.0.133                   0        0
    qfs1client2    172.16.0.147                   0        0
    :wq
    [qfs1mds-node1]root@solaris:~# ssh root@qfs1mds-node2
    Password:
    
    [qfs1mds-node2]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.qfs1.local
    # /etc/opt/SUNWsamfs/hosts.qfs1.local
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds-node1  clusternode1-priv              1        0    server 
    qfs1mds-node2  clusternode2-priv              2        0   
    qfs1client1    172.16.0.133                   0        0
    qfs1client2    172.16.0.147                   0        0
    :wq
    [qfs1mds-node2]root@solaris:~# exit
    [qfs1mds-node1]root@solaris:~# 
    
  3. 使用文本编辑器在每个客户机上创建一个本地 hosts 文件。使用路径和文件名 /etc/opt/SUNWsamfs/hosts.family-set-name.local,其中 family-set-name 是共享文件系统的设备标识符。请仅包括您希望客户机使用的网络的接口。然后保存文件并关闭编辑器。

    在示例中,使用 vi 编辑器。我们希望客户机仅与服务器通信,并且仅通过公共数据网络通信。所以文件仅包括活动元数据服务器 qfs1mds 的虚拟主机名。Solaris Cluster 软件将 qfs1mds 的请求路由至处于活动状态的任何一个服务器节点:

    [qfs1mds-node1]root@solaris:~# ssh root@qfsclient1
    Password:
    [qfs1client1]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.qfs1.local
    # /etc/opt/SUNWsamfs/hosts.qfs1.local
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds        qfs1mds                        1        0    server 
    :wq
    qfs1client1]root@solaris:~# exit
    [qfs1mds-node1]root@solaris:~# ssh root@qfs1client2
    Password:
    [qfs1client2]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.qfs1.local
    # /etc/opt/SUNWsamfs/hosts.qfs1.local
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    qfs1mds        qfs1mds                        1        0    server 
    :wq
    [qfs1client2]root@solaris:~# exit
    [qfs1mds-node1]root@solaris:~# 
    
  4. 接下来,在主 HA-COTC 群集节点上配置活动 QFS 元数据服务器

在主 HA-COTC 群集节点上配置活动 QFS 元数据服务器

要配置活动元数据服务器,请执行以下任务:

在主 HA-COTC 节点上创建高性能的 QFS 文件系统

  1. 选择将同时充当 HA-COTC 群集的主节点和 QFS 共享文件系统的活动元数据服务器的群集节点。以 root 用户身份登录。

    在示例中,qfs1mds-node1 是主节点和活动元数据服务器:

    [qfs1mds-node1]root@solaris:~# 
    
  2. 选择要用于 QFS 文件系统的全局存储设备。使用 Solaris Cluster 命令 /usr/global/bin/cldevice list -v

    Solaris Cluster 软件向连接到群集节点的所有设备分配唯一的设备标识符 (Device Identifier, DID)。全局设备可以从群集中的所有节点进行访问,而本地设备仅可以从挂载它们的主机进行访问。全局设备在故障转移后仍然可以访问。本地设备则不然。

    在示例中,请注意 d1d2d7d8 设备从两个节点都无法访问。所以在配置高可用性 QFS 共享文件系统时,我们从 d3d4d5 设备中进行选择:

    [qfs1mds-node1]root@solaris:~# cldevice list -v
    DID Device          Full Device Path
    ----------          ----------------
    d1                  qfs1mds-node1:/dev/rdsk/c0t0d0
    d2                  qfs1mds-node1:/dev/rdsk/c0t6d0
    d3                  qfs1mds-node1:/dev/rdsk/c1t1d0
    d3                  qfs1mds-node2:/dev/rdsk/c1t1d0
    d4                  qfs1mds-node1:/dev/rdsk/c1t2d0
    d4                  qfs1mds-node2:/dev/rdsk/c1t2d0
    d5                  qfs1mds-node1:/dev/rdsk/c1t3d0
    d5                  qfs1mds-node2:/dev/rdsk/c1t3d0
    d6                  qfs1mds-node2:/dev/rdsk/c0t0d0
    d7                  qfs1mds-node2:/dev/rdsk/c0t1d0
    
  3. 在选定的主节点上,创建使用 mdmr 数据服务的高性能 ma 文件系统。在文本编辑器中,打开 /etc/opt/SUNWsamfs/mcf 文件。

    在示例中,我们配置文件系统 qfs1。我们将设备 d3 配置为元数据设备(设备类型 mm),并将 d4d5 用作数据设备(设备类型 mr):

    [qfs1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   ----------------
    qfs1                  100        ma         qfs1     -        
     /dev/did/dsk/d3s0     101        mm         qfs1     -
     /dev/did/dsk/d4s0     102        mr         qfs1     -
     /dev/did/dsk/d5s1     103        mr         qfs1     -
    
  4. /etc/opt/SUNWsamfs/mcf 文件的文件系统条目的 Additional Parameters 列中输入 shared 参数。保存文件。

    [qfs1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   ----------------
    qfs1                  100        ma         qfs1     -        shared
     /dev/did/dsk/d3s0     101        mm         qfs1     -
     /dev/did/dsk/d4s0     102        mr         qfs1     -
     /dev/did/dsk/d5s1     103        mr         qfs1     -
    :wq
    [qfs1mds-node1]root@solaris:~# 
    
  5. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 qfs1mds-node1 上的 mcf 文件:

    [qfs1mds-node1]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [qfs1mds-node1]root@solaris:~# 
    
  6. 创建文件系统。使用命令 /opt/SUNWsamfs/sbin/sammkfs -S family-set-name,其中 family-set-name 是文件系统的设备标识符。

    sammkfs 命令读取 qfs1mds-node1 主节点上的 hosts.family-set-namemcf 文件,并创建具有指定属性的共享文件系统。

    [qfs1mds-node1]root@solaris:~# sammkfs -S qfs1
    Building 'qfs1' will destroy the contents of devices:
      ...
    Do you wish to continue? [y/N]yes ...
    [qfs1mds-node1]root@solaris:~# 
    
  7. 现在,从群集控制中排除数据设备

从群集控制中排除数据设备

默认情况下,Solaris Cluster 软件隔离磁盘设备以专供群集使用。但是在 HA-COTC 配置中,仅元数据 (mm) 设备属于群集的一部分。数据 (mr) 设备与群集外的文件系统客户机共享,并且直接连接到客户机主机。因此您必须将数据 (mr) 设备置于群集软件的控制之外。这可以通过以下两种方法之一实现:

针对 HA-COTC 群集中的 QFS 数据设备禁用隔离
  1. 登录到 HA-COTC 群集的主节点和 QFS 共享文件系统的活动元数据服务器。以 root 用户身份登录。

    在示例中,qfs1mds-node1 是主节点和活动元数据服务器:

    [qfs1mds-node1]root@solaris:~# 
    
  2. 针对 /etc/opt/SUNWsamfs/mcf 文件中定义的每台数据 (mr) 设备,禁用隔离。使用命令 cldevice set -p default_fencing=nofencing-noscrub device-identifier,其中 device-identifier 是针对 mcf 文件第一列中的设备列出的设备标识符。

    请勿针对元数据 (mm) 设备禁用隔离!在 HA-COTC 配置中,QFS 元数据 (mm) 设备属于群集的一部分,而 QFS 共享数据 (mr) 设备则不属于。数据设备直接连接到群集外的客户机。出于这个原因,HA-COTC 数据 (mr) 设备必须作为不受 Solaris Cluster 软件管理的本地设备进行管理。否则,Solaris Cluster 软件和 QFS 可能会发生冲突并损坏数据。

    在上面的示例中,我们将 d4d5 设备配置为 qfs1 文件系统的数据设备。因此我们针对这些设备全局禁用隔离(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1mds-node1]root@solaris:~# cldevice set -p \
    default_fencing=nofencing-noscrub d4
    [qfs1mds-node1]root@solaris:~# cldevice set -p \
    default_fencing=nofencing-noscrub d5 
    
  3. 接下来,在主 HA-COTC 群集节点上挂载 QFS 文件系统

将共享数据设备放置在 HA-COTC 群集的 Local-Only 设备组中
  1. 登录到 HA-COTC 群集的主节点和 QFS 共享文件系统的活动元数据服务器。以 root 用户身份登录。

    在示例中,qfs1mds-node1 是主节点和活动元数据服务器:

    [qfs1mds-node1]root@solaris:~# 
    
  2. 将属于文件系统的所有数据 (mr) 设备放置在 localonly 设备组中。使用命令 cldevicegroup set -d device-identifier-list -p localonly=true -n active-mds-node device-group,其中 device-list 是逗号分隔的设备标识符列表,active-mds-node 是活动元数据服务器通常所在的主节点,device-group 是您为设备组选择的名称。

    在以下示例中,我们将数据设备 d4d5mcf 设备编号 102103)放置在主节点上的本地设备组 mdsdevgrp 中(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1mds-node1]root@solaris:~# cldevicegroup set -d d4,d5 -p localonly=true \
    -n node1mds mdsdevgrp
    [qfs1mds-node1]root@solaris:~# 
    
  3. 接下来,在主 HA-COTC 群集节点上挂载 QFS 文件系统

在主 HA-COTC 节点上挂载 QFS 文件系统

  1. 登录到 HA-COTC 群集的主节点和 QFS 共享文件系统的活动元数据服务器。以 root 用户身份登录。

    在示例中,qfs1mds-node1 是主节点和活动元数据服务器:

    [qfs1mds-node1]root@solaris:~# 
    
  2. 备份操作系统的 /etc/vfstab 文件。

    [qfs1mds-node1]root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
    
  3. 在文本编辑器中打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。在第一列 (Device to Mount) 中输入文件系统名称,后跟一个或多个空格。

    在示例中,使用 vi 文本编辑器。我们为 qfs1 文件系统添加了一行:

    [qfs1mds-node1]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount         System  fsck  Mount    Mount
    #to Mount  to fsck  Point         Type    Pass  at Boot  Options
    #--------  -------  ------------  ------  ----  -------  ---------------------
    /devices   -        /devices      devfs   -     no       -
    /proc      -        /proc         proc    -     no       -
    ...
    qfs1       -       
     
    
  4. /etc/vfstab 文件的第二列 (Device to fsck) 中,输入一个连字符 (-),后跟一个或多个空格。

    连字符告知操作系统跳过文件系统完整性检查。这些检查是针对 UFS 文件系统的,而不是针对 SAMFS 文件系统。

    [qfs1mds-node1]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount         System  fsck  Mount    Mount
    #to Mount  to fsck  Point         Type    Pass  at Boot  Options
    #--------  -------  ------------  ------  ----  -------  ---------------------
    /devices   -        /devices      devfs   -     no       -
    /proc      -        /proc         proc    -     no       -
    ...
    qfs1       -       
     
    
  5. /etc/vfstab 文件的第三列中,输入相对于群集的文件系统挂载点。选择并非直接位于系统根目录下的子目录。

    将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。在示例中,我们将群集上的挂载点设置为 /global/ha-cotc/qfs1

    #File
    #Device    Device   Mount                 System  fsck  Mount    Mount
    #to Mount  to fsck  Point                 Type    Pass  at Boot  Options
    #--------  -------  --------------------  ------  ----  -------  --------------
    /devices   -        /devices              devfs   -     no       -
    /proc      -        /proc                 proc    -     no       -
    ...
    qfs1       -        /global/ha-cotc/qfs1  
    
  6. 像处理任何共享 QFS 文件系统那样,填充 /etc/vfstab 文件记录的剩余字段。然后保存文件并关闭编辑器。

    #File
    #Device    Device   Mount                 System  fsck  Mount    Mount
    #to Mount  to fsck  Point                 Type    Pass  at Boot  Options
    #--------  -------  --------------------  ------  ----  -------  --------------
    /devices   -        /devices              devfs   -     no       -
    /proc      -        /proc                 proc    -     no       -
    ...
    qfs1       -        /global/ha-cotc/qfs1  samfs   -     no       shared
    :wq
    [qfs1mds-node1]root@solaris:~# 
    
  7. 创建高可用性共享文件系统的挂载点。

    带有 -p (parents) 选项的 mkdir 命令可以在 /global 目录不存在的情况下创建该目录:

    [qfs1mds-node1]root@solaris:~# mkdir -p /global/ha-cotc/qfs1
    
  8. 在主节点上挂载高可用性共享文件系统。

    [qfs1mds-node1]root@solaris:~# mount /global/ha-cotc/qfs1
    
  9. 接下来,在辅助 HA-COTC 群集节点上配置潜在 QFS 元数据服务器

在辅助 HA-COTC 群集节点上配置潜在 QFS 元数据服务器

双节点群集的辅助节点充当潜在元数据服务器。潜在元数据服务器是可以访问元数据设备的主机,因此可以承担元数据服务器的职责。因此,如果主节点上的活动元数据服务器发生故障,则 Solaris Cluster 软件可以故障转移到辅助节点并激活潜在元数据服务器。要配置潜在元数据服务器,请执行以下任务:

在辅助 HA-COTC 节点上创建高性能的 QFS 文件系统

  1. root 用户身份登录到 HA-COTC 群集的辅助节点。

    在示例中,qfs1mds-node2 是辅助节点和潜在元数据服务器:

    [qfs1mds-node2]root@solaris:~# 
    
  2. /etc/opt/SUNWsamfs/mcf 文件从主节点复制到辅助节点中。

  3. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 qfs1mds-node1 上的 mcf 文件:

    [qfs1mds-node2]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [qfs1mds-node2]root@solaris:~# 
    
  4. 接下来,在辅助 HA-COTC 群集节点上挂载 QFS 文件系统

在辅助 HA-COTC 节点上挂载 QFS 文件系统

  1. root 用户身份登录到 HA-COTC 群集的辅助节点。

    在示例中,qfs1mds-node2 是辅助节点:

    [qfs1mds-node2]root@solaris:~# 
    
  2. 备份操作系统的 /etc/vfstab 文件。

    [qfs1mds-node2]root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
    
  3. 在文本编辑器中,打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。然后保存文件并关闭编辑器。

    在示例中,使用 vi 编辑器:

    [qfs1mds-node2]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount                 System  fsck  Mount    Mount
    #to Mount  to fsck  Point                 Type    Pass  at Boot  Options
    #--------  -------  --------------------  ------  ----  -------  -------------
    /devices   -        /devices              devfs   -     no       -
    /proc      -        /proc                 proc    -     no       -
    ...
    qfs1       -        /global/ha-cotc/qfs1  samfs   -     no       shared
    :wq
    [qfs1mds-node2]root@solaris:~# 
    
  4. 在辅助节点上创建高可用性共享文件系统的挂载点。

    [qfs1mds-node2]root@solaris:~# mkdir -p /global/ha-cotc/qfs1
    [qfs1mds-node2]root@solaris:~# 
    
  5. 在辅助节点上挂载高可用性共享文件系统。

    [qfs1mds-node2]root@solaris:~# mount /global/ha-cotc/qfs1
    [qfs1mds-node2]root@solaris:~# 
    
  6. 现在,配置 HA-COTC 元数据服务器的故障转移

配置 HA-COTC 元数据服务器的故障转移

当您在 Solaris Cluster 软件管理的群集中托管 Oracle HSM 共享文件系统时,可以通过创建 SUNW.qfs 群集资源来配置元数据服务器的故障转移,该群集资源为 Oracle HSM 软件定义的一种资源类型(有关详细信息,请参见 SUNW.qfs 手册页)。要创建并配置 HA-COTC 配置的资源,请执行如下操作:

  1. root 用户身份登录到 HA-COTC 群集的主节点。

    在示例中,qfs1mds-node1 是主节点:

    [qfs1mds-node1]root@solaris:~# 
    
  2. 为 Solaris Cluster 软件定义 QFS 资源类型 SUNW.qfs。使用命令 clresourcetype register SUNW.qfs

    [qfs1mds-node1]root@solaris:~# clresourcetype register SUNW.qfs
    [qfs1mds-node1]root@solaris:~# 
    
  3. 如果注册因找不到注册文件而失败,则将 /opt/SUNWsamfs/sc/etc/ 目录的符号链接放置到 Solaris Cluster 存放资源类型注册文件的 /opt/cluster/lib/rgm/rtreg/ 目录中。

    您在安装 Oracle HSM 软件之前未安装 Oracle Solaris Cluster 软件。通常,Oracle HSM 会在安装期间检测到 Solaris Cluster 时自动提供 SUNW.qfs 注册文件的位置。因此您需要手动创建一个链接。

    [qfs1mds-node1]root@solaris:~# cd /opt/cluster/lib/rgm/rtreg/
    [qfs1mds-node1]root@solaris:~# ln -s /opt/SUNWsamfs/sc/etc/SUNW.qfs SUNW.qfs
    [qfs1mds-node1]root@solaris:~# 
    
  4. 创建 QFS 元数据服务器的资源组。使用 Solaris Cluster 命令 clresourcegroup create -n node-list group-name,其中 node-list 是逗号分隔的两个群集节点名称的列表,group-name 是我们想要用于资源组的名称。

    在示例中,使用 HA-COTC 服务器节点作为成员创建资源组 qfsrg(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1mds-node1]root@solaris:~# clresourcegroup create -n \ qfs1mds-node1,qfs1mds-node2 qfsrg
    [qfs1mds-node1]root@solaris:~# 
    
  5. 在新的资源组中,设置活动元数据服务器的虚拟主机名。使用 Solaris Cluster 命令 clreslogicalhostname create -g group-name virtualMDS,其中 group-name 是 QFS 资源组的名称,而 virtualMDS 是虚拟主机名。

    使用您在 hosts 文件中用于共享文件系统的相同虚拟主机名。在示例中,我们在 qfsr 资源组中创建 qfs1mds 虚拟主机:

    [qfs1mds-node1]root@solaris:~# clreslogicalhostname create -g qfsrg qfs1mds
    
  6. 向资源组中添加 QFS 文件系统资源。使用命令 clresource create -g group-name -t SUNW.qfs -x QFSFileSystem=mount-point -y Resource_dependencies=virtualMDS resource-name,其中:

    • group-name 是 QFS 资源组的名称。

    • mount-point 是群集中文件系统的挂载点,即并非直接位于系统根目录下的子目录。

      将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。

    • virtualMDS 是活动元数据服务器的虚拟主机名。

    • resource-name 是您想要赋予资源的名称。

    在本示例中,我们在 qfsrg 资源组中创建名为 hasqfsSUNW.qfs 类型的资源。我们将 SUNW.qfs 扩展属性 QFSFileSystem 设置为 /global/ha-cotc/qfs1 挂载点,将标准属性 Resource_dependencies 设置为活动元数据服务器 qfs1mds 的逻辑主机(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1mds-node1]root@solaris:~# clresource create -g qfsrg -t SUNW.qfs \
    -x QFSFileSystem=/global/ha-cotc/qfs1 -y Resource_dependencies=qfs1mds hasqfs 
    
  7. 使资源组联机。使用命令 clresourcegroup online -emM group-name,其中 group-name 是 QFS 资源组的名称。

    在示例中,我们使 qfsr 资源组联机:

    [qfs1mds-node1]root@solaris:~# clresourcegroup manage qfsrg
    [qfs1mds-node1]root@solaris:~# clresourcegroup online -emM qfsrg
    
  8. 确保 QFS 资源组处于联机状态。使用 Solaris Cluster clresourcegroup status 命令。

    在示例中,主节点 sam1mds-node1 上的 qfsrg 资源组处于 online 状态:

    [qfs1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsrg       qfs1mds-node1   No          Online
                qfs1mds-node2   No          Offline
    
  9. 通过将资源组移动到辅助节点确保资源组正确地故障转移。使用 Solaris Cluster 命令 clresourcegroup switch -n node2 group-name,其中 node2 是辅助节点的名称,group-name 是您为 HA-QFS 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 qfsrg 资源组移动到 qfs1mds-node2 并确认资源组在指定节点上处于联机状态:

    [qfs1mds-node1]root@solaris:~# clresourcegroup switch -n qfs1mds-node2 qfsrg
    [qfs1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsrg       qfs1mds-node1   No          Offline
                qfs1mds-node2   No          Online
    
  10. 将资源组移回到主节点。使用 Solaris Cluster 命令 clresourcegroup switch -n node1 group-name,其中 node1 是主节点的名称,group-name 是您为 HA-QFS 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 qfsrg 资源组成功移回到 qfs1mds-node1

    [qfs1mds-node1]root@solaris:~# clresourcegroup switch -n qfs1mds-node1 qfsrg
    [qfs1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsrg       qfs1mds-node1   No          Online
                qfs1mds-node2   No          Offline
    
  11. 接下来,将 HA-COTC 群集外部的主机配置为 QFS 共享文件系统客户机

将 HA-COTC 群集外部的主机配置为 QFS 共享文件系统客户机

将每台主机配置为具有文件系统元数据设备访问权限的 QFS 客户机,以便这些客户机不会影响群集内元数据服务器的高可用性配置。

对于每台 HA-COTC 共享文件系统客户机,请执行如下操作:

  1. 登录到 HA-COTC 群集的主节点。以 root 用户身份登录。

    [qfs1mds-node1]root@solaris:~# 
    
  2. 显示群集的设备配置。使用 Solaris Cluster 命令 /usr/global/bin/cldevice list -v

    [qfs1mds-node1]root@solaris:~# cldevice list -v
    DID Device          Full Device Path 
    ----------          ----------------
    d1                  qfs1mds-node1:/dev/rdsk/c0t0d0 
    d2                  qfs1mds-node1:/dev/rdsk/c0t6d0
    ...
    d7                  qfs1mds-node2:/dev/rdsk/c0t1d0
    [qfs1mds-node1]root@solaris:~# 
    
  3. 检查 cldevice list -v 命令的输出。记下与每个 QFS 数据 (mr) 设备的设备标识符对应的 /dev/rdsk/ 路径。

    在示例中,QFS 数据设备为 d4d5

    [qfs1mds-node1]root@solaris:~# cldevice list -v
    DID Device          Full Device Path
    ----------          ----------------
    d1                  qfs1mds-node1:/dev/rdsk/c0t0d0
    d2                  qfs1mds-node1:/dev/rdsk/c0t6d0
    d3                  qfs1mds-node1:/dev/rdsk/c1t1d0
    d3                  qfs1mds-node2:/dev/rdsk/c1t1d0
    d4                  qfs1mds-node1:/dev/rdsk/c1t2d0
    d4                  qfs1mds-node2:/dev/rdsk/c1t2d0
    d5                  qfs1mds-node1:/dev/rdsk/c1t3d0
    d5                  qfs1mds-node2:/dev/rdsk/c1t3d0
    d6                  qfs1mds-node2:/dev/rdsk/c0t0d0
    d7                  qfs1mds-node2:/dev/rdsk/c0t1d0
    [qfs1mds-node1]root@solaris:~# 
    
  4. root 用户身份登录到 HA-COTC 群集的客户机主机。

    在示例中,qfs1client1 为客户机主机:

    [qfs1mds-node1]root@solaris:~# ssh root@qfs1client1
    [qfs1client1]root@solaris:~# 
    
  5. 在客户机主机上,检索共享文件系统的配置信息。使用 samfsconfig /dev/rdsk/* 命令。

    samfsconfig /dev/rdsk/* 命令在指定路径中搜索属于 QFS 文件系统的已连接设备。在示例中,该命令找到了 qfs1 数据 (mr) 设备的路径。如预期的那样,它找不到元数据 (mm) 设备,因此它在列出共享数据设备之前返回 Missing slicesOrdinal 0 消息:

    [qfs1client1]root@solaris:~# samfsconfig /dev/rdsk/*
    # Family Set 'qfs1' Created Thu Dec 21 07:17:00 2013
    # Missing slices
    # Ordinal 0
    # /dev/rdsk/c1t2d0s0   102        mr       qfs1  -
    # /dev/rdsk/c1t3d0s1   103        mr       qfs1  -
    
  6. samfsconfig 命令的输出与服务器上 Solaris Cluster cldevice list 命令的输出进行比较。确保两个输出针对 mr 数据设备报告相同的设备路径。

    samfsconfigcldevice list 命令应该显示相同的设备,但是控制器编号 (cN) 可能不同。在示例中,samfsconfigcldevice list 命令确实指向相同的设备。

    在元数据服务器节点上,/etc/opt/SUNWsamfs/mcf 文件使用群集设备标识符 d4d5 标识共享 mr 数据设备 102103

     /dev/did/dsk/d4s0     102        mr         qfs1  -
     /dev/did/dsk/d5s1     103        mr         qfs1  -
    

    元数据服务器节点上的 cldevice list 命令将群集设备标识符 d4d5 映射到路径 /dev/rdisk/c1t2d0/dev/rdisk/c1t3d0

     d4                  qfs1mds-node1:/dev/rdsk/c1t2d0
     d5                  qfs1mds-node1:/dev/rdsk/c1t3d0
    

    在客户机节点上,samfsconfig 命令也通过路径 /dev/rdisk/c1t2d0/dev/rdisk/c1t3d0 标识共享 mr 数据设备 102103

     /dev/rdsk/c1t2d0s0    102        mr       qfs1  -
     /dev/rdsk/c1t3d0s1    103        mr       qfs1  -
    
  7. 在文本编辑器中打开客户机的 /etc/opt/SUNWsamfs/mcf 文件。针对 HA-COTC 共享文件系统添加一个条目。该条目应与元数据服务器 mcf 文件中的对应条目精确匹配。

    在示例中,使用 vi 编辑器为文件 QFS 共享系统 qfs1(设备序号为 100)创建一个条目:

    [qfs1client1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   ----------------
    qfs1                  100        ma         qfs1     -        shared
    
  8. 在新行中,针对 HA-COTC 共享文件系统的元数据 (mm) 设备添加一个条目。在第一列 (Equipment Identifier) 中,输入关键字 nodev

    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   ----------------
    qfs1                  100        ma         qfs1      -       shared
     nodev
    
  9. 使用元数据服务器 mcf 文件中使用的相同设备序号、系列集和设备状态参数填充 HA-COTC 文件系统元数据 (mm) 设备的其余字段。

    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   ----------------
    qfs1                  100        ma         qfs1      -       shared
     nodev                 101        mm         qfs1     -
    
  10. samfsconfig 输出复制数据 (mr) 设备的完整条目。将这些条目粘贴到客户机的 /etc/opt/SUNWsamfs/mcf 文件中。删除 samfsconfig 插入的前导注释 (#) 标记。然后保存文件并关闭编辑器。

    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   -----------------
    qfs1                  100        ma         qfs1      -       shared
     nodev                 101        mm         qfs1     -
     /dev/rdsk/c1t2d0s0    102        mr         qfs1     - 
     /dev/rdsk/c1t3d0s1    103        mr         qfs1     -
    :wq
    [qfs1client1]root@solaris:~# 
    
  11. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 qfs1client1 上的 mcf 文件:

    [qfs1client1]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [qfs1client1]root@solaris:~# 
    
  12. 在文本编辑器中打开客户机操作系统的 /etc/vfstab 文件,并使用在服务器上使用的相同参数针对新文件系统添加一个条目。然后保存文件并关闭编辑器。

    在示例中,使用 vi 编辑器:

    [qfs1client1]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount                 System  fsck  Mount    Mount
    #to Mount  to fsck  Point                 Type    Pass  at Boot  Options
    #--------  -------  --------------------  ------  ----  -------  -------------
    /devices   -        /devices              devfs   -     no       -
    /proc      -        /proc                 proc    -     no       -
    ...
    qfs1       -        /global/ha-cotc/qfs1  samfs   -     no       shared
    :wq
    [qfs1client1]root@solaris:~# 
    
  13. 在客户机上创建高可用性共享文件系统的挂载点。

    [qfs1client1]root@solaris:~# mkdir -p /global/qfs1
    [qfs1client1]root@solaris:~# 
    
  14. 在客户机上挂载高可用性共享文件系统。

    在示例中

    [qfs1client1]root@solaris:~# mount /global/qfs1
    [qfs1client1]root@solaris:~# 
    
  15. 重复此过程直到完成所有 HA-COTC 客户机的配置。

  16. 如果计划使用边带数据库功能,请转至配置报告数据库

  17. 否则,请转至配置通知和日志记录

高可用性 Oracle HSM 共享归档文件系统

高可用性 Oracle Hierarchical Storage Manager (HA-SAM) 配置可通过确保 QFS 元数据服务器和 Oracle Hierarchical Storage Manager 应用程序在服务器主机发生故障的情况下仍能继续运行来维持归档文件系统的可用性。该文件系统在由 Solaris Cluster 软件管理的双节点群集上托管的活动 QFS 元数据服务器和潜在 QFS 元数据服务器之间共享。如果活动群集节点发生故障,则群集软件自动激活正常运行节点上的潜在 Oracle HSM 服务器并转移正在运行操作的控制权。由于 QFS 文件系统和 Oracle HSM 应用程序的本地存储目录是共享的并且已挂载,因此仍可无中断地访问数据和元数据。

凭借通过活动元数据服务器发送所有 I/O,HA-SAM 配置可确保群集环境中的文件系统一致性。仅出于可访问性原因共享 HA-SAM 文件系统。您无法像在其他 SAM-QFS 共享文件系统配置中那样将潜在元数据服务器主机用作文件系统客户机。除非在节点故障转移期间激活了潜在元数据服务器,否则潜在元数据服务器不执行 I/O。可以使用 NFS 与客户机共享 HA-SAM 文件系统。但您必须确保以独占方式从活动元数据服务器节点导出共享。

高可用性归档文件系统依赖三种 Solaris Cluster 资源类型:

  • SUNW.hasam

    如果主要主机发生故障,则 SUNW.hasam 资源管理 Oracle Hierarchical Storage Manager 应用程序的故障转移。SUNW.hasam 软件随附在 Oracle HSM 软件分发中。

  • SUNW.qfs

    如果主要主机发生故障,则 SUNW.qfs 资源管理 QFS 元数据服务器的故障转移。SUNW.qfs 软件随附在 Oracle HSM 软件分发中(有关更多信息,请参见 SUNW.qfs 手册页)。

  • SUNW.HAStoragePlus

    如果主要主机发生故障,则 SUNW.HAStoragePlus 资源管理 Oracle Hierarchical Storage Manager 本地存储的故障转移。Oracle HSM 应用程序在服务器主机的本地文件系统中维护易失性归档信息(作业队列和可移除介质目录)。SUNW.HAStoragePlus 作为标准资源类型随附在 Solaris Cluster 软件中(有关资源类型的更多信息,请参见 Oracle Solaris Cluster 文档库中的 Data Services Planning and Administration(数据服务规划和管理)文档。

要配置所需组件的实例并将它们整合成一个有效的 HA-SAM 归档配置,请执行以下任务:

在两个 HA-SAM 群集节点上创建全局 Hosts 文件

在归档 Oracle HSM 共享文件系统中,您必须在元数据服务器上配置一个 hosts 文件,以便两个节点上的主机都能访问文件系统的元数据。hosts 文件与 mcf 文件一起存储在 /etc/opt/SUNWsamfs/ 目录中。在共享文件系统的初始创建过程中,sammkfs -S 命令使用该文件中存储的设置配置共享。因此,现在请使用下面的过程创建该文件。

  1. root 用户身份登录到 HA-SAM 群集的主节点。

    在示例中,sam1mds-node1 是主节点:

    [sam1mds-node1]root@solaris:~# 
    
  2. 显示群集配置。使用 /usr/global/bin/cluster show 命令。在输出中,找到每个 Node Name 的记录,并记下 privatehostnameTransport Adapter 名称,以及每个网络适配器的 ip_address 属性。

    在示例中,每个节点都有两个网络接口,hme0qfe3

    • hme0 适配器具有群集用于节点间内部通信的专用网络的 IP 地址。Solaris Cluster 软件会分配与每个专用地址相对应的 privatehostname

      默认情况下,主节点和辅助节点的专用主机名分别为 clusternode1-privclusternode2-priv

    • qfe3 适配器具有公共 IP 地址和公共主机名(即 sam1mds-node1sam1mds-node2),群集使用它们来进行数据传输。

    请注意,使用省略号 (...) 标记简化了显示内容:

    [sam1mds-node1]root@solaris:~# cluster show
    ...
      === Cluster Nodes ===                        
      Node Name:                                    sam1mds-node1...
        privatehostname:                               clusternode1-priv...
        Transport Adapter List:                        qfe3, hme0...
        Transport Adapter:                          qfe3...
          Adapter Property(ip_address):                172.16.0.12...
        Transport Adapter:                          hme0...
          Adapter Property(ip_address):                10.0.0.129...
      Node Name:                                    sam1mds-node2...
        privatehostname:                               clusternode2-priv...
        Transport Adapter List:                        qfe3, hme0...
          Adapter Property(ip_address):                172.16.0.13...
        Transport Adapter:                          hme0...
          Adapter Property(ip_address):                10.0.0.122
    
  3. 使用文本编辑器,创建文件 /etc/opt/SUNWsamfs/hosts.family-set-name,其中 family-set-name/etc/opt/SUNWsamfs/mcf 文件分配给文件系统设备的系列集名称。

    在示例中,使用 vi 文本编辑器创建文件 hosts.sam1。我们添加一些可选标题以显示主机表中的列,每行以井号 (#) 开头表示该行为注释:

    [sam1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.sam1
    # /etc/opt/SUNWsamfs/hosts.sam1
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    
  4. 在表的第一列中,输入主元数据服务器节点和辅助元数据服务器节点的主机名称,后面跟有一些空格,让每个条目都独占一行。

    在 hosts 文件中,行即为行(记录),空格为列(字段)分隔符。在本示例中,Host Name 列的前两行包含值 sam1mds-node1sam1mds-node2,它们是托管文件系统元数据服务器的群集节点的主机名:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  
    sam1mds-node2  
    
  5. 在每行的第二列中,开始为 Host Name 列中列出的主机提供 Network Interface 信息。输入各个 HA-SAM 群集节点的 Solaris Cluster 专用主机名或专用网络地址,后跟一个逗号。

    HA-SAM 服务器节点使用专用主机名在高可用性群集内进行服务器间的通信。在示例中,使用专用主机名 clusternode1-privclusternode2-priv,这些是 Solaris Cluster 软件分配的默认名称:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv,  
    sam1mds-node2  clusternode2-priv,  
    
  6. 在每行第二列中的逗号后面,输入活动元数据服务器的公共主机名,后跟空格。

    HA-SAM 服务器节点使用公共数据网络与群集外的主机通信。由于活动元数据服务器的 IP 地址和主机名在故障转移期间会发生更改(从 sam1mds-node1 更改为 sam1mds-node2,反之亦然),因此,我们对二者都使用虚拟主机名 sam1mds。稍后,我们将 Solaris Cluster 软件配置为始终将 sam1mds 的请求路由到活动元数据服务器:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv,sam1mds  
    sam1mds-node2  clusternode2-priv,sam1mds  
    
  7. 在每行的第三列中,输入服务器的序号(1 表示活动元数据服务器,2 表示潜在元数据服务器),后跟空格。

    在本示例中,只有一个元数据服务器,主节点 sam1mds-node1 是活动元数据服务器,因此其序号为 1,辅助节点 sam1mds-node2 的序号为 2

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv,sam1mds      1
    sam1mds-node2  clusternode2-priv,sam1mds      2
    
  8. 在每行的第四列中,输入 0(零),后跟空格。

    第四列中的值为 0-(连字符)或空表示该主机处于 on 状态-配置为对共享文件系统有访问权限。1(数字一)表示该主机处于 off 状态-配置为对文件系统没有访问权限(有关在管理共享文件系统时使用这些值的信息,请参见 samsharefs 手册页)。

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv,sam1mds      1        0
    sam1mds-node2  clusternode2-priv,sam1mds      2        0
    
  9. 在主节点行的第五列中,输入关键字 server。然后保存文件并关闭编辑器。

    server 关键字用于标识默认的活动元数据服务器:

    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv,sam1mds      1        0    server
    sam1mds-node2  clusternode2-priv,sam1mds      2        0   
    :wq
    [sam1mds-node1]root@solaris:~#  
    
  10. 将全局 /etc/opt/SUNWsamfs/hosts.family-set-name 文件的副本放置在潜在元数据服务器上。

  11. 现在,在两个 HA-SAM 群集节点上创建本地 hosts 文件

在两个 HA-SAM 群集节点上创建本地 Hosts 文件

在高可用性归档共享文件系统中,您需要使用 Solaris Cluster 软件定义的专用网络确保服务器可以互相通信。为此,需要使用专门配置的本地 hosts 文件选择性地在服务器的网络接口之间路由网络流量。

每个文件系统主机通过首先查看元数据服务器上的 /etc/opt/SUNWsamfs/hosts.family-set-name 文件来确定用于其他主机的网络接口。然后,主机检查自己的特定 /etc/opt/SUNWsamfs/hosts.family-set-name.local 文件。如果没有本地 hosts 文件,则主机将按照全局 hosts 文件中指定的顺序使用该全局文件中指定的接口地址。但是,如果存在本地 hosts 文件,则主机会将其与全局文件进行比较并按照本地文件中指定的顺序仅使用两个文件中同时列出的那些接口。通过在不同的安排下使用各文件中的 IP 地址,您可以控制不同主机使用的接口。

要配置本地 hosts 文件,请使用下面概述的过程:

  1. root 用户身份登录到 HA-SAM 群集的主节点。

    在示例中,sam1mds-node1 是主节点:

    [sam1mds-node1]root@solaris:~# 
    
  2. 使用文本编辑器通过路径和文件名 /etc/opt/SUNWsamfs/hosts.family-set-name.local 在活动元数据服务器上创建本地 hosts 文件,其中 family-set-name/etc/opt/SUNWsamfs/mcf 文件分配给文件系统设备的系列集名称。仅包括您希望活动服务器与潜在服务器通信时使用的网络接口。然后保存文件并关闭编辑器。

    在示例中,我们希望活动元数据服务器和潜在元数据服务器通过专用网络互相通信。因此活动元数据服务器上的本地 hosts 文件 hosts.sam1.local 仅列出活动服务器和潜在服务器的群集专用地址:

    [sam1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.sam1.local
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv              1        0    server 
    sam1mds-node2  clusternode2-priv              2        0   
    :wq
    [sam1mds-node1]root@solaris:~# 
    
  3. root 用户身份登录辅助群集节点。

    在示例中,sam1mds-node2 是辅助节点:

    [sam1mds-node1]root@solaris:~# ssh root@sam1mds-node2
    Password:
    [sam1mds-node2]root@solaris:~# 
    
  4. 使用文本编辑器在潜在元数据服务器上创建一个本地 hosts 文件。使用路径和文件名 /etc/opt/SUNWsamfs/hosts.family-set-name.local,其中 family-set-name/etc/opt/SUNWsamfs/mcf 文件分配给文件系统设备的系列集名称。仅包括您希望潜在服务器与活动服务器通信时使用的网络接口。然后保存文件并关闭编辑器。

    在示例中,我们希望活动元数据服务器和潜在元数据服务器通过专用网络互相通信。因此潜在元数据服务器上的本地 hosts 文件 hosts.sam1.local 仅列出活动服务器和潜在服务器的群集专用地址:

    [sam1mds-node2]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.sam1.local
    #                                             Server   On/  Additional
    #Host Name     Network Interface              Ordinal  Off  Parameters
    #------------  -----------------------------  -------  ---  ----------
    sam1mds-node1  clusternode1-priv              1        0    server 
    sam1mds-node2  clusternode2-priv              2        0   
    :wq
    [sam1mds-node2]root@solaris:~# exit
    [sam1mds-node1]root@solaris:~# 
    
  5. 接下来,在主 HA-SAM 群集节点上配置活动 QFS 元数据服务器

在主 HA-SAM 群集节点上配置活动 QFS 元数据服务器

  1. 选择将同时充当 HA-SAM 群集的主节点和 QFS 共享文件系统的活动元数据服务器的群集节点。以 root 用户身份登录。

    在示例中,sam1mds-node1 是主节点:

    [sam1mds-node1]root@solaris:~# 
    
  2. 选择要用于 QFS 文件系统的全局存储设备。使用命令 /usr/global/bin/cldevice list -v

    Solaris Cluster 软件向连接到群集节点的所有设备分配唯一的设备标识符 (Device Identifier, DID)。全局设备可以从群集中的所有节点进行访问,而本地设备仅可以从挂载它们的主机进行访问。全局设备在故障转移后仍然可以访问。本地设备则不然。

    在示例中,请注意 d1d2d7d8 设备从两个节点都无法访问。所以在配置高可用性 QFS 共享文件系统时,我们从 d3d4d5 设备中进行选择:

    [sam1mds-node1]root@solaris:~# cldevice list -v
    DID Device          Full Device Path
    ----------          ----------------
    d1                  sam1mds-node1:/dev/rdsk/c0t0d0
    d2                  sam1mds-node1:/dev/rdsk/c0t6d0
    d3                  sam1mds-node1:/dev/rdsk/c1t1d0
    d3                  sam1mds-node2:/dev/rdsk/c1t1d0
    d4                  sam1mds-node1:/dev/rdsk/c1t2d0
    d4                  sam1mds-node2:/dev/rdsk/c1t2d0
    d5                  sam1mds-node1:/dev/rdsk/c1t3d0
    d5                  sam1mds-node2:/dev/rdsk/c1t3d0
    d6                  sam1mds-node2:/dev/rdsk/c0t0d0
    d7                  sam1mds-node2:/dev/rdsk/c0t1d0
    
  3. 在选定的主节点上,创建使用 mr 数据设备的高性能 ma 文件系统。在文本编辑器中,打开 /etc/opt/SUNWsamfs/mcf 文件。

    在示例中,我们配置文件系统 sam1。我们将设备 d3 配置为元数据设备(设备类型 mm),并将 d4d5 用作数据设备(设备类型 mr):

    [sam1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   -----------------
    sam1                  100        ma         sam1     -        
     /dev/did/dsk/d3s0     101        mm         sam1     -
     /dev/did/dsk/d4s0     102        mr         sam1     -
     /dev/did/dsk/d5s1     103        mr         sam1     -
    
  4. /etc/opt/SUNWsamfs/mcf 文件的文件系统条目的 Additional Parameters 列中输入 shared 参数。保存文件。

    [sam1mds-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   -----------------
    sam1                  100        ma         sam1     -        shared
     /dev/did/dsk/d3s0     101        mm         sam1     -
     /dev/did/dsk/d4s0     102        mr         sam1     -
     /dev/did/dsk/d5s1     103        mr         sam1     -
    :wq
    [sam1mds-node1]root@solaris:~# 
    
  5. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 sam1mds-node1 上的 mcf 文件:

    [sam1mds-node1]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [sam1mds-node1]root@solaris:~# 
    
  6. 创建文件系统。使用命令 /opt/SUNWsamfs/sbin/sammkfs -S family-set-name,其中 family-set-name/etc/opt/SUNWsamfs/mcf 文件分配给文件系统设备的系列集名称。

    sammkfs 命令读取 hosts.family-set-namemcf 文件,并创建具有指定属性的 Oracle HSM 文件系统。

    [sam1mds-node1]root@solaris:~# sammkfs -S sam1
    Building 'sam1' will destroy the contents of devices:
      ...
    Do you wish to continue? [y/N]yes ...
    [sam1mds-node1]root@solaris:~# 
    
  7. 在文本编辑器中打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。在第一列中输入文件系统名称,然后输入几个空格,在第二列中输入一个连字符,然后输入更多的空格。

    在示例中,使用 vi 文本编辑器。我们为 sam1 文件系统添加了一行。连字符阻止操作系统尝试使用 UFS 工具检查文件系统的完整性:

    [sam1mds-node1]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount         System  fsck  Mount    Mount
    #to Mount  to fsck  Point         Type    Pass  at Boot  Options
    #--------  -------  ------------  ------  ----  -------  ---------------------
    /devices   -        /devices      devfs   -     no       -
    /proc      -        /proc         proc    -     no       -
    ...
    sam1       -        
    
  8. /etc/vfstab 文件的第三列中,输入相对于群集的文件系统挂载点。选择并非直接位于系统根目录下的子目录。

    将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。在示例中,我们将群集上的挂载点设置为 /global/ha-sam/sam1

    #File
    #Device    Device   Mount               System  fsck  Mount    Mount
    #to Mount  to fsck  Point               Type    Pass  at Boot  Options
    #--------  -------  ------------------- ------  ----  -------  ---------------
    /devices   -        /devices            devfs   -     no       -
    /proc      -        /proc               proc    -     no       -
    ...
    sam1       -        /global/ha-sam/sam1  
    
  9. 像处理任何共享 Oracle HSM 共享文件系统那样,填充 /etc/vfstab 文件记录的剩余字段。然后保存文件并关闭编辑器。

    #File
    #Device    Device   Mount               System  fsck  Mount    Mount
    #to Mount  to fsck  Point               Type    Pass  at Boot  Options
    #--------  -------  ------------------- ------  ----  -------  ---------------
    /devices   -        /devices            devfs   -     no       -
    /proc      -        /proc               proc    -     no       -
    ...
    sam1       -        /global/ha-sam/sam1 samfs   -     no       shared
    :wq
    [sam1mds-node1]root@solaris:~# 
    
  10. 创建高可用性文件系统的挂载点。

    带有 -p (parents) 选项的 mkdir 命令可以在 /global 目录不存在的情况下创建该目录:

    [sam1mds-node1]root@solaris:~# mkdir -p /global/ha-sam/sam1
    
  11. 在主节点上挂载高可用性共享文件系统。

    [sam1mds-node1]root@solaris:~# mount /global/ha-sam/sam1
    
  12. 接下来,在辅助 HA-SAM 群集节点上配置潜在 QFS 元数据服务器

在辅助 HA-SAM 群集节点上配置潜在 QFS 元数据服务器

双节点群集的辅助节点充当潜在元数据服务器。潜在元数据服务器是可以访问元数据设备的主机,因此可以承担元数据服务器的职责。因此,如果主节点上的活动元数据服务器发生故障,则 Solaris Cluster 软件可以故障转移到辅助节点并激活潜在元数据服务器。

  1. root 用户身份登录到 HA-SAM 群集的辅助节点。

    在示例中,sam1mds-node2 是辅助节点:

    [sam1mds-node2]root@solaris:~# 
    
  2. /etc/opt/SUNWsamfs/mcf 文件从主节点复制到辅助节点中。

  3. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 sam1mds-node1 上的 mcf 文件:

    [sam1mds-node2]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [sam1mds-node2]root@solaris:~# 
    
  4. 创建文件系统。使用命令 /opt/SUNWsamfs/sbin/sammkfs -S family-set-name,其中 family-set-name/etc/opt/SUNWsamfs/mcf 文件分配给文件系统设备的系列集名称。

    sammkfs 命令读取 hosts.family-set-namemcf 文件,并创建具有指定属性的 Oracle HSM 文件系统。

    [sam1mds-node2]root@solaris:~# sammkfs sam1
    Building 'sam1' will destroy the contents of devices:
      ...
    Do you wish to continue? [y/N]yes ...
    [sam1mds-node2]root@solaris:~# 
    
  5. 在文本编辑器中,打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。然后保存文件并关闭编辑器。

    在示例中,使用 vi 编辑器:

    [sam1mds-node2]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount               System  fsck  Mount    Mount
    #to Mount  to fsck  Point               Type    Pass  at Boot  Options
    #--------  -------  ------------------- ------  ----  -------  --------------
    /devices   -        /devices            devfs   -     no       -
    /proc      -        /proc               proc    -     no       -
    ...
    sam1       -        /global/ha-sam/sam1 samfs   -     no       shared
    :wq
    [sam1mds-node2]root@solaris:~# 
    
  6. 在辅助节点上创建高可用性共享文件系统的挂载点。

    [sam1mds-node2]root@solaris:~# mkdir -p /global/ha-sam/sam1
    
  7. 在辅助节点上挂载高可用性共享文件系统。

    [sam1mds-node2]root@solaris:~# mount /global/ha-sam/sam1
    
  8. 现在,创建 HA-SAM 群集资源组

创建 HA-SAM 群集资源组

创建将管理 HA-SAM 解决方案的高可用性资源的资源组。

  1. root 用户身份登录到 HA-SAM 群集的主群集节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 创建 Solaris Cluster 资源组以管理 HA-SAM 解决方案资源。使用命令 clresourcegroup create -n node1,node2  groupname,其中:

    • node1 是主群集节点的主机名。

    • node2 是辅助群集节点的主机名。

    • groupname 是您为 HA-SAM 资源组选择的名称。

    在本示例中,我们创建名为 has-rg 的资源组并包含主机 sam1mds-node1sam1mds-node2(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# clresourcegroup create \
    -n sam1mds-node1,sam1mds-node2 has-rg
    
  3. 接下来,配置高可用性本地文件系统来存放 Oracle HSM 配置文件

为 Oracle HSM 配置文件配置高可用性本地文件系统

要成功恢复以下故障转移,Oracle HSM 软件必须重新启动在故障转移发生时运行的归档操作。要重新启动归档操作,该软件必须对系统配置和状态信息具有访问权限,该信息通常存储在活动元数据服务器的本地文件系统中。因此您必须将所需的信息移动到高可用性本地文件系统中,始终可以从群集中的两个节点访问该文件系统。

要创建所需的文件系统,请执行如下操作:

  1. root 用户身份登录到 HA-SAM 群集的主节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 在主群集节点上,在全局设备的空闲分片上创建 UFS 文件系统。使用命令 newfs /dev/global/dsk/dXsY,其中 X 是全局设备的设备标识符 (Device Identifier, DID) 编号,Y 是分片编号。

    在本示例中,我们在 /dev/global/dsk/d10s0 上创建新文件系统:

    [sam1mds-node1]root@solaris:~# newfs /dev/global/dsk/d10s0
    newfs: construct a new file system /dev/global/dsk/d10s0: (y/n)? y
    /dev/global/dsk/d10s0: 1112940 sectors in 1374 cylinders of 15 tracks,
    54 sectors 569.8MB in 86 cyl groups (16 c/g, 6.64MB/g, 3072 i/g) 
    super-block backups(for fsck -b #) at:
    32, 13056, 26080, 39104, 52128, 65152, 78176, 91200, 104224, . . .
    [sam1mds-node1]root@solaris:~# 
    
  3. 在主群集节点上,在文本编辑器中打开操作系统的 /etc/vfstab 文件。针对新 UFS 文件系统添加一行。保存文件并关闭编辑器。

    新行应为 /dev/global/dsk/dXsY /dev/global/dsk/dXsY /global/mount_point ufs 5 no global 形式的空格分隔的列表,其中:

    • X 是存放文件系统的全局设备的设备标识符 (Device Identifier, DID) 编号。

    • Y 是存放文件系统的分片的编号。

    • /dev/global/dsk/dXsY 是将要挂载的文件系统设备的名称。

    • /dev/global/dsk/dXsY 是将由 fsck 命令进行检查的文件系统设备的名称。

    • mount_point 是要挂载 UFS 文件的子目录的名称。

    • ufs 是文件系统类型。

    • 5 是建议的 fsck 传递号。

    • no 告知操作系统不应在启动时挂载文件系统。

    • global 挂载文件系统,以便两个节点都具有访问权限。

    在示例中,使用 vi 编辑器。文件系统名称为 /dev/global/dsk/d10s0,挂载点为 /global/hasam_cfg(请注意,文件系统条目是单行-为了适应页面,插入了一个换行符并使用反斜杠字符对其进行了转义):

    [sam1mds-node1]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount               System  fsck  Mount    Mount
    #to Mount  to fsck  Point               Type    Pass  at Boot  Options
    #--------  -------  ------------------- ------  ----  -------  --------------
    /devices   -        /devices            devfs   -     no       -
    /proc      -        /proc               proc    -     no       -
    ...
    sam1       -        /global/ha-samsam1  samfs   -     no       shared
    /dev/global/dsk/d10s0   /dev/global/rdsk/d10s0  /global/hasam_cfg  ufs  5 \
         no   global
    :wq
    [sam1mds-node2]root@solaris:~# 
    
  4. 在主群集节点上,为高可用性本地文件系统创建挂载点。使用命令 mkdir -p /global/mount_point,其中 mount_point 是选择的挂载点目录。

    在本示例中,我们创建目录 /global/hasam_cfg

    [sam1mds-node1]root@solaris:~# mkdir -p /global/hasam_cfg
    
  5. root 用户身份登录辅助群集节点。

    在示例中,辅助节点是 sam1mds-node2。我们使用 ssh 登录:

    [sam1mds-node1]root@solaris:~# ssh root@sam1mds-node2
    Password:
    [sam1mds-node2]root@solaris:~# 
    
  6. 在辅助节点上,在文本编辑器中打开操作系统的 /etc/vfstab 文件。针对新 UFS 文件系统添加一个相同的条目。保存文件并关闭编辑器。

    [sam1mds-node1]root@solaris:~# ssh root@sam1mds-node2
    Password:
    [sam1mds-node2]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount               System  fsck  Mount    Mount
    #to Mount  to fsck  Point               Type    Pass  at Boot  Options
    #--------  -------  ------------------- ------  ----  -------  --------------
    /devices   -        /devices            devfs   -     no       -
    /proc      -        /proc               proc    -     no       -
    ...
    sam1       -        /global/ha-samsam1  samfs   -     no       shared
    /dev/global/dsk/d10s0   /dev/global/rdsk/d10s0  /global/hasam_cfg  ufs  5  \
        no   global
    :wq
    [sam1mds-node1]root@solaris:~# 
    
  7. 在辅助节点上,创建相同的挂载点。

    在本示例中,我们创建 /global/hasam_cfg 目录。然后,我们关闭 ssh 会话并恢复在主节点上的工作:

    [sam1mds-node2]root@solaris:~# mkdir -p /global/hasam_cfg
    [sam1mds-node2]root@solaris:~# exit
    [sam1mds-node1]root@solaris:~# 
    
  8. 在主节点上,挂载高可用性本地文件系统。使用命令 mount /global/mount_point,其中 mount_point 是选择的挂载点目录。

    该命令在两个节点上挂载 UFS 文件系统。在本示例中,我们在 /global/hasam_cfg 上挂载文件系统:

    [sam1mds-node1]root@solaris:~# mount /global/hasam_cfg
    [sam1mds-node1]root@solaris:~# 
    
  9. 在主节点上,创建用于存放 Oracle HSM 回写信息的子目录。使用命令 mkdir -p /global/mount_point/catalog,其中 mount_point 是选择的挂载点目录。

    [sam1mds-node1]root@solaris:~# mkdir /global/hasam_cfg/catalog
    [sam1mds-node1]root@solaris:~# 
    
  10. 在主节点上,创建用于存放 Oracle HSM 归档目录的子目录。使用命令 mkdir -p /global/mount_point/stager,其中 mount_point 是选择的挂载点目录。

    [sam1mds-node1]root@solaris:~# mkdir /global/hasam_cfg/stager
    [sam1mds-node1]root@solaris:~# 
    
  11. 接下来,将 Oracle HSM 配置文件重定位至高可用性本地文件系统

将 Oracle HSM 配置文件重定位至高可用性本地文件系统

  1. root 用户身份登录到 HA-SAM 群集的主节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 在主节点上,将 catalog/stager/ 目录从其在 /var/opt/SUNWsamfs/ 中的默认位置复制到临时位置。

    在本示例中,我们将指令递归复制到 /var/tmp/ 中(请注意,下面的第一条命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# cp -r /var/opt/SUNWsamfs/catalog \
    /var/tmp/catalog 
    [sam1mds-node1]root@solaris:~# cp -r /var/opt/SUNWsamfs/stager /var/tmp/stager
    [sam1mds-node1]root@solaris:~# 
    
  3. 在主节点上,从 /var/opt/SUNWsamfs/ 中删除 catalog/stager/ 目录。

    [sam1mds-node1]root@solaris:~# rm -rf /var/opt/SUNWsamfs/catalog 
    [sam1mds-node1]root@solaris:~# rm -rf /var/opt/SUNWsamfs/stager
    [sam1mds-node1]root@solaris:~# 
    
  4. 在主节点上,创建从目录信息的默认位置到高可用性 UFS 本地文件系统中的新位置的符号链接。使用命令 ln -s /global/mount_point/catalog /var/opt/SUNWsamfs/catalog,其中:

    • mount_point 是将高可用性本地文件系统连接到节点根文件系统的子目录的名称。

    • /var/opt/SUNWsamfs/catalog 是默认位置。

    符号链接会自动将对目录信息的请求重定向至新位置。在本示例中,我们创建一个指向新位置 /global/hasam_cfg/catalogcatalog 链接(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# ln -s /global/hasam_cfg/catalog \
    /var/opt/SUNWsamfs/catalog
    [sam1mds-node1]root@solaris:~# 
    
  5. 在主节点上,创建从回写信息的默认位置到高可用性 UFS 本地文件系统中的新位置的符号链接。使用命令 ln -s /global/mount_point/stager /var/opt/SUNWsamfs/stager,其中:

    • mount_point 是将高可用性本地文件系统连接到节点根文件系统的子目录的名称。

    • /var/opt/SUNWsamfs/stager 是默认位置。

    符号链接会自动将对回写程序信息的请求重定向至新位置。在本示例中,我们创建一个指向新位置 /global/hasam_cfg/stagerstager 链接(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# ln -s /global/hasam_cfg/stager \ /var/opt/SUNWsamfs/stager
    [sam1mds-node1]root@solaris:~# 
    
  6. 在主节点上,确保符号链接已替换默认的 /var/opt/SUNWsamfs/catalog/var/opt/SUNWsamfs/stager 目录。确保这些链接指向高可用性文件系统中的新位置。

    在示例中,链接正确:

    [sam1mds-node1]root@solaris:~# ls -l /var/opt/SUNWsamfs/catalog
    lrwxrwxrwx 1 root other ... /var/opt/SUNWsamfs/catalog -> /global/hasam_cfg/catalog
    [sam1mds-node1]root@solaris:~# ls -l /var/opt/SUNWsamfs/stager
    lrwxrwxrwx 1 root other ... /var/opt/SUNWsamfs/stager -> /global/hasam_cfg/stager
    [sam1mds-node1]root@solaris:~# 
    
  7. catalog/stager/ 目录的内容从临时位置复制到高可用性共享文件系统。

    在本示例中,我们将 catalog/stager/ 目录从 /var/tmp/ 复制到新位置 /global/hasam_cfg/stager(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# cp -rp /var/tmp/catalog/* \
    /var/opt/SUNWsamfs/catalog
    [sam1mds-node1]root@solaris:~# cp -rp /var/tmp/stager/* \
    /var/opt/SUNWsamfs/stager
    [sam1mds-node1]root@solaris:~# 
    
  8. root 用户身份登录到 HA-SAM 群集的辅助节点。

    在示例中,使用 ssh(secure shell,安全 shell)登录到 sam1mds-node2(辅助节点):

    [sam1mds-node1]root@solaris:~# ssh root@sam1mds-node2
    Password:
    [sam1mds-node2]root@solaris:~# 
    
  9. 在辅助节点上,创建从目录信息的默认位置到高可用性 UFS 本地文件系统中的新位置的符号链接。使用命令 ln -s /global/mount_point/catalog /var/opt/SUNWsamfs/catalog,其中:

    • mount_point 是将高可用性本地文件系统连接到节点根文件系统的子目录的名称。

    • /var/opt/SUNWsamfs/catalog 是默认位置。

    符号链接会自动将对目录信息的请求重定向至新位置。在本示例中,我们创建一个指向新位置 /global/hasam_cfg/catalogcatalog 链接(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node2]root@solaris:~# ln -s /global/hasam_cfg/catalog \
    /var/opt/SUNWsamfs/catalog
    [sam1mds-node2]root@solaris:~# 
    
  10. 在辅助节点上,创建从回写信息的默认位置到高可用性 UFS 本地文件系统中的新位置的符号链接。使用命令 ln -s /global/mount_point/stager /var/opt/SUNWsamfs/stager,其中:

    • mount_point 是将高可用性本地文件系统连接到节点根文件系统的子目录的名称。

    • /var/opt/SUNWsamfs/stager 是默认位置。

    符号链接会自动将对回写程序信息的请求重定向至新位置。在本示例中,我们创建一个指向新位置 /global/hasam_cfg/stagerstager 链接(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node2]root@solaris:~# ln -s /global/hasam_cfg/stager \ /var/opt/SUNWsamfs/stager
    [sam1mds-node2]root@solaris:~# 
    
  11. 在辅助节点上,确保符号链接已替换默认的 /var/opt/SUNWsamfs/catalog/var/opt/SUNWsamfs/stager 目录。确保这些链接指向高可用性文件系统中的新位置。

    在示例中,链接正确。因此,我们关闭 ssh 会话并恢复在主节点上的工作:

    [sam1mds-node2]root@solaris:~# ls -l /var/opt/SUNWsamfs/catalog
    lrwxrwxrwx 1 root other ... /var/opt/SUNWsamfs/catalog -> /global/hasam_cfg/catalog
    [sam1mds-node2]root@solaris:~# ls -l /var/opt/SUNWsamfs/stager
    lrwxrwxrwx 1 root other ... /var/opt/SUNWsamfs/stager -> /global/hasam_cfg/stager
    [sam1mds-node2]root@solaris:~# exit
    [sam1mds-node1]root@solaris:~#  
    
  12. 接下来,将 HA-SAM 群集配置为使用高可用性本地文件系统

将 HA-SAM 群集配置为使用高可用性本地文件系统

  1. 在 HA-SAM 群集的主节点上,注册 SUNW.HAStoragePlus 资源类型作为群集配置的一部分。使用 Solaris Cluster 命令 clresourcetype register SUNW.HAStoragePlus

    [sam1mds-node1]root@solaris:~# clresourcetype register SUNW.HAStoragePlus
    [sam1mds-node1]root@solaris:~# 
    
  2. 在主节点上,创建 SUNW.HAStoragePlus 资源类型的新实例并将其与 Solaris Cluster 资源组相关联。使用命令 clresource create -g groupname -t SUNW.HAStoragePlus -x FilesystemMountPoints=mountpoint -x AffinityOn=TRUE resourcename,其中:

    • groupname 是您为 HA-SAM 资源组选择的名称。

    • SUNW.HAStoragePlus 是支持本地文件系统故障转移的 Solaris Cluster 资源类型。

    • mountpoint 是存放目录和回写程序文件的高可用性本地文件系统的挂载点。

    • resourcename 是您为资源本身选择的名称。

    在本示例中,我们创建类型为 SUNW.HAStoragePlus 且名为 has-cfg 的资源。我们将新资源添加到资源组 has-rg 中。然后我们配置资源扩展属性。我们将 FilesystemMountPoints 设置为 /global/hasam_cfg,将 AffinityOn 设置为 TRUE(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# clresource create -g has-rg \
    -t SUNW.HAStoragePlus -x FilesystemMountPoints=/global/hasam_cfg \
    -x AffinityOn=TRUE has-cfg
    [sam1mds-node1]root@solaris:~# 
    
  3. 接下来,配置 QFS 文件系统元数据服务器的故障转移

配置 QFS 文件系统元数据服务器的故障转移

通过创建 SUNW.qfs 群集资源配置元数据服务器的故障转移,该群集资源是由 Oracle HSM 软件定义的资源类型(有关详细信息,请参见 SUNW.qfs 手册页)。要创建并配置 HA-SAM 配置的资源,请执行如下操作:

  1. root 用户身份登录到 HA-SAM 群集的主群集节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 为 Solaris Cluster 软件定义资源类型 SUNW.qfs。使用命令 clresourcetype register SUNW.qfs

    [sam1mds-node1]root@solaris:~# clresourcetype register SUNW.qfs
    [qfs1mds-node1]root@solaris:~# 
    
  3. 如果注册因找不到注册文件而失败,则将 /opt/SUNWsamfs/sc/etc/ 目录的符号链接放置到 Solaris Cluster 存放资源类型注册文件的 /opt/cluster/lib/rgm/rtreg/ 目录中。

    如果在安装 Oracle HSM 软件之前未安装 Oracle Solaris Cluster 软件,则注册将失败。通常,Oracle HSM 会在安装期间检测到 Solaris Cluster 时自动提供 SUNW.qfs 注册文件的位置。在示例中,我们手动创建链接。

    [qfs1mds-node1]root@solaris:~# cd /opt/cluster/lib/rgm/rtreg/
    [qfs1mds-node1]root@solaris:~# ln -s /opt/SUNWsamfs/sc/etc/SUNW.qfs SUNW.qfs
    [qfs1mds-node1]root@solaris:~# 
    
  4. 在新的资源组中,设置活动元数据服务器的虚拟主机名。使用 Solaris Cluster 命令 clreslogicalhostname create -g group-name virtualMDS,其中:

    • group-name 是 QFS 资源组的名称。

    • virtualMDS 是虚拟主机名。

    使用您在 hosts 文件中用于共享文件系统的相同虚拟主机名。在示例中,我们将虚拟主机名 sam1mds 添加到 has-rg 资源组中:

    [sam1mds-node1]root@solaris:~# clreslogicalhostname create -g has-rg sam1mds
    [qfs1mds-node1]root@solaris:~# 
    
  5. 向资源组中添加 Oracle HSM 文件系统资源。使用命令 clresource create -g groupname -t SUNW.qfs -x QFSFileSystem=mount-point,其中:

    • groupname 是您为 HA-SAM 资源组选择的名称。

    • SUNW.qfs 是支持 QFS 文件系统元数据服务器的故障转移的 Solaris Cluster 资源类型。

    • mount-point 是群集中文件系统的挂载点,即并非直接位于系统根目录下的子目录。

      将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。

    • resource-name 是您为资源本身选择的名称。

    在示例中,我们在 has-rg 资源组中创建名为 has-qfsSUNW.qfs 类型的资源。我们将 SUNW.qfs 扩展属性 QFSFileSystem 设置为 /global/ha-sam/sam1 挂载点。我们将标准属性 Resource_dependencies 设置为 sam1mds,这是表示活动元数据服务器的虚拟主机名(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# clresource create -g has-rg -t SUNW.qfs \
    -x QFSFileSystem=/global/ha-sam/sam1 -y Resource_dependencies=sam1mds has-qfs 
    [sam1mds-node1]root@solaris:~# 
    
  6. 接下来,配置 Oracle Hierarchical Storage Manager 应用程序的故障转移

配置 Oracle Hierarchical Storage Manager 应用程序的故障转移

通过创建 Oracle HSM SUNW.hasam 资源来配置 Oracle Hierarchical Storage Manager 应用程序的故障转移。该资源类型协调按顺序执行的 Oracle HSM 关闭和重新启动过程。

要配置 Oracle HSM 应用程序的故障转移,请执行如下操作:

  1. root 用户身份登录到 HA-SAM 群集的主群集节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 为 Solaris Cluster 软件定义资源类型 SUNW.hasam。使用命令 clresourcetype register SUNW.hasam

    [sam1mds-node1]root@solaris:~# clresourcetype register SUNW.hasam
    [sam1mds-node1]root@solaris:~# 
    
  3. 向资源组添加 Oracle HSM SUNW.hasam 资源。使用命令 clresource create -g groupname -t SUNW.hasam -x QFSName=fs-name -x CatalogFileSystem=mount-point resource-name,其中:

    • groupname 是您为 HA-SAM 资源组选择的名称。

    • SUNW.hasam 是支持 Oracle Hierarchical Storage Manager 应用程序故障转移的 Solaris Cluster 资源类型。

    • mount-point 是存放 Oracle HSM 归档目录的全局文件系统的挂载点。

    • resource-name 是您为资源本身选择的名称。

    在示例中,我们在 has-rg 资源组中创建名为 has-samSUNW.hasam 类型的资源。我们将 SUNW.hasam 扩展属性 QFSName 设置为在 mcf 文件中指定的 QFS 文件系统名称 sam1。我们将 SUNW.hasam 扩展属性 CatalogFileSystem 设置为 /global/hasam_cfg 挂载点。

    [sam1mds-node1]root@solaris:~# clresource create -g has-rg -t SUNW.hasam \
    -x QFSName=sam1 -x CatalogFileSystem=/global/hasam_cfg has-sam
    [sam1mds-node1]root@solaris:~# 
    
  4. 接下来,定义 HA-SAM 解决方案的群集资源依赖性

定义 HA-SAM 解决方案的群集资源依赖性

  1. root 用户身份登录到 HA-SAM 群集的主群集节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 除非高可用性本地文件系统可用,否则 QFS 文件系统不应启动。因此使 SUNW.qfs 资源依赖于 SUNW.HAStoragePlus 资源。使用 Solaris Cluster 命令 clresource set -p Resource_dependencies=dependency resource-name,其中:

    • dependencySUNW.HAStoragePlus 资源的名称。

    • resource-nameSUNW.qfs 资源的名称。

    在本示例中,我们使 SUNW.qfs 资源依赖于 SUNW.HAStoragePlus 资源 has-cfg(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# clresource set \
    -p Resource_dependencies=has-cfg has-qfs
    [sam1mds-node1]root@solaris:~# 
    
  3. 除非 QFS 活动元数据服务器联机,否则群集不应使虚拟主机名可用。因此使虚拟主机名依赖于 SUNW.qfs 资源。使用 Solaris Cluster 命令 clresource set -p Resource_dependencies=virtualMDS resource-name,其中:

    • virtualMDS 是表示活动 Oracle HSM 元数据服务器的虚拟主机名。

    • resource-nameSUNW.qfs 资源的名称。

    在本示例中,在我们设置 SUNW.qfs 资源时创建的虚拟主机名是 sam1mds。该资源本身名为 has-qfs(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [sam1mds-node1]root@solaris:~# clresource set \
    -p Resource_dependencies=sam1mds has-qfs
    [sam1mds-node1]root@solaris:~# 
    
  4. 接下来,使 HA-SAM 资源组联机并测试配置

使 HA-SAM 资源组联机并测试配置

  1. root 用户身份登录到 HA-SAM 群集的主群集节点。

    在示例中,主节点是 sam1mds-node1

    [sam1mds-node1]root@solaris:~# 
    
  2. 使资源组联机。使用 Solaris Cluster 命令 clresourcegroup manage groupname, and clresourcegroup online -emM groupname,其中 groupname 是 HA-SAM 资源组的名称。

    在示例中,我们将 has-rg 资源组联机:

    [sam1mds-node1]root@solaris:~# clresourcegroup manage has-rg
    [sam1mds-node1]root@solaris:~# clresourcegroup online -emM has-rg
    [sam1mds-node1]root@solaris:~# 
    
  3. 确保 HA-SAM 资源组处于联机状态。使用 Solaris Cluster clresourcegroup status 命令。

    在示例中,has-rg 资源组在主节点 sam1mds-node1 上处于 online 状态:

    [sam1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    has-rg      sam1mds-node1   No          Online
                sam1mds-node2   No          Offline
    [sam1mds-node1]root@solaris:~# 
    
  4. 接下来,确保资源组正确故障转移。将资源组移到辅助节点。使用 Solaris Cluster 命令 clresourcegroup switch -n node2 groupname,其中 node2 是辅助节点的名称,groupname 是您为 HA-SAM 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 has-rg 资源组移动到 sam1mds-node2 并确认资源组在指定节点上处于联机状态:

    [sam1mds-node1]root@solaris:~# clresourcegroup switch -n sam1mds-node2 has-rg
    [sam1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    has-rg      sam1mds-node1   No          Offline
                sam1mds-node2   No          Online
    [sam1mds-node1]root@solaris:~# 
    
  5. 将资源组移回到主节点。使用 Solaris Cluster 命令 clresourcegroup switch -n node1 groupname,其中 node1 是主节点的名称,groupname 是您为 HA-SAM 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 has-rg 资源组成功移回到 sam1mds-node1

    [sam1mds-node1]root@solaris:~# clresourcegroup switch -n sam1mds-node1 has-rg
    [sam1mds-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    has-rg      sam1mds-node1   No          Online
                sam1mds-node2   No          Offline
    [sam1mds-node1]root@solaris:~# 
    
  6. 如果需要,立即配置高可用性网络文件系统 (High-Availability Network File System, HA-NFS) 共享。

    Oracle Solaris Cluster 联机文档库包含的《Oracle Solaris Cluster Data Service for Network File System (NFS) Guide》中提供了设置 HA-NFS 的详细步骤。

  7. 如果计划使用边带数据库功能,请转至配置报告数据库

  8. 否则,请转至配置通知和日志记录

高可用性 QFS 共享文件系统和 Oracle RAC

在 Solaris Cluster-Oracle Real Application Cluster (SC-RAC) 配置中,Solaris Cluster 软件将 QFS 共享文件系统作为同时还托管 Oracle 数据库和 Oracle Real Application Cluster (RAC) 软件的节点上挂载的 SUNW.qfs 资源进行管理。所有节点都配置为 QFS 服务器,其中一个为活动元数据服务器,其他的则为潜在元数据服务器。如果活动元数据服务器节点发生故障,则 Solaris Cluster 软件将自动激活运行正常的节点上的潜在元数据服务器并启动故障转移。通过 Oracle RAC 协调 I/O,QFS 文件系统是共享文件系统并且已挂载到所有节点上。因此仍可无中断地访问数据。

在 SC-RAC 配置中,RAC 软件协调 I/O 请求、分配工作负荷,并且为群集节点上运行的多个 Oracle 数据库实例维护一组一致的数据库文件。由于文件系统完整性在 RAC 下得到保证,因此 QFS 潜在元数据服务器可以作为共享文件系统的客户机执行 I/O。有关更多信息,请参见 Oracle Solaris Cluster 联机文档库中适用于 Oracle Real Application Clusters 的 Oracle Solaris Cluster 数据服务文档。

要配置 SC-RAC 文件系统,请执行以下任务:

在所有 SC-RAC 群集节点上创建 QFS 共享文件系统 Hosts 文件

在 QFS 共享文件系统中,您必须在元数据服务器上配置 hosts 文件,以便所有主机都能访问文件系统的元数据。hosts 文件与 mcf 文件一起存储在 /etc/opt/SUNWsamfs/ 目录中。在共享文件系统的初始创建过程中,sammkfs -S 命令使用该文件中存储的设置配置共享。因此,现在请使用下面的过程创建该文件。

  1. root 用户身份登录到 SC-RAC 群集的主群集节点。

    在示例中,主节点是 qfs1rac-node1

    [qfs1rac-node1]root@solaris:~# 
    
  2. 显示群集配置。使用 /usr/global/bin/cluster show 命令。在输出中,找到每个 Node Name 的记录,然后记下 privatehostnameTransport Adapter 名称,以及每个网络适配器的 ip_address 属性。

    在示例中,每个节点都有两个网络接口,qfe3hme0

    • hme0 适配器具有群集用于节点间内部通信的专用网络的 IP 地址。Solaris Cluster 软件会分配与每个专用地址相对应的 privatehostname

      默认情况下,主节点和辅助节点的专用主机名分别为 clusternode1-privclusternode2-priv

    • qfe3 适配器具有公共 IP 地址和公共主机名(即 qfs1rac-node1qfs1rac-node2),群集使用它们来进行数据传输。

    请注意,使用省略号 (...) 标记简化了显示内容:

    [qfs1rac-node1]root@solaris:~# cluster show
    ...
      === Cluster Nodes ===                        
      Node Name:                                    qfs1rac-node1...
        privatehostname:                               clusternode1-priv...
        Transport Adapter List:                        qfe3, hme0...
        Transport Adapter:                          qfe3...
          Adapter Property(ip_address):                172.16.0.12...
        Transport Adapter:                          hme0...
          Adapter Property(ip_address):                10.0.0.129...
      Node Name:                                    qfs1rac-node2...
        privatehostname:                               clusternode2-priv...
        Transport Adapter List:                        qfe3, hme0...
          Adapter Property(ip_address):                172.16.0.13...
        Transport Adapter:                          hme0
          Adapter Property(ip_address):                10.0.0.122...
      Node Name:                                    qfs1rac-node3...
        privatehostname:                               clusternod3-priv...
        Transport Adapter List:                        qfe3, hme0...
          Adapter Property(ip_address):                172.16.0.33...
        Transport Adapter:                          hme0
          Adapter Property(ip_address):                10.0.0.092
    
  3. 使用文本编辑器,创建文件 /etc/opt/SUNWsamfs/hosts.family-set-name,其中 family-set-name/etc/opt/SUNWsamfs/mcf 文件分配给文件系统设备的系列集名称。

    在示例中,使用 vi 文本编辑器创建文件 hosts.qfs1rac。我们添加一些可选标题以显示主机表中的列,每行以井号 (#) 开头表示该行为注释:

    [qfs1rac-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/hosts.qfs1rac
    # /etc/opt/SUNWsamfs/hosts.qfs1rac
    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    
  4. 在表的第一列中,输入主元数据服务器节点和辅助元数据服务器节点的主机名,后跟一些空格。将每个条目放在单独一行上。

    在 hosts 文件中,行即为行(记录),空格为列(字段)分隔符。在本示例中,Host Name 列的前两行列出了群集节点 qfs1rac-node1qfs1rac-node2qfs1rac-node3 的主机名。

    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    qfs1rac-node1  
    qfs1rac-node2  
    qfs1rac-node3  
    
  5. 在每行的第二列,开始提供主机 Host NameNetwork Interface 信息。输入各个 SC-RAC 群集节点的 Solaris Cluster 专用主机名或专用网络地址,后跟一个逗号。

    SC-RAC 服务器节点使用专用主机名在高可用性群集内进行服务器间的通信。在示例中,使用专用主机名 clusternode1-privclusternode2-privclusternode3-priv,这些是 Solaris Cluster 软件分配的默认名称:

    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    qfs1rac-node1  clusternode1-priv,  
    qfs1rac-node2  clusternode2-priv,  
    qfs1rac-node3  clusternode3-priv,  
    
  6. 在每行第二列中的逗号后面,输入活动元数据服务器的公共主机名,后跟空格。

    SC-RAC 服务器节点使用公共数据网络与客户机通信,所有这些客户机都位于在群集之外。由于活动元数据服务器的 IP 地址和主机名会在故障转移期间发生更改(例如,从 qfs1rac-node1 更改为 qfs1rac-node2),因此我们使用虚拟主机名 qfs1rac-mds 表示活动服务器。稍后,我们将配置 Solaris Cluster 软件,以便始终将 qfs1rac-mds 的请求路由到当前托管活动元数据服务器的节点:

    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    qfs1rac-node1  clusternode1-priv,qfs1rac-mds   
    qfs1rac-node2  clusternode2-priv,qfs1rac-mds   
    qfs1rac-node3  clusternode3-priv,qfs1rac-mds   
    
  7. 在每行的第三列中,输入服务器的序号(1 表示活动元数据服务器,2 表示潜在元数据服务器),后跟空格。

    在示例中,主节点 qfs1rac-node1 是活动元数据服务器。因此其序号为 1。第二个节点 qfs1rac-node2 的序号为 2,依此类推:

    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    qfs1rac-node1  clusternode1-priv,qfs1rac-mds     1
    qfs1rac-node2  clusternode2-priv,qfs1rac-mds     2
    qfs1rac-node3  clusternode3-priv,qfs1rac-mds     3
    
  8. 在每行的第四列中,输入 0(零),后跟空格。

    第四列中的值为 0-(连字符)或空表示该主机处于 on 状态-配置为对共享文件系统有访问权限。1(数字一)表示该主机处于 off 状态-配置为对文件系统没有访问权限(有关在管理共享文件系统时使用这些值的信息,请参见 samsharefs 手册页)。

    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    qfs1rac-node1  clusternode1-priv,qfs1rac-mds     1        0
    qfs1rac-node2  clusternode2-priv,qfs1rac-mds     2        0
    qfs1rac-node3  clusternode3-priv,qfs1rac-mds     3        0
    
  9. 在主节点行的第五列中,输入关键字 server。保存文件并关闭编辑器。

    server 关键字用于标识默认的活动元数据服务器:

    #                                                Server   On/  Additional
    #Host Name     Network Interface                 Ordinal  Off  Parameters
    #------------  --------------------------------  -------  ---  ----------
    qfs1rac-node1  clusternode1-priv,qfs1rac-mds     1        0    server
    qfs1rac-node2  clusternode2-priv,qfs1rac-mds     2        0  
    qfs1rac-node3  clusternode3-priv,qfs1rac-mds     2        0  
    :wq
    [qfs1rac-node1]root@solaris:~# 
    
  10. 将全局 /etc/opt/SUNWsamfs/hosts.family-set-name 文件的副本放置在 SC-RAC 群集的每个节点上。

  11. 现在,在主 SC-RAC 群集节点上配置活动 QFS 元数据服务器

在主 SC-RAC 群集节点上配置活动 QFS 元数据服务器

  1. 选择将同时充当 SC-RAC 群集的主节点和 QFS 共享文件系统的活动元数据服务器的群集节点。以 root 用户身份登录。

    在示例中,主节点是 qfs1rac-node1

    [qfs1rac-node1]root@solaris:~# 
    
  2. 选择要用于 QFS 文件系统的全局存储设备。使用命令 /usr/global/bin/cldevice list -v

    Solaris Cluster 软件向连接到群集节点的所有设备分配唯一的设备标识符 (Device Identifier, DID)。全局设备可以从群集中的所有节点进行访问,而本地设备仅可以从挂载它们的主机进行访问。全局设备在故障转移后仍然可以访问。本地设备则不然。

    在示例中,请注意 d1d2d6d7d8 设备从所有节点都无法访问。所以在配置高可用性 QFS 共享文件系统时,我们从 d3d4d5 设备中进行选择:

    [qfs1rac-node1]root@solaris:~# cldevice list -v
    DID Device          Full Device Path
    ----------          ----------------
    d1                  qfs1rac-node1:/dev/rdsk/c0t0d0
    d2                  qfs1rac-node1:/dev/rdsk/c0t6d0
    d3                  qfs1rac-node1:/dev/rdsk/c1t1d0
    d3                  qfs1rac-node2:/dev/rdsk/c1t1d0
    d3                  qfs1rac-node3:/dev/rdsk/c1t1d0
    d4                  qfs1rac-node1:/dev/rdsk/c1t2d0
    d4                  qfs1rac-node2:/dev/rdsk/c1t2d0
    d4                  qfs1rac-node3:/dev/rdsk/c1t2d0
    d5                  qfs1rac-node1:/dev/rdsk/c1t3d0
    d5                  qfs1rac-node2:/dev/rdsk/c1t3d0
    d5                  qfs1rac-node3:/dev/rdsk/c1t3d0
    d6                  qfs1rac-node2:/dev/rdsk/c0t0d0
    d7                  qfs1rac-node2:/dev/rdsk/c0t1d0
    d8                  qfs1rac-node3:/dev/rdsk/c0t1d0
    
  3. 创建使用 mr 数据设备的共享高性能 ma 文件系统。在文本编辑器中,打开 /etc/opt/SUNWsamfs/mcf 文件。

    在示例中,我们配置文件系统 qfs1rac。我们将设备 d3 配置为元数据设备(设备类型 mm),并将 d4d5 用作数据设备(设备类型 mr):

    [qfs1rac-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   --------------
    qfs1rac               100        ma         qfs1rac  -        
     /dev/did/dsk/d3s0     101        mm         qfs1rac  -
     /dev/did/dsk/d4s0     102        mr         qfs1rac  -
     /dev/did/dsk/d5s0     103        mr         qfs1rac  -
    ...
    
  4. /etc/opt/SUNWsamfs/mcf 文件的文件系统条目的 Additional Parameters 列中输入 shared 参数。保存文件。

    [qfs1rac-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # Equipment           Equipment  Equipment  Family   Device   Additional
    # Identifier          Ordinal    Type       Set      State    Parameters
    #------------------   ---------  ---------  -------  ------   --------------
    qfs1rac               100        ma         qfs1rac  -        shared
     /dev/did/dsk/d3s0     101        mm         qfs1rac  -
     /dev/did/dsk/d4s0     102        mr         qfs1rac  -
     /dev/did/dsk/d5s0     103        mr         qfs1rac  -
    ...
    :wq
    [qfs1rac-node1]root@solaris:~# 
    
  5. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 qfs1rac-node1 上的 mcf 文件:

    [qfs1rac-node1]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [qfs1rac-node1]root@solaris:~# 
    
  6. 创建文件系统。使用命令 /opt/SUNWsamfs/sbin/sammkfs -S family-set-name,其中 family-set-name 是文件系统的设备标识符。

    sammkfs 命令读取 hosts.family-set-namemcf 文件,并创建具有指定属性的共享文件系统。

    [qfs1rac-node1]root@solaris:~# sammkfs -S qfs1rac
    Building 'qfs1rac' will destroy the contents of devices:
      ...
    Do you wish to continue? [y/N]yes ...
    [qfs1rac-node1]root@solaris:~# 
    
  7. 在文本编辑器中打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。在第一列中输入文件系统名称,然后输入几个空格,在第二列中输入一个连字符,然后输入更多的空格。

    在示例中,使用 vi 文本编辑器。我们为 qfs1rac 文件系统添加了一行。连字符阻止操作系统尝试使用 UFS 工具检查文件系统的完整性:

    [qfs1rac-node1]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount            System  fsck  Mount    Mount
    #to Mount  to fsck  Point            Type    Pass  at Boot  Options
    #--------  -------  ---------------  ------  ----  -------  ------------------
    /devices   -        /devices         devfs   -     no       -
    /proc      -        /proc            proc    -     no       -
    ...
    qfs1rac    -        
    
  8. /etc/vfstab 文件的第三列中,输入相对于群集的文件系统挂载点。指定未直接位于系统根目录下的子目录。

    将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。在示例中,qfs1rac 文件系统的挂载点为 /global/sc-rac/qfs1rac

    #File
    #Device    Device   Mount                    System  fsck  Mount    Mount
    #to Mount  to fsck  Point                    Type    Pass  at Boot  Options
    #--------  -------  -----------------------  ------  ----  -------  ----------
    /devices   -        /devices                 devfs   -     no       -
    /proc      -        /proc                    proc    -     no       -
    ...
    qfs1rac    -        /global/sc-rac/qfs1rac 
     
    
  9. 在第四列中输入文件系统类型 samfs,在第五列中输入 -连字符),在第六列中输入 no

    #File
    #Device    Device   Mount                    System  fsck  Mount    Mount
    #to Mount  to fsck  Point                    Type    Pass  at Boot  Options
    #--------  -------  -----------------------  ------  ----  -------  ----------
    /devices   -        /devices                 devfs   -     no       -
    /proc      -        /proc                    proc    -     no       -
    ...
    qfs1rac    -        /global/sc-rac/qfs1rac   samfs   -     no
    :wq
    [qfs1rac-node1]root@solaris:~# 
    
  10. /etc/vfstab 文件的第七列中,输入下面列出的挂载选项。然后保存文件并关闭编辑器。

    建议对 SC-RAC 群集配置使用以下挂载选项。它们可以在 /etc/vfstab 中指定,如果更方便,也可以在文件 /etc/opt/SUNWsamfs/samfs.cmd 中指定:

    • shared

    • stripe=1

    • sync_meta=1

    • mh_write

    • qwrite

    • forcedirectio

    • notrace

    • rdlease=300

    • wrlease=300

    • aplease=300

    在示例中,简化了此列表以适应页面布局:

    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- --------------------   ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs1rac   -       /global/sc-rac/qfs1rac samfs  -    no      shared,...=300
    :wq
    [qfs1rac-node1]root@solaris:~# 
    
  11. 创建高可用性共享文件系统的挂载点。

    [qfs1rac-node1]root@solaris:~# mkdir -p /global/sc-rac/qfs1rac
    [qfs1rac-node1]root@solaris:~# 
    
  12. 在主节点上挂载高可用性共享文件系统。

    [qfs1rac-node1]root@solaris:~# mount /global/sc-rac/qfs1rac
    [qfs1rac-node1]root@solaris:~# 
    
  13. 接下来,在其余的 SC-RAC 群集节点上配置潜在 QFS 元数据服务器

在其余的 SC-RAC 群集节点上配置潜在 QFS 元数据服务器

群集的其余节点充当潜在元数据服务器。潜在元数据服务器是可以访问元数据设备的主机,可以承担元数据服务器的职责。因此,如果主节点上的活动元数据服务器发生故障,则 Solaris Cluster 软件可以故障转移到辅助节点并激活潜在元数据服务器。

对于 SC-RAC 群集中其余的每个节点,请执行如下操作:

  1. root 用户身份登录节点。

    在示例中,当前节点是 qfs1rac-node2

    [qfs1rac-node2]root@solaris:~# 
    
  2. /etc/opt/SUNWsamfs/mcf 文件从主节点复制到当前节点中。

  3. 检查 mcf 文件中是否存在错误。运行命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 qfs1rac-node2 上的 mcf 文件:

    [qfs1rac-node2]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [qfs1rac-node2]root@solaris:~# 
    
  4. 在文本编辑器中打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。

    在示例中,使用 vi 编辑器:

    [qfs1rac-node2]root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount                  System  fsck  Mount    Mount
    #to Mount  to fsck  Point                  Type    Pass  at Boot  Options
    #--------  -------  ---------------------- ------  ----  -------  ------------
    /devices   -        /devices               devfs   -     no       -
    /proc      -        /proc                  proc    -     no       -
    ...
    qfs1rac    -        /global/sc-rac/qfs1rac samfs   -     no
    
  5. /etc/vfstab 文件的第七列中,输入下面列出的挂载选项。然后保存文件并关闭编辑器。

    建议对 SC-RAC 群集配置使用以下挂载选项。它们可以在 /etc/vfstab 中指定,如果更方便,也可以在文件 /etc/opt/SUNWsamfs/samfs.cmd 中指定:

    • shared

    • stripe=1

    • sync_meta=1

    • mh_write

    • qwrite

    • forcedirectio

    • notrace

    • rdlease=300

    • wrlease=300

    • aplease=300

    在示例中,简化了此列表以适应页面布局:

    #File
    #Device   Device  Mount                  System  fsck  Mount   Mount
    #to Mount to fsck Point                  Type    Pass  at Boot Options
    #-------- ------- ---------------------- ------  ----  ------- ------------
    /devices  -       /devices               devfs   -     no      -
    /proc     -       /proc                  proc    -     no      -
    ...
    qfs1rac   -       /global/sc-rac/qfs1rac samfs   -     no      shared,...=300
    :wq
    [qfs1rac-node2]root@solaris:~# 
    
  6. 在辅助节点上创建高可用性共享文件系统的挂载点。

    [qfs1rac-node2]root@solaris:~# mkdir -p /global/sc-rac/qfs1rac
    [qfs1rac-node2]root@solaris:~# 
    
  7. 在辅助节点上挂载高可用性共享文件系统。

    [qfs1rac-node2]root@solaris:~# mount /global/sc-rac/qfs1rac
    [qfs1rac-node2]root@solaris:~# 
    
  8. 现在,配置 SC-RAC 元数据服务器的故障转移

配置 SC-RAC 元数据服务器的故障转移

当您在 Solaris Cluster 软件管理的群集中托管 Oracle HSM 共享文件系统时,可以通过创建 SUNW.qfs 群集资源来配置元数据服务器的故障转移,该群集资源为 Oracle HSM 软件定义的一种资源类型(有关详细信息,请参见 SUNW.qfs 手册页)。要创建并配置 SC-RAC 配置的资源,请执行如下操作:

  1. root 用户身份登录到 SC-RAC 群集的主节点。

    在示例中,主节点是 qfs1rac-node1

    [qfs1rac-node1]root@solaris:~# 
    
  2. 为 Solaris Cluster 软件定义 QFS 资源类型 SUNW.qfs。使用命令 clresourcetype registerSUNW.qfs

    [qfs1rac-node1]root@solaris:~# clresourcetype registerSUNW.qfs
    [qfs1rac-node1]root@solaris:~# 
    
  3. 如果注册因找不到注册文件而失败,则将 /opt/SUNWsamfs/sc/etc/ 目录的符号链接放置到 Solaris Cluster 存放资源类型注册文件的 /opt/cluster/lib/rgm/rtreg/ 目录中。

    您在安装 Oracle HSM 软件之前未安装 Oracle Solaris Cluster 软件。通常,Oracle HSM 会在安装期间检测到 Solaris Cluster 时自动提供 SUNW.qfs 注册文件的位置。因此您需要手动创建一个链接。

    [qfs1rac-node1]root@solaris:~# cd /opt/cluster/lib/rgm/rtreg/
    [qfs1rac-node1]root@solaris:~# ln -s /opt/SUNWsamfs/sc/etc/SUNW.qfs SUNW.qfs
    [qfs1rac-node1]root@solaris:~# 
    
  4. 创建 QFS 元数据服务器的资源组。使用 Solaris Cluster 命令 clresourcegroup create -n node-list group-name,其中 node-list 是逗号分隔的群集节点列表,group-name 是我们想要用于资源组的名称。

    在示例中,使用 SC-RAC 服务器节点作为成员创建资源组 qfsracrg(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1rac-node1]root@solaris:~# clresourcegroup create \
    -n qfs1rac-node1,qfs1rac-node2 qfsracrg
    [qfs1rac-node1]root@solaris:~# 
    
  5. 在新的资源组中,设置活动元数据服务器的虚拟主机名。使用 Solaris Cluster 命令 clreslogicalhostname create -g group-name,其中 group-name 是 QFS 资源组的名称,virtualMDS 是虚拟主机名。

    使用您在 hosts 文件中用于共享文件系统的相同虚拟主机名。在本示例中,我们在 qfsracrg 资源组中创建虚拟主机 qfs1rac-mds(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1rac-node1]root@solaris:~# clreslogicalhostname create \
    -g qfsracrg qfs1rac-mds
    [qfs1rac-node1]root@solaris:~# 
    
  6. 向资源组中添加 QFS 文件系统资源。使用命令 clresource create -g group-name -t SUNW.qfs -x QFSFileSystem=mount-point -y Resource_dependencies=virtualMDS resource-name,其中:

    • group-name 是 QFS 资源组的名称。

    • mount-point 是群集中文件系统的挂载点,即并非直接位于系统根目录下的子目录。

      将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。

    • virtualMDS 是活动元数据服务器的虚拟主机名。

    • resource-name 是您想要赋予资源的名称。

    在示例中,我们在 qfsracrg 资源组中创建名为 scracSUNW.qfs 类型的资源。我们将 SUNW.qfs 扩展属性 QFSFileSystem 设置为 /global/sc-rac/qfs1rac 挂载点。我们将标准属性 Resource_dependencies 设置为活动元数据服务器 qfs1rac-mds 的虚拟主机(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs1rac-node1]root@solaris:~# create -g qfsracrg -t SUNW.qfs \
    -x QFSFileSystem=/global/sc-rac/qfs1rac \
    -y Resource_dependencies=qfs1rac-mds scrac 
    [qfs1rac-node1]root@solaris:~# 
    
  7. 使资源组联机。使用 Solaris Cluster 命令 clresourcegroup manage group-name and clresourcegroup online -emM group-name,其中 group-name 是 QFS 资源组的名称。

    在示例中,我们将 qfsracrg 资源组联机:

    [qfs1rac-node1]root@solaris:~# clresourcegroup manage qfsracrg
    [qfs1rac-node1]root@solaris:~# clresourcegroup online -emM qfsracrg
    [qfs1rac-node1]root@solaris:~# 
    
  8. 确保 QFS 资源组处于联机状态。使用 Solaris Cluster 命令clresourcegroup status

    在示例中,qfsracrg 资源组在主节点 qfs1rac-node1 上处于 online 状态:

    [qfs1rac-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsracrg    qfs1rac-node1   No          Online
                qfs1rac-node2   No          Offline
                qfs1rac-node3   No          Offline
    [qfs1rac-node1]root@solaris:~# 
    
  9. 确保资源组正确故障转移。将资源组移到辅助节点。使用 Solaris Cluster 命令 clresourcegroup switch -n node2 group-name,其中 node2 是辅助节点的名称,group-name 是您为 HA-SAM 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 qfsracrg 资源组移到 qfs1rac-node2qfs1rac-node3,并确认资源组在指定的节点上处于联机状态:

    [qfs1rac-node1]root@solaris:~# clresourcegroup switch -n qfs1rac-node2 qfsracrg
    [qfs1rac-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsracrg    qfs1rac-node1   No          Offline
                qfs1rac-node2   No          Online
                qfs1rac-node3   No          Offline
    [qfs1rac-node1]root@solaris:~# clresourcegroup switch -n qfs1rac-node3 qfsracrg
    [qfs1rac-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    qfsracrg    qfs1rac-node1   No          Offline
                qfs1rac-node2   No          Offline
                qfs1rac-node3   No          Online
    [qfs1rac-node1]root@solaris:~# 
    
  10. 将资源组移回到主节点。使用 Solaris Cluster 命令 clresourcegroup switch -n node1 group-name,其中 node1 是主节点的名称,group-name 是您为 HA-SAM 资源组选择的名称。然后,使用 clresourcegroup status 检查结果。

    在示例中,我们将 qfsracrg 资源组成功移回到 qfs1rac-node1

    [qfs1rac-node1]root@solaris:~# clresourcegroup switch -n qfs1rac-node1 qfsracrg
    [qfs1rac-node1]root@solaris:~# clresourcegroup status
    === Cluster Resource Groups ===
    Group Name  Node Name       Suspended   Status
    ----------  -------------   ---------   ------
    samr        qfs1rac-node1   No          Online
                qfs1rac-node2   No          Offline
                qfs1rac-node3   No          Offline
    [qfs1rac-node1]root@solaris:~# 
    
  11. 如果计划使用边带数据库功能,请转至配置报告数据库

  12. 否则,请转至配置通知和日志记录

使用软件 RAID 存储在 SC-RAC 节点上配置 QFS 元数据服务器

高可用性文件系统必须在冗余主存储设备上存储数据和元数据。冗余磁盘阵列硬件可以通过将 RAID-1 或 RAID-10 用于存储元数据以及将 RAID-5 用于存储数据来提供此冗余。但是,如果您需要将普通的双端口 SCSI 磁盘设备或 JBOD(just a bunch of disk,简单磁盘捆绑)阵列用作主存储,则需要在软件中提供所需的冗余。

出于此原因,SC-RAC 配置支持基于 Oracle Solaris Volume Manager (SVM) 多属主磁盘集的软件 RAID 配置。此部分介绍设置 SC-RAC 文件系统配置的此变体时需要执行的基本步骤。

请注意,您应该将 Solaris Volume Manager 仅用于管理冗余存储阵列。请勿串联不同设备上的存储。这么做会导致将 I/O 低效分发到组件设备并使 QFS 文件系统性能降级。

执行以下任务:

在 Solaris 11+ 上安装 Solaris Volume Manager

从 Solaris 11 开始,Solaris Volume Manager (SVM) 不再包含在 Solaris 中。但 Solaris Cluster 4 软件继续支持 Solaris Volume Manager。因此要使用该软件,您必须下载并安装 Solaris 10 9/10 发行版随附的版本。对于群集中的每个节点,请执行如下操作:

  1. root 用户身份登录节点。

    在下面的示例中,我们使用 Solaris 映像包管理系统 (Image Packaging System, IPS) 配置群集节点 qfs2rac-node1

    [qfs2rac-node1]root@solaris:~# 
    
  2. 检查本地可用的 Solaris Volume Manager (SVM) 软件包。使用命令 pkg info svm

    [qfs2rac-node1]root@solaris:~# pkg info svm
    pkg: info: no packages matching the following patterns you specified are
    installed on the system.  Try specifying -r to query remotely:
            svm
    [qfs2rac-node1]root@solaris:~# 
    
  3. 如果本地找不到软件包,则检查 Solaris 映像包管理系统 (Image Packaging System, IPS) 系统信息库。使用命令 pkg -r svm

    [qfs2rac-node1]root@solaris:~# pkg -r svm
              Name: storage/svm
           Summary: Solaris Volume Manager
       Description: Solaris Volume Manager commands
          Category: System/Core
             State: Not installed
         Publisher: solaris
           Version: 0.5.11
     Build Release: 5.11
            Branch: 0.175.0.0.0.2.1
    Packaging Date: October 19, 2011 06:42:14 AM 
              Size: 3.48 MB
              FMRI: pkg://solaris/storage/svm@0.5.11,5.11-0.175.0.0.0.2.1:20111019T064214Z
    [qfs2rac-node1]root@solaris:~# 
    
  4. 安装软件包。使用命令 pkg install storage/svm

    [qfs2rac-node1]root@solaris:~# pkg install storage/svm
               Packages to install:   1
           Create boot environment:  No
    Create backup boot environment: Yes
                Services to change:   1
    DOWNLOAD      PKGS       FILES    XFER (MB)
    Completed      1/1     104/104      1.6/1.6
    PHASE            ACTIONS
    Install Phase    168/168 
    PHASEITEMS
    Package State Update Phase         1/1 
    Image State Update Phase           2/2 
    [qfs2rac-node1]root@solaris:~# 
    
  5. 当安装完成后,检查 metadb 的位置。使用命令 which metadb

    [qfs2rac-node1]root@solaris:~# which metadb
    /usr/sbin/metadb
    [qfs2rac-node1]root@solaris:~# 
    
  6. 检查安装。使用命令 metadb

    [qfs2rac-node1]root@solaris:~# metadb
    [qfs2rac-node1]root@solaris:~# 
    
  7. 如果 metadb 返回错误,则查看 kernel/drv/md.conf 文件是否存在。

    [qfs2rac-node1]root@solaris:~# metadb
    metadb: <HOST>: /dev/md/admin: No such file or directory
    [qfs2rac-node1]root@solaris:~# ls -l /kernel/drv/md.conf 
    -rw-r--r--   1 root     sys          295 Apr 26 15:07 /kernel/drv/md.conf
    [qfs2rac-node1]root@solaris:~# 
    
  8. 如果 kernel/drv/md.conf 文件不存在,则创建该文件。使 root 用户成为该文件的所有者,并使 sys 成为组所有者。将权限设置为 644

    在示例中,用 vi 编辑器创建文件。文件的内容应该如下所示:

    [qfs2rac-node1]root@solaris:~# vi kernel/drv/md.conf
    ###################################################
    #pragma ident   "@(#)md.conf    2.1   00/07/07 SMI"
    #
    # Copyright (c) 1992-1999 by Sun Microsystems, Inc.
    # All rights reserved.
    #
    name="md" parent="pseudo" nmd=128 md_nsets=4;
    ####################################################
    :wq
    [qfs2rac-node1]root@solaris:~# chown root:sys kernel/drv/md.conf
    [qfs2rac-node1]root@solaris:~# chmod 644
    [qfs2rac-node1]root@solaris:~# 
    
  9. 动态重新扫描 md.conf 文件并确保设备树得到更新。使用命令 update_drv -f md

    在示例中,设备树得到更新。因此 Solaris Volume Manager 已安装:

    [qfs2rac-node1]root@solaris:~# update_drv -f md
    [qfs2rac-node1]root@solaris:~# ls -l  /dev/md/admin
    lrwxrwxrwx   1 root root 31 Apr 20 10:12 /dev/md/admin -> ../../devices/pseudo/md@0:admin 
    [qfs2rac-node1]root@solaris:~# 
    
  10. 接下来,创建 Solaris Volume Manager 多属主磁盘组

创建 Solaris Volume Manager 多属主磁盘组

  1. root 用户身份登录到 SC-RAC 配置中的所有节点。

    在示例中,登录到节点 qfs2rac-node1。然后我们打开新的终端窗口并使用 ssh 登录到节点 qfs2rac-node2qfs2rac-node3

    [qfs2rac-node1]root@solaris:~# 
    
    [qfs2rac-node1]root@solaris:~# ssh root@qfs2rac-node2
    Password:
    [qfs2rac-node2]root@solaris:~# 
    
    [qfs2rac-node1]root@solaris:~# ssh root@qfs2rac-node3
    Password:
    [qfs2rac-node3]root@solaris:~# 
    
  2. 如果您要在 Solaris 11.x 或更高版本上使用 Oracle Solaris Cluster 4.x(如果尚未执行),则在继续之前,先在每个节点上安装 Solaris Volume Manager

    从 Solaris 11 开始,默认不安装 Solaris Volume Manager。

  3. 在每个节点上,连接新的状态数据库设备并创建三个状态数据库副本。使用命令 metadb -a -f -c3 device-name,其中 device-namecXtYdYsZ 形式的物理设备名称。

    请勿使用 Solaris Cluster 设备标识符 (Device Identifier, DID)。使用物理设备名称。在示例中,我们在全部三个群集节点上创建状态数据库设备。

    [qfs2rac-node1]root@solaris:~# metadb -a -f -c3 /dev/rdsk/c0t0d0
    
    [qfs2rac-node2]root@solaris:~# metadb -a -f -c3 /dev/rdsk/c0t6d0
    
    [qfs2rac-node3]root@solaris:~# metadb -a -f -c3 /dev/rdsk/c0t4d0
    
  4. 在一个节点上创建 Solaris Volume Manager 多属主磁盘组。使用命令 metaset -sdiskset -M -a -h host-list,其中 host-list 是空格分隔的属主列表。

    Solaris Volume Manager 最多支持每个磁盘集四个主机。在本示例中,我们在 qfs2rac-node1 上创建磁盘组 datadisks 并指定三个节点 qfs2rac-node1qfs2rac-node2qfs2rac-node3 作为属主(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs2rac-node1]root@solaris:~# metaset -s datadisks -M -a -h qfs2rac-node1 \
    qfs2rac-node2 qfs2rac-node3
    
  5. 列出其中一个节点上的设备。使用 Solaris Cluster 命令 cldevice list -n -v

    [qfs2rac-node1]root@solaris:~# cldevice list -n -v
    DID Device  Full Device Path
    ----------  ----------------
    d13         qfs2rac-node1:/dev/rdsk/c6t600C0FF00000000000332B62CF3A6B00d0
    d14         qfs2rac-node1:/dev/rdsk/c6t600C0FF0000000000876E950F1FD9600d0
    d15         qfs2rac-node1:/dev/rdsk/c6t600C0FF0000000000876E9124FAF9C00d0
    ...
    [qfs2rac-node1]root@solaris:~# 
    
  6. cldevice list -n -v 命令的输出中,选择要镜像的设备。

    在示例中,我们针对四个镜像选择四对设备:d21 和 d13d14 和 d17d23 和 d16,以及 d15 和 d19

    [qfs2rac-node1]root@solaris:~# cldevice list -n -v
    DID Device  Full Device Path
    ----------  ----------------
    d13         qfs2rac-node1:/dev/rdsk/c6t600C0FF00000000000332B62CF3A6B00d0
    d14         qfs2rac-node1:/dev/rdsk/c6t600C0FF0000000000876E950F1FD9600d0
    d15         qfs2rac-node1:/dev/rdsk/c6t600C0FF0000000000876E9124FAF9C00d0
    d16         qfs2rac-node1:/dev/rdsk/c6t600C0FF00000000000332B28488B5700d0
    d17         qfs2rac-node1:/dev/rdsk/c6t600C0FF000000000086DB474EC5DE900d0
    d18         qfs2rac-node1:/dev/rdsk/c6t600C0FF0000000000876E975EDA6A000d0
    d19         qfs2rac-node1:/dev/rdsk/c6t600C0FF000000000086DB47E331ACF00d0
    d20         qfs2rac-node1:/dev/rdsk/c6t600C0FF0000000000876E9780ECA8100d0
    d21         qfs2rac-node1:/dev/rdsk/c6t600C0FF000000000004CAD5B68A7A100d0
    d22         qfs2rac-node1:/dev/rdsk/c6t600C0FF000000000086DB43CF85DA800d0
    d23         qfs2rac-node1:/dev/rdsk/c6t600C0FF000000000004CAD7CC3CDE500d0
    d24         qfs2rac-node1:/dev/rdsk/c6t600C0FF000000000086DB4259B272300d0
    ....
    [qfs2rac-node1]root@solaris:~# 
    
  7. 将选定的设备添加到相同节点的磁盘集中。使用命令 metaset -a devicelist,其中 devicelist 是空格分隔的一个或多个群集设备标识符的列表。

    在本示例中,我们将列出的磁盘添加到多属主磁盘集 dataset1 中(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [qfs2rac-node1]root@solaris:~# metaset -s dataset1 -M -a -h /dev/did/rdsk/d21 \ /dev/did/rdsk/d13 /dev/did/rdsk/d14 /dev/did/rdsk/d17 /dev/did/rdsk/d23 \
    /dev/did/rdsk/d16 /dev/did/rdsk/d15 /dev/did/rdsk/d19
    [qfs2rac-node1]root@solaris:~# 
    
  8. 接下来,创建 QFS 数据和元数据的镜像卷

创建 QFS 数据和元数据的镜像卷

  1. 为了使组件之间保持明确的关系,请为 RAID-0 逻辑卷和要创建的 RAID-1 镜像确定命名模式。

    一般而言,RAID-1 镜像命名为 dn,其中 n 是一个整数。构成 RAID-1 镜像的 RAID-0 卷命名为 dnX,其中 X 是代表镜像中设备位置的整数(对于双向镜像,通常为 01)。

    在本过程的示例中,我们基于 RAID-0 逻辑卷对创建双向 RAID-1 镜像。因此我们将镜像命名为 d1d2d3d4 等等,依此类推。然后我们命名构成 RAID-1 镜像的每对 RAID-0 卷:d10d11d20d21d30d31d40d41 等等。

  2. 登录到您创建多属主磁盘集的节点。以 root 用户身份登录。

    在上面的示例中,我们在 qfs2rac-node1 上创建了磁盘集:

    [qfs2rac-node1]root@solaris:~# 
    
  3. 创建第一个 RAID-0 逻辑卷。使用命令 metainit -s diskset-name device-name number-of-stripes components-per-stripe component-names,其中:

    • diskset-name 是您选择的磁盘集名称。

    • device-name 是您选择的 RAID-0 逻辑卷名称。

    • number-of-stripes1

    • components-per-stripe1

    • component-name 是要用于 RAID-0 卷的磁盘集组件的设备名称。

    在示例中,使用多属主磁盘集 dataset1 中的群集 (DID) 设备 /dev/did/dsk/d21s0 创建 RAID-0 逻辑卷 d10

    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d10 1 1 /dev/did/dsk/d21s0
    [qfs2rac-node1]root@solaris:~# 
    
  4. 创建其余的 RAID-0 逻辑卷。

    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d11 1 1 /dev/did/dsk/d13s0
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d20 1 1 /dev/did/dsk/d14s0
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d21 1 1 /dev/did/dsk/d17s0
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d30 1 1 /dev/did/dsk/d23s0
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d31 1 1 /dev/did/dsk/d16s0
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d40 1 1 /dev/did/dsk/d15s0
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d41 1 1 /dev/did/dsk/d19s0
    ...
    [qfs2rac-node1]root@solaris:~# 
    
  5. 创建第一个 RAID-1 镜像。使用命令 metainit -s diskset-name RAID-1-mirrorname -m RAID-0-volume0,其中:

    • diskset-name 是多属主磁盘集的名称。

    • RAID-1-mirrorname 是 RAID-1 镜像卷的名称。

    • RAID-0-volume0 是您添加到镜像的第一个 RAID-0 逻辑卷。

    在示例中,我们创建镜像 d1 并将第一个 RAID-0 卷 d10 添加到该镜像中:

    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d1 -m d10
    [qfs2rac-node1]root@solaris:~# 
    
  6. 将其余的 RAID-0 卷添加到第一个 RAID-1 镜像中。使用命令 metattach -s diskset-name RAID-1-mirrorname RAID-0-volume,其中:

    • diskset-name 是多属主磁盘集的名称

    • RAID-1-mirrorname 是 RAID-1 镜像卷的名称

    • RAID-0-volume 是您添加到镜像的 RAID-0 逻辑卷。

    在示例中,d1 是一个双向镜像,因此我们添加一个 RAID-0 卷 d11

    [qfs2rac-node1]root@solaris:~# metattach -s dataset1 d11 d1
    [qfs2rac-node1]root@solaris:~# 
    
  7. 创建其余的镜像。

    在示例中,我们创建镜像 d2d3d4 等等。

    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d2 -m d20
    [qfs2rac-node1]root@solaris:~# metattach -s dataset1 d21 d2
    [qfs2rac-node1]root@solaris:~# metainit -s dataset2 d3 -m d30
    [qfs2rac-node1]root@solaris:~# metattach -s dataset2 d31 d3
    [qfs2rac-node1]root@solaris:~# metainit -s dataset2 d4 -m d40
    [qfs2rac-node1]root@solaris:~# metattach -s dataset2 d41 d4
    ...
    [qfs2rac-node1]root@solaris:~# 
    
  8. 选择将存放 QFS 文件系统元数据的镜像。

    对于下面的示例,我们选择镜像 d1d2

  9. 在选定的镜像中,创建软分区来存放 QFS 元数据。对于每个镜像,使用命令 metainit -s diskset-name partition-name -p RAID-1-mirrorname size,其中:

    • diskset-name 是多属主磁盘集的名称。

    • partition-name 是新分区的名称。

    • RAID-1-mirrorname 是镜像的名称。

    • size 是分区的大小。

    在示例中,我们创建两个 500G 的分区:d53(位于镜像 d1 上)和 d63(位于镜像 d2 上):

    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d53 -p d1 500g
    [qfs2rac-node1]root@solaris:~# metainit -s dataset1 d63 -p d2 500g
    
  10. 接下来,使用镜像卷在 SC-RAC 群集上创建 QFS 共享文件系统

使用镜像卷在 SC-RAC 群集上创建 QFS 共享文件系统

  1. 如果您尚未在所有 SC-RAC 群集节点上创建 QFS 共享文件系统 Hosts 文件,请执行该过程。完成后,返回此处。

  2. 选择将同时充当 SC-RAC 群集的主节点和 QFS 共享文件系统的活动元数据服务器的群集节点。以 root 用户身份登录。

    在示例中,我们选择节点 qfs2rac-node1

    [qfs2rac-node1]root@solaris:~#  
    
  3. 在主节点上,创建共享高性能 ma 文件系统。将 Solaris Volume Manager 镜像磁盘卷用作 mm 元数据设备和 mr 数据设备。在文本编辑器中,打开 /etc/opt/SUNWsamfs/mcf 文件,进行必需的编辑后保存文件。

    在示例中,使用 vi 文本编辑器创建文件系统 qfs2rac。镜像卷 d1d2 上的分区充当文件系统的两个 mm 元数据设备 110120。镜像卷 d3d4 充当文件系统的两个 mr 数据设备 130140

    [qfs2rac-node1]root@solaris:~# vi /etc/opt/SUNWsamfs/mcf 
    # /etc/opt/SUNWsamfs/mcf file:
    #
    # Equipment               Equipment Equipment Family   Device  Additional
    # Identifier              Ordinal   Type      Set      State   Parameters
    # ----------------------- --------- --------  -------  ------  ----------
    qfs2rac                   100        ma       qfs2rac  on      shared
     /dev/md/dataset1/dsk/d53  110        mm       qfs2rac  on
     /dev/md/dataset1/dsk/d63  120        mm       qfs2rac  on
     /dev/md/dataset1/dsk/d3   130        mr       qfs2rac  on
     /dev/md/dataset1/dsk/d4   140        mr       qfs2rac  on
    :wq
    [qfs2rac-node1]root@solaris:~# 
    
  4. 检查 mcf 文件中是否存在错误。使用命令 /opt/SUNWsamfs/sbin/sam-fsd 并更正发现的任何错误。

    sam-fsd 命令会读取 Oracle HSM 配置文件并初始化文件系统。如果遇到错误,该命令将停止。在示例中,检查主机 qfs2rac-node1 上的 mcf 文件:

    [qfs2rac-node1]root@solaris:~# sam-fsd
    ...
    Would start sam-archiverd()
    Would start sam-stagealld()
    Would start sam-stagerd()
    Would start sam-amld()
    [qfs2rac-node1]root@solaris:~# 
    
  5. 创建文件系统。使用命令 /opt/SUNWsamfs/sbin/sammkfs -S family-set-name,其中 family-set-name 是文件系统的设备标识符。

    sammkfs 命令读取 hosts.family-set-namemcf 文件,并创建具有指定属性的共享文件系统。

    [qfs2rac-node1]root@solaris:~# sammkfs -S qfs2rac
    Building 'qfs2rac' will destroy the contents of devices:
      ...
    Do you wish to continue? [y/N]yes ...
    [qfs2rac-node1]root@solaris:~# 
    
  6. 在文本编辑器中打开操作系统的 /etc/vfstab 文件,并为新的文件系统添加一行。在第一列中输入文件系统名称,然后输入几个空格,在第二列中输入一个连字符,然后输入更多的空格。

    在示例中,使用 vi 文本编辑器。我们为 qfs2rac 文件系统添加了一行。连字符阻止操作系统尝试使用 UFS 工具检查文件系统的完整性:

    [qfs2rac-node1]root@solaris:~# vi /etc/vfstab
    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- ---------------------- ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs2rac   -        
    
  7. /etc/vfstab 文件的第三列中,输入相对于群集的文件系统挂载点。指定未直接位于系统根目录下的挂载点子目录。

    将共享 QFS 文件系统直接挂载到根目录下可能会在使用 SUNW.qfs 资源类型时导致故障转移问题。在示例中,qfs2rac 文件系统的挂载点为 /global/sc-rac/qfs2rac

    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- ---------------------- ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs2rac   -       /global/sc-rac/qfs2rac samfs  -    no
    
  8. /etc/vfstab 文件的第四列中,输入文件系统类型 (samfs)。

    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- ---------------------- ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs2rac   -       /global/sc-rac/qfs2rac samfs
    
  9. /etc/vfstab 文件的第五列中,输入 fsck 传递选项 (-)。

    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- ---------------------- ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs2rac   -       /global/sc-rac/qfs2rac samfs  -
    
  10. /etc/vfstab 文件的第六列中,输入在引导时挂载选项 (no)。

    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- ---------------------- ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs2rac   -       /global/sc-rac/qfs2rac samfs  -    no
    
  11. /etc/vfstab 文件的第七列中,输入 sw_raid 挂载选项和针对 SC-RAC 配置建议的挂载选项。然后保存文件并关闭编辑器。

    建议使用以下挂载选项。它们可以在 /etc/vfstab 中指定,如果更方便,也可以在文件 /etc/opt/SUNWsamfs/samfs.cmd 中指定:

    • shared

    • stripe=1

    • sync_meta=1

    • mh_write

    • qwrite

    • forcedirectio

    • notrace

    • rdlease=300

    • wrlease=300

    • aplease=300

    在示例中,简化了挂载选项列表以适应页面布局:

    #File
    #Device   Device  Mount                  System fsck Mount   Mount
    #to Mount to fsck Point                  Type   Pass at Boot Options
    #-------- ------- ---------------------- ------ ---- ------- ------------
    /devices  -       /devices               devfs  -    no      -
    /proc     -       /proc                  proc   -    no      -
    ...
    qfs2rac   -       /global/sc-rac/qfs2rac samfs  -    no      shared,...sw_raid
    :wq
    [qfs2rac-node1]root@solaris:~# 
    
  12. 创建高可用性共享文件系统的挂载点。

    [qfs2rac-node1]root@solaris:~# mkdir -p /global/sc-rac/qfs2rac
    [qfs2rac-node1]root@solaris:~# 
    
  13. 在主节点上挂载高可用性共享文件系统。

    [qfs2rac-node1]root@solaris:~# mount /global/sc-rac/qfs2rac
    [qfs2rac-node1]root@solaris:~# 
    
  14. 设置第二个节点。使用在其余的 SC-RAC 群集节点上配置潜在 QFS 元数据服务器 过程。

  15. 配置故障转移。使用配置 SC-RAC 元数据服务器的故障转移 过程。然后返回此处。

    您已使用 Solaris Volume Manager 镜像卷成功配置 SC-RAC 配置。

  16. 如果计划使用边带数据库功能,请转至配置报告数据库

  17. 否则,请转至配置通知和日志记录