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

 2021.03.02  株式会社システムエグゼ

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

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

構築環境について

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

構築環境について

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

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

OCI

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

クラスタ構成

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

CLUSTERPRO

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

MySQL

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

クラスタ環境の構築

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

前提として、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」のポート番号である。

※画像をクリックすると拡大します

手順④

手順⑤

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

※画像をクリックすると拡大します

手順⑤

手順⑥

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

※画像をクリックすると拡大します

手順⑥

手順⑦

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

※画像をクリックすると拡大します

手順⑦

手順⑧

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

※画像をクリックすると拡大します

手順⑧

手順⑨

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

※画像をクリックすると拡大します

手順⑨

手順⑩

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

クラスタ動作の確認

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

手順①

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

手順①

手順②

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

手順②

手順③

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

手順3

最後に

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

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

環境構築を終えた後にマニュアルを確認すると、非常に内容濃く記載されていたことに気付かされました。

エラー等で環境構築につまづいた際には、一度冷静になり、最初から順にマニュアルを確認していくことも重要だと考えています。

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


RECENT POST「エンジニアリング」の最新記事


エンジニアリング

BigData分析基盤検証:Apache Hadoop構築編(Single構成)

エンジニアリング

MySQL Database Serviceを触ってみた(接続編)

エンジニアリング

Terraform入門 ~TerraformでOCIのMySQL DBCS構築~

エンジニアリング

Autonomous Data Warehouse と Analytics Cloudで行うデータ分析について~分析環境の構築・基本的な分析編~

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