Open HA Cluster インストールガイド

Procedureipkg ブランドゾーンに HA-Containers Zone Boot コンポーネントを構成する

この手順を実行して、Solaris Containers データサービスのゾーンブートコンポーネント (sczbt) が ipkg 非大域ブランドゾーンを使用するように構成します。『Sun Cluster Data Service for Solaris Containers Guide for Solaris OS』に記載されている sczbt 向けの指示の代わりに、この手順を使用します。Solaris Containers データサービスマニュアルに記載されているその他のすべての手順は、Open HA Cluster 2009.06 構成で有効です。

  1. クラスタのノードの 1 つでスーパーユーザーになります。

    または、ユーザーアカウントに「主管理者」プロファイルが割り当てられている場合は、ルートユーザー以外でプロファイルシェルからコマンドを実行するか、またはコマンドの前に 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 は 16c3-eb21-ed85-d19af92c6bbd、BE は b101b-SC です。

    2. 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. ZFS ストレージプール用の HAStoragePlus リソースを制御するノードにゾーンをインストールします。


      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. 1 つのノードから、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 Zone Boot コンポーネントの構成

この例では、hasp-rs という HAStoragePlus リソースを作成します。ここでは、リソースグループ zone-rghapool というミラー化された ZFS ストレージプールが使用されます。ストレージプールは、/hapool/ipkg ファイルシステムでマウントされます。hasp-rs リソースは、ipkgzone1 という ipkg 非大域ブランドゾーンで動作します。これは、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