みなさんこんにちは。技術1課の中村です。
気がついたら2年目になっていました。時の流れは大変に早いと感じています。
さて、今回はCLUSTERPROを使ってAWS環境でHAクラスターを組む手順を紹介したいと思います。
CLUSTERPROとは
クラスタープロとは、日本電気株式会社(NEC)によるHAクラスタリングソフトウェアです。
システムの障害を監視し、障害発生時には健全なサーバにフェイルオーバーすることで、高可用性を実現することができます。
オンプレ環境はもちろん、AWS環境における動作もサポートされています。
ちなみに、このキャラクターは「くらら」と「ぷろろ」というキャラクターです。本当です。
詳細はNEC様の製品紹介ページをご覧下さい。
CLUSTERPRO
http://jpn.nec.com/clusterpro/
CLUSTERPRO マスコットキャラクター
http://jpn.nec.com/clusterpro/character.pdf
この記事でやる事
この記事では、AWSのVPC内にEC2インスタンス(Windows Server 2012 R2)を2台立てて、その2台のインスタンスで2ノードのHAクラスターを構築します。
具体的な手順は、以下の通りです。
- システムの設計
- EC2インスタンスのLaunch
- クラスターの構築に伴う事前準備
- CLUSTERPROのインストール
- クラスターの構築
- 起動確認
早速はじめましょう
早速はじめましょう。まずはシステムの設計です。
1. システムの設計
1.1 クラスター構成を決定する
CLUSTERPROでは、クラスターの構成をディスク共有型か、ミラーディスク型の二つから選択できます。
ですが、AWSのEBSの仕様上、AWS上でクラスターを構成する場合は、ミラーディスク型一択です。
また、クラスターを構成するサーバー(ノード)の数は2にします。
1.2 インスタンスのIPを決定する
クラスターを構成する2台のEC2インスタンスのIPアドレスを決めましょう。
自動採番でも良いですが、クラスター構築時にIPアドレスを入力する必要があるので、覚えやすいIPでLaunchしておくと便利です。
ここでは、10.0.0.50と10.0.0.60とします。
1.3 インスタンスタイプを決定する
クラスターを構成する2台のEC2インスタンスのインスタンスタイプを決めましょう。
ここでは、m3.mediumにします。AWS利用料にダイレクトに響く値ですので、実際に構築する際は、上司やお財布と相談して決めましょう。
1.4 ディスクの構成を決定する
CLUSTERPROでクラスターを組むには、データを同期する「データパーティション」と、
クラスターの構成情報や同期情報等を保持する「クラスターパーディション」が必要になります。
パーティションなので一つのディスクに相乗りする事もできますが、ここではそれぞれ独立したEBSとして設計します。
OS用のEBSも別途必要なので、3つのEBSになります。役割は以下のような感じです。
- EBS1: Cドライブ 30GB (OS用ディスク)
- EBS2: Dドライブ 10GB (データパーティション用ディスク)
- EBS3: Eドライブ 1GB (クラスターパーティション用ディスク)
なお、OSが入っているパーティションはデータパーティションとして指定できません(同期対象として指定できない)ので、ご注意下さい。
1.5 その他CLUSTERPRO設定
CLUSTERPROでは、同期方法(同期、非同期)や、フェイルオーバーの方法(自動、手動)など、他にも様々な設定項目が存在します。
ですが、今回の記事では上記以外の設定に関してはデフォルトで進めて行きます。
2. EC2インスタンスのLaunch
設計の章で決めた通りにEC2インスタンスを構築します。
また、この後RDPで接続してクラスターの設定を行うため、インスタンスにEIPを付けておくと良いでしょう。
そういえば、つい最近マネジメントコンソールが日本語化されましたね…!
ですが、私は日本語がしっくりこなくて英語に戻してしまいました。
3. クラスター構築の事前準備
EC2インスタンスが立ち上がったら、RDPで接続します。
ここからは、Windows上で行う作業です。
3.1. シンプルボリュームを作成する
データパーティションとクラスターパーティションとしてインスタンスにアタッチした二つのドライブから、シンプルボリュームを作成しましょう。
データパーティションに関しては、既にNTFSでフォーマットされている場合はこの手順は不要です。
ただし、クラスターパーティションに関してはフォーマットしていない状態である必要があるため、
もしNTFSでフォーマットされている場合は、ボリュームを削除した上で、シンプルボリュームを作成します。
繰り返しになりますが、この際クラスターパーティションはフォーマットしてはいけません。
結論として、以下のようになっていれば大丈夫です。
- データパーティション(Dドライブ) NTFSフォーマット
- クラスターパーティション(Eドライブ) フォーマットなし
- 2台のインスタンスでそれぞれのパーティションのサイズが揃っている
参考手順3.1.1) ボリュームの作成
参考手順3.1.2) ボリュームのサイズ指定
参考手順3.1.3) ボリューム作成時のフォーマット無し指定(クラスターパーティションのみ)
3.2. Javaをインストールする
クラスターを管理するClusterManagerを動かすにはJavaが必要です。
Javaをインストールしておきましょう。
なお、OSが64bitの場合でも、ブラウザが32bit版の場合は32bit用のJavaをインストールしておく必要があります。
3.3. ファイアウォールを無効化する
CLUSTERPROで使用するポートを使用可能な状態にするために、ファイアーウォールを無効化しておきます。
個別でポートを操作する場合は、CLUSTERPRO スタートアップガイド 109ページに
使用ポート一覧が記載されておりますので、そちらをご覧下さい。
スタートアップガイド
http://jpn.nec.com/clusterpro/clp/windows/document/x33_w.html?
3.4. CLUSTERPROのインストール
事前準備最後の手順、CLUSTERPROのインストールです。
試用版のアプリケーションとライセンスキーは以下よりダウンロード、取得申請が可能です。
ライセンスはCLUSTERPRO本体のライセンスが1つと、CLUSTERPRO Replicatorのライセンス(ミラーリング用オプション)が2つ(2node分)必要です。
試用版ダウンロード
http://jpn.nec.com/clusterpro/clp/data/trial_dl.html?
インストールの途中、共有ディスクのフィルタリング設定を行う場面がありますが、
今回構築するクラスターは共有ディスク型ではなく、ミラーディスク型ですので、設定する必要はありません。
参考図3.4.1) 共有ディスクのフィルタリング設定(今回は設定する必要なし)
インストールの最後にライセンスを登録できますので、ライセンスを登録しておきます。
ここでライセンスを登録していないと、ディスクのミラーリングができませんのでご注意下さい。
4. クラスターの構築
ついにここまで来ました。やっとクラスターの構築です。
これまでの事前準備を正しく行えていれば、クラスターの構築はスムーズに進むはずです。
それでは進めて行きましょう。
4.1. Cluster Managerにアクセスする
EC2インスタンスでブラウザを起動し、「http://localhost:29003」にアクセスします。
Cluster Managerが表示されます。表示されない場合は、Javaがインストールできていない可能性が高いです。
Cluster Managerを起動するとクラスター構築ウィザードが表示されますので、
「クラスタ生成ウィザードを開始する」を選択して次に進みます。
4.2. クラスターの名前を決める
クラスターの名前を決めます。デフォルトが「cluster」なので、このまま進みます。
4.3. サーバーを追加する
サーバー(ノード)を追加します。サーバーはホスト名かIPアドレスで指定します。
IPアドレスで指定する際は、PrivateIPで指定します。(ここが重要です)
サーバーが追加されました。通常、ClusterManagerを操作しているサーバー(今ログインしているサーバー)がマスターサーバーとなります。
確認できたら、次に進みます。
4.4. インタコネクトを追加する
インタコネクトとは、サーバー間の通信経路です。
デフォルトではハートビート用のインタコネクトが設定されています。
今回はミラーディスク型のクラスターですので、ミラー通信用のインタコネクトを以下のように追加しておきます。
追加できましたら、次に進みます。
4.5. ネットワークパーティション解決方法を設定する
ネットワークパーティション状態とは、サーバー間のインタコネクトやネットワークの障害により、
お互いのサーバーがお互いを認識できなくなってしまっている状態の事です。スプリットブレインシンドロームとも呼ばれます。
ネットワークパーティションの詳細については以下の資料をご覧下さい。
http://jpn.nec.com/clusterpro/clp/doc/wp/windows-np-rev3.pdf
今回の記事では、この設定は行わないで次に進みます。
4.6. フェイルオーバーグループを作成する
続いて、フェイルオーバーグループを作成します。
フェイルオーバーグループとは、1つのクラスターの中でフェイルオーバー可能なグループを指します。
1つのクラスターにフェイルオーバーグループが相乗りする事が可能で、
今回の記事では1つのクラスターに1つのフェイルオーバーグループを作成します。
名前はデフォルトのまま「failover」でこのまま進みます。
4.7. フェイルオーバーグループにサーバーを追加する
フェイルオーバーグループを作成したら、フェイルオーバーグループにサーバーを追加します。
今回は1つのクラスターに1つのフェイルオーバーグループが載っている構成ですので、
全てのサーバーでフェイルオーバー可能をチェックしておきます。
5台のマシンでクラスターを組んだ場合等では、ここでフェイルオーバー可能なサーバーのみを選択する事になります。
4.8. フェイルオーバーグループの定義を決定する
フェイルオーバーグループにサーバーを追加したら、グループの定義を決定します。
今回の記事では全てデフォルトでこのまま進みます。
4.9. グループリソースを追加する
フェイルオーバーグループの定義を決定したら、フェイルオーバーグループにリソースを追加します。
グループリソースのタイプは、ミラーディスクリソースを選択します。
CLUSTERPROインストール時にCLUSTERPRO Replicatorのライセンスを登録していない場合は、
ミラーディスクリソースは選択肢に表れませんので、ご注意下さい。
4.10. グループリソースの定義を決定する
グループリソースを追加したら、グループリソースの定義を決定します。
ここもデフォルトでそのまま進みます。
4.11. グループリソースの定義を決定する(ディスク編)
続いて、グループリソースのリソースを指定します。
今回のグループリソースのタイプはミラーディスクリソースですので、パーティションを指定します。
設計の章でも決めた通り、Dドライブがデータパーティション、Eドライブがクラスターパーティションです。
ここでは、2台分のパーティションを設定する必要がありますので、忘れずに行いましょう。
設定を終え「完了」をクリックするとグループリソースを追加する画面に戻ってきます。
今回はこれ以上グループリソースを追加しないので、もう一度「完了」をクリックします。
ちなみに、グループリソースとして、クラスターの論理IPや論理ホスト名もここで設定することができます。
ですが、この記事では論理IP、論理ホスト名は設定せずにこのまま進みます。
4.12. モニタリソースを確認する
グループリソースを追加し終えると、モニタリソースを設定する画面に移ります。
自動でグループリソースに必要なモニタリソースが設定されますので、このまま次に進みます。
4.13. クラスターの設定を適用させる
モニタリソースの設定を終えるとクラスターの設定は完了です。お疲れさまでした。
次は、今設定したしたクラスターの設定をアップロードします(クラスターを構成する全てのサーバーに適用させます)。
設定をアップロードするには、上向きの矢印のボタンを押します。
クラスターの設定が正しければクラスターマネージャーを再起動する旨の確認が出ますので、「OK」をクリックします。
クラスターの設定が正しくされていない場合は、その箇所が警告として出ますので、修正を行い再度アップロードを試みて下さい。
これにてクラスターの構築は終了です。次は動作テストです。
5. 起動確認
構築したクラスターを起動してみましょう!
クラスターを起動するには、設定モードから操作モードに切り替えます。
設定モードに切り替えたら、サービスから、「クラスタ開始」を選択します。
クラスターが起動し、左側のアイコンが全て緑色になっていればクラスターの起動は成功です!
クラスターがうまく起動しない場合は今一度設定をご確認下さい。
まとめ
今回の記事では、AWSのVPC内にEC2インスタンス(Windows Server 2012 R2)を2台立てて、
その2台のインスタンスでHAクラスターを構築しました。
CLUSTERPROは設定項目こそ多いですが、デフォルトでもそれなりに動くので、
要所を抑えてさえいれば構築はそこまで難しくないと思います。
とはいえ、今回はクラスターを構築して起動しただけなので、
次回の記事では実際に障害を起こしてフェイルオーバーをさせてみたいと思います。
また、フェイルオーバーの実験に伴い、今回設定をパスしている論理IP、論理ホスト名の設定も併せて紹介する予定です。
それでは皆様、お疲れさまでした。また次回会いましょう!