
したがって、現在の環境は、ペアの同じベアメタルサーバー上のcentos7です。 drbdをインストールし、DRBDミラー用に3 x 100Gブロックデバイスを割り当てました。その後、ブロックデバイスの1つにCentos7イメージをインストールしました。
私はPacemakerがXen仮想イメージだけでなくDRBDも管理できるようにしたいので、Clusterlabs.orgの「Clusters From Scratch」のドキュメントで指定された指示に従いました。
pcs cluster cib drbd_cfg
pcs -f drbd_cfg resource create XenHost01_Storage ocf:linbit:drbd drbd_resource=XenHost01 op monitor interval=60s
pcs -f drbd_cfg resource master XenHost01_StorageClone XenHost01_Storage master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs cluster cib-push drbd_cfg
その後、管理のためにXen vmも追加しました。
pcs cluster cib vmstate_cfg
pcs -f vmstate_cfg resource create XenHosts --group vminit systemd:vmstate op monitor interval=10s
pcs cluster cib-push vmstate_cfg
したがって、私のクラスタリソースは次のようになります。
Full list of resources:
Master/Slave Set: XenHost01_StorageClone [XenHost01_Storage]
Masters: [ ha1 ]
Slaves: [ ha2 ]
Resource Group: vminit
XenHosts (systemd:vmstate): Started ha1
PCSD Status:
ha1: Online
ha2: Online
私が見つけようとしているものとこの記事を投稿する理由は、Xen仮想マシンがマスターDRBDホストでのみ起動されるように、DRBDマスター/スレーブペアをvminitグループの下に貼り付ける方法です。グループにホストがない場合、クラスタは他のホストが DRBD でマスターとしてマークされていても、仮想イメージを起動しようとしても失敗します。
グループの下にマスター/スレーブdrbdリソースを取得する方法を知っている人はいますか?私はいつも髪を引き裂いていました。
答え1
vminit
マスターが属するグループのみを起動できることをクラスタに通知するには、順序付きの共同配置制約を使用する必要がありますXenHost01_StorageClone
。
次の作業を行う必要があります。
# pcs cluster cib cib_constraints.xml
# pcs -f cib_constraints.xml constraint order promote XenHost01_StorageClone then start vminit
# pcs -f cib_constraints.xml constraint colocation add vminit with master XenHost01_StorageClone
# pcs cluster verify cib_constraints.xml
# pcs cluster cib-push cib_constraints.xml