web-dev-qa-db-ja.com

ペースメーカーでDRBDが失敗した

PacemakerとDRBDは初めてですが、一緒に構成する必要があります。 2つのdrbdリソースを作成しました。DrbdwwwとDrbdMysqlですが、drbd_monを使用すると、次のエラーが発生します。

Stack: corosync
Current DC: s-ha-web1 (version 1.1.15-e174ec8) - partition with quorum
Last updated: Mon May  8 21:58:45 2017          Last change: Mon May  8 21:58:36 2017 by hacluster via crmd on s-ha-web1

2 nodes and 7 resources configured

Online: [ s-ha-web1 s-ha-web2 ]

 Resource Group: haweb
     vip        (ocf::heartbeat:IPaddr2):       Started s-ha-web1
     httpd      (ocf::heartbeat:Apache):        Started s-ha-web1
     Drbdwww    (ocf::linbit:drbd):     FAILED (blocked)[ s-ha-web1 s-ha-web2 ]
     fsDrbdwww  (ocf::heartbeat:Filesystem):    Stopped
     DrbdMysql  (ocf::linbit:drbd):     FAILED (blocked)[ s-ha-web1 s-ha-web2 ]
     fsDrbdMysql        (ocf::heartbeat:Filesystem):    Stopped
     mysql      (ocf::heartbeat:mysql): Stopped

Failed Actions:
* Drbdwww_monitor_0 on s-ha-web1 'not configured' (6): call=14, status=complete, exitreason='none',
    last-rc-change='Mon May  8 21:58:40 2017', queued=0ms, exec=21ms
* DrbdMysql_stop_0 on s-ha-web1 'not configured' (6): call=23, status=complete, exitreason='none',
    last-rc-change='Mon May  8 21:58:40 2017', queued=0ms, exec=30ms
* Drbdwww_stop_0 on s-ha-web2 'not configured' (6): call=32, status=complete, exitreason='none',
    last-rc-change='Mon May  8 21:58:40 2017', queued=0ms, exec=17ms
* DrbdMysql_stop_0 on s-ha-web2 'not configured' (6): call=31, status=complete, exitreason='none',
    last-rc-change='Mon May  8 21:58:40 2017', queued=0ms, exec=17ms

これが私のペースメーカー構成です:

crm configure property stonith-enabled=false
crm configure property no-quorum-policy=ignore

crm configure primitive vip ocf:heartbeat:IPaddr2 params ip=192.168.100.100 cidr_netmask=24 nic="eth1" op monitor interval="30s" timeout="20s"

crm configure primitive Drbdwww ocf:linbit:drbd params drbd_resource="rwww" op monitor interval="30s" role="Slave" op monitor interval="29s" role="Master" 

crm configure primitive fsDrbdwww ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/var/www/html" fstype="ext4"

crm configure primitive DrbdMysql ocf:linbit:drbd params drbd_resource="rmysql" op monitor interval="30s" role="Slave" op monitor interval="29s" role="Master" 

crm configure primitive fsDrbdMysql ocf:heartbeat:Filesystem params device="/dev/drbd1" directory="/var/lib/mysql_drbd" fstype="ext4"

誰かが私を助けてくれますか?さらに情報が必要な場合は、教えてください。

2
anakin.wow

あなたはここでかなり欠けています。

まず、DRBDデバイスごとにマスタースレーブリソースセットが必要になります。

次に、コロケーションと順序の制約を使用して、リソースのグループ(fs、ip、service)を作成し、それらのグループに、それぞれのDRBDデバイスがマスターに昇格された場所/後にのみ開始するように指示します。リソースグループは、グループ内のリソースのコロケーションと順序付けを意味します。

Googleは、DRBDとPacemakerを使用したHA LAMPスタックのセットアップに関する多数のガイドを提示する必要があります。

編集:より多くの情報が回答の形で提供されました...私は今より具体的にすることができます。

これは、CIB(pacemaker構成)が次のようになるはずです。

node 1: s-ha-web1
node 2: s-ha-web2
primitive Drbdwww ocf:linbit:drbd \
    params drbd_resource="rwww" \
    op monitor interval="30s" role="Slave" \
    op monitor interval="29s" role="Master"
primitive DrbdMysql ocf:linbit:drbd \
    params drbd_resource="rmysql" \
    op monitor interval="30s" role="Slave" \
    op monitor interval="29s" role="Master"
primitive fsDrbdwww ocf:heartbeat:Filesystem \
    params device="/dev/drbd0" directory="/var/www/html" fstype="ext4" \
    op monitor interval=30s timeout=30s
primitive fsDrbdMysql ocf:heartbeat:Filesystem \
    params device="/dev/drbd1" directory="/var/lib/mysql_drbd" fstype="ext4" \
    op monitor interval=30s timeout=30s
primitive vipwww ocf:heartbeat:IPaddr2 \
    params ip=192.168.100.100 cidr_netmask=24 nic="eth1" \
    op monitor interval="30s" timeout="20s"
primitive vipmysql ocf:heartbeat:IPaddr2 \
    params ip=192.168.100.101 cidr_netmask=24 nic="eth1" \
    op monitor interval="30s" timeout="20s"
primitive httpd ocf:heartbeat:Apache \
    op start interval=0s timeout=40s
    op stop interval=0s timeout=60s
    op monitor interval=20s timeout=20s
primitive mysql ocf:heartbeat:mysql \
    op start interval=0s timeout=120s
    op stop interval=0s timeout=120s
    op monitor interval=20s timeout=30s
group gwww fsDrbdwww vipwww httpd
group gmysql fsDrbdMysql vipmysql mysql
order o_drbdwww-before-gwww inf: ms_drbdwww:promote gwww:start
colocation cl_gwww-with-drbdwww inf: gwww ms_drbdwww:Master
order o_drbdMysql-before-gmysql inf: ms_drbdMysql:promote gmysql:start
colocation cl_gmysql-with-drbdMysql inf: gmysql ms_drbdMysql:Master
ms ms_drbdwww Drbdwww \
    meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
ms ms_drbdMysql DrbdMysql \
    meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
property cib-bootstrap-options: \
    stonith-enabled=false \
    no-quorum-policy=ignore

DRBDリソースでの失敗したアクションは、DRBDデバイスを適切にセットアップしていないことを意味している可能性があります。すでにデバイスのメタデータを作成しましたか?その場合、最初の同期を開始するために、1つのノードをプライマリに強制的に昇格させましたか? cat /proc/drbdの出力はどのように見えますか?

2
Matt Kereczman

回答ありがとうございます。 vip Drbdwww DrbdMysql fsDrbdwww fsDrbdMysql Apache2 mysqlを使用してhawebというグループを作成しましたが、マスタースレーブリソースを作成するときに、DrbdwwwとDrbdMysqlがhawebグループの子であるため、エラーが発生しました。 hawebグループを削除し、マスタースレーブリソースを作成しました

ms ms_drbdMysql DrbdMysql \
        meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
ms ms_drbdwww Drbdwww \
        meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

しかし、私はまだ失敗しました(ブロックされました):

 Master/Slave Set: ms_drbdwww [Drbdwww]
     Drbdwww    (ocf::linbit:drbd):     FAILED s-ha-web2 (blocked)
 Master/Slave Set: ms_drbdMysql [DrbdMysql]
     DrbdMysql  (ocf::linbit:drbd):     FAILED s-ha-web2 (blocked)
* fsDrbdwww_start_0 on s-ha-web1 'unknown error' (1): call=14, status=complete, exitreason='Couldn't mount filesystem /dev/drbd0 on /var/www/html',
    last-rc-change='Mon May  8 23:24:04 2017', queued=0ms, exec=17ms
* fsDrbdMysql_start_0 on s-ha-web1 'unknown error' (1): call=21, status=complete, exitreason='Couldn't mount filesystem /dev/drbd1 on /var/lib/mysql_drbd',
    last-rc-change='Mon May  8 23:24:04 2017', queued=0ms, exec=17ms

そして、サーバー1にいくつかのリソースがあり、サーバー2に他のリソースがあります。

編集:私は自分のグループとコロケーションを作成する方法がわかりません2 VIP?Apache + DRBD-WWW用に1つとmysqlとDRBD用に1つ作成する必要がありますか? -mysql?

0
anakin.wow