Hitachi

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


18.34.4 クラウド環境でのマルチノード構成の構築

クラウド環境でのマルチノード構成の構築手順について説明します。ここでの説明は,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ルールの設定は不要なため,ここで説明している作業をする必要はありません。

各インスタンスで使用するノード切り替え対象のファイルシステム,およびDBエリアファイルで使用するディスク(EBS(io2))のデバイス名を固定するために,全ノードで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}=="Amazon Elastic Block Store_vol0081d861d83bc10a6", SYMLINK+="hadb_sys"       ...[a]
    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0f6af0e90cad79723", SYMLINK+="hadb_syndict"   ...[b]
    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0db4be9c284a04033", SYMLINK+="hadb_mst"       ...[c]
    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0efe890a19d4b2330", SYMLINK+="hadb_dic"       ...[d]
    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0431a7bfcf7388f72", SYMLINK+="hadb_stbl"      ...[e]
    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0d5ca81d622e73022", SYMLINK+="hadb_tbl01"     ...[f]
    ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol05405d4eea38470e7", SYMLINK+="hadb_idx01"     ...[g]

    [説明]

    1. プライマリノードまたはセカンダリノードの場合,システムディレクトリ用のファイルシステムで使用するディスク(EBS(io2))を指定してください。

    2. プライマリノードまたはセカンダリノードの場合,同義語辞書ファイルを格納するファイルシステムで使用するディスク(EBS(io2))を指定してください。

    3. マスタディレクトリ用DBエリアで使用するディスク(EBS(io2))を指定してください。

    4. ディクショナリ用DBエリアで使用するディスク(EBS(io2))を指定してください。

    5. システム表用DBエリアで使用するディスク(EBS(io2))を指定してください。

    6. データ用DBエリア(ADBUTBL01)で使用するディスク(EBS(io2))を指定してください。

    7. データ用DBエリア(ADBUIDX01)で使用するディスク(EBS(io2))を指定してください。

  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‒14 クラウドストレージ機能を使用する場合のシステム構成例(HAモニタありのマルチノード構成)」または図18‒15 クラウドストレージ機能を使用しない場合のシステム構成例(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. クラウド環境で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. クラウド環境で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. クラウド環境で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用の設定を記述したサーバの監視コマンドファイルの絶対パスを指定してください。サーバの監視コマンドファイルはひな形を基に作成してください。作成方法については,「(i) サーバの監視コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編サーバの監視コマンドの作成を参照してください。

  • ptrlcmd_ex_interオペランド

    3を指定してください

  • ptrlcmd_ex_retryオペランド

    0を指定してください。

  • ptrlcmd_ex_tmoutオペランド

    5を指定してください。

  • sby_termcommandオペランド

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

  • sby_ptrlcmd_exオペランド

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

  • sby_ptrlcmd_ex_interオペランド

    3を指定してください

  • sby_ptrlcmd_ex_retryオペランド

    0を指定してください。

  • sby_ptrlcmd_ex_tmoutオペランド

    5を指定してください。

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

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

  • diskオペランド

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

  • fs_nameオペランド

    システムディレクトリのファイルシステムであるEFSのDNS名を次のように指定してください。

    "DNS名:/"

    EFSのDNS名は,AWSのマネジメントコンソールを使用して確認してください。

  • fs_mount_dirオペランド

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

  • fs_mount_optオペランド

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

    "-t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"

    amazon-efs-utilsツールを使用して,システムディレクトリのファイルシステムをマウントする場合は,次のように指定してください。

    "-t efs"
  • vg_neckオペランド

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

メモ

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

serversファイルの指定例(クラウドストレージ機能を使用する場合)

ここでの指定例は,「図18‒14 クラウドストレージ機能を使用する場合のシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。

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

    server name /HADB/server,                                         ...1
           alias HADB,
           acttype monitor,
           lan_updown use,
           fs_name "fs-0456f138cb4f7f9c3.efs.ap-northeast-1.amazonaws.com:/",    ...2
           fs_mount_dir /HADB/db/ADBSYS,                                         ...3
           fs_mount_opt "-t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport",    ...4
           actcommand "/HADB/scripts/multinode_act.sh",               ...5
           termcommand "/HADB/scripts/multinode_term.sh",             ...6
           ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",         ...7
           ptrlcmd_ex_inter 3,
           ptrlcmd_ex_retry 0,
           ptrlcmd_ex_tmout 5,
           sby_termcommand  "/HADB/scripts/multinode_sby_term.sh",    ...8
           sby_ptrlcmd_ex  "/HADB/scripts/multinode_patrol_ex.sh",    ...9
           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,
           fs_neck use,                  ...10
           initial online;               ...11

    [説明]

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

    2. システムディレクトリのファイルシステムであるEFSのDNS名を指定します。

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

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

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

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

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

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

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

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

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

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

    server name /HADB/server,                                         ...1
           alias HADB,
           acttype monitor,
           lan_updown use,
           fs_name "fs-0456f138cb4f7f9c3.efs.ap-northeast-1.amazonaws.com:/",    ...2
           fs_mount_dir /HADB/db/ADBSYS,                                         ...3
           fs_mount_opt "-t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport",    ...4
           actcommand "/HADB/scripts/multinode_act.sh",               ...5
           termcommand "/HADB/scripts/multinode_term.sh",             ...6
           ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",         ...7
           ptrlcmd_ex_inter 3,
           ptrlcmd_ex_retry 0,
           ptrlcmd_ex_tmout 5,
           sby_termcommand  "/HADB/scripts/multinode_sby_term.sh",    ...8
           sby_ptrlcmd_ex  "/HADB/scripts/multinode_patrol_ex.sh",    ...9
           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,
           fs_neck use,                   ...10
           initial standby,               ...11
           standbypri 1;                  ...12

    [説明]

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

    2. システムディレクトリのファイルシステムであるEFSのDNS名を指定します。

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

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

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

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

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

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

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

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

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

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

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

    server name /HADB/server,                                         ...1
           alias HADB,
           acttype monitor,
           lan_updown use,
           fs_name "fs-0456f138cb4f7f9c3.efs.ap-northeast-1.amazonaws.com:/",    ...2
           fs_mount_dir /HADB/db/ADBSYS,                                         ...3
           fs_mount_opt "-t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport",    ...4
           actcommand "/HADB/scripts/multinode_act.sh",               ...5
           termcommand "/HADB/scripts/multinode_term.sh",             ...6
           ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh",         ...7
           ptrlcmd_ex_inter 3,
           ptrlcmd_ex_retry 0,
           ptrlcmd_ex_tmout 5,
           sby_termcommand  "/HADB/scripts/multinode_sby_term.sh",    ...8
           sby_ptrlcmd_ex  "/HADB/scripts/multinode_patrol_ex.sh",    ...9
           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,
           fs_neck use,                   ...10
           initial standby,               ...11
           standbypri 2;                  ...12

    [説明]

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

    2. システムディレクトリのファイルシステムであるEFSのDNS名を指定します。

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

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

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

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

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

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

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

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

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

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

(d) serversファイルの作成(クラウドストレージ機能を使用しない場合)

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

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

  • nameオペランド

  • acttypeオペランド

  • termcommandオペランド

  • initialオペランド

  • diskオペランド

  • fs_nameオペランド

  • fs_mount_dirオペランド

  • fs_mount_optオペランド

  • lan_updownオペランド

  • servexec_retryオペランド

  • waitserv_execオペランド

  • ip_neckオペランド

  • uoc_neckオペランド

  • vg_neckオペランド

  • fs_neckオペランド

  • actcommandオペランド

  • standbypriオペランド

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

  • patrolcommandオペランド

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

  • ptrlcmd_exオペランド

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

  • ptrlcmd_ex_interオペランド

    3を指定してください。

  • ptrlcmd_ex_retryオペランド

    0を指定してください。

  • ptrlcmd_ex_tmoutオペランド

    5を指定してください。

  • sby_termcommandオペランド

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

  • sby_ptrlcmd_exオペランド

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

  • sby_ptrlcmd_ex_interオペランド

    3を指定してください。

  • sby_ptrlcmd_ex_retryオペランド

    0を指定してください。

  • sby_ptrlcmd_ex_tmoutオペランド

    5を指定してください。

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

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

メモ

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

serversファイルの指定例(クラウドストレージ機能を使用しない場合)

ここでの指定例は,「図18‒15 クラウドストレージ機能を使用しない場合のシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。

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

    server name /HADB/server,                                             ...1
           alias HADB,
           acttype monitor,
           disk /dev/vg_hadb:/dev/vg_hadb02,                              ...2
           lan_updown use,
           fs_name /dev/vg_hadb/sys_hadb:/dev/vg_hadb02/hadb_syndict,     ...3
           fs_mount_dir /HADB/db/ADBSYS:/mnt/syndict,                     ...4
           fs_mount_opt "-t ext4 -o defaults,noatime,_netdev":            ...5
                        "-t ext4 -o defaults,noatime,_netdev",
           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:use,         ...11
           fs_neck use:use,         ...12
           initial online;          ...13

    [説明]

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

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

      • システムディレクトリ

      • 同義語辞書ファイルの格納ディレクトリ(同義語検索を行う場合に作成するディレクトリです)

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

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

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

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

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

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

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

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

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

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

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

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

    server name /HADB/server,                                             ...1
           alias HADB,
           acttype monitor,
           disk /dev/vg_hadb:/dev/vg_hadb02,                              ...2
           lan_updown use,
           fs_name /dev/vg_hadb/sys_hadb:/dev/vg_hadb02/hadb_syndict,     ...3
           fs_mount_dir /HADB/db/ADBSYS:/mnt/syndict,                     ...4
           fs_mount_opt "-t ext4 -o defaults,noatime,_netdev":            ...5
                        "-t ext4 -o defaults,noatime,_netdev",
           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:use,      ...11
           fs_neck use:use,      ...12
           initial standby,      ...13
           standbypri 1;         ...14

    [説明]

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

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

      • システムディレクトリ

      • 同義語辞書ファイルの格納ディレクトリ(同義語検索を行う場合に作成するディレクトリです)

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

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

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

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

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

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

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

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

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

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

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

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

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

    server name /HADB/server,                                             ...1
           alias HADB,
           acttype monitor,
           disk /dev/vg_hadb:/dev/vg_hadb02,                              ...2
           lan_updown use,
           fs_name /dev/vg_hadb/sys_hadb:/dev/vg_hadb02/hadb_syndict,     ...3
           fs_mount_dir /HADB/db/ADBSYS:/mnt/syndict,                     ...4
           fs_mount_opt "-t ext4 -o defaults,noatime,_netdev":            ...5
                        "-t ext4 -o defaults,noatime,_netdev",
           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:use,          ...11
           fs_neck use:use,          ...12
           initial standby,          ...13
           standbypri 2;             ...14

    [説明]

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

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

      • システムディレクトリ

      • 同義語辞書ファイルの格納ディレクトリ(同義語検索を行う場合に作成するディレクトリです)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

なお,ここでの指定例は,図18‒14 クラウドストレージ機能を使用する場合のシステム構成例(HAモニタありのマルチノード構成)」または図18‒15 クラウドストレージ機能を使用しない場合のシステム構成例(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モニタの接続構成設定ファイルの作成を参照してください。

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

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. サーバディレクトリの絶対パスを指定します。

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

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

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

  • source

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

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

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

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

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

  • source

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

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

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

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を指定します。

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

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を指定します。

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

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

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

  • source

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

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

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

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

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

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

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

クラウドストレージ機能を使用する場合は,クラウドストレージ機能に関するオペランドを各ノードのサーバ定義に指定してください。クラウドストレージ機能に関するオペランドについては,「7.2.14 クラウドストレージ機能に関するオペランド(set形式)」を参照してください。

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

(例)
set adb_sys_cld_aws_region = ap-northeast-1
set adb_sys_cld_aws_bucket = adbbucket
set adb_sys_cld_cache_path = /HADB/ADBCCH

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

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

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

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

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

クラウドストレージ機能を使用する場合と,使用しない場合で,データベースの作成手順が異なります。

クラウドストレージ機能を使用する場合

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

手順

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

    システムディレクトリ用のファイルシステムであるEFSを,AWSのマネジメントコンソールなどを使用して作成してください。

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

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

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

    set adb_init_dbarea_initialize = Y                  ...a
    set adb_init_wrk_blk_path = /dev/mapper/WRK001      ...b
    set adb_init_cld_aws_region = ap-northeast-1        ...c
    set adb_init_cld_aws_bucket = adbbucket             ...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. S3オブジェクトの格納先のリージョン名(ap-northeast-1)を指定します。

    4. S3オブジェクトの格納先S3バケット名(adbbucket)を指定します。

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

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

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

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

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

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

    set adb_init_dbarea_initialize = N                      ...a
    set adb_init_wrk_blk_path = /dev/mapper/WRK002          ...b
    set adb_init_cld_aws_region = ap-northeast-1            ...c
    set adb_init_cld_aws_bucket = adbbucket                 ...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. S3オブジェクトの格納先のリージョン名(ap-northeast-1)を指定します。

    4. S3オブジェクトの格納先S3バケット名(adbbucket)を指定します。

    5. S3オブジェクトのキャッシュファイルの格納先ディレクトリ名(/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エリアファイルのブロックスペシャルファイル名を指定します。

クラウドストレージ機能を使用しない場合

データベースの作成手順については,「18.4.8 データベースの作成」を参照してください。

また,次のことを実施してください。

  • インスタンスでマルチアタッチする必要があるEBSボリュームついては,事前にアタッチしてACTIVEにしておいてください。

  • 初期設定オプションに指定する次のDBエリアのブロックスペシャルファイル名には,「(4) udevルールの設定」で指定したudevルールで固定したデバイス名(/dev/hadb_mstなど)を指定してください。

    • マスタディレクトリ用DBエリア

    • ディクショナリ用DBエリア

    • システム表用DBエリア

    • データ用DBエリア