8.2. ノードの削除と追加

このセクションでは、クラスターに対してノードを削除/追加する方法を説明しています。クラスターからノードを削除するには、「クラスターからのノードの削除」 に従います。クラスターへノードを追加するには、「クラスターへのノードの追加」 に沿って行います。

8.2.1. クラスターからのノードの削除

クラスターからノードを削除するには、削除するノード上のクラスターソフトウェアをシャットダウンして、その変更を反映するためにクラスター設定を更新します。

重要

クラスターからノードを削除することで 2 つを超えるノードから 2 つのノードへ遷移する場合、クラスター設定ファイルの更新後、各ノードでクラスターソフトウェアを再起動しなければなりません。
クラスターからノードを削除するには、以下の手順を実行します。
  1. いずれかのノードで clusvcadm ユーティリティを使用して、クラスターから削除されるノード上で実行している各 HA サービスの再配置/移行/停止を行います。clusvcadm の使用についての詳細は 「高可用性 (HA) サービスの管理」 を参照してください。
  2. クラスターから削除するノード上で 「クラスターソフトウェアの停止」 に従ってクラスターソフトウェアを停止します。例えば:
    [root@example-01 ~]# service rgmanager stop
    Stopping Cluster Service Manager:                          [  OK  ]
    [root@example-01 ~]# service gfs2 stop
    Unmounting GFS2 filesystem (/mnt/gfsA):                    [  OK  ]
    Unmounting GFS2 filesystem (/mnt/gfsB):                    [  OK  ]
    [root@example-01 ~]# service clvmd stop
    Signaling clvmd to exit                                    [  OK  ]
    clvmd terminated                                           [  OK  ]
    [root@example-01 ~]# service cman stop
    Stopping cluster: 
       Leaving fence domain...                                 [  OK  ]
       Stopping gfs_controld...                                [  OK  ]
       Stopping dlm_controld...                                [  OK  ]
       Stopping fenced...                                      [  OK  ]
       Stopping cman...                                        [  OK  ]
       Waiting for corosync to shutdown:                       [  OK  ]
       Unloading kernel modules...                             [  OK  ]
       Unmounting configfs...                                  [  OK  ]
    [root@example-01 ~]#
    
  3. クラスター内のいずれかのノードで /etc/cluster/cluster.conf を編集して、削除するノードの clusternode セクションを削除します。例えば、例8.1「3 ノードクラスターの設定」 で、node-03.example.com が削除されることになっている場合、そのノードの clusternode セクションを削除します。ノード (群) の削除によりクラスターが 2 ノードクラスターになる場合、設定ファイルに以下の行を追加することで単一ノードが定足数を維持できるようにします (例えば 1 つのノードが失敗した場合):
    <cman two_node="1" expected_votes="1"/>
    3 ノードと 2 ノードの設定の比較は、 「3 ノードと 2 ノードの設定サンプル」 を参照してください。
  4. config_version 属性を更新するには、値を増加します (例えば、config_version="2" から config_version="3"> へ変更)。
  5. /etc/cluster/cluster.conf を保存します。
  6. (オプション) ccs_config_validate コマンドを実行してクラスタースキーマ (cluster.rng) に対して更新したファイルを検証します。例えば:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. cman_tool version -r コマンドを実行して、設定をクラスターノードの残り部分へ伝播します。
  8. 更新した設定ファイルが伝播されたことを確認します。
  9. クラスターのノード数を 2 つを超えるノードから 2 つのノードに変更した場合は、以下のようにしてクラスターソフトウェアを再起動しなければなりません:
    1. 各ノードで 「クラスターソフトウェアの停止」 に従ってクラスターソフトウェアを停止します。例えば:
      [root@example-01 ~]# service rgmanager stop
      Stopping Cluster Service Manager:                          [  OK  ]
      [root@example-01 ~]# service gfs2 stop
      Unmounting GFS2 filesystem (/mnt/gfsA):                    [  OK  ]
      Unmounting GFS2 filesystem (/mnt/gfsB):                    [  OK  ]
      [root@example-01 ~]# service clvmd stop
      Signaling clvmd to exit                                    [  OK  ]
      clvmd terminated                                           [  OK  ]
      [root@example-01 ~]# service cman stop
      Stopping cluster: 
         Leaving fence domain...                                 [  OK  ]
         Stopping gfs_controld...                                [  OK  ]
         Stopping dlm_controld...                                [  OK  ]
         Stopping fenced...                                      [  OK  ]
         Stopping cman...                                        [  OK  ]
         Waiting for corosync to shutdown:                       [  OK  ]
         Unloading kernel modules...                             [  OK  ]
         Unmounting configfs...                                  [  OK  ]
      [root@example-01 ~]#
      
    2. 各ノードで 「クラスターソフトウェアの起動」 に従ってクラスターソフトウェアを起動します。例えば:
      [root@example-01 ~]# service cman start
      Starting cluster: 
         Checking Network Manager...                             [  OK  ]
         Global setup...                                         [  OK  ]
         Loading kernel modules...                               [  OK  ]
         Mounting configfs...                                    [  OK  ]
         Starting cman...                                        [  OK  ]
         Waiting for quorum...                                   [  OK  ]
         Starting fenced...                                      [  OK  ]
         Starting dlm_controld...                                [  OK  ]
         Starting gfs_controld...                                [  OK  ]
         Unfencing self...                                       [  OK  ]
         Joining fence domain...                                 [  OK  ]
      [root@example-01 ~]# service clvmd start
      Starting clvmd:                                            [  OK  ]
      Activating VG(s):   2 logical volume(s) in volume group "vg_example" now active
                                                                 [  OK  ]
      [root@example-01 ~]# service gfs2 start
      Mounting GFS2 filesystem (/mnt/gfsA):                      [  OK  ]
      Mounting GFS2 filesystem (/mnt/gfsB):                      [  OK  ]
      [root@example-01 ~]# service rgmanager start
      Starting Cluster Service Manager:                          [  OK  ]
      [root@example-01 ~]#
      
    3. いずれかのクラスターノードで cman_tool nodes を実行して、ノード群がクラスター内のメンバーとして機能していることを確認します (ステータスカラム "Sts" 内で "M" として表示)。例えば:
      [root@example-01 ~]# cman_tool nodes
      Node  Sts   Inc   Joined               Name
         1   M    548   2010-09-28 10:52:21  node-01.example.com
         2   M    548   2010-09-28 10:52:21  node-02.example.com
      
    4. いずれかのノードで clustat ユーティリティを使用して、HA サービスが期待どおりに稼働していることを確認します。さらに、clustat はクラスターノード群のステータスを表示します。例えば:
      [root@example-01 ~]#clustat
      Cluster Status for mycluster @ Wed Nov 17 05:40:00 2010
      Member Status: Quorate
      
       Member Name                             ID   Status
       ------ ----                             ---- ------
       node-02.example.com                         2 Online, rgmanager
       node-01.example.com                         1 Online, Local, rgmanager
      
       Service Name                   Owner (Last)                   State         
       ------- ----                   ----- ------                   -----           
       service:example_apache         node-01.example.com            started       
       service:example_apache2        (none)                         disabled