2 为 ACSLS HA 配置 Solaris 系统

安装基本的 Solaris 11.2 系统后,会存在三个上下文,它们将要求对 Solaris Cluster 和 ACSLS HA 进行特定配置。

  1. 配置 /etc/hosts

  2. 配置 root 用户的访问特权。

  3. 配置用于多路径 Internet 访问的网络接口。

  4. 配置多路径磁盘 I/O。

配置 /etc/hosts

每个节点上的 /etc/hosts 文件均应包含有关本地主机、两个群集节点名称及其 IP 地址以及逻辑主机的条目。

127.0.0.1           localhost   loghost
129.99.99.101       thisNode.domain.com   thisNode
129.99.99.102       sisterNode
129.99.99.100       logicalHost.domain.com    logicalHost

root 的访问权限配置

Solaris Cluster 监视和故障转移操作均由必须对整个群集具有控制权的 root 用户从任一节点进行处理。将 root 设定为可信用户,以便在采用安全 shell (secure shell, ssh) 验证的节点之间提供专用网络访问

  1. 使 root 用户能够从外部系统直接访问每个节点。编辑 /etc/user_attr 文件,注释掉(或删除)为 root 指定角色的行。

    # root::::type=role

  2. 允许 root 从系统控制台以外的点登录到系统。

    编辑 /etc/default/login 文件,注释掉用于指定仅控制台访问权限的行。

    # CONSOLE=/dev/console

  3. 允许 root 的安全 shell 登录访问权限。

    编辑 /etc/ssh/sshd_config 文件,并为 PermitRootLogin 指定 yes

    PermitRootLogin=yes

    在相邻节点上重复步骤 1-3。

  4. root 设定为可信用户。这将为 root 设置登录协议,使其能够从设定了验证的姐妹节点登录到每个节点且不需要输入密码。

    1. 创建 RSA 公钥/私钥对。要允许在不输入密码的情况下从一个节点登录到另一个节点,请勿输入密码短语。

      # cd /root/.ssh
      # ssh-keygen -t rsa
      Enter file in which to save the key (//.ssh/id_rsa): ./id_rsa
      Enter passphrase (empty for no passphrase):
      Enter same passphrase again:
      Your identification has been saved in ./id_rsa.
      Your public key has been saved in ./id_rsa.pub.
      The key fingerprint is:
      1a:1b:1c:1d:1e:1f:2a:2b:2c:2d:2e:2f:ea:3b:3c:3d root@node1
      

      这将在 /root/.ssh 目录中创建两个文件:id_rsaid_rsa.pub

    2. id_rsa.pub 复制到姐妹节点上的 /root/.ssh 目录中:

      # cat id_rsa.pub | ssh root@node2 \
        'cat >> /root/.ssh/authorized_keys'
      Password:
      
    3. 在验证密钥就位后,测试在没有密码的情况下对命令进行远程断言的功能。

      # hostname
      node1
      # ssh root@node2 hostname
      node2
      

多路径网络配置

冗余是用于实现高可用性计算的总体方案。冗余不仅适用于服务器,而且适用于每台服务器上的每个通信接口。对于公共接口,请使用 Solaris 上的 Internet 协议多路径 (Internet Protocol Multi Pathing, IPMP)。Internet 协议多路径为出现故障的网络通信提供 NIC 即时恢复,无需进行常规系统故障转移。对于磁带库接口,这意味着在两个独立的路由中使用具有两个网络接口的双 TCP/IP 连接。如果一个路由中的任何元素发生故障,则 ACSLS 将继续通过备用接口进行通信。

对于以下通信,ACSLS HA 需要冗余的网络连接:

  • 公共通信和客户机通信

  • 磁带库通信

  • 专用节点内群集通信

图 2-1 连接到每个服务器节点上的两个以太网端口的单个 HBCr 磁带库接口卡

图 2-1 的说明如下
说明 - 图 2-1 连接到每个服务器节点上的两个以太网端口的单个 HBCr 磁带库接口卡

本节中的图片显示了可通过每台服务器上的两个独立控制器访问的八个以太网端口。在六个端口中提供三个冗余连接。此配置中的两个端口保留未用。虽然表面上看起来复杂,但实际上每台服务器只有三个双路径以太网连接:

  • 服务器-磁带库通信

  • 通过专用网络的服务器到服务器心跳信号交换

  • 通过公共网络的服务器到客户机通信

图 2-2 具有冗余电子设备的磁带库中的双 HBC 配置

图 2-2 的说明如下
说明 - 图 2-2 具有冗余电子设备的磁带库中的双 HBC 配置

在具有冗余电子设备的磁带库中,从每个服务器节点到每个 HBCr 磁带库控制器有两条独立的路径。如果与一个 HBCr 接口上的两个端口的通信都失败,则 ACSLS HA 会调用到备用 HBCr 卡的自动切换。所有这些不需要故障转移到备用服务器节点即可完成。

公共接口和 IPMP

Solaris IPMP 提供了一种用于构建冗余网络接口的机制,用以针对 NIC、电缆、交换机或其他联网硬件的故障提供保护。在 Solaris 主机上配置 IPMP 时,将两个或多个物理网络接口组合到单个 IPMP 组中。

要查看网络接口名称到物理设备的映射,请使用命令 dladm show-phys

示例:

# dladm show-phys
LINK       MEDIA         STATE      SPEED  DUPLEX    DEVICE
net2       Ethernet      up         100    full      ixgbe1
net3       Ethernet      up         10000  full      ixgbe3
net0       Ethernet      up         10000  full      ixgbe2
net1       Ethernet      up         1000   full      ixgbe0

要显示已配置的网络接口的状态,请使用 ipadm

示例:

# ipadm
NAME          CLASS/TYPE STATE  UNDER  ADDR
lo0           loopback   ok     --     --
   lo0/v4     static     ok     --     127.0.0.1/8
   lo0/v6     static     ok     --     ::1/128
net1          ip         ok     --     --
   net1/v4    static     ok     --     129.99.99.99/24
   net1/v6    addrconf   ok     --     fe99::999:999:ff23:ee02/10
net4          ip         ok     --     --
   net4/v4    static     ok     --     129.999.99.99/24

必须配置两个接口并将其分配给 ACSLS HA 的公共 group-id 。这些接口可以是服务器的主接口。在这种情况下,因为 ip 地址已分配给接口(而不是分配给组),所以有必要取消配置该接口,然后将其重新配置在 ipmp 组下。

因为在此操作过程中网络通信会中断,因此将需要从服务器控制台执行以下步骤。

取消配置现有的主接口:

ipadm delete-addr <primary interface>

示例:

# ipadm delete-addr net0/v4

ipadm delete-ip <primary interface>

示例:

# ipadm delete-ip net0

重新配置主接口:

ipadm create-ip <primary interface>

示例:

# ipadm create-ip net0

创建第二主接口:

ipadm create-ip <primary_interface>

示例:

# ipadm create-ip net5

创建 ipmp 组:

ipadm create-ipmp <group_name>

示例:

# ipadm create-ipmp ipmp0

注意:

组名称必须由字母数字组成。

将主机 ip-address 分配给组:

ipadm create-addr -T static -a <ip-address> <group_name>

示例:

# ipadm create-addr -T static -a 129.99.99.9  ipmp0

将主接口添加到组:

ipadm add-ipmp -i <primary_interface> <group_name>

示例:

# ipadm add-ipmp -i net0 ipmp0

向组再添加一个接口:

ipadm add-ipmp -i <second_primary_interface> <group_name>

示例:

# ipadm add-ipmp -i net5 ipmp0

使用 ipadm 检验 ipmp 配置:

# ipadm
NAME              CLASS/TYPE STATE        UNDER      ADDR
ipmp0             ipmp       ok           --         --
   ipmp0/v4       static     ok           --         123.45.67.89/8
lo0               loopback   ok           --         --
   lo0/v4         static     ok           --         127.0.0.1/8
   lo0/v6         static     ok           --         ::1/128
net0              ip         ok           ipmp0      --
net5              ip         ok           ipmp0      --

可以看到在 ipmp0 组下已配置了两个网络接口。可以看到已向 ipmp0 组分配了一个版本 4 的 IP 地址。

您可能需要重新引导系统来提交这些更改并在新配置下建立网络通信

在姐妹节点上重复网络配置。

通过 start_acslsha.sh 启动群集时,将建立 ipmp 组与群集公共 IP 地址之间的映射。请参见ACSLS 群集运行

磁带库接口

两个剩余的网络接口是磁带库配置所必需的。对于本示例,使用了 net1 和 net6。请注意(在图 2-1图 2-2 中),这两个连接通过不同的子网进行路由,以避免路由器成为群集服务器与磁带库之间的单一故障点。

  1. 在每个节点上创建两个网络接口。

    # ipadm create-ip net1
    # ipadm create-ip net6
    
  2. 为每个接口分配 ip-address

    # ipadm create-addr -T static -a <ip-address> net1/v4
    # ipadm create-addr -T static -a <ip-address> net6/v4
    

    地址对象通常是使用接口和协议版本命名的:net1/v4

  3. 检验您的 ipmp 配置:

    # ipadm
    NAME              CLASS/TYPE STATE        UNDER      ADDR
    ipmp0             ipmp       ok           --         --
       ipmp0/v4       static     ok           --         123.45.67.89/8
    lo0               loopback   ok           --         --
       lo0/v4         static     ok           --         127.0.0.1/8
       lo0/v6         static     ok           --         ::1/128
    net0              ip         ok           ipmp0      --
    net1              ip         ok           --         --
       net1/v4        static     ok           --         192.168.0.1/8
    net5              ip         ok           ipmp0      --
    net6              ip         ok           --         --
       net6/v4        ip         ok           --         192.168.1.1/8
    
  4. 重新引导每个节点以使这些设置生效。

多路径磁盘配置

外部的共享磁盘阵列将连接到两台主机,每台主机在服务器与磁盘阵列之间都具有冗余的光纤或 SAS 连接

图 2-3 每台服务器到外部共享存储阵列的两个光纤连接

图 2-3 的说明如下
说明 - 图 2-3 每台服务器到外部共享存储阵列的两个光纤连接

应当对阵列进行设置,使其向所连接的主机呈现两个虚拟驱动器。

如果检测到与磁盘设备之间具有多条路径,则 Solaris 11.2 会自动处理多路径 (MPXIO) 设置。请检验是否为 Solaris 系统正确配置了与阵列中每个虚拟磁盘之间的冗余连接。

# mpathadm list lu

/dev/rdsk/c0t600A0B800049EE1A0000840552D3E2F9d0s
       Total Path Count: 2
       Operational Path Count: 2
/dev/rdsk/c0t600A0B800049EDD600000DAD52D3DA90d0s2
       Total Path Count: 2
       Operational Path Count: 2

mpathadm 显示结果应当展现两个磁盘设备,每个设备都具有 2 条可使用的路径。

如果在 SPARC 系统上运行 ACSLS HA,在配置 MPXIO 之前,mpathadm 不会显示任何信息。如果显示结果未展示任何信息或展示了错误的配置,此时,您应在 Solaris 11.2 系统上使用 stmsboot -e 配置 MPXIO。请参阅 Oracle 技术网文档库中的文档《Oracle Solaris 管理:SAN 配置和多路径》:http://docs.oracle.com/cd/E26926_01/html/E26297/toc.html

要意识到,启用 Solaris I/O 多路径的设备会接收指示它们受 Solaris I/O 多路径控制的新名称。设备所采用的名称不同于其原始名称。

Original device name:    c1t0d0
Name After stmds boot:   c0t600A0B800049EDD600000C9952CAA03Ed0