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

Sun Cluster ソフトウェアへのパッチの適用

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

作業 

参照先 

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

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

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

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

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

クラスタにフェイルオーバーノードが含まれる場合、シングルユーザーモードでパッチを適用 

「フェイルオーバーノード構成をしている場合に、シングルユーザーモードでパッチを適用する」

Sun Cluster パッチを削除 

「Sun Cluster パッチの変更」

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

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

phys-schost# プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Sun Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。コマンドのリストとその短縮形については、付録 B 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 のシステム管理 (基本編) 』「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。

    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 -sx
    4. Enter キーを押して変更を受け入れ、ブートパラメータの画面に戻ります。

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


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot -sx                                  |
      | 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 を指定します。

  13. scversions コマンドを使用し、パッチソフトウェアをコミットする必要があるかどうかを確認してください。


    # /usr/cluster/bin/scversions
    

    結果として、次に示すメッセージのどちらか一方が表示されます。


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  14. コミットが必要な場合は、パッチソフトウェアをコミットします。


    # scversions -c
    

    注 –

    scversions を実行すると、状況に応じて 1 つ以上の CMM 再構成が発生します。



例 11–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
# scversions
Upgrade commit is needed.
# scversions -c

参照

パッチを取り消す必要がある場合は、「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 のシステム管理 (基本編) 』「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。

    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 -sx
    4. Enter キーを押して変更を受け入れ、ブートパラメータの画面に戻ります。

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


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot -sx                                  |
      | 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. scversions コマンドを使用し、パッチソフトウェアをコミットする必要があるかどうかを確認してください。


    # /usr/cluster/bin/scversions
    

    結果として、次に示すメッセージのどちらか一方が表示されます。


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  9. コミットが必要な場合は、パッチソフトウェアをコミットします。


    # scversions -c
    

    注 –

    scversions を実行すると、状況に応じて 1 つ以上の CMM 再構成が発生します。


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


例 11–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
# scversions
Upgrade commit is needed.
# scversions -c

参照

パッチを取り消す必要がある場合は、「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 を繰り返します。

  6. scversions コマンドを使用し、パッチソフトウェアをコミットする必要があるかどうかを確認してください。


    # /usr/cluster/bin/scversions
    

    結果として、次に示すメッセージのどちらか一方が表示されます。


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  7. コミットが必要な場合は、パッチソフトウェアをコミットします。


    # scversions -c
    

    注 –

    scversions を実行すると、状況に応じて 1 つ以上の CMM 再構成が発生します。



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


# patchadd -M /tmp/patches 234567-05
...
# showrev -p | grep 234567-05
# scversions
Upgrade commit is needed.
# scversions -c

参照

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

Procedureフェイルオーバーノード構成をしている場合に、シングルユーザーモードでパッチを適用する

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

  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. ディスクセット内のディスクに SCSI-2 予約があるかどうかを調べて、キーを解放します。次の手順に従って、SCSI-2 予約が存在するかどうかを確認し、SCSI-2 予約を解放します。

    • ディスクセット内のすべてのディスクについて、コマンド /usr/cluster/lib/sc/scsi -c disfailfast -d /dev/did/rdsk/d#s2 を実行します。

    • キーがリストされている場合は、コマンド /usr/cluster/lib/sc/scsi -c release -d /dev/did/rdsk/d#s2 を実行してキーを解放します。

    予約キーの解放が終了したら、手順 12 をスキップして、手順 13 に進みます。

  12. ディスクセット内のディスクに SCSI-3 予約があるかどうかを調べます。

    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
      
  13. パッシブノード上のメタセットの所有権を得ます。


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


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


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


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


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

  19. ノードを再起動して、SMF 起動方法が終了するまで待ちます。ノードが再起動したあとで はじめて svcs -a コマンドを実行します。


    # reboot
    

    # svcs -a
    

    最初のノードの準備ができました。

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


    # clresourcegroup evacuate -n node2
    
  21. 2 番目のノードで手順 8 ~ 13 を繰り返します。

  22. パッチプロセスを高速化するために、すでにパッチを適用したゾーンを切り離します。


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


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


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


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

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


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


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

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

  31. scversions コマンドを使用し、パッチソフトウェアをコミットする必要があるかどうかを確認してください。


    # /usr/cluster/bin/scversions
    

    結果として、次に示すメッセージのどちらか一方が表示されます。


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  32. コミットが必要な場合は、パッチソフトウェアをコミットします。


    # scversions -c
    

    注 –

    scversions を実行すると、状況に応じて 1 つ以上の CMM 再構成が発生します。


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 を繰り返します。