DRBD v9.17(カーネル v9.1.4)
drbd
サービスとして実行するときとツールを手動で使用するときの一般的な役割を理解しようとしていますdrbdadm
。これは、オンラインで見たいくつかの練習よりも新しいようです。
このサービスとツールはいつ使用する必要があり、drbdadm
フェイルオーバー制御pacemaker
に関してどこに適していますか?drbd
リソースを手動で作成して起動しdrbdadm
たところ、UPToDate
statusコマンドを使用して両方のノードに表示されます。フェールオーバーのために、ペースメーカーでその機能を実装する方法を知る必要があります。ここで大きな絵を見逃しているようです。ペースメーカーにリソースを追加すると、フローIPよりも少し複雑に見えます...お読みいただきありがとうございます!
答え1
drbdadm
それは最初から存在していたので、どのチュートリアルよりも新しいものではありません。
有効にすると、サービスはDRBDカーネルモジュールをロードし、起動時にノード上のすべてのDRBDデバイスをロードしますが(drbdadm up all
以前と同じように)マスターに昇格しようとせず、デバイスのマウントに失敗します。これはDRBDノードをプライマリに昇格し、DRBDベースを使用してサービスを開始するためにDRBDと共にPacemakerを頻繁に使用することです。
DRBD 9.xにはデフォルトで自動アップグレードが有効になっているため、最初にプライマリに昇格せずにデバイスをマウント(またはアクセス)しようとすると、現在のプライマリノード以外のノードがない場合は自動的にプライマリに昇格されるため、次のことができます。 。それにアクセスしてください。
Pacemakerはクラスタリソースマネージャであるため、そのタスクはさまざまなノードでサービスを開始/停止/監視し、そのリソースの正しい順序と配置を確認することです。 DRBDは、Pacemakerの「マルチステート」(またはms
)レプリケーションリソースによって制御されます。これは、デフォルトではDRBDの場合は複数の状態(「デフォルト」および「セカンダリ」)を持つ複製セットですが、データベース複製セットでは可能です。 「基本」と「待機」です。
2ノードのPacemakerクラスタに構成されているDRBDリソースの例はr0
次のとおりです。
primitive p_drbd_r0 ocf:linbit:drbd \
params drbd_resource=r0 \
op start interval=0s timeout=240 \
op promote interval=0s timeout=90 \
op demote interval=0s timeout=90 \
op stop interval=0s timeout=100 \
op monitor interval=29 role=Master \
op monitor interval=31 role=Slave
ms ms_drbd_r0 p_drbd_r0 \
meta master-max=1 master-node-max=1 \
notify=true clone-max=2 clone-node-max=1
ホストにマウントされたファイルシステムを管理するには、r0
ファイルシステムリソースとそれをマスターDRBDノードにバインドする制約を追加する必要があります。
primitive p_fs_drbd Filesystem \
params device="/dev/drbd0" directory="/drbd" \
fstype=xfs options="noatime,nodiratime" \
op start interval=0 timeout=60s \
op stop interval=0 timeout=60s \
op monitor interval=20 timeout=40s
colocation cl_fs-with-ms_drbd_r0 inf: p_fs_drbd:Started ms_drbd_r0:Master
order o_ms_drbd_r0-before-fs ms_drbd_r0:promote p_fs_drbd:start
PacemakerでDRBDデバイスを管理する前に、DRBDデバイスにファイルシステムを作成する必要があります。
DRBDの役割は、ノード間ブロックデバイスを複製することです。