目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise High Availabilityのドキュメント / 管理ガイド / ストレージとデータレプリケーション / 分散ロックマネージャ(DLM:Distributed Lock Manager)
適用項目 SUSE Linux Enterprise High Availability 15 SP6

20 分散ロックマネージャ(DLM:Distributed Lock Manager)

カーネル内の分散ロックマネージャ(DLM)は、OCFS2、GFS2、Cluster MD、およびCluster LVM (lvmlockd)によって使用されるベースコンポーネントで、各層でアクティブ/アクティブ構成のストレージが提供されます。

20.1 DLM通信のプロトコル

シングルポイント障害を回避するには、高可用性クラスタに対する冗長通信パスが重要となります。これはDLM通信においても当てはまります。ネットワークボンディング(Link Aggregation Control Protocol、LACP)が何らかの理由で使用できない場合、Corosyncで冗長通信チャネル(2番目のリング)を定義することを強くお勧めします。詳細については、手順4.3「冗長通信チャネルの定義」を参照してください。

DLMは、/etc/corosync/corosync.confの設定に応じて、TCPまたはSCTPプロトコルのいずれかを使用してポート21064を介して通信します。

  • rrp_modenoneに設定する場合(冗長リング設定が無効であることを意味する)、DLMは自動的にTCPを使用します。ただし、冗長通信チャネルを使用しない場合には、TCPリンクがダウンすると、DLM通信は失敗します。

  • rrp_modepassiveに設定され(これは通常の設定です)、/etc/corosync/corosync.confの2番目の通信リングが正しく設定されている場合、DLMは自動的にSCTPを使用します。この場合、DLMメッセージングには、SCTPによって提供される冗長性機能があります。

20.2 DLMクラスタリソースの設定

DLMはPacemakerからのクラスタメンバーシップサービスを使用し、それらのサービスはユーザスペースで実行されます。したがって、DLMは、クラスタ内の各ノードに存在するクローンリソースとして設定する必要があります。

注記
注記: いくつかの解決策のためのDLMリソース

OCFS2、GFS2、Cluster MD、およびCluster LVM (lvmlockd)のすべてがDLMを使用するため、DLMに1つのリソースを設定するだけで十分です。DLMリソースはクラスタ内のすべてのノード上で実行されるので、リソースはクローンリソースとして設定されます。

OCFS2およびCluster LVMの両方を含むセットアップがある場合、OCFS2およびCluster LVMの両方に「1つの」DLMリソースを設定するだけで十分です。この場合、手順20.1「DLMのベースグループの設定」を使用してDLMを設定します。

ただし、相互に独立してDLMを使用するリソースを保持する必要がある場合(複数のOCFS2マウントポイントなど)、グループの代わりに別々のコロケーションと順序制約を使用します。この場合、手順20.2「独立したDLMリソースの設定」を使用してDLMを設定します。

手順 20.1: DLMのベースグループの設定

この設定は複数のプリミティブおよび1つのベースクローンを含むベースグループで構成されます。ベースグループとベースクローンはどちらも、後でさまざまなシナリオで使用できます(例: OCFS2およびCluster LVM)。必要に応じてそれぞれのプリミティブを持つベースグループを拡張する必要があるだけです。ベースグループは内部コロケーションおよび順序付けを持つため、個々のグループ、クローン、その依存性をいくつも指定する必要がなく、セットアップ全体を容易にします。

  1. rootまたは同等の権限でノードにログインします。

  2. crm configureを実行します。

  3. DLMのプリミティブリソースを作成します。

    crm(live)configure# primitive dlm ocf:pacemaker:controld \
      op monitor interval="60" timeout="60"
  4. dlmリソースおよび追加のストレージ関連のリソース用にベースグループを作成します。

    crm(live)configure# group g-storage dlm
  5. g-storageグループのクローンを作成して、すべてのノードで実行できるようにします。

    crm(live)configure#  clone cl-storage g-storage \
      meta interleave=true target-role=Started
  6. showで変更内容をレビューします。

  7. すべて正しければ、commitで変更を送信し、quitでcrmライブ設定を終了します。

注記
注記: STONITHを無効にする際のエラー

STONITHを使用しないクラスタはサポートされていません。テストおよびトラブルシューティングの目的でグローバルクラスタオプションstonith-enabledfalseに設定すると、DLMリソースとそれに依存するすべてのサービス(Cluster LVM、GFS2、OCFS2など)は起動できません。

手順 20.2: 独立したDLMリソースの設定

この設定は、プリミティブおよびクローンで構成されますが、グループは含まれません。コロケーションと順序制約を追加することによって、DLMを使用する複数のリソース間で依存関係が発生することを回避できます(複数のOCFS2マウントポイントなど)。

  1. rootまたは同等の権限でノードにログインします。

  2. crm configureを実行します。

  3. DLMのプリミティブリソースを作成します。

    crm(live)configure# primitive dlm ocf:pacemaker:controld \
      op start timeout=90 interval=0 \
      op stop timeout=100 interval=0 \
      op monitor interval=60 timeout=60
  4. dlmリソースのクローンを作成して、すべてのノードで実行できるようにします。

    crm(live)configure#  clone cl-dlm dlm meta interleave=true
  5. showで変更内容をレビューします。

  6. すべて正しければ、commitで変更を送信し、quitでcrmライブ設定を終了します。