Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


18.35.3 Azure環境でのマルチノード構成の構築

Azure環境でのマルチノード構成の構築手順について説明します。ここでの説明は,HAモニタありのマルチノード構成の新規導入を前提としています。

〈この項の構成〉

(1) HAモニタのインストール

プライマリノードおよび全セカンダリノードの仮想マシンにHAモニタをインストールしてください。HAモニタのインストール方法については,マニュアルHAモニタ パブリッククラウド編システムの構築を参照してください。

メモ

ワーカーノードはHAモニタの管理対象外のため,ワーカーノードの仮想マシンにはHAモニタをインストールする必要はありません。

(2) HADBサーバのインストールおよび環境設定

全ノードの仮想マシンにHADBサーバをインストールし,環境設定を行ってください。詳細については,「18.4.2 HADBサーバのインストールおよび環境設定」を参照してください。

(3) HADBクライアントのインストールおよび環境設定

HADBクライアントのインストール,および環境設定については,マニュアルHADB AP開発ガイドHADBクライアントの環境設定(ODBCドライバおよびCLI関数を使用する場合)を参照してください。

(4) udevルールの設定

各仮想マシンで使用するノード切り替え対象のファイルシステムのデバイス名を固定するために,プライマリノードおよびセカンダリノードの仮想マシンでudevルールを設定してください。ワーカーノードの仮想マシンでは,udevルールを設定する必要はありません。

手順

次のすべての操作は,OSのスーパユーザで実行してください。

  1. udevルールファイルを作成する

    /etc/udev/rules.dディレクトリ下に,ディスクのデバイス名を固定するためのudevルールファイル(/etc/udev/rules.d/99-hadb.rules)を作成してください。

    <udevルールファイルの指定例>

    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="XXXXXXXXXXXX", SYMLINK+="hadb_sys"

    下線部分には,システムディレクトリ用のファイルシステムで使用するマネージドディスク(Premium SSD)を指定してください。

  2. 全ノードのOSを再起動する

    設定したudevルールを反映させるために,全ノードのOSを再起動してください。

(5) HAモニタの環境設定

プライマリノードおよび全セカンダリノードの仮想マシンでHAモニタの環境設定をしてください。HAモニタの環境設定方法については,マニュアルHAモニタ Linux(R)(x86)編システムの構築,およびマニュアルHAモニタ パブリッククラウド編システムの構築を参照してください。

ここでは,HAモニタの環境設定をする際に留意することについて説明します。

メモ

HAモニタの環境設定は,プライマリノードおよびセカンダリノードの仮想マシンで実施します。ワーカーノードの仮想マシンでは,HAモニタの環境設定は必要ありません。

(a) 環境変数の設定

設定する環境変数については,「18.4.4 HAモニタの環境設定」の「(1) 環境変数の設定」を参照してください。

(b) sysdefファイルの作成

HAモニタのsysdefファイルを作成してください。

指定値が決まっているオペランド

HAモニタのsysdefファイルに指定するオペランドのうち,次のオペランドは指定値が決まっています。

  • public_cloudオペランド

    useを指定してください。

    public_cloudオペランドの詳細については,マニュアルHAモニタ パブリッククラウド編パブリッククラウド環境固有のHAモニタの環境設定を参照してください。

  • usrcommandオペランド

    このオペランドの指定は省略してください。

  • fence_resetオペランド,fence_scsiオペランド,およびfence_lanオペランド

    これらのオペランドの指定は省略してください。

次のオペランドの指定値については,「18.4.4 HAモニタの環境設定」の「(2) sysdefファイルの指定」を参照してください。

  • addressオペランド

  • monbegin_restartオペランド

  • multistandbyオペランド

  • termcmd_at_abortオペランド

メモ

上記のオペランド(public_cloudオペランドを除く)の詳細については,マニュアルHAモニタ Linux(R)(x86)編HAモニタの環境設定(sysdef)を参照してください。

sysdefファイルの指定例

ここでの指定例は,「図18‒16 Azure環境でのシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。

  • プライマリノード(hadb01)のsysdefファイルの指定例

    environment  name hadb01,
                 address 1,              ...1
                 patrol 30,              ...2
                 lan path11,             ...3
                 lanport HAmon1;         ...4
    function     pathpatrol 240,
                 connect_retry 5:200,
                 monbegin_restart nouse,
                 multistandby use,
                 termcmd_at_abort nouse,
                 public_cloud use;       ...5

    [説明]

    1. このノードのリセット優先度を指定します。このノードは,プライマリノードのため,リセット優先度をいちばん高くする必要があるので1を指定します。

    2. patrolオペランドには,30以下の値を指定してください。

    3. HAモニタの監視パスとして使用するLANのホスト名を指定します。IPアドレス172.16.0.11に対応するホスト名path11を指定します。

    4. HAモニタの監視パスとして使用するLANのサービス名を指定します。ポート番号7777に対応するサービス名HAmon1を指定します。

    5. Azure環境でHAモニタを使用するため,useを指定します。

  • セカンダリノード(hadb02)のsysdefファイルの指定例

    environment  name hadb02,
                 address 2,              ...1
                 patrol 30,              ...2
                 lan path21,             ...3
                 lanport HAmon1;         ...4
    function     pathpatrol 240,
                 connect_retry 5:200,
                 monbegin_restart nouse,
                 multistandby use,
                 termcmd_at_abort nouse,
                 public_cloud use;       ...5

    [説明]

    1. このノードのリセット優先度を指定します。このノードは,プライマリノードの次にリセット優先度を高くしたいため,2を指定します。

    2. patrolオペランドには,30以下の値を指定してください。

    3. HAモニタの監視パスとして使用するLANのホスト名を指定します。IPアドレス172.16.0.12に対応するホスト名path21を指定します。

    4. HAモニタの監視パスとして使用するLANのサービス名を指定します。ポート番号7777に対応するサービス名HAmon1を指定します。

    5. Azure環境でHAモニタを使用するため,useを指定します。

  • セカンダリノード(hadb03)のsysdefファイルの指定例

    environment  name hadb03,
                 address 3,              ...1
                 patrol 30,              ...2
                 lan path31,             ...3
                 lanport HAmon1;         ...4
    function     pathpatrol 240,
                 connect_retry 5:200,
                 monbegin_restart nouse,
                 multistandby use,
                 termcmd_at_abort nouse,
                 public_cloud use;       ...5

    [説明]

    1. このノードのリセット優先度を指定します。このノードは,セカンダリノードhadb02の次にリセット優先度を高くしたいため,3を指定します。

    2. patrolオペランドには,30以下の値を指定してください。

    3. HAモニタの監視パスとして使用するLANのホスト名を指定します。IPアドレス172.16.0.13に対応するホスト名path31を指定します。

    4. HAモニタの監視パスとして使用するLANのサービス名を指定します。ポート番号7777に対応するサービス名HAmon1を指定します。

    5. Azure環境でHAモニタを使用するため,useを指定します。

(c) serversファイルの作成

HAモニタのserversファイルを作成してください。

serversファイルの次のオペランドの指定値については「18.4.4 HAモニタの環境設定」の「(3) serversファイルの指定」を参照してください。

  • nameオペランド

  • acttypeオペランド

  • termcommandオペランド

  • initialオペランド

  • lan_updownオペランド

  • servexec_retryオペランド

  • waitserv_execオペランド

  • ip_neckオペランド

  • uoc_neckオペランド

  • fs_neckオペランド

  • actcommandオペランド

  • standbypriオペランド

serversファイルの次のオペランドについては,指定値が決まっています。

  • patrolcommandオペランド

    このオペランドの指定は省略してください。

  • ptrlcmd_exオペランド

    HADB用の設定を記述したサーバの監視コマンドファイルの絶対パスを指定してください。サーバの監視コマンドファイルはひな形を基に作成してください。作成方法については,「(h) サーバの監視コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編サーバの監視コマンドの作成を参照してください。

  • ptrlcmd_ex_interオペランド

    3を指定してください。

  • ptrlcmd_ex_retryオペランド

    0を指定してください。

  • ptrlcmd_ex_tmoutオペランド

    5を指定してください。

  • sby_termcommandオペランド

    HADB用の設定を記述した待機サーバの停止コマンドの絶対パスを指定してください。待機サーバの停止コマンドはひな形を基に作成してください。作成方法については,「(i) 待機サーバの停止コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編待機サーバの停止時に実行するコマンドの作成を参照してください。

  • sby_ptrlcmd_exオペランド

    HADB用の設定を記述した待機サーバの監視コマンドの絶対パスを指定してください。待機サーバの監視コマンドはひな形を基に作成してください。作成方法については,「(j) 待機サーバの監視コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編待機サーバの監視時に実行するコマンドの作成を参照してください。

  • sby_ptrlcmd_ex_interオペランド

    3を指定してください。

  • sby_ptrlcmd_ex_retryオペランド

    0を指定してください。

  • sby_ptrlcmd_ex_tmoutオペランド

    5を指定してください。

  • scsi_deviceオペランド,dmmp_deviceオペランド

    これらのオペランドの指定は省略してください。

  • diskオペランド

    システムディレクトリのファイルシステムがあるVGの絶対パスを指定してください。

    図18‒16 Azure環境でのシステム構成例(HAモニタありのマルチノード構成)」の場合,/dev/vg_hadbを指定します。

  • fs_nameオペランド

    システムディレクトリのファイルシステムに対応する論理ボリュームの絶対パスを指定してください。

    図18‒16 Azure環境でのシステム構成例(HAモニタありのマルチノード構成)」の場合,/dev/vg_hadb/hadb_sysを指定します。

  • fs_mount_dirオペランド

    システムディレクトリのパス($DBDIR/ADBSYS)を指定してください。

  • fs_mount_optオペランド

    システムディレクトリのファイルシステムをマウントするためのマウントオプション(mountコマンドのオプション)を指定してください。

  • vg_neckオペランド

    useを指定してください。

メモ

serversファイルに指定するオペランドの詳細については,マニュアルHAモニタ Linux(R)(x86)編サーバ対応の環境設定(servers)を参照してください。

serversファイルの指定例

ここでの指定例は,「図18‒16 Azure環境でのシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。

  • プライマリノード(hadb01)のserversファイルの指定例

    server name /HADB/server,                                        ...1
           alias HADB,
           acttype monitor,
           disk /dev/vg_hadb,                                        ...2
           lan_updown use,
           fs_name /dev/vg_hadb/hadb_sys,                            ...3
           fs_mount_dir /HADB/db/ADBSYS,                             ...4
           fs_mount_opt "-t xfs -o defaults,noatime,_netdev",        ...5
           actcommand "/HADB/scripts/multinode_act.sh",              ...6
           termcommand "/HADB/scripts/multinode_term.sh",            ...7
           ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",        ...8
           ptrlcmd_ex_inter 3,
           ptrlcmd_ex_retry 0,
           ptrlcmd_ex_tmout 5,
           sby_termcommand "/HADB/scripts/multinode_sby_term.sh",    ...9
           sby_ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",    ...10
           sby_ptrlcmd_ex_inter 3,
           sby_ptrlcmd_ex_retry 0,
           sby_ptrlcmd_ex_tmout 5,
           servexec_retry 0,
           waitserv_exec yes,
           ip_neck use,
           uoc_neck nouse,
           vg_neck use,                                              ...11
           fs_neck use,                                              ...12
           initial online;                                           ...13

    [説明]

    1. サーバディレクトリの絶対パスを指定します。

    2. システムディレクトリのファイルシステムがあるVGの絶対パスを指定します。

    3. システムディレクトリのファイルシステムを作成したLVの絶対パスを指定します。

    4. システムディレクトリのファイルシステムをマウントするマウントポイントの絶対パスを指定します。

    5. システムディレクトリのファイルシステムをマウントするためのmountコマンドのオプションを指定します。

    6. マルチノード機能で使用するサーバの起動コマンドの絶対パスを指定します。

    7. マルチノード機能で使用するサーバの停止コマンドの絶対パスを指定します。

    8. マルチノード機能で使用するサーバの監視コマンドの絶対パスを指定します。

    9. マルチノード機能で使用する待機サーバの停止コマンドの絶対パスを指定します。

    10. マルチノード機能で使用する待機サーバの監視コマンドの絶対パスを指定します。

    11. システムディレクトリのファイルシステムがあるVGに対しては,useを指定します。

    12. システムディレクトリのファイルシステムに対しては,useを指定します。

    13. プライマリノードとするため,onlineを指定します。

  • セカンダリノード(hadb02)のserversファイルの指定例

    server name /HADB/server,                                        ...1
           alias HADB,
           acttype monitor,
           disk /dev/vg_hadb,                                        ...2
           lan_updown use,
           fs_name /dev/vg_hadb/hadb_sys,                            ...3
           fs_mount_dir /HADB/db/ADBSYS,                             ...4
           fs_mount_opt "-t xfs -o defaults,noatime,_netdev",        ...5
           actcommand "/HADB/scripts/multinode_act.sh",              ...6
           termcommand "/HADB/scripts/multinode_term.sh",            ...7
           ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",        ...8
           ptrlcmd_ex_inter 3,
           ptrlcmd_ex_retry 0,
           ptrlcmd_ex_tmout 5,
           sby_termcommand "/HADB/scripts/multinode_sby_term.sh",    ...9
           sby_ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",    ...10
           sby_ptrlcmd_ex_inter 3,
           sby_ptrlcmd_ex_retry 0,
           sby_ptrlcmd_ex_tmout 5,
           servexec_retry 0,
           waitserv_exec yes,
           ip_neck use,
           uoc_neck nouse,
           vg_neck use,                                              ...11
           fs_neck use,                                              ...12
           initial standby,                                          ...13
           standbypri 1;                                             ...14

    [説明]

    1. サーバディレクトリの絶対パスを指定します。

    2. システムディレクトリのファイルシステムがあるVGの絶対パスを指定します。
    3. システムディレクトリのファイルシステムを作成したLVの絶対パスを指定します。

    4. システムディレクトリのファイルシステムをマウントするマウントポイントの絶対パスを指定します。

    5. システムディレクトリのファイルシステムをマウントするためのmountコマンドのオプションを指定します。

    6. マルチノード機能で使用するサーバの起動コマンドの絶対パスを指定します。

    7. マルチノード機能で使用するサーバの停止コマンドの絶対パスを指定します。

    8. マルチノード機能で使用するサーバの監視コマンドの絶対パスを指定します。

    9. マルチノード機能で使用する待機サーバの停止コマンドの絶対パスを指定します。

    10. マルチノード機能で使用する待機サーバの監視コマンドの絶対パスを指定します。

    11. システムディレクトリのファイルシステムがあるVGに対しては,useを指定します。

    12. システムディレクトリのファイルシステムに対しては,useを指定します。

    13. セカンダリノードとするため,standbyを指定します。

    14. プライマリノードの切り替えが発生した際,新たにプライマリノードにするノードの優先順位を指定します。このノードの優先順位をいちばん高くしたいため,1を指定します。

  • セカンダリノード(hadb03)のserversファイルの指定例

    server name /HADB/server,                                        ...1
           alias HADB,
           acttype monitor,
           disk /dev/vg_hadb,                                        ...2
           lan_updown use,
           fs_name /dev/vg_hadb/hadb_sys,                            ...3
           fs_mount_dir /HADB/db/ADBSYS,                             ...4
           fs_mount_opt "-t xfs -o defaults,noatime,_netdev",        ...5
           actcommand "/HADB/scripts/multinode_act.sh",              ...6
           termcommand "/HADB/scripts/multinode_term.sh",            ...7
           ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",        ...8
           ptrlcmd_ex_inter 3,
           ptrlcmd_ex_retry 0,
           ptrlcmd_ex_tmout 5,
           sby_termcommand "/HADB/scripts/multinode_sby_term.sh",    ...9
           sby_ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",    ...10
           sby_ptrlcmd_ex_inter 3,
           sby_ptrlcmd_ex_retry 0,
           sby_ptrlcmd_ex_tmout 5,
           servexec_retry 0,
           waitserv_exec yes,
           ip_neck use,
           uoc_neck nouse,
           vg_neck use,                                              ...11
           fs_neck use,                                              ...12
           initial standby,                                          ...13
           standbypri 2;                                             ...14

    [説明]

    1. サーバディレクトリの絶対パスを指定します。

    2. システムディレクトリのファイルシステムがあるVGの絶対パスを指定します。

    3. システムディレクトリのファイルシステムを作成したLVの絶対パスを指定します。

    4. システムディレクトリのファイルシステムをマウントするマウントポイントの絶対パスを指定します。

    5. システムディレクトリのファイルシステムをマウントするためのmountコマンドのオプションを指定します。

    6. マルチノード機能で使用するサーバの起動コマンドの絶対パスを指定します。

    7. マルチノード機能で使用するサーバの停止コマンドの絶対パスを指定します。

    8. マルチノード機能で使用するサーバの監視コマンドの絶対パスを指定します。

    9. マルチノード機能で使用する待機サーバの停止コマンドの絶対パスを指定します。

    10. マルチノード機能で使用する待機サーバの監視コマンドの絶対パスを指定します。

    11. システムディレクトリのファイルシステムがあるVGに対しては,useを指定します。

    12. システムディレクトリのファイルシステムに対しては,useを指定します。

    13. セカンダリノードとするため,standbyを指定します。

    14. プライマリノードの切り替えが発生した際,新たにプライマリノードにするノードの優先順位を指定します。このノードの優先順位は,セカンダリノード(hadb02)の次にしたいため,2を指定します。

(d) HAモニタの接続構成設定ファイルの作成(connectionファイルの作成)

Azure環境の場合,接続構成設定ファイルを手動で作成してください。手動での作成方法については,マニュアルHAモニタ Linux(R)(x86)編HAモニタの接続構成設定ファイルの作成を参照してください。接続構成設定ファイルには,プライマリノードおよびセカンダリノードに作成したsysdefファイルのnameオペランドに指定したホスト名と,監視パスに使用するIPアドレスの組を指定します。

HAモニタの接続構成設定ファイル(connectionファイル)の指定例

HAモニタの接続構成設定ファイル(connectionファイル)の指定例を次に示します。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。

なお,ここでの指定例は,「図18‒16 Azure環境でのシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。

hadb01 LAN 172.16.0.11;       ...1
hadb02 LAN 172.16.0.12;       ...2
hadb03 LAN 172.16.0.13;       ...3

[説明]

  1. プライマリノード(hadb01)の監視パスで使用するIPアドレス172.16.0.11を指定します。

  2. セカンダリノード(hadb02)の監視パスで使用するIPアドレス172.16.0.12を指定します。

  3. セカンダリノード(hadb03)の監視パスで使用するIPアドレス172.16.0.13を指定します。

HAモニタの接続構成設定ファイルの指定方法の詳細については,マニュアルHAモニタ Linux(R)(x86)編HAモニタの接続構成設定ファイルの作成を参照してください。

(e) コマンド用環境変数定義ファイルの作成

HAモニタとの連携のために,コマンド用環境変数定義ファイルを作成してください。

$ADBDIR/sample/scripts/multinode.envが,コマンド用環境変数定義ファイルのひな形です。このひな形をコピーして,次の値を修正してください。

  • 環境変数ADBMGR

    HADB管理者(OSユーザ)のユーザ名を指定してください。

  • 環境変数ADBALIAS

    HAモニタのserversファイルのaliasオペランドの指定値を指定してください。

  • 環境変数ADBDIR

    サーバディレクトリの絶対パスを指定してください。

■コマンド用環境変数定義ファイルの指定例

この例では,コマンド用環境変数定義ファイルを/HADB/scripts/multinode.envに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。

#!/bin/sh

# The environment variables for HADB
export ADBMGR=adbmanager                  ...1
export ADBALIAS=HADB                      ...2
export ADBDIR=/HADB/server                ...3

[説明]

  1. HADB管理者(OSユーザ)のユーザ名adbmanagerを指定します。

  2. HAモニタのserversファイルのaliasオペランドの指定値であるHADBを指定します。

  3. サーバディレクトリの絶対パスを指定します。

(f) サーバの起動コマンドファイルの作成

HAモニタとの連携のために,サーバの起動コマンドファイルを作成してください。

$ADBDIR/sample/scripts/multinode_act.shが,サーバの起動コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。

  • source

    source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。

サーバの起動コマンドファイルの指定例については,「18.4.4 HAモニタの環境設定」の「(5) 各ファイルの指定例(系のリセットを使用する場合)」の「(e) サーバの起動コマンドファイルの指定例」を参照してください。

(g) サーバの停止コマンドファイルの作成

HAモニタとの連携のために,サーバの停止コマンドファイルを作成してください。

$ADBDIR/sample/scripts/multinode_term.shが,サーバの停止コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。

  • source

    source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。

サーバの停止コマンドファイルの指定例については,「18.4.4 HAモニタの環境設定」の「(5) 各ファイルの指定例(系のリセットを使用する場合)」の「(f) サーバの停止コマンドファイルの指定例」を参照してください。

(h) サーバの監視コマンドファイルの作成

HAモニタとの連携のために,サーバの監視コマンドファイルを作成してください。

$ADBDIR/sample/scripts/multinode_patrol_ex.shが,サーバの監視コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。

  • source

    source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。

■サーバの監視コマンドファイルの指定例

この例では,サーバの監視コマンドファイルを/HADB/scripts/multinode_patrol_ex.shに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。

#!/bin/sh

# Sample of the ptrlcmd_ex for HADB

SU=/bin/su

# Setting environment variables for HADB
source /HADB/scripts/multinode.env                  ...1

# Execute adbmonitor command for primary node
$SU - $ADBMGR -c "'$ADBDIR'/bin/adbmonitor -i"
ADBMONRES=$?
if [ "$ADBMONRES" = "0" -o "$ADBMONRES" = "4" ]
then
  exit 0
else
  exit $ADBMONRES
fi

[説明]

  1. source文には,コマンド用環境変数定義ファイルの絶対パス/HADB/scripts/multinode.envを指定します。

(i) 待機サーバの停止コマンドファイルの作成

HAモニタとの連携のために,待機サーバの停止コマンドファイルを作成してください。

$ADBDIR/sample/scripts/multinode_sby_term.shが,待機サーバの停止コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。

  • source

    source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。

■待機サーバの停止コマンドファイルの指定例

この例では,待機サーバの停止コマンドファイルを/HADB/scripts/multinode_sby_term.shに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。

#!/bin/sh

# Sample of the sby_termcommand for HADB

STS_ACTIVE="ACTIVE"
STS_STOP="STOP"
STS_STARTING="STARTING"
STS_STOPPING="STOPPING"
STS_ABORT="ABORT"
STS_QUIESCE="QUIESCE"
STS_OFFLINE="OFFLINE"
STS_CHGMODE="CHGMODE"
STS_STOPWAIT="STOPWAIT"
STS_COREDUMP="COREDUMP"
STS_FORCE="FORCE"
STS_MAINTNCE="MAINTNCE"

AWK=/bin/awk
ECHO=/bin/echo
GREP=/bin/grep
SU=/bin/su

# Setting environment variables for HADB
source /HADB/scripts/multinode.env                  ...1

# Execute adbstop command
while :
do

  GET_STS=`$SU - $ADBMGR -c "'$ADBDIR'/bin/adbls -d srv 2>/dev/null" | $GREP -v SVID | $AWK '{ if ($1 ~ /[0-9]+/) { print $2 } else { print $1 } }'`

  case "$1" in
  "-e" )
    # Normal stop operations of secondary node.
    # (when the monsbystp command is executed.)
    if [ "$GET_STS" = "$STS_ACTIVE"   -o \
         "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE"  -o \
         "$GET_STS" = "$STS_OFFLINE"  -o "$GET_STS" = "$STS_CHGMODE"  -o \
         "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_MAINTNCE" ]
    then
      $SU - $ADBMGR -c "'$ADBDIR'/bin/adbstop --cancel --node"
      STOPRES=$?
      if [ "$STOPRES" = "0" -o "$STOPRES" = "4" ]
      then
        break
      fi
    elif [ "$GET_STS" = "$STS_STARTING" ]
    then
      break
    else
      break
    fi

    ;;
  "-c" )
    break

    ;;
  esac

done

# stop HADB
if [ "$GET_STS" = "$STS_STARTING" ]
then
  ADB_ID=`$SU - $ADBMGR -c "ps x" | $GREP adbsrvd | $GREP -v $GREP | awk '{print $1}'`
  $SU - $ADBMGR -c "kill $ADB_ID"

  exit 0
fi

# Wait for end of HADB
while [ "$GET_STS" = "$STS_ACTIVE"   -o "$GET_STS" = "$STS_STARTING" -o \
        "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE"  -o \
        "$GET_STS" = "$STS_OFFLINE"  -o "$GET_STS" = "$STS_CHGMODE"  -o \
        "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_COREDUMP" -o \
        "$GET_STS" = "$STS_MAINTNCE" ]
do
  GET_STS=`$SU - $ADBMGR -c "'$ADBDIR'/bin/adbls -d srv 2>/dev/null" | $GREP -v SVID | $AWK '{ if ($1 ~ /[0-9]+/) { print $2 } else { print $1 } }'`
  sleep 1
done

exit 0

[説明]

  1. source文には,コマンド用環境変数定義ファイルの絶対パス/HADB/scripts/multinode.envを指定します。

(j) 待機サーバの監視コマンドファイルの作成

HAモニタとの連携のために,待機サーバの監視コマンドファイルを作成してください。

待機サーバの監視コマンドファイルのひな形は,サーバの監視コマンドファイルのひな形と同じく$ADBDIR/sample/scripts/multinode_patrol_ex.shです。このひな形をコピーして,次の個所を修正してください。

  • source

    source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。

待機サーバの監視コマンドファイルの指定例

待機サーバの監視コマンドファイルは,サーバの監視コマンドファイルと同じ内容です。指定例については,「(h) サーバの監視コマンドファイルの作成」を参照してください。

(k) HAモニタの起動設定

OSの起動時に,自動的にHAモニタが起動するように設定してください。設定方法については,マニュアルHAモニタ Linux(R)(x86)編システムの起動からサーバの起動までを自動化するを参照してください。 

(6) 各ノードでのサーバ定義の作成

サーバ定義の作成については,「18.4.5 各ノードでのサーバ定義の作成」を参照してください。

Azure環境でHADBサーバを使用する場合,クラウドストレージ機能に関するオペランドを各ノードのサーバ定義に指定する必要があります。クラウドストレージ機能に関するオペランドについては,「7.2.16 クラウドストレージ機能に関するオペランド(set形式)」を参照してください。

クラウドストレージ機能に関するオペランドの指定例を次に示します。

(例)
set adb_sys_cld_az_storage_account = adbstorageaccount
set adb_sys_cld_az_container = adbcontainer
set adb_sys_cld_cache_path = /HADB/ADBCCH

(7) クライアント定義の作成

クライアント定義の作成については,「18.4.6 クライアント定義の作成」を参照してください。

(8) クライアント定義の集中管理機能を使用する場合の環境設定

クライアント定義の集中管理機能を使用する場合の環境設定については,「18.4.7 クライアント定義の集中管理機能を使用する場合の環境設定」を参照してください。

(9) データベースの作成

データベースの作成手順を次に示します。

重要

以降の作業を実施する前に,各仮想マシンで共有するマネージドディスクにアタッチしておく必要があります。

手順

  1. ノード切り替え対象のファイルシステムを初期化する

    システムディレクトリ用のファイルシステムを初期化します。

    mkfs -t xfs /dev/vg_hadb/hadb_sys

    システムディレクトリ用のLV(/dev/vg_hadb/hadb_sys)を,XFSのファイルシステムで初期化する場合の例です。

  2. プライマリノードでデータベースを初期設定する

    最初に,プライマリノードでOSのmountコマンドを実行し,$DBDIR/ADBSYSにシステムディレクトリ用のファイルシステムをマウントしてください。

    次に,adbinitコマンドをプライマリノードで実行し,データベースを初期設定してください。adbinitコマンドの初期設定オプションの指定例(プライマリノード)を次に示します。

    set adb_init_dbarea_initialize = Y                       ...a
    set adb_init_wrk_blk_path = /dev/mapper/WRK001           ...b
    set adb_sys_cld_az_storage_account = adbstorageaccount   ...c
    set adb_sys_cld_az_container = adbcontainer              ...d
    set adb_init_cld_cache_path = /HADB/ADBCCH               ...e
    adbinitdbarea -n ADBUTBL01 -p 32 -s 32                   ...f
    adbinitdbarea -n ADBUIDX01 -p 32 -s 32                   ...g

    [説明]

    1. DBエリアを初期化するため,Yを指定します。

    2. 作業表用DBエリアファイルとして割り当てるブロックスペシャルファイル名を指定します。

    3. Azure Blob Storageのストレージアカウント名(adbstorageaccount)を指定します。

    4. Azure Blob Storageのコンテナー名(adbcontainer)を指定します。

    5. BLOBのキャッシュファイルの格納先ディレクトリ名(/HADB/ADBCCH)を指定します。

    6. データ用DBエリア(ADBUTBL01)の指定をします。DBエリアのページサイズには32キロバイトを,セグメントサイズには32メガバイトを指定します。

    7. データ用DBエリア(ADBUIDX01)の指定をします。DBエリアのページサイズには32キロバイトを,セグメントサイズには32メガバイトを指定します。

    adbinitコマンドの実行後,システムディレクトリ用のファイルシステムをアンマウントしてください。

  3. セカンダリノードおよびワーカーノードでDBディレクトリを作成する

    adbinitコマンドをセカンダリノードおよびワーカーノードで実行してください。adbinitコマンドの初期設定オプションの指定例(セカンダリノードおよびワーカーノード)を次に示します。

    set adb_init_dbarea_initialize = N                       ...a
    set adb_init_wrk_blk_path = /dev/mapper/WRK002           ...b
    set adb_sys_cld_az_storage_account = adbstorageaccount   ...c
    set adb_sys_cld_az_container = adbcontainer              ...d
    set adb_init_cld_cache_path = /HADB/ADBCCH               ...e
    adbinitdbarea -n ADBUTBL01 -p 32 -s 32                   ...f
    adbinitdbarea -n ADBUIDX01 -p 32 -s 32                   ...g

    [説明]

    1. DBディレクトリの枠組みだけを作成するため,Nを指定します。

    2. 作業表用DBエリアファイルとして割り当てるブロックスペシャルファイル名を指定します。

    3. Azure Blob Storageのストレージアカウント名(adbstorageaccount)を指定します。

    4. Azure Blob Storageのコンテナー名(adbcontainer)を指定します。

    5. BLOBのキャッシュファイルの格納先ディレクトリ名(/HADB/ADBCCH)を指定します。

    6. データ用DBエリア(ADBUTBL01)を作成します。DBエリアのページサイズには32キロバイトを,セグメントサイズには32メガバイトを指定します。

    7. データ用DBエリア(ADBUIDX01)を作成します。DBエリアのページサイズには32キロバイトを,セグメントサイズには32メガバイトを指定します。

    メモ

    プライマリノードで指定した初期設定オプションとは,次の点が異なります。

    • adb_init_dbarea_initializeオペランドにはNを指定して,DBディレクトリの枠組みだけを作成します。

    • adb_init_wrk_blk_pathオペランドには,ノードごとに割り当てる作業表用DBエリアファイルのブロックスペシャルファイル名を指定します。