OCI環境でのMySQL、CLUSTERPROを使用したクラスタ環境構築

技術者が語るOracle Cloud

今回は、OCI環境でのMySQLと、CLUSTERPROを使用したクラスタ環境の構築手順をご紹介します。

1. 構築環境について

今回構築した環境の構成は以下の通りです。

oc18_01.png

DBサーバ2台をロードバランサにて接続先のサーバを制御します。
ディスクは共有ディスクではなく、ディスクミラー方式をとっています。

次に、使用したクラウド環境やDB等のソフトウェアなどについて、基本的な内容も含めてご説明します。

●OCI
Oracle Cloud Infrastructure (以下、OCI)は、Oracle社により提供されているクラウドコンピュート・サービスです。
今回はOCI上に、OSがOracle Linux 7.8のサーバを構築しました。

●クラスタ構成
複数のサーバを連携させて、利用者や他のサーバから見て1台のサーバであるかのように動作させる技術です。
今回は、その中でもHA(High Availability)構成と呼ばれる、アクティブサーバ(1台)+バックアップサーバ(1台以上)で構成されたシステムを使用します。
これにより、アクティブサーバで障害が発生してもシステムを止めずに、バックアップサーバにメイン処理を移行させて、システム全体のサービスを継続することが可能です。

●CLUSTERPRO
クラスタ構成を構築、運用するためのNEC社の汎用オープン系高可用性クラスターパッケージソフトウェアです。
システムの障害時に、このソフトウェアがバックアップサーバにメイン処理を移行させます。
また、クラスタ全体の監視も行います。

●MySQL
オープンソースのリレーショナルデータベース管理システムです。
世界中で多くの企業が使用し、大容量のデータも高速で動作するため、レンタルサーバや検索エンジンでも使用されています。

2.クラスタ環境の構築

今回はミラーディスク型のクラスタ環境の構築手順をご紹介します。

前提として、OCI上の同一サブネット内にOracle Linux7.8のDBサーバを2台作成し、DBについてはMySQLで構築済みとします。
また、ブラウザでGUI作業を行うため、DBサーバにFirefoxがインストールされているものとします。

手順①
ミラーディスク用のブロック・ボリュームを作成、アタッチする。
アタッチしたブロック・ボリュームにミラーディスク用のパーティションを設定する。

手順②
OCIでロードバランサを作成し、2つのDBサーバを登録する。
クラスタ構成のVIP(仮想IP)としてロードバランサを作成する。
後ほど、仮想IPリソースとしてCLUSTERPROでも設定する。

手順③
CLUSTERPROをインストールし、ライセンスを登録する。
※本製品だけでなく、「CLUSTERPRO DatabaseAgent」(監視リソースのモジュール)など、オプション製品も購入している場合は、そちらもインストールしライセンス登録する。

手順④
ブラウザでの作業が必要なため、FirefoxをインストールしたサーバにログインしてFirefoxを起動する。
Cluster WebUIにアクセスし、[クラスタ生成ウィザード]を表示する。
ブラウザに入力するアドレスは「http://【サーバIPアドレス】:29003」で接続できる。
「29003」はデフォルトのポート番号で、インストール時に指定した「WebManager」のポート番号である。

※画像をクリックすると新しいタブで開きます

oc18_02.png

手順⑤
クラスタ名を入力し、「次へ」を押下する。
WebUIを起動したサーバがマスタサーバとして登録されているので、追加で2台目のサーバを登録し「次へ」を押下する。
インタコネクト一覧にカーネルモードで各サーバのIPアドレスを入力し、「次へ」を押下する。
NP解決は何もせず「次へ」を押下する。

※画像をクリックすると新しいタブで開きます

oc18_03.png

手順⑥
グループリソースを設定する。
タイプ「フェイルオーバー」、名前を記載し「次へ」を押下する。
起動可能なサーバ、グループ属性は何もせず「次へ」を押下し、グループリソースを追加する。
以下、設定後のパラメータのため、該当項目を参考に設定する。

※画像をクリックすると新しいタブで開きます

oc18_04.png

手順⑦
グループリソースを設定する。
タイプ「ディスクリソース」、名前を記載し「次へ」を押下する。
既定の依存関係にチェックを入れて「次へ」を押下し、復旧動作は何もせず「次へ」を押下する。
詳細で「デバイス名」「マウントポイント」を作成したブロックボリュームの該当する値を記載する。
以下、設定後のパラメータのため、該当項目を参考に設定する。

※画像をクリックすると新しいタブで開きます

oc18_05.png

手順⑧
グループリソースを設定する。
タイプ「EXECリソース」、名前を記載し「次へ」を押下する。
既定の依存関係にチェックを入れて「次へ」を押下し、復旧動作は何もせず「次へ」を押下する。
詳細で「この製品で作成したスクリプト」にチェックを入れ、「完了」を押下する。
以下、設定後のパラメータのため、該当項目を参考に設定する。

※画像をクリックすると新しいタブで開きます

oc18_06.png

手順⑨
グループリソースを設定する。
タイプ「Oracle Cloud 仮想IPリソース」、名前を記載し「次へ」を押下する。
既定の依存関係にチェックを入れ「次へ」を押下する。
復旧動作はデフォルトのまま「次へ」を押下し、詳細も「完了」を押下する。
以下、設定後のパラメータのため、該当項目を参考に設定する。

※画像をクリックすると新しいタブで開きます

oc18_07.png

手順⑩
モニタリソースに「ミラーディスクコネクトモニタ」「ミラーディスクモニタ」「OracleCloudロードバランスモニタ」「OracleCloud仮想IPモニタ」「ユーザ空間モニタ」を追加する。

3.クラスタ動作の確認

フェイルオーバーを行い、動作確認します。
今回は簡易的に、起動中のサーバのCLUSTERPROを停止することでフェイルオーバーさせます。

手順①
サーバのサービスを停止する。

oc18_08.png

手順②
2号機側の「WebUI」に接続し、片方のサーバが停止していることを確認する。

oc18_09.png

手順③
1号機のCLUSTERPROを起動した上で、グループが2号機に移っていることを確認し、フェイルオーバーは成功とします。

oc18_10.png

4.最後に

実際に環境構築を進める中で、特に苦労した点を3つご紹介します。

  1. オプション製品のインストールを実施していなかった
    CLUSTERPRO本体のインストールでインストール作業を終えてしまい、モニタリソースの選択画面で製品オプション(今回は「DatabaseAgent」)が無いため、選択できないリソースがあり、解決に時間がかかってしまった。
  2. ミラーディスクのマウントポイント
    ブロックボリュームをアタッチしたものの、パーティションを設定していなかったため、マウントポイントに選択できなかった。
  3. CLUSTERPROのマニュアルの複雑さ
    クラスタ環境を構築する際に参考資料として確認していたが、マニュアルの種類が多いことに加え、別ドキュメントへの紐づけが分かりづらい部分があった。

環境構築を終えた後にマニュアルを確認すると、非常に内容濃く記載されていたことに気付かされました。
エラー等で環境構築につまづいた際には、一度冷静になり、最初から順にマニュアルを確認していくことも重要だと考えています。

最後までお読みいただき、ありがとうございました。