1. はじめに
1.1. 対象読者と目的
1.2. 適用範囲
1.3. 本書の構成
「4. 構築手順 (内部 TCP ロードバランサを使用した HA クラスタの場合)」:内部 TCP ロードバランサを使用した HA クラスタの構築手順について説明します。
「5. 構築手順 (Cloud DNS を使用した HA クラスタの場合)」:Cloud DNS を使用した HA クラスタの構築手順について説明します。
「6. エラーメッセージ一覧」:エラーメッセージと対処について説明します。
1.4. CLUSTERPRO マニュアル体系
CLUSTERPRO のマニュアルは、以下の 4 つに分類されます。各ガイドのタイトルと役割を以下に示します。
『CLUSTERPRO X スタートアップガイド』 (Getting Started Guide)
すべてのユーザを対象読者とし、製品概要、動作環境、アップデート情報、既知の問題などについて記載します。
『CLUSTERPRO X インストール&設定ガイド』 (Install and Configuration Guide)
CLUSTERPRO を使用したクラスタシステムの導入を行うシステムエンジニアと、クラスタシステム導入後の保守・運用を行うシステム管理者を対象読者とし、CLUSTERPRO を使用したクラスタシステム導入から運用開始前までに必須の事項について説明します。実際にクラスタシステムを導入する際の順番に則して、CLUSTERPRO を使用したクラスタシステムの設計方法、CLUSTERPRO のインストールと設定手順、設定後の確認、運用開始前の評価方法について説明します。
『CLUSTERPRO X リファレンスガイド』 (Reference Guide)
管理者、および CLUSTERPRO を使用したクラスタシステムの導入を行うシステムエンジニアを対象とし、CLUSTERPRO の運用手順、各モジュールの機能説明およびトラブルシューティング情報等を記載します。『インストール&設定ガイド』を補完する役割を持ちます。
『CLUSTERPRO X メンテナンスガイド』 (Maintenance Guide)
管理者、および CLUSTERPRO を使用したクラスタシステム導入後の保守・運用を行うシステム管理者を対象読者とし、CLUSTERPRO のメンテナンス関連情報を記載します。
1.5. 本書の表記規則
本書では、注意すべき事項、重要な事項および関連情報を以下のように表記します。
注釈
この表記は、重要ではあるがデータ損失やシステムおよび機器の損傷には関連しない情報を表します。
重要
この表記は、データ損失やシステムおよび機器の損傷を回避するために必要な情報を表します。
参考
この表記は、参照先の情報の場所を表します。
また、本書では以下の表記法を使用します。
表記 |
使用方法 |
例 |
|---|---|---|
[ ] 角かっこ |
コマンド名の前後
画面に表示される語 (ダイアログボックス、メニューなど) の前後
|
[スタート] をクリックします。
[プロパティ] ダイアログボックス
|
コマンドライン中の [ ] 角かっこ |
かっこ内の値の指定が省略可能であることを示します。 |
|
> |
Windows ユーザが、コマンドプロンプトでコマンドを実行することを示すプロンプト |
|
モノスペースフォント |
パス名、コマンドライン、システムからの出力 (メッセージ、プロンプトなど)、ディレクトリ、ファイル名、関数、パラメータ |
|
太字 |
ユーザが実際にコマンドラインから入力する値を示します。 |
以下を入力します。
> clpcl -s -a
|
|
ユーザが有効な値に置き換えて入力する項目 |
|
本書の図では、CLUSTERPRO を表すために このアイコンを使用します。
1.6. 最新情報の入手先
最新の製品情報については、以下の Web サイトを参照ください。
2. 概要
2.1. 機能概要
リージョン
Google Cloud ではリージョンと呼ばれる物理的および論理的な単位に分割されます (たとえば東京、大阪など)。1つのリージョン内にすべてのノードを構築することも可能ですが、ネットワーク障害や自然災害などによりすべてのノードがダウンし業務を継続できなくなるおそれがあります。そこで、ノードを複数のリージョンに分散させて配置することにより、可用性を高めることができます。リージョンはゾーンの集まりです。ゾーン
Google Cloud では、ゾーンと呼ばれる論理的なグループに各ノードを配置できます。異なるゾーンに各ノードを配置することで、Google Cloud の計画済みメンテナンスや物理ハードウェアの障害などの計画外メンテナンスによる影響を最小限に抑えることが可能です。
2.2. 基本構成
用途 |
選択する CLUSTERPRO のリソース |
必要な Google Cloud のサービス |
|---|---|---|
仮想 IP アドレス (内部 IP アドレス) でクライアントからアクセスしたい場合 |
Google Cloud 仮想 IP リソース |
内部 TCP 負荷分散 |
DNS 名でクライアントからアクセスしたい場合 |
Google Cloud DNS リソース |
Cloud DNS |
ロードバランサを使用した HA クラスタ
クライアントアプリケーションは、Google Cloud 環境の仮想マシンに対して、仮想 IP (以下、VIP) アドレスを使用してクラスタを構成するノードに接続することができます。 VIP アドレスを使用することにより、フェイルオーバまたは、グループの移動が発生しても、クライアントは、仮想マシンの切り替えを意識する必要がありません。図 2.1 内部 TCP ロードバランサを使用した HA クラスタ の Google Cloud 環境上に構築したクラスタには、Google Cloud のロードバランサ (Cloud Load Balancing) の VIP (Cloud Load Balancing のフロントエンド IP) を指定してアクセスします。クラスタの現用系と待機系は、Google Cloud のロードバランサにおけるヘルスチェックを利用して切り替えます。 ヘルスチェックには Google Cloud 仮想 IP リソースが提供するポートを利用します。![]()
図 2.1 内部 TCP ロードバランサを使用した HA クラスタ
SubNetwork-1
10.0.1.0/24
IP Address (Client)
10.0.1.200
Virtual IP Address (VIP)
10.0.1.100
SubNetwork-11
10.0.11.0/24
IP Address (Server1)
10.0.11.101
IP Address (Server2)
10.0.11.102
Health Check Port
12345
Cloud Load Balancing については以下を参照してください。ロードバランサを使用した HA クラスタの構成例としては以下があります。
用途
使用するロードバランサ
構築手順
業務を Google Cloud のネットワークの内部に公開する場合
内部 TCP ロードバランサ
ロードバランサを使用した HA クラスタ構成において必要なリソース、監視リソースは以下のとおりです。
リソース/監視リソース種別
説明
設定
Google Cloud 仮想 IP リソース
業務が稼働するノードの特定のポートでロードバランサからの死活監視 (ヘルスチェック用のポートへのアクセス) を待ち受ける仕組みを提供します。活性時に Google Cloud のロードバランサからの死活監視を待ち受けるための制御プロセスを起動します。非活性時には死活監視を待ち受けるための制御プロセスを停止します。必須
Google Cloud 仮想 IP 監視リソース
Google Cloud 仮想 IP リソースが起動しているノードに対して、Google Cloud 仮想 IP リソース活性時に起動する制御プロセスの死活監視を行います。
必須
Google Cloud ロードバランス監視リソース
Google Cloud 仮想 IP リソースが起動していないノードに対して、ヘルスチェック用ポートと同じポート番号が開放されていないかを監視します。
必須
NP 解決リソース
ネットワークパーティション解決 を参照してください。
推奨
その他のリソース、監視リソース
ミラーディスクなど、 HA クラスタで運用するアプリケーションの構成に従います。
任意
Cloud DNS を使用した HA クラスタ
本構成では、DNS 名でアクセス可能とするために Cloud DNS を使用しています。また、Google Cloud の計画済みメンテナンスや物理ハードウェアの障害などの計画外メンテナンスによる影響を最小限に抑えるために、2台の仮想マシンで異なるゾーンに配置しています。図 2.2 Cloud DNS を使用した HA クラスタ のクラスタには、DNS 名を指定してアクセスします。CLUSTERPRO は、DNS 名から設定した IP アドレスが得られるように Cloud DNS のレコードセット (A レコード) の制御を行います。フェイルオーバまたはグループの移動が発生しても、クライアントは仮想マシンの切り替えを意識する必要がありません。![]()
図 2.2 Cloud DNS を使用した HA クラスタ
SubNetwork-1
10.0.1.0/24
IP Address (Client)
10.0.1.200
SubNetwork-11
10.0.11.0/24
IP Address (Server1)
10.0.11.101
IP Address (Server2)
10.0.11.102
Virtual host name
test-cluster.example.com
レコード書き換え前 (Cloud DNS)
Name
Type
Data
test-cluster.example.com
A
10.0.11.101
レコード書き換え後 (Cloud DNS)
Name
Type
Data
test-cluster.example.com
A
10.0.11.102
本書では VPC ネットワーク内の HA クラスタを構成するインスタンスがインターネットへアクセスできる構成について記載しています。これは、 HA クラスタを構成するインスタンスが Google Cloud DNS リソースが利用する gcloud CLI を実行する際に、インターネットへアクセスする必要があるためです。インターネットへのアクセスには、NAT ゲートウェイや NAT インスタンスを使用する方法があります。本書では NAT ゲートウェイ (Cloud NAT) を使用します。VPC ネットワークの作成手順や NAT ゲートウェイ/ NAT インスタンスの設定、ファイアウォールルールの設定の詳細は、Google Cloud のドキュメントをご参照ください。Cloud DNS を使用した HA クラスタ構成において必要なリソース、監視リソースは以下のとおりです。
リソース/監視リソース種別
説明
設定
Google Cloud DNS リソース
DNS 名から設定した IP アドレスを得られるように Cloud DNS のレコードセット (A レコード) の制御を行います。
必須
Google Cloud DNS 監視リソース
活性時監視の対象リソースに指定された Google Cloud DNS リソースが制御するレコードセット (A レコード) が、Google Cloud DNS 上に存在することを確認します。
必須
NP 解決リソース
ネットワークパーティション解決 を参照してください。
推奨
その他のリソース、監視リソース
ミラーディスクなど、 HA クラスタで運用するアプリケーションの構成に従います。
任意
2.3. ネットワークパーティション解決
HA クラスタを構成している仮想マシンは、お互いにハートビートによって死活監視を行っています。各仮想マシンが異なるサブネットに分散している構成においては、ハートビートが途絶えた時に、サービスの二重起動など望ましくない状態が発生します。サービスの二重起動を回避するために、他の仮想マシンがダウンしたか、自身がネットワークから孤立した状態 (ネットワークパーティション状態。以下、NP 状態) かのどちらであるかを区別する必要があります。ネットワークパーティション解決 (以下、NP 解決) は、常時稼働している装置 (応答確認先) に対して HTTP, Ping などの応答確認を行い、応答がない場合は NP 状態が発生したと判断し、設定された処理 (警告、回復処理、サーバダウン処理など) を行います。以下は NP 解決の構成例です。
構成 1 : HTTP NP 解決リソース + Witness サーバサービス (Compute Engine)
構成 2 : HTTP NP 解決リソース + Cloud Storage (静的サイトホスティング)
構成 3 : PING NP 解決リソース + ICMP 応答サーバ (Compute Engine)
メリット
デメリット
構成 1
ハートビートと NP 解決リソースが使用する通信経路が同じため、NP 解決の信頼性が高い
・追加でインスタンスを用意する必要がある・Witness サーバサービスをセットアップする必要がある構成 2
追加でインスタンスを用意する必要がない
ハートビートと NP 解決リソースが使用する通信経路が同じとは限らないため、構成 1 に比べて NP 解決の信頼性が低い
構成 3
Witness サーバサービスをセットアップする必要がない
追加でインスタンスを用意する必要がある
なお、クラスタシステムにアクセスするクライアントの配置やオンプレミス環境との接続条件 (専用線接続など) によって、NP 解決先や NP 解決の方法はその都度検討する必要があります。ハートビートリソースや NP 解決については、以下を参照してください。
『リファレンスガイド』 - 「ハートビートリソースの詳細」
2.4. オンプレミスと Google Cloud の違い
オンプレミスと Google Cloud における CLUSTERPRO の機能差分は以下のとおりです。表内の✓は機能が使用できることを意味し、n/a は機能が使用できないことを意味します。
機能 |
オンプレミス |
Google Cloud |
|---|---|---|
共有ディスク型クラスタの構築可否 |
✓ |
n/a |
ミラーディスク型クラスタの構築可否 |
✓ |
✓ |
管理用グループの使用可否 |
✓ |
n/a |
フローティング IP リソースの使用可否 |
✓ |
n/a |
仮想 IP リソースの使用可否 |
✓ |
n/a |
仮想コンピュータ名リソースの使用可否 |
✓ |
n/a |
Google Cloud 仮想 IP リソースの使用可否 |
n/a |
✓ |
Google Cloud DNS リソースの使用可否 |
n/a |
✓ |
3. 動作環境
以下のマニュアルを参照してください。
4. 構築手順 (内部 TCP ロードバランサを使用した HA クラスタの場合)
4.1. 構築例について
本書では、Google Cloud において、CLUSTERPRO を使用した2ノードでの片方向スタンバイクラスタの構築手順を紹介します。Google Cloud 上の同じ VPC ネットワーク内のクライアントからアクセス可能な HA クラスタを構築します。本手順は、server1 を現用系サーバとしたミラーディスク型の構成を対象としています。以下の表は既定値が存在しないパラメータ、および既定値から変更したパラメータについて記載しています。ファイアウォールルールの [IP 範囲] は、Google Cloud ヘルスチェックシステム (130.211.0.0/22, 35.191.0.0/16) からの通信を許可するために必要です。
Google Cloud の設定 (server1、server2 で共通の設定)
設定項目
設定値
VPC ネットワークの設定
名前
test-vpc
新しいサブネット 名前
subnetwork-1, subnetwork-11
新しいサブネット リージョン
asia-northeast1
新しいサブネット IP アドレス範囲
10.0.1.0/24, 10.0.11.0/24
ファイアウォールルールの設定
名前
test-allow-health-check
ネットワーク
test-vpc
トラフィックの方向
上り
一致したときのアクション
許可
ターゲット
指定されたターゲットタグ
ターゲットタグ
test-allow-health-check
ソースフィルタ
IP 範囲
ソース IP の範囲
130.211.0.0/22, 35.191.0.0/16
指定したプロトコルとポート
すべて許可
ロードバランサの設定
種類
TCP 負荷分散
インターネット接続または内部専用
VM 間のみ
マルチリージョンまたはシングルリージョン
シングルリージョンのみ
名前
test-lb
ロードバランサの設定 (バックエンドの設定)
リージョン
asia-northeast1
ネットワーク
test-vpc
インスタンスグループ
test-ig-a, test-ig-b
ヘルスチェック 名前
test-health-check
ヘルスチェック プロトコル
TCP
ヘルスチェック ポート
12345
ヘルスチェック プロキシのプロトコル
なし
セッションアフィニティ
なし
ロードバランサの設定 (フロントエンドの設定)
名前
test-frontend
サブネットワーク
subnetwork-1
内部 IP
10.0.1.100
ポート
80 (業務を提供しているポート番号)
Google Cloud の設定 (server1、server2 でそれぞれ設定)
設定項目
設定値
server1
server2
インスタンスの設定
リージョン
asia-northeast1
asia-northeast1
ゾーン
asia-northeast1-a
asia-northeast1-b
新しいディスク
server1-datadisk-0
server2-datadisk-0
インスタンスグループの設定
名前
test-ig-a
test-ig-b
グループタイプ
非マネージド インスタンス グループ
非マネージド インスタンス グループ
リージョン
asia-northeast1
asia-northeast1
ゾーン
asia-northeast1-a
asia-northeast1-b
ネットワーク
test-vpc
test-vpc
サブネットワーク
subnetwork-11
subnetwork-11
VM インスタンス
server1
server2
ネットワークの設定
ネットワーク
test-vpc
test-vpc
サブネットワーク
subnetwork-11
subnetwork-11
内部 IP アドレス
10.0.11.101
10.0.11.102
CLUSTERPRO の設定 (クラスタプロパティ)
設定項目
設定値
server1
server2
クラスタ名
Cluster1
Cluster1
サーバ名
server1
server2
CLUSTERPRO の設定 (フェイルオーバグループ)
リソース名
設定項目
設定値
ミラーディスクリソース
リソース名
md
ミラーディスクリソース
データパーティションのドライブ文字
G:
ミラーディスクリソース
クラスタパーティションのドライブ文字
F:
Google Cloud 仮想 IP リソース
リソース名
gcvip1
Google Cloud 仮想 IP リソース
ポート番号
12345 (ヘルスチェック ポートで指定した値)
CLUSTERPRO の設定 (監視リソース)
監視リソース名
設定項目
設定値
ミラーディスク監視リソース
監視リソース名
mdw1
Google Cloud 仮想 IP 監視リソース
監視リソース名
gcvipw1
Google Cloud 仮想 IP 監視リソース
回復対象
gcvip1
Google Cloud ロードバランス監視リソース
監視リソース名
gclbw1
Google Cloud ロードバランス監視リソース
回復対象
gcvip1
4.2. Google Cloud の設定
VPC ネットワークの作成
Google Cloud Console にアクセスします (https://console.cloud.google.com/)。VPC ネットワーク、サブネットを作成します。詳細な手順は以下を参照してください。
インスタンスの作成
公開イメージから インスタンスを作成します。また、インスタンス作成時にミラーディスク (クラスタパーティション、データパーティション) に使用するセカンダリ ディスクを追加します。インスタンスはクラスタを構成する仮想マシン分作成します。詳細な手順は以下を参照してください。
インスタンスの設定
作成した server1、server2 へ接続し、ログインします。詳細な手順は以下を参照してください。必要な場合、以下を参考に言語パックを設定することで OS を日本語化します。server1、server2 の順に実行してください。以下は Azure の例ですが、Google Cloud でも同様です。次にミラーディスクリソース用のパーティションを設定します。インスタンスに追加したセカンダリ ディスクにクラスタパーティションおよびデータパーティションを作成します。ミラーディスクリソース用のパーティションの設定については、以下を参照してください。
ファイアウォールルールの作成
ロードバランサからインスタンスへのヘルスチェックを行う Google Cloud ヘルスチェックシステム (130.211.0.0/22, 35.191.0.0/16) からの通信を許可するため、ファイアウォールルールを作成します。また、ターゲットタグをインスタンス server1, server2 のネットワークタグに追加してください。詳細な手順は以下を参照してください。ファイアウォール ルールの使用:ヘルスチェックの作成:
インスタンス グループの作成
Cloud Load Balancing のバックエンドに指定するインスタンス グループを作成します。インスタンス server1, server2 を追加します。詳細な手順は以下を参照してください。
ロードバランサの作成
ロードバランサを作成します。[TCP 負荷分散] を選択します。詳細な手順は以下を参照してください。次にバックエンド、フロントエンドを設定します。フロントエンドの [ポート] には業務を提供しているポート番号を設定します。詳細な手順は以下を参照してください。
CLUSTERPRO のサービス起動時間の調整、ネットワーク設定の確認、ファイアウォールの設定を確認、サーバの時刻を同期、パワーセービング機能をオフ
各手順は以下を参照してください。
CLUSTERPRO のインストール
インストール手順は以下を参照してください。インストール完了後、OS の再起動を行ってください。- 『インストール&設定ガイド』
CLUSTERPRO のライセンスを登録
ライセンス登録手順は以下を参照してください。- 『インストール&設定ガイド』
4.3. CLUSTERPRO の設定
Cluster WebUI のセットアップ、および接続方法は以下を参照してください。
『インストール&設定ガイド』 - 「クラスタ構成情報を作成する」
以下のリソース/監視リソースを追加する手順を記述します。
ミラーディスクリソース
Google Cloud 仮想 IP リソース
Google Cloud 仮想 IP 監視リソース
Google Cloud ロードバランス監視リソース
上記以外の設定は以下を参照してください。
クラスタの作成
最初に、クラスタ生成ウィザードを開始し、クラスタを構築します。
クラスタの構築
Cluster WebUI にアクセスし、[クラスタ生成ウィザード] をクリックします。 [クラスタ生成ウィザード] の [クラスタ] が表示されます。[クラスタ名] に任意のクラスタ名を入力します。[言語] を適切に選択します。[次へ] をクリックします。 [基本設定] が表示されます。Cluster WebUI に接続したインスタンスがマスタサーバとして登録済みの状態で表示されます。[追加] をクリックし、残りのインスタンスを追加します (インスタンスの内部 IP アドレスを指定します)。[次へ] をクリックします。 [インタコネクト] 画面が表示されます。インタコネクトのために使用する IP アドレス (各インスタンスのプライベート IP アドレス) と、Witness ハートビートを指定します。また、後で作成するミラーディスクリソースの通信経路として [MDC] に mdc1 を選択します。[次へ] をクリックします。詳細は以下を参照してください。- 『リファレンスガイド』 -「Witness ハートビートリソースを理解する」 [フェンシング] 画面が表示されます。NP 解決一覧に [HTTP] が登録済みの状態で表示されます。Witness ハートビートの設定を使用して自動的に設定されていることを確認してください。詳細は以下を参照してください。
グループリソースの追加
グループの定義
フェイルオーバグループを作成します。
[グループ一覧] 画面が表示されます。[追加] をクリックします。 [グループの定義] 画面が表示されます。[名前] にフェイルオーバグループ名 (failover1) を設定します。[次へ] をクリックします。 [起動可能サーバ] 画面が表示されます。何も指定せず [次へ] をクリックします。 [グループ属性] 画面が表示されます。何も指定せず [次へ] をクリックします。 [グループリソース一覧] 画面が表示されます。以降の手順で、この画面でグループリソースを追加していきます。ミラーディスクリソース
[グループリソース一覧] で [追加] をクリックします。 [グループ のリソース定義 | failover1] 画面が開きます。[タイプ] ボックスでグループリソースのタイプ (ミラーディスクリソース) を選択し、[名前] ボックスにリソース名を入力します。[次へ] をクリックします。 [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。 [復旧動作] 画面が表示されます。[次へ] をクリックします。 [詳細] 画面が表示されます。[データパーティションのドライブ文字] [クラスタパーティションのドライブ文字] に「3. インスタンスの設定」で作成したパーティションのドライブ文字を入力します。Google Cloud 仮想 IP リソース
Google Cloud 上で CLUSTERPRO を利用する場合、業務が稼働するノードの特定のポートでロードバランサからの死活監視を待ち受ける仕組みを提供します。Google Cloud 仮想 IP リソースの詳細は以下を参照してください。
[グループリソース一覧] で [追加] をクリックします。 [グループ のリソース定義 | failover1] 画面が開きます。[タイプ] ボックスでグループリソースのタイプ (Google Cloud 仮想 IP リソース) を選択して、[名前] ボックスにリソース名を入力します。[次へ] をクリックします。 [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。 [復旧動作] 画面が表示されます。[次へ] をクリックします。 [ポート] にロードバランサの設定 (バックエンドの設定) 時にヘルスチェックの [ポート] として指定した値を入力します。 [完了] をクリックします。
監視リソースの追加
Google Cloud 仮想 IP 監視リソース
Google Cloud 仮想 IP リソースが起動しているノードに対して、死活監視のためのポートの監視機構を提供します。Google Cloud 仮想 IP リソースを1つ追加すると、Google Cloud 仮想 IP 監視リソースが1つ自動的に作成されます。詳細は以下を参照してください。Google Cloud ロードバランス監視リソース
Google Cloud 仮想 IP リソースが起動していないノードに対して、ヘルスチェック用ポートと同じポート番号が開放されていないかの監視機構を提供します。Google Cloud 仮想 IP リソースを1つ追加すると、Google Cloud ロードバランス監視リソースが1つ自動的に作成されます。詳細は以下を参照してください。
設定の反映とクラスタの起動
以下を参照してください。- 『インストール&設定ガイド』 - 「クラスタを生成するには」
4.4. 動作確認
フェイルオーバグループ (failover1) が、現用系ノードの server1 で起動します。Cluster WebUI [ステータス] タブにおいて failover1 が server1 で [起動済] になっていることを確認します。クライアントから、フロントエンドの IP アドレスにアクセスし、現用系ノードに接続できることを確認します。 Cluster WebUI のプルダウンより [操作モード] から [検証モード] に変更します。 Cluster WebUI [ステータス] タブにおいて gcvipw1 の [擬似障害発生] アイコンを選択します。 Google Cloud 仮想 IP リソース (gcvip1) が3回再活性後に、フェイルオーバグループ (failover1) が異常になり、ノード server2 へフェイルオーバします。Cluster WebUI [ステータス] タブにおいて failover1 が server2 で [起動済] になっていることを確認します。また、ロードバランサのフロントエンドの IP アドレスに対してフェイルオーバ後も正常にアクセスできることを確認します。
5. 構築手順 (Cloud DNS を使用した HA クラスタの場合)
5.1. 構築例について
本書では、Google Cloud において、CLUSTERPRO を使用した2ノードでの片方向スタンバイクラスタの構築手順を紹介します。Google Cloud 上の同じ VPC ネットワーク内のクライアントからアクセス可能な HA クラスタを構築します。本手順は、server1 を現用系サーバとしたミラーディスク型の構成を対象としています。以下の表は既定値が存在しないパラメータ、および既定値から変更したパラメータについて記載しています。
Google Cloud の設定 (server1、server2 で共通の設定)
設定項目
設定値
VPC ネットワークの設定
名前
test-vpc
新しいサブネット 名前
subnetwork-1, subnetwork-11
新しいサブネット リージョン
asia-northeast1
新しいサブネット IP アドレス範囲
10.0.1.0/24, 10.0.11.0/24
Cloud DNS の設定 (DNS ゾーン)
ゾーンのタイプ
非公開
ゾーン名
test-zone
DNS 名
example.com
オプション
デフォルト (限定公開)
ネットワーク
test-vpc
Google Cloud の設定 (server1、server2 でそれぞれ設定)
設定項目
設定値
server1
server2
インスタンスの設定
リージョン
asia-northeast1
asia-northeast1
ゾーン
asia-northeast1-a
asia-northeast1-b
新しいディスク
server1-datadisk-0
server2-datadisk-0
ネットワークの設定
ネットワーク
test-vpc
test-vpc
サブネットワーク
subnetwork-11
subnetwork-11
内部 IP アドレス
10.0.11.101
10.0.11.102
CLUSTERPRO の設定 (クラスタプロパティ)
設定項目
設定値
server1
server2
クラスタ名
Cluster1
Cluster1
サーバ名
server1
server2
CLUSTERPRO の設定 (フェイルオーバグループ)
リソース名
設定項目
設定値
ミラーディスクリソース
リソース名
md1
ミラーディスクリソース
データパーティションのドライブ文字
G:
ミラーディスクリソース
クラスタパーティションのドライブ文字
F:
Google Cloud DNS リソース
リソース名
gcdns1
Google Cloud DNS リソース
ゾーン名
test-zone
Google Cloud DNS リソース
DNS 名
test-cluster.example.com
Google Cloud DNS リソース
IP アドレス (server1)
10.0.11.101
Google Cloud DNS リソース
IP アドレス (server2)
10.0.11.102
CLUSTERPRO の設定 (監視リソース)
監視リソース名
設定項目
設定値
ミラーディスク監視リソース
監視リソース名
mdw1
ミラーディスクコネクト監視リソース
監視リソース名
mdnw1
Google Cloud DNS 監視リソース
監視リソース名
gcdnsw1
5.2. Google Cloud の設定
VPC ネットワークの作成
Google Cloud Console にアクセスします (https://console.cloud.google.com/)。VPC ネットワーク、サブネットを作成します。詳細な手順は以下を参照してください。
インスタンスの作成
公開イメージから インスタンスを作成します。また、インスタンス作成時にミラーディスク (クラスタパーティション、データパーティション) に使用するセカンダリ ディスクを追加します。インスタンスはクラスタを構成する仮想マシン分作成します。詳細な手順は以下を参照してください。
インスタンスの設定
作成した server1、server2 へ接続し、ログインします。詳細な手順は以下を参照してください。次にミラーディスクリソース用のパーティションを設定します。インスタンスに追加したセカンダリ ディスクにクラスタパーティションおよびデータパーティションを作成します。ミラーディスクリソース用のパーティションの設定については、以下を参照してください。
DNS ゾーンの作成
[ゾーンのタイプ] は非公開を選択します。[ゾーンのタイプ] については以下を参照してください。gcloud CLI の設定
server1、server2 へログインし、gcloud CLI のインストールおよび承認を行います。gcloud CLI の承認方法については以下を参照してください。その他の詳細な手順は以下を参照してください。インストール:初期化:クイックスタート:Cloud IAM の設定
gcloud CLI の承認時に使用したユーザアカウント、またはサービスアカウントに Cloud DNS のレコードセットを操作する権限を持たせます。Cloud IAM を使用して、以下の権限を付与します。- dns.changes.create- dns.changes.get- dns.managedZones.get- dns.resourceRecordSets.create- dns.resourceRecordSets.update- dns.resourceRecordSets.delete- dns.resourceRecordSets.listもしくは、/roles/dns.admin 役割を付与します。Cloud IAM については、以下を参照してください。認証と認可:アクセス権の管理:アクセス権:CLUSTERPRO のサービス起動時間の調整、ネットワーク設定の確認、ファイアウォールの設定を確認、サーバの時刻を同期、パワーセービング機能をオフ
各手順は以下を参照してください。
CLUSTERPRO のインストール
インストール手順は以下を参照してください。インストール完了後、OSの再起動を行ってください。- 『インストール&設定ガイド』
CLUSTERPRO のライセンスを登録
ライセンス登録手順は以下を参照してください。- 『インストール&設定ガイド』
5.3. CLUSTERPRO の設定
Cluster WebUI のセットアップ、および接続方法は以下を参照してください。
『インストール&設定ガイド』 - 「クラスタ構成情報を作成する」
以下のリソース/監視リソースを追加する手順を記述します。
ミラーディスクリソース
Google Cloud DNS リソース
Google Cloud DNS 監視リソース
上記以外の設定は以下を参照してください。
クラスタの作成
最初に、クラスタ生成ウィザードを開始し、クラスタを構築します。
クラスタの構築
Cluster WebUI にアクセスし、[クラスタ生成ウィザード] をクリックします。 [クラスタ生成ウィザード] の [クラスタ] が表示されます。[クラスタ名] に任意のクラスタ名を入力します。[言語] を適切に選択します。[次へ] をクリックします。 [基本設定] が表示されます。Cluster WebUI に接続したインスタンスがマスタサーバとして登録済みの状態で表示されます。[追加] をクリックし、残りのインスタンスを追加します (インスタンスの内部 IP アドレスを指定します)。[次へ] をクリックします。 [インタコネクト] 画面が表示されます。インタコネクトのために使用する IP アドレス (各インスタンスのプライベート IP アドレス) と、Witness ハートビートを指定します。また、後で作成するミラーディスクリソースの通信経路として [MDC] に mdc1 を選択します。[次へ] をクリックします。詳細は以下を参照してください。- 『リファレンスガイド』 -「Witness ハートビートリソースを理解する」 [フェンシング] 画面が表示されます。NP 解決一覧に [HTTP] が登録済みの状態で表示されます。Witness ハートビートの設定を使用して自動的に設定されていることを確認してください。詳細は以下を参照してください。
グループリソースの追加
グループの定義
フェイルオーバグループを作成します。
[グループ一覧] 画面が表示されます。[追加] をクリックします。 [グループの定義] 画面が表示されます。[名前] にフェイルオーバグループ名 (failover1) を設定します。[次へ] をクリックします。 [起動可能サーバ] 画面が表示されます。何も指定せず [次へ] をクリックします。 [グループ属性] 画面が表示されます。何も指定せず [次へ] をクリックします。 [グループリソース一覧] 画面が表示されます。以降の手順で、この画面でグループリソースを追加していきます。ミラーディスクリソース
[グループリソース一覧] で [追加] をクリックします。 [グループ のリソース定義 | failover1] 画面が開きます。[タイプ] ボックスでグループリソースのタイプ (ミラーディスクリソース) を選択し、[名前] ボックスにリソース名を入力します。[次へ] をクリックします。 [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。 [復旧動作] 画面が表示されます。[次へ] をクリックします。 [詳細] 画面が表示されます。[データパーティションのドライブ文字] [クラスタパーティションのドライブ文字] に「3. インスタンスの設定」で作成したパーティションのドライブ文字を入力します。Google Cloud DNS リソース
Cloud DNS に対して活性時にレコードを登録、非活性時にレコードを削除する仕組みを提供します。詳細は以下を参照してください。
[グループリソース一覧] で [追加] をクリックします。 [グループ のリソース定義 | failover1] 画面が開きます。[タイプ] ボックスでグループリソースのタイプ (Google Cloud DNS リソース) を選択して、[名前] ボックスにリソース名を入力します。[次へ] をクリックします。 [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。 [復旧動作] 画面が表示されます。[次へ] をクリックします。 [ゾーン名] に Cloud DNS の設定 (DNS ゾーン) 時にゾーン名として指定した値を入力します。[DNS 名] [IP アドレス] に Cloud DNS のゾーンに追加するレコードセットの DNS 名と DNS 名に対応する IP アドレスを入力する。 [完了] をクリックします。
監視リソースの追加
Google Cloud DNS 監視リソース
活性時監視の対象リソースに指定された Google Cloud DNS リソースが制御するレコードセット (A レコード) が、Google Cloud DNS 上に存在することを確認します。Google Cloud DNS 監視リソースの詳細は以下を参照してください。
[モニタリソース一覧] で [追加] をクリックします。 [モニタリソースの定義] 画面が開きます。[タイプ] ボックスで監視リソースのタイプ (Google Cloud DNS 監視リソース) を選択して、[名前] ボックスにリソース名を入力します。[次へ] をクリックします。 [監視(共通)] 画面が表示されます。対象リソースに Google Cloud DNS リソースのリソース名を指定します。 [回復動作] 画面が表示されます。監視リソース異常時の回復対象と回復動作を指定します。 [完了] をクリックします。
設定の反映とクラスタの起動
以下を参照してください。- 『インストール&設定ガイド』 - 「クラスタを生成するには」
5.4. 動作確認
フェイルオーバグループ (failover1) が、現用系ノードの server1 で起動します。Cluster WebUI [ステータス] タブにおいて failover1 が server1 で [起動済] になっていることを確認します。 クライアントから、test-cluster.example.com にアクセスし、現用系ノードに接続できることを確認します。$ nslookup test-cluster.example.com <DNS サーバ> Cluster WebUI から、フェールオーバーグループを現用系ノードから待機系ノードに手動で移動します。Cluster WebUI [ステータス] タブにおいて failover1 が server2 で [起動済] になっていることを確認します。 クライアントから、test-cluster.example.com にアクセスし、待機系ノードに接続できることを確認します。$ nslookup test-cluster.example.com <DNS サーバ>
6. エラーメッセージ一覧
各リソース/監視リソースのエラーメッセージについては、以下を参照してください。
『リファレンスガイド』 -「エラーメッセージ一覧」
7. 注意・制限事項
7.1. ロードバランサを使用した HA クラスタの場合
7.1.1. Google Cloud の注意事項
マルチテナントのクラウド環境では、物理環境や一般的な仮想化環境 (非クラウド環境) に比べて性能の差が大きくなる (性能の劣化率が大きくなる) 傾向があります。性能を重視するシステムでは、設計フェーズにおいて、この点に留意する必要があります。
7.1.2. CLUSTERPRO の注意事項
- Google Cloud の仕様により、外部 TCP ネットワーク負荷分散では HTTP プロトコルを使用するレガシー ヘルスチェックが要求されます。Google Cloud 仮想 IP リソースは、TCP プロトコルを使用するヘルスチェックにのみ対応しているため、外部 TCP ネットワークロードバランサからのヘルスチェックに応答できません。そのため、外部 TCP ネットワークロードバランサによる Google Cloud 仮想 IP リソースを使用した HA クラスタはご利用になれません。内部 TCP ロードバランサをご利用ください。以下を参照してください。
- 内部 TCP ロードバランサを使用した HA クラスタ構成では、Google Cloud の仕様により、 HA クラスタと異なるリージョンのクライアントからは、 HA クラスタにアクセスできません。以下を参照してください。
- OS の起動時間は [ハートビートタイムアウト] より長くなるよう調整してください。
以下も参照してください。
7.2. Cloud DNS を使用した HA クラスタの場合
7.2.1. Google Cloud の注意事項
マルチテナントのクラウド環境では、物理環境や一般的な仮想化環境 (非クラウド環境) に比べて性能の差が大きくなる (性能の劣化率が大きくなる) 傾向があります。性能を重視するシステムでは、設計フェーズにおいて、この点に留意する必要があります。
- クライアントから名前解決できるようになるまでに時間が掛かる場合があります。以下のいずれかが考えられます。それぞれの設定を確認してください。- OS 側のリゾルバにより時間が掛かっている。- TTL の値が大きい。- Cloud DNS への変更が反映完了する前に名前解決を試みてしまうと DNS からは NXDOMAIN (存在しないドメイン) が返りますが、その場合はネガティブキャッシュの有効期間が経過するまでは名前解決に失敗します。
7.2.2. CLUSTERPRO の注意事項
- 複数の Google Cloud DNS リソースの活性・非活性処理が同時に実行されるとエラーが発生することがあります。そのため、クラスタ内で複数の Google Cloud DNS リソースを使用する場合は、リソースの依存関係やグループの起動・停止待ち合わせ等で活性・非活性処理が同時に実行されないように設定する必要があります。
- OS の起動時間は [ハートビートタイムアウト] より長くなるよう調整してください。

