第9章 DRBDとRed Hat Cluster Suite

目次

9.1. Red Hat Clusterの背景情報
9.1.1. Fencing
9.1.2. リソースグループマネージャ
9.2. Red Hat Clusterの構成
9.2.1. cluster.conf ファイル
9.3. Red Hat ClusterフェイルオーバクラスタでDRBDを使用する
9.3.1. クラスタ構成の設定

この章ではRDBDをRed Hat Cluster高可用性クラスタのためのレプリケーションストレージとして使用する方法を説明します。

[注記]注記

ここでは非公式な Red Hat Cluster という用語を歴代の複数の正式な製品名として使用しており、そのなかには Red Hat Cluster SuiteRed Hat Enterprise Linux High Availability Add-On が含まれています。

9.1. Red Hat Clusterの背景情報

9.1.1. Fencing

Red Hat Clusterは本来は共有ストレージクラスタを主な対象として設計されたもので、ノードフェンシングによって共有リソースへの非協調的な同時アクセスを回避します。Red Hat Cluster Suiteのフェンシングインフラストラクチャは、フェンシングデーモン fenced とシェルスクリプトとして実装されるフェンシングエージェントに依存しています。

DRBDベースのクラスタは共有ストレージリソースを利用しないため、DRBDとしては厳密にはフェンシングは必要ありません。 ただし、Red Hat Cluster SuiteはDRBDベースの構成の場合でもフェンシングを必要とします。

9.1.2. リソースグループマネージャ

リソースグループマネージャ(rgmanager または clurgmgr)はPacemakerと似ています。これは、クラスタ管理スイートと管理対象アプリケーションとの間の主要なインタフェースとして機能します。

9.1.2.1. Red Hat Clusterリソース

Red Hat Clusterでは、個々の高可用性アプリケーション、ファイルシステム、IPアドレスなどを resource と呼びます。

たとえば、NFSエクスポートがマウントされているファイルシステムに依存するように、リソースは互いに依存しています。リソースは別のリソース内に入れ子になって、リソースツリー を構成します。入れ子の内部のリソースが、入れ子の外部のリソースからパラメータを継承する場合もあります。Pacemakerにはリソースツリーの概念はありません。

9.1.2.2. Red Hat Clusterサービス

相互に依存するリソースの集合を サービス と呼びます。Pacemakerではこのような集合を リソースグループ と呼んでいます。

9.1.2.3. rgmanagerリソースエージェント

rgmanager により呼び出されるリソースエージェントは、Pacemakerで使用されるものと同様に、Open Cluster Framework (OCF)で定義されたシェルベースのAPIを使用しますが、Pacemakerはフレームワークで定義されていない拡張機能も利用します。このように理論的には、Red Hat Cluster SuiteとPacemakerのリソースエージェントはおおむね互換性がありますが、実際にはこの2つのクラスタ管理スイートは似たようなタスクや同一のタスクに異なるリソースエージェントを使用します。

Red Hat Clusterリソースエージェントは /usr/share/cluster ディレクトリにインストールされます。オールインワン型のPacemaker OCFリソースエージェントとは異なり、一部の Red Hat Clusterリソースエージェントは、実際のシェルコードを含む .sh ファイルと、XML形式のリソースエージェントメタデータを含む、.metadata ファイルに分割されています。

DRBDは Red Hat Clusterリソースエージェントも提供しています。これは通常通りのディレクトリに drbd.sh および drbd.metadata としてインストールされています。

9.2. Red Hat Clusterの構成

ここでは、Red Hat Clusterを実行するために必要な構成手順の概要を説明します。クラスタ構成の準備は比較的容易で、すべてのDRBDベースのRed Hat Clusterに必要なのは、2つの参加ノード(Red Hatのドキュメントでは クラスタメンバ と呼ばれる)フェンシングデバイスだけです。

9.2.1. cluster.conf ファイル

RHELクラスタの構成は単一の設定ファイル /etc/cluster/cluster.confに記載されています。次のような方法でクラスタ構成を管理できます。

設定ファイルを直接編集する. これがもっとも簡単な方法です。テキストエディタ以外に必要なものはありません。

system-config-cluster GUIを使用する. これはGladeを使用してPythonで記述されたGUIアプリケーションです。Xディスプレイ(直接サーバコンソール上、またはSSH経由のトンネル)が必要です。

Conga webベース管理インフラストラクチャを使用する. Congaインフラストラクチャは、ローカルクラスタ管理システムと通信するノードエージェント(ricci)、クラスタリソースマネージャ、クラスタLVMデーモン、および管理用Webアプリケーション(luci)から構成されます。luciを使用して、シンプルなWebブラウザでクラスタインフラストラクチャを構成することができます。

9.3. Red Hat ClusterフェイルオーバクラスタでDRBDを使用する

[注記]注記

ここでは、GFSについては取り上げず、Red Hat Clusterフェイルオーバクラスタ用のDRBDの設定方法のみを取り上げます。GFS (およびGFS2)の構成については、11章DRBDとGFSの使用を参照してください。

このセクションでは、8章DRBDとPacemakerクラスタの同様のセクションのように、高可用性MySQLデータベースを構成することを前提としています。次のような構成パラメータを使用します。

  • データベースのストレージ領域として使用するDRBDリソース名は mysql で、これによりデバイス /dev/drbd0 を管理する。
  • DRBDデバイスにext3ファイルシステムが格納され、これが /var/lib/mysql (デフォルトのMySQLデータディレクトリ)にマウントされる。
  • MySQLデータベースがこのファイルシステムを利用し、専用クラスタIPアドレス192.168.42.1で待機する。

9.3.1. クラスタ構成の設定

高可用性MySQLデータベースを設定するには、/etc/cluster/cluster.conf ファイルを作成するか変更して、次の構成項目を記述します。

まず /etc/cluster/cluster.conf を適切なテキストエディタで開きリソース構成に次の項目を記述します。

<rm>
  <resources />
  <service autostart="1" name="mysql">
    <drbd name="drbd-mysql" resource="mysql">
      <fs device="/dev/drbd/by-res/mysql/0"
          mountpoint="/var/lib/mysql"
          fstype="ext3"
          name="mysql"
          options="noatime"/>
    </drbd>
    <ip address="10.9.9.180" monitor_link="1"/>
    <mysql config_file="/etc/my.cnf"
           listen_address="10.9.9.180"
           name="mysqld"/>
  </service>
</rm>
[注記]注記

この例では、ボリュームリソースが1つであることを前提にしています。

<service/> でリソース参照を相互に入れ子にするのは、Red Hat Cluster Suiteでリソースの依存関係を記述する方法です。

構成が完了したら、必ず、<cluster> 要素の config_version 属性をインクリメントしてください。次のコマンドを実行して、実行中のクラスタ構成に変更内容をコミットします。

ccs_tool update /etc/cluster/cluster.conf
cman_tool version -r <version>

必ず、2番目のコマンドの <version> を新しいクラスタ構成のバージョン番号と置き換えてください。

[注記]注記

cluster.conf ファイルに drbd リソースエージェントを含めると、system-config-cluster GUI構成ユーティリティとConga Webベースクラスタ管理インフラストラクチャの両方が、クラスタ構成に関する問題についてのメッセージを返します。これは、2つのアプリケーションが提供するPythonクラスタ管理ラッパが、クラスタインフラストラクチャに他社製の拡張機能が使用されることを前提としていないためです。

したがって、クラスタ構成に drbd リソースエージェントを使用する場合は、クラスタ構成のために system-config-cluster またはCongaを使用することはお勧めできません。これらのツールは正しく機能するはずですが、これらはクラスタの状態を監視するためにのみ使用してください。