ページの先頭行へ戻る
PRIMECLUSTER 導入運用手引書 4.3

H.5.2 グローバルゾーン上での保守作業

グローバルゾーンへのPRIMECLUSTERのパッチの適用手順は“第10章 PRIMECLUSTERシステムの保守”に従います。ただし、OSのパッチ等で、グローバルゾーンにパッチを適用した場合、ノングローバルゾーンにも適用されるパッチがあります。その場合、ノングローバルゾーンのイメージをクラスタノード間で共有する構成とした場合と、共用しない構成とした場合で手順が異なります。それぞれ以下の手順でパッチを適用してください。

ノングローバルゾーンイメージをクラスタノード間で共有する構成のパッチ適用手順

各手順はすべてのグローバルゾーンで実施してください。いずれかのグローバルゾーンでのみ行う場合は、手順に明記しています。

  1. RMSを停止します。

    いずれかのグローバルゾーンで以下のコマンドを実行します。

    # /opt/SMAW/bin/hvshut -a

    RMSが停止したことを確認します。

    # /opt/SMAW/bin/hvdisp -a
    hvdisp: RMS is not running #
  2. RMSの自動起動を無効にするため、“/opt/SMAW/SMAWRrms/bin/hvenv.local”ファイルを編集します。

    “/opt/SMAW/SMAWRrms/bin/hvenv.local”ファイルが存在しない場合、ファイルを作成(ファイルのアクセス権を644で作成)し、[変更後]の行を追記します。

    [変更前]

    export HV_RCSTART=1

    [変更後]

    export HV_RCSTART=0

    ファイル編集後、「HV_RCSTART」の値が「0」になっていることを確認します。

    # cat /opt/SMAW/SMAWRrms/bin/hvenv.local
    export HV_RCSTART=0
  3. シングルユーザモードでシステムを起動しなおします。

    # shutdown -g0 -i0 -y

    各グローバルゾーンのコンソールに接続します。コンソールでok プロンプトが表示されたら、以下を実行します。

    ok boot -s
  4. シングルユーザモードでログインし、ファイルシステムをマウントします。

    # mountall -l
    # zfs mount -a
  5. すべてのノングローバルゾーンがデタッチされていることを確認します。

    “zoneadm list -vc”コマンドの出力結果でノングローバルゾーンのSTATUSが「configured」となっていれば、ノングローバルゾーンはデタッチされています。

    ノングローバルゾーン名:zone-a、ゾーンパス:/zone-a-systemの場合

    # zoneadm list -vc
    ID NAME STATUS PATH BRAND IP 0 global running / native shared - zone-a configured /zone-a-system native shared
  6. パッチを適用します。

    Solaris 10のOSのパッチの場合

    # patchadd <パッチ番号>

    注意

    • すべてのグローバルゾーンに適用するパッチは同じレベルにしてください。

    • ローリングアップデートによるパッチ適用はサポートしていません。

    • 複数のパッチを適用する場合、ここですべてのパッチを適用してください。

  7. マルチユーザモードで再起動します。

    # shutdown -i6 -g0 -y
  8. RMSが停止していることを確認します。

    # /opt/SMAW/bin/hvdisp -a
    hvdisp: RMS is not running
  9. いずれかのグローバルゾーンでノングローバルゾーンがインストールされているGDSボリュームを起動します。

    # sdxvolume -N -c class0001 -v volume0001
  10. 手順9を実施したグローバルゾーンでノングローバルゾーンに対応するGDSボリュームをマウントします。

    各ノングローバルゾーンのマウントポイントは/etc/vfstab.pclで確認可能です。

    ゾーンパ:/zone-a-systemの場合

    # cat /etc/vfstab.pcl
    …省略…
    #RMS#/dev/sfdsk/class0001/dsk/volume0001 /dev/sfdsk/class0001/rdsk/volume0001 /zone-a-system  ufs - no -

    この例の場合、以下のようにマウントします。

    # mount -F ufs /dev/sfdsk/class0001/dsk/volume0001 /zone-a-system
  11. 手順9を実施したグローバルゾーンでノングローバルゾーン(例:ノングローバルゾーン名がzone-aの場合)をアタッチすることによりパッチが適用されます。

    # zoneadm -z zone-a attach -u

    注意

    • 適用情報は画面で表示されるため、エラーがないことを確認してください。

    • 適用ログはノングローバルゾーンの“/var/sadm/system/logs/update_log”で確認できます。

  12. 手順9を実施したグローバルゾーンでノングローバルゾーンがアタッチされていることを確認します。

    ノングローバルゾーンのSTATUSが「installed」であることで判断できます。

    ノングローバルゾーン名:zone-a、ゾーンパス:/zone-a-systemの場合

    # zoneadm list -vc
    ID NAME             STATUS     PATH             BRAND    IP
    0  global           running    /                native   shared
    -  zone-a           installed  /zone-a-system   native   shared

    ノングローバルゾーンにパッチが適用されたことを確認したい場合、以下の手順13~18を実施してください。確認不要の場合、手順19に進んでください。

  13. 手順9を実施したグローバルゾーンでノングローバルゾーンを起動します。

    # zoneadm -z zone-a boot

    以下のコマンドによりノングローバルゾーンが起動していることが確認できます。

    # zoneadm list -vc 
    ID NAME            STATUS     PATH            BRAND    IP
    0  global          running    /               native   shared
    1  zone-a          running    /zone-a-system  native   shared
  14. 手順9を実施したグローバルゾーンでノングローバルゾーンにログインします。

    # zlogin zone-a
  15. ノングローバルゾーンでパッチ適用されることを確認します。

    Solaris 10のOSのパッチの場合

    [zone-a]# showrev -p | grep <パッチ番号>
  16. ノングローバルゾーンからログアウトします。

    [zone-a]# exit
  17. 手順9を実施したグローバルゾーンでノングローバルゾーンを停止します。

    # zlogin zone-a shutdown -i0 -g0 -y
  18. 手順9を実施したグローバルゾーンでノングローバルゾーンをデタッチします。

    # zoneadm -z zone-a detach

    zone-aがデタッチされていることを確認してください。

    zone-aのSTATUSが「configured」であることで判断できます。

    #zoneadm list -vc
    ID NAME STATUS PATH BRAND IP 0 global running / native shared - zone-a configured /zone-a-system native shared
  19. 手順2.でRMSの自動起動を変更した場合は、RMSの自動起動を有効とするため、“/opt/SMAW/SMAWRrms/bin/hvenv.local”ファイルを編集します。

    [変更前]

    export HV_RCSTART=0

    [変更後]

    export HV_RCSTART=1

    ファイル編集後、「HV_RCSTART」の値が「1」になっていることを確認します。

    # cat /opt/SMAW/SMAWRrms/bin/hvenv.local
    export HV_RCSTART=1
  20. システムを再起動します。

    # shutdown -i6 -g0 -y

    起動後、全グローバルゾーンでRMSが起動していることを確認してください。

    # /opt/SMAW/bin/hvdisp -a
    Local System:  GZARMS
    Configuration: /opt/SMAW/SMAWRrms/build/config.us
    Resource                  Type    HostName            State      StateDetails
    -----------------------------------------------------------------------------
    GZBRMS                    SysNode                     Online      
    GZARMS                    SysNode                     Online
    userApp_0                 userApp                     Online
    Machine001_userApp_0      andOp   GZBRMS 
    Machine000_userApp_0      andOp   GZARMS              Online
    ManageProgram000_Cmdline0 gRes                        Online
    MountPoint001_Fsystem0    gRes                        Online
    AllDiskClassesOk_Gds0     andOp                       Online
    class0001_Gds0            gRes                        Online
    
    #

ノングローバルゾーンイメージをクラスタノード間で共有しない構成のパッチ適用手順

通常の手順どおりにグローバルゾーンにパッチを当ててください。ローリングアップデートによるパッチ適用を行う場合、以下の例を参考にしてください。各手順はすべてグローバルゾーンで実施してください。

例)運用系グローバルゾーンGZA、待機系グローバルゾーンGZBに、ローリングアップデートによるパッチ適用を行う場合。

  1. クラスタアプリケーションが動作している場合は、全てのクラスタアプリケーションを待機系に切替えてください。

    GZA上で以下のコマンドを実行し、待機系GZBにクラスタアプリケーションを切替えます。

    # hvswitch userApp_0 GZBRMS

    “userApp_0”はグローバルゾーン上のクラスタアプリケーション名、“GZBRMS”はSysNode名です。

    GZAでユーザアプリケーションがOfflineになっていることを確認します。

    # /opt/SMAW/bin/hvdisp -a
    Local System:  GZBRMS
    Configuration: /opt/SMAW/SMAWRrms/build/config.us
    Resource                  Type    HostName            State      StateDetails
    -----------------------------------------------------------------------------
    GZARMS                    SysNode                     Online
    GZBRMS                    SysNode                     Online
    userApp_0                 userApp                     Standby
    userApp_0                 userApp GZARMS              Online
    Machine001_userApp_0      andOp   GZBRMS              Offline
    Machine000_userApp_0      andOp   GZARMS
    ManageProgram000_Cmdline0 gRes                        Standby
    
    #
  2. シングルユーザモードでGZAを起動しなおします。

    # shutdown -g0 -i0 -y

    GZAのコンソールに接続します。コンソールでok プロンプトが表示されたら、以下を実行します。

    ok boot -s
  3. GZAを シングルユーザモードでログインし、ファイルシステムをマウントします。

    # mountall -l
    # zfs mount -a
  4. コールドスタンバイの場合、ノングローバルゾーンをアタッチしてください。

    # zoneadm -z zone-a attach
  5. GZAでノングローバルゾーンがアタッチされていることを確認してください。

    “zoneadm list -vc”コマンドの出力結果でノングローバルゾーンのSTATUSが「installed」となっていれば、ノングローバルゾーンはアタッチされています。

    ノングローバルゾーン名:zone-a、ゾーンパス:/zone-a-systemの場合

    # zoneadm list -vc
    ID NAME STATUS PATH BRAND IP 0 global running / native shared - zone-a installed /zone-a-system native excl
  6. GZAでパッチを適用します。

    Solaris 10のOSのパッチの場合

    # patchadd <パッチ番号>

    注意

    • すべてのグローバルゾーンに適用するパッチは同じレベルにしてください。

    • 複数のパッチを適用する場合、ここですべてのパッチを適用してください。

  7. コールドスタンバイの場合、ノングローバルゾーンをデタッチしてください。

    # zoneadm -z zone-a detach
  8. マルチユーザモードでGZAを再起動します。

    # shutdown -i6 -g0 -y

    起動後、全グローバルゾーンでRMSが起動していることを確認してください。また、GZAでuserAppがStandby、GZBでuserAppがOnlineになっていることを確認してください。

    GZAの場合

    # /opt/SMAW/bin/hvdisp -a
    Local System: GZARMS Configuration: /opt/SMAW/SMAWRrms/build/config.us Resource Type HostName State StateDetails ----------------------------------------------------------------------------- GZBRMS SysNode Online GZARMS SysNode Online userApp_0 userApp Standby userApp_0 userApp GZBRMS Online Machine001_userApp_0 andOp GZARMS Offline Machine000_userApp_0 andOp GZBRMS ManageProgram000_Cmdline0 gRes #

    GZBの場合

    # /opt/SMAW/bin/hvdisp -a
    Local System: GZBRMS Configuration: /opt/SMAW/SMAWRrms/build/config.us Resource Type HostName State StateDetails ----------------------------------------------------------------------------- GZARMS      SysNode Online GZBRMS SysNode Online userApp_0 userApp Online Machine001_userApp_0 andOp GZARMS Machine000_userApp_0 andOp GZBRMS Online ManageProgram000_Cmdline0 gRes Online #
  9. GZBにもパッチを適用します。手順 1)から 8)までを繰り返してください。ただし、手順中のGZAはGZBに、GZBはGZAに置き換えてください。