Oracle® Solaris Cluster 软件安装指南

退出打印视图

更新时间: 2014 年 9 月
 
 

如何配置法定设备


注 -  在以下几种情况下不需要配置法定设备:
  • 在配置 Oracle Solaris Cluster 软件的过程中选择了自动法定配置。

  • 安装了单节点全局群集。

  • 向现有全局群集中添加了节点并且已指定足够的法定投票。

如果在建立群集时选择了自动法定配置,则不要执行此步骤。应继续执行如何检验法定配置和安装模式中的过程。


仅在完全形成新群集后执行一次该过程。使用此过程以指定法定选票并使群集脱离安装模式。

开始之前

  • 法定服务器-要将法定服务器配置为法定设备,请执行以下操作:

    • 在法定服务器主机上安装 Oracle Solaris Cluster 法定服务器软件,然后启动法定服务器。有关安装和启动法定服务器的信息,请参见如何安装和配置 Oracle Solaris Cluster 法定服务器软件

    • 确保与群集节点直接相连的网络交换机满足以下条件之一:

      • 交换机支持快速生成树协议 (Rapid Spanning Tree Protocol, RSTP)。

      • 交换机上已启用快速端口 (fast port) 模式。

      必须具有上述某一项特性以确保群集节点与法定服务器之间的即时通信。如果通信因交换机而出现明显延迟,则群集会认为是缺少法定设备导致了通信不畅。

    • 获取以下信息:

      • 要指定给所配置的法定设备的名称

      • 法定服务器主机的 IP 地址

      • 法定服务器的端口号

  • NAS 设备-要将网络连接存储 (network-attached storage, NAS) 设备配置为法定设备,请执行以下操作:

  1. 如果以下两种情况全部属实,请确保为公共网络地址设置了正确的前缀长度。
    • 准备使用法定服务器。

    • 公共网络使用长度可变的子网掩码,也称为无类域间路由 (Classless Inter Domain Routing, CIDR)。

    # ipadm show-addr
    ADDROBJ           TYPE     STATE        ADDR
    lo0/v4            static   ok           127.0.0.1/8
    ipmp0/v4          static   ok           10.134.94.58/24 

    注 -  如果您使用了法定服务器,但是公共网络使用了有类子网(如 RFC 791 中所定义),则无需执行本步骤。
  2. 在一个节点上承担 root 角色。

    另外,如果为您的用户帐户分配了系统管理员配置文件,则可以通过配置文件 shell 以非 root 用户身份发出命令,或将 pfexec 命令置于命令之前。

  3. 确保所有群集节点均联机。
    phys-schost# cluster status -t node
  4. 要将共享磁盘用作法定设备,请检验设备与群集节点是否已连接并选择要配置的设备。
    1. 在群集的一个节点中,显示系统所检查的全部设备的列表。

      无需以 root 角色登录即可运行此命令。

      phys-schost-1# cldevice list -v

      输出类似于以下内容:

      DID Device          Full Device Path
      ----------          ----------------
      d1                  phys-schost-1:/dev/rdsk/c0t0d0
      d2                  phys-schost-1:/dev/rdsk/c0t6d0
      d3                  phys-schost-2:/dev/rdsk/c1t1d0
      d3                  phys-schost-1:/dev/rdsk/c1t1d0
      …
    2. 确保输出信息显示了群集节点与存储设备之间的所有连接。
    3. 确定要配置为法定设备的每个共享磁盘的全局设备 ID。

      注 -  所选的任何共享磁盘都必须能够用作法定设备。有关选择法定设备的更多信息,请参见法定设备

      使用Step a 中的 cldevice 输出信息来识别配置为法定设备的每个共享磁盘的设备 ID。例如,Step a 中的输出信息显示全局设备 d3 是由 phys-schost-1phys-schost-2 共享的。

  5. 要使用不支持 SCSI 协议的共享磁盘,请确保对该共享磁盘禁用隔离功能。
    1. 显示单个磁盘的隔离设置。
      phys-schost# cldevice show device
      
      === DID Device Instances ===
      DID Device Name:                                      /dev/did/rdsk/dN
      …
      default_fencing:                                     nofencing
      • 如果磁盘的隔离功能设置为 nofencingnofencing-noscrub,则说明对该磁盘禁用隔离功能。请转至Step 6
      • 如果磁盘的隔离功能设置为 pathcountscsi,请对该磁盘禁用隔离功能。请跳至Step h
      • 如果磁盘的隔离功能设置为 global,请确定是否还全局禁用了隔离功能。请继续执行Step e

        或者,可以只对单个磁盘禁用隔离功能,这会覆盖该磁盘的 global_fencing 属性所设置的任何值。请跳至Step h 以对单个磁盘禁用隔离功能。

    2. 确定是否全局禁用了隔离功能。
      phys-schost# cluster show -t global
      
      === Cluster ===
      Cluster name:                                         cluster
      …
      global_fencing:                                      nofencing
      • 如果全局隔离功能设置为 nofencingnofencing-noscrub,则说明对其 default_fencing 属性设置为 global 的共享磁盘禁用隔离功能。请转至Step 6
      • 如果全局隔离功能设置为 pathcountprefer3,请对共享磁盘禁用隔离功能。请继续执行Step h

      注 -  如果单个磁盘的 default_fencing 属性设置为 global,则仅在群集范围的 global_fencing 属性设置为 nofencingnofencing-noscrub 时对该单个磁盘禁用隔离功能。如果将 global_fencing 属性更改为可启用隔离功能的值,则其 default_fencing 属性设置为 global 的所有磁盘的隔离功能会变为启用状态。
    3. 对共享磁盘禁用隔离功能。
      phys-schost# cldevice set \
      -p default_fencing=nofencing-noscrub device
    4. 检验现在是否对该共享磁盘禁用了隔离功能。
      phys-schost# cldevice show device
  6. 启动 clsetup 实用程序。
    phys-schost# clsetup

    将显示 "Initial Cluster Setup"(初始群集设置)屏幕。


    注 -  如果实际显示的是主菜单,则说明初始群集设置已成功执行。请跳至Step 15
  7. 指示是否要添加任何法定设备。
    • 如果群集是双节点群集,必须配置至少一个共享法定设备。键入 Yes 可配置一个或多个法定设备。
    • 如果群集由三个以上的节点组成,则法定设备的配置可根据您自己的需要而定。
      • 如果不需要配置其他法定设备,请键入 No。然后,请跳至Step 14
      • 键入 Yes 可配置其他法定设备。
  8. 指定要将哪类设备配置为法定设备。
    法定设备类型
    描述
    shared_disk
    以下各项中的共享 LUN:
    • 共享 SCSI 磁盘

    • 串行连接技术附件 (Serial Attached Technology Attachment, SATA) 存储

    • OracleZFS Storage Appliance

    quorum_server
    法定服务器
  9. 指定要配置为法定设备的设备的名称并提供任何所需的其他信息。
    • 对于法定服务器,还需指定以下信息:

      • 法定服务器主机的 IP 地址

      • 法定服务器用来与群集节点进行通信的端口号

  10. 键入 Yes 以验证是否可以重置 installmode

    clsetup 实用程序在为群集设置了法定配置和投票计数后,将显示消息 "Cluster initialization is complete"。该实用程序将于此时返回到主菜单。

  11. 退出 clsetup 实用程序。

接下来的步骤

检验是否已禁用法定配置及安装模式。请转至如何检验法定配置和安装模式

故障排除

scinstall 无法执行自动配置-如果 scinstall 无法将共享磁盘自动配置为法定设备,或者如果群集的 installmode 状态仍然为 enabled,则可以在 scinstall 处理完成之后使用 clsetup 实用程序配置法定设备并重置 installmode

中断的 clsetup 处理-如果法定设备设置过程被中断或无法成功完成,请重新运行 clsetup

对法定选票计数的更改-如果以后增加或减少了连接到法定设备的节点数,法定选票计数不会自动重新计算。通过删除各个法定设备,然后将其添加回配置中(一次对一个法定设备进行操作),可以重新建立正确的法定选票。对于双节点群集,请临时添加一个新的法定设备,然后删除原法定设备并将其添加回配置。然后,删除临时法定设备。请参见Oracle Solaris Cluster 系统管理指南 中的第 6  章 管理法定中的“如何修改法定设备节点列表”过程。

无法访问的法定设备-如果在群集节点上看到无法访问法定设备的消息,或者如果群集节点出现故障并显示消息 CMM: Unable to acquire the quorum device,则法定设备或其路径可能存在问题。检查法定设备及其路径是否正常。

如果该问题仍然存在,请使用其他法定设备。或者,如果仍要使用该法定设备,请将法定超时增大为较高的值,如下所述:


注 -  对于 Oracle RAC (Oracle RAC),请勿更改默认的 25 秒法定超时时间。在某些记忆分裂方案中,较长的超时周期可能会导致 Oracle RAC VIP 故障转移因 VIP 资源超时而失败。如果所用法定设备不适合使用默认的 25 秒超时,请使用其他法定设备。
  • 1. 承担 root 角色。

  • 2. 在每个群集节点上,以 root 角色编辑 /etc/system 文件,将超时时间设置为较高的值。

    以下示例将超时时间设置为 700 秒。

    phys-schost# pfedit /etc/system
    …
    set cl_haci:qd_acquisition_timer=700
  • 3. 从一个节点,关闭群集。

    phys-schost-1# cluster shutdown -g0 -y
  • 4. 将各节点引导回群集模式。

    重新引导后会初始化对 /etc/system 文件的更改。