11.4. CTDB の設定

CTDB 設定ファイルは /etc/sysconfig/ctdb にあります。CTDB が動作するよう設定する必要がある必須フィールドは、以下のとおりです。
  • CTDB_NODES
  • CTDB_PUBLIC_ADDRESSES
  • CTDB_RECOVERY_LOCK
  • CTDB_MANAGES_SAMBA (有効にする必要あり)
  • CTDB_MANAGES_WINBIND (メンバーサーバーで実行する場合は有効にする必要あり)
以下の例は、サンプルのパラメーターを使って設定した CTDB の動作の必須フィールドが入力された設定ファイルを示しています。
CTDB_NODES=/etc/ctdb/nodes
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_RECOVERY_LOCK="/mnt/ctdb/.ctdb.lock"
CTDB_MANAGES_SAMBA=yes
CTDB_MANAGES_WINBIND=yes
上記のパラメーターの意味は以下のとおりです。
CTDB_NODES
クラスターノードの一覧を含むファイルの場所を指定します。
CTDB_NODES が参照する /etc/ctdb/nodes ファイルには、次の例のようにクラスターノードの IP アドレスが一覧表示されているだけです。
192.168.1.151
192.168.1.152
192.168.1.153
この例では、クラスター/CTDB 通信とクライアントサービスの両方に使用されるインターフェース/IP は各ノードに 1 つだけあります。しかし、各クラスターノードは 2 つのネットワークインターフェースを持つことが強く推奨されます。これにより、インターフェースの 1 セットはクラスター/CTDB 通信専用に、別のインターフェースのセットはパブリッククライアントアクセス専用にできます。クラスターネットワークの適切な IP アドレスを使用し、cluster.conf ファイル内で使用されているホスト名/IP アドレスが同じであることを確かめてください。同様に、public_addresses ファイル内のクライアントアクセスに対してもパブリックネットワークの適切なインターフェースを使用するようにしてください。
ここで、極めて重要なことは、/etc/ctdb/nodes ファイルが全ノードで全く同一である点です。順番が重要であり、別々のノードで違う情報が見つかると CTDB は失敗します。
CTDB_PUBLIC_ADDRESSES
このクラスターによってエクスポートされる Samba 共有にアクセスするために使用可能な IP アドレスを一覧表示するファイルの場所を指定します。これらは、Clustered Samba サーバー名用に DNS で設定すべき IP アドレスで、CIFS クライアントが接続するアドレスです。Clustered Samba サーバー名を複数の IP アドレスを持つ 1 つの DNS の A レコードタイプとして設定し、ラウンドロビン DNS がクラスターノード全体にクライアントを分散するようにします。
この例では、ラウンドロビン DNS エントリ csmb-server/etc/ctdb/public_addresses ファイルに一覧表示されている全アドレスで設定しました。DNS はこのエントリを使用するクライアントをクラスター全体にラウンドロビン式で分散します。
各ノードの /etc/ctdb/public_addresses ファイルの内容は次のとおりです。
192.168.1.201/0 eth0
192.168.1.202/0 eth0
192.168.1.203/0 eth0
この例では、現在ネットワークで使用されていない 3 つのアドレスを使用します。実際に使用する設定では、対象となるクライアントがアクセスできるアドレスを選択してください。
もう一つの方法として、この例では、合計 4 つのパブリックアドレスを除いた 3 つのノードがあるクラスター内の /etc/ctdb/public_addresses ファイルのコンテンツを表示しています。 以下の例では、IP アドレス 198.162.2.1 は、ノード 0 又はノード 1 のいずれかによってホストでき、これらのノードのうち少なくとも 1 つが利用可能な限りクライアントは使用することができます。ノード 0 とノード 1 の両方に障害があった場合に限り、クライアントはこのパブリックアドレスを使用できなくなります。他のすべてのパブリックアドレスは、それぞれ単一のノードによって機能するため、それぞれ対応するノードも利用可能な場合にのみ使用できます。
ノード 0 の /etc/ctdb/public_addresses ファイルには次のコンテンツが含まれます。
198.162.1.1/24 eth0
198.162.2.1/24 eth1
ノード 1 の /etc/ctdb/public_addresses ファイルには次のコンテンツが含まれます。
198.162.2.1/24 eth1
198.162.3.1/24 eth2
ノード 2 の /etc/ctdb/public_addresses ファイルには次のコンテンツが含まれます。
198.162.3.2/24 eth2
CTDB_RECOVERY_LOCK
CTDB がリカバリ用に内部で使用するロックファイルを指定します。このファイルは、すべてのクラスターノードがアクセスできるように共有ストレージに存在する必要があります。このセクションの例は、全ノードで /mnt/ctdb にマウントされる GFS2 ファイルシステムを使用します。これは、エクスポートされる Samba 共有をホストする GFS2 ファイルシステムとは異なります。このリカバリロックファイルは、スプリットブレインシナリオを防ぐために使用されます。CTDB (1.0.112 以降) の新しいバージョンでは、このファイルがスプリットブレインを防ぐ別の仕組みで置換されていれば、このファイルの指定はオプションとなります。
CTDB_MANAGES_SAMBA
このフィールドを yes に設定して有効にする場合、CTDB が Samba サービスの起動/停止を行うことができると指定します。これは、CTDB がサービスの移行/フェイルオーバーを提供するために必要だと考えられているためです。
CTDB_MANAGES_SAMBA を有効にしたら、以下のコマンドを実行して、smb 及び nmb デーモンの init の自動スタートアップを無効にしてください。
[root@clusmb-01 ~]# chkconfig snb off
[root@clusmb-01 ~]# chkconfig nmb off
CTDB_MANAGES_WINBIND
このフィールドを yes に設定して有効にする場合、必要に応じて CTDB が winbind デーモンの起動/停止を行うことができると指定します。Windows ドメイン又は Active Directory セキュリティモードで CTDB を使用している場合には、これを有効にすることをお勧めします。
CTDB_MANAGES_WINBIND を有効にしたら、次のコマンドを実行して、 winbind デーモンの init の自動スタートアップを無効にしてください。
[root@clusmb-01 ~]# chkconfig windinbd off