Sun Cluster のシステム管理 (Solaris OS 版)

クラスタへのパッチの適用

表 10–1 作業リスト :クラスタへのパッチの適用

作業 

参照先 

ノードを停止せずに、非再起動 Sun Cluster パッチを一度に 1 つのノードだけに適用 

「非再起動 Sun Cluster パッチを適用する」

クラスタメンバーを非クラスタモードにした後で、再起動 Sun Cluster パッチを適用 

「再起動パッチを適用する (ノード)」

「再起動パッチを適用する (クラスタ)」

Apply a patch in single-user mode when your cluster contains failover zones 

「シングルユーザーモードでフェイルオーバーゾーンにパッチを適用する」

Sun Cluster パッチを削除 

「Sun Cluster パッチの変更」

Procedure再起動パッチを適用する (ノード)

パッチを一度にクラスタの 1 つのノードだけに適用し、パッチ処理中でもクラスタ自体は動作したままにします。この手順では、まず、ノードを停止し、パッチを適用する前に boot -sx または shutdown -g -y -i0 コマンドを使用してこのノードをシングルユーザーモードで起動する必要があります。

この手順では、長形式の Sun Cluster コマンドを使用して説明します。多くのコマンドには短形式もあります。コマンド名の形式の長短を除き、コマンドは同一です。コマンドのリストとその短形式については、付録 A 「Sun Cluster オブジェクト指向コマンド」を参照してください。

  1. パッチを適用する前に、Sun Cluster 製品の Web サイトで、インストール前後の特別な注意事項があるかどうかを確認してください。

  2. パッチの適用先であるノード上で、スーパーユーザーになるか、RBAC の承認 solaris.cluster.admin を提供する役割になります。

  3. パッチを適用するノードのリソースグループおよびデバイスグループの一覧を表示します。


    # clresourcegroup status -n node
    # cldevicegroup status -n node
    
  4. すべてのリソースグループ、リソース、デバイスグループを、パッチを適用するノードから他のクラスタメンバーに切り替えます。


    # clnode evacuate -n node
    
    evacuate

    指定したノードから、すべての非大域ゾーンを含むすべてのデバイスグループとリソースグループを退避させます。

    -n node

    リソースグループとデバイスグループを切り替えるノードを指定します。

  5. ノードを停止します。


    # shutdown -g0 [-y]
     [-i0]
  6. ノードを非クラスタのシングルユーザーモードで起動します。

    • SPARC ベースのシステム上で、以下のコマンドを実行します。


      ok boot -sx
      
    • x86 ベースのシステム上で、以下のコマンドを実行します。


      phys-schost# shutdown -g -y -i0
      
      Press any key to continue
    1. GRUB メニューで、矢印キーを使用して適切な Solaris エントリを選択し、e を入力してそのコマンドを編集します。

      GRUB メニューは次のようになっています。


      GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
      +-------------------------------------------------------------------------+
      | Solaris 10 /sol_10_x86                                                  |
      | Solaris failsafe                                                        |
      |                                                                         |
      +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, or 'c' for a command-line.

      GRUB ベースの起動についての詳細は、『Solaris のシステム管理 (基本編)』の第 11 章「GRUB ベースのブート (手順)」を参照してください。

    2. ブートパラメータの画面で、矢印キーを使用してカーネルエントリを選択し、e を入力してエントリを編集します。

      GRUB ブートパラメータの画面は、次のような画面です。


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot                                     |
      | module /platform/i86pc/boot_archive                                  |
      +----------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press 'b' to boot, 'e' to edit the selected command in the
      boot sequence, 'c' for a command-line, 'o' to open a new line
      after ('O' for before) the selected line, 'd' to remove the
      selected line, or escape to go back to the main menu.
    3. コマンドに -sx を追加して、システムを非クラスタモードで起動することを指定します。


      [ Minimal BASH-like line editing is supported. For the first word, TAB
      lists possible command completions. Anywhere else TAB lists the possible
      completions of a device/filename. ESC at any time exits. ]
      
      grub edit> kernel /platform/i86pc/multiboot -x
    4. Enter キーを押して変更を受け入れ、ブートパラメータの画面に戻ります。

      画面には編集されたコマンドが表示されます。


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot -x                                  |
      | module /platform/i86pc/boot_archive                                  |
      +----------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press 'b' to boot, 'e' to edit the selected command in the
      boot sequence, 'c' for a command-line, 'o' to open a new line
      after ('O' for before) the selected line, 'd' to remove the
      selected line, or escape to go back to the main menu.-
    5. b を入力してノードを非クラスタモードで起動します。


      注 –

      カーネル起動パラメータコマンドへのこの変更は、システムを起動すると無効になります。次にノードを再起動する際には、ノードはクラスタモードで起動します。クラスタモードではなく、非クラスタモードで起動するには、これらの手順を再度実行して、カーネル起動パラメータコマンドに -sx オプションを追加します。


  7. ソフトウェアパッチまたはファームウェアパッチを適用します。


    # patchadd -M patch-dir patch-id
    
    patch-dir

    パッチのディレクトリの場所を指定します。

    patch-id

    特定のパッチのパッチ番号を指定します。


    注 –

    パッチディレクトリに、この章の手順よりも新しい注意事項がないかどうかを必ず確認してください。


  8. パッチが正常にインストールされていることを確認します。


    # showrev -p | grep patch-id
    
  9. ノードを再起動してクラスタに結合します。


    # reboot
    
  10. パッチが機能しており、ノードとクラスタが正常に動作していることを確認します。

  11. 残りのすべてのクラスタノードで、手順 2 から 手順 10 を繰り返します。

  12. 必要に応じて、リソースグループとデバイスグループを切り替えます。

    すべてのノードを再起動した後、最後に再起動したノードのリソースグループとデバイスグループはオンラインになりません。


    # cldevicegroup switch -n node   + | devicegroup ...
    # clresourcegroup switch -n node[:zone][,...] + | resource-group ...
    
    node

    リソースグループとデバイスグループの切り替え先のノードの名前。

    zone

    リソースグループをマスターできる、node 上の非大域ゾーンの名前。リソースグループを作成した際に非大域ゾーンを指定した場合にかぎり、zone を指定します。


例 10–1 再起動パッチの適用 (ノード)

次に、ノードに Sun Cluster 再起動パッチを適用する例を示します。


# clresourcegroup status -n rg1
...Resource Group     Resource
--------------     --------
rg1                rs-2
rg1                rs-3
...
# cldevicegroup status -n nodedg-schost-1
...
Device Group Name:											dg-schost-1
...
# clnode evacuate  phys-schost-2
# shutdown -g0 -y -i0
...

ノードを非クラスタのシングルユーザーモードで起動します。


# patchadd -M /var/tmp/patches 234567-05
...
# showrev -p | grep 234567-05

...
# reboot
...
# cldevicegroup switch -n  phys-schost-1 dg-schost-1
# clresourcegroup switch -n  phys-schost-1 schost-sa-1

参照

パッチを取り消す必要がある場合は、「Sun Cluster パッチの変更」を参照してください。

Procedure再起動パッチを適用する (クラスタ)

この手順では、パッチを適用する前にまずクラスタを停止して、boot -sx または shtudown -g -y -i0 コマンドを使用して各ノードをシングルユーザーモードで起動する必要があります。

  1. パッチを適用する前に、Sun Cluster 製品の Web サイトで、インストール前後の特別な注意事項があるかどうかを確認してください。

  2. クラスタ内にある任意のノード上でスーパーユーザーになります。

  3. クラスタを停止します。


    # cluster shutdown -y -g grace-period message
    
    -y

    確認プロンプトで yes と答えます。

    -g grace-period

    停止までの待機時間を秒単位で指定します。デフォルトの猶予期間は 60 秒です。

    message

    送信する警告メッセージを指定します。message が複数の単語の場合は、引用符で囲みます。

  4. 各ノードを非クラスタのシングルユーザーモードで起動します。

    各ノードのコンソールで、次のコマンドを実行します。

    • SPARC ベースのシステム上で、以下のコマンドを実行します。


      ok boot -sx
      
    • x86 ベースのシステム上で、以下のコマンドを実行します。


      phys-schost# shutdown -g -y -i0
      
      Press any key to continue
    1. GRUB メニューで、矢印キーを使用して適切な Solaris エントリを選択し、e を入力してそのコマンドを編集します。

      GRUB メニューは次のようになっています。


      GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
      +-------------------------------------------------------------------------+
      | Solaris 10 /sol_10_x86                                                  |
      | Solaris failsafe                                                        |
      |                                                                         |
      +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, or 'c' for a command-line.

      GRUB ベースの起動の詳細は、『Solaris のシステム管理 (基本編)』の第 11 章「GRUB ベースのブート (手順)」を参照してください。

    2. ブートパラメータの画面で、矢印キーを使用してカーネルエントリを選択し、e を入力してエントリを編集します。

      GRUB ブートパラメータの画面は、次のような画面です。


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot                                     |
      | module /platform/i86pc/boot_archive                                  |
      +----------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press 'b' to boot, 'e' to edit the selected command in the
      boot sequence, 'c' for a command-line, 'o' to open a new line
      after ('O' for before) the selected line, 'd' to remove the
      selected line, or escape to go back to the main menu.
    3. コマンドに -sx を追加して、システムを非クラスタモードで起動することを指定します。


      [ Minimal BASH-like line editing is supported. For the first word, TAB
      lists possible command completions. Anywhere else TAB lists the possible
      completions of a device/filename. ESC at any time exits. ]
      
      grub edit> kernel /platform/i86pc/multiboot -x
    4. Enter キーを押して変更を受け入れ、ブートパラメータの画面に戻ります。

      画面には編集されたコマンドが表示されます。


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot -x                                  |
      | module /platform/i86pc/boot_archive                                  |
      +----------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press 'b' to boot, 'e' to edit the selected command in the
      boot sequence, 'c' for a command-line, 'o' to open a new line
      after ('O' for before) the selected line, 'd' to remove the
      selected line, or escape to go back to the main menu.-
    5. b を入力してノードを非クラスタモードで起動します。


      注 –

      カーネル起動パラメータコマンドへのこの変更は、システムを起動すると無効になります。次にノードを再起動する際には、ノードはクラスタモードで起動します。クラスタモードではなく、非クラスタモードで起動するには、これらの手順を再度実行して、カーネル起動パラメータコマンドに -sx オプションを追加します。


  5. ソフトウェアパッチまたはファームウェアパッチを適用します。

    一度に 1 つのノードずつ、次のコマンドを実行します。


    # patchadd -M patch-dir patch-id
    
    patch-dir

    パッチのディレクトリの場所を指定します。

    patch-id

    特定のパッチのパッチ番号を指定します。


    注 –

    パッチディレクトリに、この章の手順よりも新しい注意事項がないかどうかを必ず確認してください。


  6. パッチが各ノードに正常にインストールされていることを確認します。


    # showrev -p | grep patch-id
    
  7. パッチをすべてのノードに適用したなら、ノードを再起動してクラスタに結合します。

    各ノードで次のコマンドを実行します。


    # reboot
    
  8. パッチが機能しており、ノードとクラスタが正常に動作していることを確認します。


例 10–2 再起動パッチの適用 (クラスタ)

次に、クラスタに Sun Cluster 再起動パッチを適用する例を示します。


# cluster shutdown -g0 -y
...

クラスタを非クラスタのシングルユーザーモードで起動します。


...
# patchadd -M /var/tmp/patches 234567-05
(Apply patch to other cluster nodes)
...
# showrev -p | grep 234567-05
# reboot

参照

パッチを取り消す必要がある場合は、「Sun Cluster パッチの変更」を参照してください。

Procedure非再起動 Sun Cluster パッチを適用する

パッチを一度にクラスタの 1 つのノードだけに適用します。非再起動パッチを適用するときは、パッチを適用するノードを停止する必要はありません。

  1. パッチを適用する前に、Sun Cluster 製品の Web ページで、インストール前後の特別な注意事項があるかどうかを確認してください。

  2. ひとつのノードにパッチを適用します。


    # patchadd -M patch-dir patch-id
    
    patch-dir

    パッチのディレクトリの場所を指定します。

    patch-id

    特定のパッチのパッチ番号を指定します。

  3. パッチが正常にインストールされていることを確認します。


    # showrev -p | grep patch-id
    
  4. パッチが機能しており、ノードとクラスタが正常に動作していることを確認します。

  5. 残りのクラスタノードで、手順 2 から 手順 4 を繰り返します。


例 10–3 非再起動 Sun Cluster パッチの適用


# patchadd -M /tmp/patches 234567-05
...
# showrev -p | grep 234567-05

参照

パッチを取り消す必要がある場合は、「Sun Cluster パッチの変更」を参照してください。

Procedureシングルユーザーモードでフェイルオーバーゾーンにパッチを適用する

シングルユーザーモードでフェイルオーバーゾーンにパッチを適用するには、この作業を実行します。このパッチ方法は、Sun Cluster とのフェイルオーバー構成で Sun Cluster データサービスを Solaris コンテナに使用する場合に必要です。

  1. 定足数デバイスが、この手順内で手動で採用されるゾーンパスがディスクセットの一部である共有ストレージの LUN 用に構成されていないことを確認してください。

    1. 定足数デバイスがゾーンパスを含むディスクセット内で使用されるかどうか、および定足数デバイスが scsi2 または scsi3 の予約を使用するかどうかを判断します。


      # clquorum show
      
    2. 定足数デバイスがディスクセットの LUN 内にある場合は、ゾーンパスを含むいずれのディスクセットにも属さない定足数デバイスとして、新しい LUN を追加します。


      # clquorum add new-didname
      
    3. 古い定足数デバイスを削除してください。


      # clquorum remove old-didname
      
    4. scsi2 の予約が古い定足数デバイスに使用されている場合は、古い定足数から scsi2 の予約を消し込み、scsi2 の予約が残っていないことを確認してください。


      # /usr/cluster/lib/sc/pgre -c pgre_scrub -d /dev/did/rdsk/old-didnames2
      # /usr/cluster/lib/sc/pgre -c pgre_inkeys -d /dev/did/rdsk/old-didnames2
      

      注 –

      アクティブな定足数デバイスの予約キーを誤って消し込んだ場合は、定足数デバイスを削除してから再度追加し、定足数デバイスに新しい予約キーを付ける必要があります。


  2. パッチを適用するノードを退避します。


    # clresourcegroup evacuate -n node1
    
  3. HA Solaris コンテナリソースを含む 1 つまたは複数のリソースグループをオフラインにします。


    # clresourcegroup offline resourcegroupname
    
  4. リソースグループ内のオフラインにしたすべてのリソースを無効にします。


    # clresource disable resourcename
    
  5. オフラインにしたリソースグループをアンマネージします。


    # clresourcegroup unmanage resourcegroupname
    
  6. 対応する 1 つまたは複数のデバイスグループをオフラインにします。


    # cldevicegroup offline cldevicegroupname
    
  7. オフラインにしたデバイスグループを無効にします。


    # cldevicegroup disable devicegroupname
    
  8. クラスタからパッシブノードを起動します。


    # reboot -- -x
    
  9. 次に進む前に、SMF 起動メソッドがパッシブノードで完了していることを確認してください。


    # svcs -x
    
  10. アクティブノード上の再構成プロセスがすべて完了していることを確認してください。


    # cluster status
    
  11. ディスクセット内のディスクに scsi3 の予約があるかどうかを判断します。

    1. ディスクセット内のすべてのディスクに対して次のコマンドを実行します。


      # /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/didnames2
      
    2. キーが一覧表示される場合は、消し込みます。


      # /usr/cluster/lib/sc/scsi -c scrub -d /dev/did/rdsk/didnames2
      
  12. パッシブノード上のメタセットの所有権を取得します。


    # metaset -s disksetname -C take -f
    
  13. パッシブノード上のゾーンパスを含む 1 つまたは複数のファイルシステムをマウントします。


    # mount device mountpoint
    
  14. パッシブノード上でシングルユーザーモードに切り替えます。


    # init s
    
  15. 起動されたゾーンのうち、Solaris コンテナ用 Sun Cluster データサービスによって制御されていないゾーンをすべて停止します。


    # zoneadm -z zonename halt
    
  16. (省略可能) 複数のパッチをインストールする場合は、パフォーマンス上の理由から、すべての構成されたゾーンをシングルユーザーモードで起動することを選択できます。


    # zoneadm -z zonename boot -s
    
  17. パッチを適用します。

  18. ノードを再起動し、ノードのすべての SMF 起動メソッドが完了するまで待機します。ノードが再起動したあとではじめて svcs -a コマンドを実行します。


    # reboot
    

    # svcs -a
    

    これで最初のノードの準備が整いました。

  19. パッチを適用する 2 番目のノードを退避します。


    # clresourcegroup evacuate -n node2
    
  20. 2 番目のノードに対して、手順 8 から手順 13 を繰り返します。

  21. パッチプロセスの速度を上げるため、パッチを適用済のゾーンを切り離します。


    # zoneadm -z zonename detach
    
  22. パッシブノード上でシングルユーザーモードに切り替えます。


    # init s
    
  23. 起動されたゾーンのうち、Solaris コンテナ用 Sun Cluster データサービスによって制御されていないゾーンをすべて停止します。


    # zoneadm -z zonename halt
    
  24. (省略可能) 複数のパッチをインストールする場合は、パフォーマンス上の理由から、すべての構成されたゾーンをシングルユーザーモードで起動することを選択できます。


    # zoneadm -z zonename boot -s
    
  25. パッチを適用します。

  26. 切り離したゾーンを接続します。


    # zoneadm -z zonename attach -F
    
  27. ノードをクラスタモードで再起動します。


    # reboot
    
  28. 1 つまたは複数のデバイスグループをオンラインにします。

  29. リソースグループを起動します。

Sun Cluster パッチの変更

クラスタに適用した Sun Cluster パッチを削除するには、まず新しい Sun Cluster パッチを削除してから、以前のパッチを再適用するか、リリースを更新します。新しい Sun Cluster パッチを削除するには、次に示す手順を参照してください。以前の Sun Cluster パッチを再適用するには、次に示す手順のいずれかを参照してください。


注 –

Sun Cluster パッチを適用する前に、パッチの README ファイルを確認してください。


Procedure非再起動 Sun Cluster パッチを削除する

  1. クラスタ内にある任意のノード上でスーパーユーザーになります。

  2. 非再起動パッチを削除します。


    # patchrm patchid
    

Procedure再起動 Sun Cluster パッチを削除する

  1. クラスタ内にある任意のノード上でスーパーユーザーになります。

  2. クラスタノードを非クラスタモードで起動します。ノードの非クラスタモードでの起動についての詳細は、「非クラスタモードでクラスタノードを起動する」を参照してください。

  3. 再起動パッチを削除します。


    # patchrm patchid
    
  4. クラスタノードをふたたびクラスタモードで再起動します。


    # reboot
    
  5. 各クラスタノードに対して、手順 2 から手順 4 を繰り返します。