シングルポイント障害を回避するには、高可用性クラスタに対する冗長通信パスが重要となります。これはDLM通信においても当てはまります。ネットワークボンディング(Link Aggregation Control Protocol、LACP)が何らかの理由で使用できない場合、Corosyncで冗長通信チャネル(2番目のリング)を定義することを強くお勧めします。詳細については、手順4.3「冗長通信チャネルの定義」を参照してください。
/etc/corosync/corosync.confの設定によって、DLMはその通信にTCPプロトコルを使用するか、SCTPプロトコルを使用するかを判断します。
をnoneに設定する場合(冗長リング設定が無効であることを意味する)、DLMは自動的にTCPを使用します。ただし、冗長通信チャネルを使用しない場合には、TCPリンクがダウンすると、DLM通信は失敗します。
がpassiveに設定され(これは通常の設定です)、/etc/corosync/corosync.confの2番目の通信リングが正しく設定されている場合、DLMは自動的にSCTPを使用します。この場合、DLMメッセージングには、SCTPによって提供される冗長性機能があります。
DLMはPacemakerからのクラスタメンバーシップサービスを使用し、それらのサービスはユーザスペースで実行されます。したがって、DLMは、クラスタ内の各ノードに存在するクローンリソースとして設定する必要があります。
OCFS2、GFS2、Cluster MD、およびcLVMのすべてがDLMを使用するため、DLMに1つのリソースを設定することで十分です。DLMリソースはクラスタ内のすべてのノード上で実行されるので、リソースはクローンリソースとして設定されます。
OCFS2およびcLVMの両方を含むセットアップがある場合、OCFS2およびcLVMの両方に1つのDLMリソースを設定することで十分です。
設定は複数のプリミティブおよび1つのベースクローンを含むベースグループで設定されます。ベースグループとベースクローンはどちらも、後でさまざまなシナリオで使用できます(例: OCFS2およびcLVM)。必要に応じてそれぞれのプリミティブを持つベースグループを拡張する必要があるだけです。ベースグループは内部コロケーションおよび順序付けを持つため、個々のグループ、クローン、その依存性をいくつも指定する必要がなく、セットアップ全体を容易にします。
クラスタ内の1つのノードについて、次の手順を実行してください。
シェルを起動し、rootまたは同等のものとしてログインします。
crm configureを実行します。
次のコマンドを入力して、DLMのプリミティブリソースを作成します。
crm(live)configure#primitivedlm ocf:pacemaker:controld \ op monitor interval="60" timeout="60"
DLMリソースおよび追加のストレージ関連のリソース用にベースグループを作成します。
crm(live)configure#groupg-storage dlm
g-storageグループのクローンを作成して、すべてのノードで実行できるようにします。
crm(live)configure#clonecl-storage g-storage \ meta interleave=true target-role=Started
showで変更内容をレビューします。
すべて正しければ、commitで変更を送信し、exitでcrmライブ設定を終了します。
STONITHを使用しないクラスタはサポートされていません。テストまたはトラブルシューティングのためにグローバルクラスタオプション stonith-enabled をfalseに設定すると、DLMリリソースとそれに依存するすべてのサービス(cLVM、GFS2、およびOCFS2など)は起動できません。