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