Open HA Cluster 安装指南

Procedure如何为 ipkg 标记区域配置 HA-Containers 区域引导组件

执行此过程可配置 Solaris Containers 数据服务的区域引导组件 (sczbt),以便使用 ipkg 标记非全局区域。请使用此过程,而不是使用《Sun Cluster Data Service for Solaris Containers Guide for Solaris OS》中有关 sczbt 的说明。Solaris Containers 数据服务手册中的所有其他过程均适用于 Open HA Cluster 2009.06 配置。

  1. 成为群集中一个节点上的超级用户。

    或者,如果为您的用户帐户指定了主管理员 (Primary Administrator) 配置文件,则可通过配置文件 shell 以非超级用户身份执行命令,或者在命令的前面加上 pfexec 命令。

  2. 创建资源组。


    phys-schost-1# /usr/cluster/bin/clresourcegroup create resourcegroup
    
  3. 创建用于 HA 区域根路径的镜像 ZFS 存储池。


    phys-schost-1# zpool create -m mountpoint pool mirror /dev/rdsk/cNtXdY \
    /dev/rdsk/cNtXdZ
    phys-schost# zpool export pool
    
  4. 注册 HAStoragePlus 资源类型。


    phys-schost-1# /usr/cluster/bin/clresourcetype register SUNW.HAStoragePlus
    
  5. 创建 HAStoragePlus 资源。

    指定所创建的 ZFS 存储池和资源组。


    phys-schost-1# /usr/cluster/bin/clresource create -t SUNW.HAStoragePlus \
    -g resourcegroup -p Zpools=pool hasp-resource
    
  6. 使资源组联机。


    phys-schost-1# clresourcegroup online -eM resourcegroup
    
  7. 在所创建的 ZFS 存储池上创建 ZFS 文件系统数据集。

    您将使用此文件系统作为 ipkg 标记区域的区域根路径,您稍后会在此过程中创建该标记区域。


    phys-schost-1# zfs create pool/filesystem
    
  8. 确保每个节点的引导环境 (boot-environment, BE) 根数据集的通用唯一 ID (universally unique ID, UUID) 是同一值。

    1. 确定最初创建区域的节点的 UUID。

      输出内容将类似如下。


      phys-schost-1# beadm list -Hb101b-SC;8fe53702-16c3-eb21-ed85-d19af92c6bbd;NR;/;756…

      在此示例输出中,UUID 为 8fe53702-16c3-eb21-ed85-d19af92c6bbd,BE 为 b101b-SC

    2. 在第二个节点上设置相同的 UUID。


      phys-schost-2# zfs set org.opensolaris.libbe:uuid=uuid rpool/ROOT/BE
      
  9. 在两个节点上,配置 ipkg 标记非全局区域。

    设置在 ZFS 存储池上创建的文件系统的区域根路径。


    phys-schost# zonecfg -z zonename  \
    'create ; set zonepath=/pool/filesystem/zonename ; set autoboot=false'
    
    phys-schost# zoneadm list -cv
      ID NAME          STATUS        PATH                           BRAND    IP    
       0 global        running       /                              native   shared
       - zonename      configured   /pool/filesystem/zonename         ipkg     shared
  10. 从控制 HAStoragePlus 资源的节点中,安装 ipkg 标记非全局区域。

    输出内容将类似如下:

    1. 确定哪个节点控制 HAStoragePlus 资源。


      phys-schost# /usr/cluster/bin/clresource status
      === Cluster Resources ===
      
      Resource Name             Node Name       Status        Message
      --------------            ----------      -------       -------
       hasp-resource              phys-schost-1   Online        Online
                                phys-schost-2   Offline       Offline

      从控制 HAStoragePlus 资源的节点中执行本步骤中的其余任务。

    2. 在控制 HAStoragePlus 资源的节点上为 ZFS 存储池安装区域。


      phys-schost-1# zoneadm -z zonename install
      
    3. 检验是否已安装区域。


      phys-schost-1# zoneadm list -cv
        ID NAME           STATUS       PATH                           BRAND    IP    
         0 global         running      /                              native   shared
         - zonename       installed    /pool/filesystem/zonename        ipkg     shared
    4. 引导所创建的区域并检验该区域是否正在运行。


      phys-schost-1# zoneadm -z zonename boot
      phys-schost-1# zoneadm list -cv
        ID NAME           STATUS       PATH                           BRAND    IP    
         0 global         running      /                              native   shared
         - zonename       running      /pool/filesystem/zonename        ipkg     shared
    5. 打开一个新的终端窗口并登录到该区域。

    6. 停止该区域。

      区域的状态应返回到 installed


      phys-schost-1# zoneadm -z zonename halt
      
  11. 将资源组切换到另一节点并强制连接该区域。

    1. 切换资源组。

      输出内容将类似如下,其中 phys-schost-1 是当前控制资源组的节点,phys-schost-2 是将资源组切换到节点。


      phys-schost-1# /usr/cluster/bin/clresourcegroup switch -n phys-schost-2 resourcegroup
      

      从将资源组切换到的节点中执行本步骤中的其余任务。

    2. 将区域强制连接到将资源组切换到的节点上。


      phys-schost-2# zoneadm -z zonename attach -F
      
    3. 检验是否已将该区域安装在该节点上。

      输出内容将类似如下:


      phys-schost-2# zoneadm list -cv
        ID NAME           STATUS       PATH                           BRAND    IP    
         0 global         running      /                              native   shared
         - zonename       installed    /pool/filesystem/zonename        ipkg     shared
    4. 引导该区域。


      phys-schost-2# zoneadm -z zonename boot
      
    5. 打开一个新的终端窗口并登录到该区域。

      执行此步骤以检验区域是否正常运行。


      phys-schost-2# zlogin -C zonename
      
    6. 停止该区域。


      phys-schost-2# zoneadm -z zonename halt
      
  12. 从一个节点中,配置区域引导 (sczbt) 资源。

    1. 注册 SUNW.gds 资源类型。


      phys-schost-1# /usr/cluster/bin/clresourcetype register SUNW.gds
      
    2. 在所创建的 ZFS 文件系统上创建目录。

      您将会指定此目录,以便存储为区域引导资源设置的参数值。


      phys-schost-1# mkdir /pool/filesystem/parameterdir
      
    3. 安装并配置 HA-Containers 代理。


      phys-schost# pkg install SUNWsczone
      phys-schost# cd /opt/SUNWsczone/sczbt/util
      phys-schost# cp -p sczbt_config sczbt_config.zoneboot-resource
      phys-schost# vi sczbt_config.zoneboot-resource
      Add or modify the following entries in the file.
      RS="zoneboot-resource"
      RG="resourcegroup"
      PARAMETERDIR="/pool/filesystem/parameterdir"
      SC_NETWORK="false"
      SC_LH=""
      FAILOVER="true"
      HAS_RS="hasp-resource"
      
      Zonename="zonename"
      Zonebrand="ipkg"
      Zonebootopt=""
      Milestone="multi-user-server"
      LXrunlevel="3"
      SLrunlevel="3"
      Mounts=""
      Save and exit the file.
      
    4. 配置区域引导资源。

      使用在区域引导配置文件中设置的参数对资源进行配置。


      phys-schost-1# ./sczbt_register -f ./sczbt_config.zoneboot-resource
      
    5. 检验是否已启用区域引导资源。


      phys-schost-1# /usr/cluster/bin/clresource enable zoneboot-resource
      
  13. 检验资源组是否可以切换到另一节点,以及切换后 ZFS 存储池是否可在该节点成功启动。

    1. 将资源组切换到另一节点。


      phys-schost-2# /usr/cluster/bin/clresourcegroup switch -n phys-schost-1 resourcegroup
      
    2. 检验资源组现在是否在新节点上处于联机状态。

      输出内容将类似如下:


      phys-schost-1# /usr/cluster/bin/clresourcegroup status
      === Cluster Resource Groups ===
      
          Group Name                   Node Name          Suspended        Status
          ----------                   ---------          ---------        ------
          resourcegroup                  phys-schost-1      No               Online
                                        phys-schost-2      No               Offline
    3. 检验该区域是否正在新节点上运行。


      phys-schost-1# zoneadm list -cv
      ID  NAME     STATUS       PATH                           BRAND      IP
       0  global   running      /                              native     shared
       1  zonename running      /pool/filesystem/zonename        ipkg       shared

示例 3–3 为 ipkg 标记区域配置 HA-Containers 区域引导组件

在此示例中,创建了 HAStoragePlus 资源 hasp-rs,该资源使用资源组 zone-rg 中的镜像 ZFS 存储池 hapool。该存储池挂载在 /hapool/ipkg 文件系统上。hasp-rs 资源在 ipkg 标记非全局区域 ipkgzone1 上运行,在 phys-schost-1phys-schost-2 上均配置了该标记非全局区域。区域引导资源 ipkgzone1-rs 基于 SUNW.gds 资源类型。


Create a resource group.
phys-schost-1# /usr/cluster/bin/clresourcegroup create zone-rg

Create a mirrored ZFS storage pool to be used for the HA zone root path.
phys-schost-1# zpool create -m /ha-zones hapool mirror /dev/rdsk/c4t6d0 \
/dev/rdsk/c5t6d0
phys-schost# zpool export hapool

Create an HAStoragePlus resource that uses the resource group and mirrored ZFS storage pool that you created.
phys-schost-1# /usr/cluster/bin/clresourcetype register SUNW.HAStoragePlus
phys-schost-1# /usr/cluster/bin/clresource create -t SUNW.HAStoragePlus \
-g zone-rg -p Zpools=hapool hasp-rs

Bring the resource group online.
phys-schost-1# clresourcegroup online -eM zone-rg

Create a ZFS file-system dataset on the ZFS storage pool that you created.
phys-schost-1# zfs create hapool/ipkg

Ensure that the universally unique ID (UUID) of each node's boot-environment (BE) root dataset is the same value on both nodes.
phys-schost-1# beadm list -H
…
zfsbe;8fe53702-16c3-eb21-ed85-d19af92c6bbd;NR;/;7565844992;static;1229439064
…
phys-schost-2# zfs set org.opensolaris.libbe:uuid=8fe53702-16c3-eb21-ed85-d19af92c6bbd rpool/ROOT/zfsbe

Configure the ipkg brand non-global zone.
phys-schost-1# zonecfg -z ipkgzone1 'create ; \
set zonepath=/hapool/ipkg/ipkgzone1 ; set autoboot=false'
phys-schost-1# zoneadm list -cv
  ID NAME             STATUS       PATH                           BRAND    IP    
   0 global           running      /                              native   shared
   - ipkgzone1        configured   /hapool/ipkg/ipkgzone1         ipkg     shared
Repeat on phys-schost-2.

Identify the node that masters the HAStoragePlus resource, and from that node install ipkgzone1.
phys-schost-1# /usr/cluster/bin/clresource status
=== Cluster Resources ===

Resource Name             Node Name       Status        Message
--------------            ----------      -------        -------
 hasp-rs                  phys-schost-1   Online        Online
                          phys-schost-2   Offline       Offline
phys-schost-1# zoneadm -z ipkgzone1 install
phys-schost-1# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - ipkgzone1        installed  /hapool/ipkg/ipkgzone1         ipkg     shared
phys-schost-1# zoneadm -z ipkgzone1 boot
phys-schost-1# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - ipkgzone1        running    /hapool/ipkg/ipkgzone1         ipkg     shared

Open a new terminal window and log in to ipkgzone1.
phys-schost-1# zoneadm -z ipkgzone1 halt

Switch zone-rg to phys-schost-2 and forcibly attach the zone.
phys-schost-1# /usr/cluster/bin/clresourcegroup switch -n phys-schost-2 zone-rg
phys-schost-2# zoneadm -z ipkgzone1 attach -F
phys-schost-2# zoneadm list -cv
  ID NAME             STATUS      PATH                           BRAND    IP    
   0 global           running     /                              native   shared
   - ipkgzone1        installed   /hapool/ipkg/ipkgzone1         ipkg     shared
phys-schost-2# zoneadm -z ipkgzone1 boot

Open a new terminal window and log in to ipkgzone1.
phys-schost-2# zlogin -C ipkgzone1
phys-schost-2# zoneadm -z ipkgzone1 halt

From one node, configure the zone-boot (sczbt) resource.
phys-schost-1# /usr/cluster/bin/clresourcetype register SUNW.gds
phys-schost-1# mkdir /hapool/ipkg/params

Install and configure the HA-Containers agent.
phys-schost# pkg install SUNWsczone
phys-schost# cd /opt/SUNWsczone/sczbt/util
phys-schost# cp -p sczbt_config sczbt_config.ipkgzone1-rs
phys-schost# vi sczbt_config.ipkgzone1-rs

Add or modify the following entries in the sczbt_config.ipkgzone1-rs file.
RS="ipkgzone1-rs"
RG="zone-rg"
PARAMETERDIR="/hapool/ipkg/params"
SC_NETWORK="false"
SC_LH=""
FAILOVER="true"
HAS_RS="hasp-rs"

Zonename="ipkgzone1"
Zonebrand="ipkg"
Zonebootopt=""
Milestone="multi-user-server"
LXrunlevel="3"
SLrunlevel="3"
Mounts=""
Save and exit the file.

Configure the ipkgzone1-rs resource.
phys-schost-1# ./sczbt_register -f ./sczbt_config.ipkgzone1-rs
phys-schost-1# /usr/cluster/bin/clresource enable ipkgzone1-rs

Verify that zone-rg can switch to another node and that ipkgzone1 successfully starts there after the switchover.
phys-schost-2# /usr/cluster/bin/clresourcegroup switch -n phys-schost-1 zone-rg
phys-schost-1# /usr/cluster/bin/clresourcegroup status
=== Cluster Resource Groups ===

    Group Name                   Node Name          Suspended        Status
    ----------                   ---------          ---------        ------
    zone-rg                      phys-schost-1      No               Online
                                 phys-schost-2      No               Offline
phys-schost-1# zoneadm list -cv
ID  NAME      STATUS       PATH                           BRAND      IP
 0  global    running      /                              native     shared
 1  ipkgzone1 running      /hapool/ipkg/ipkgzone1         ipkg       shared