Inf*_*nfi 7 drbd pacemaker master-slave
首先,我不是 linux 专家,我一直在学习教程并在 google 的帮助下工作,直到现在这都很好,但目前我遇到了一个问题。
我使用的是 CentOS 6.5 和 DRBD 版本 8.4.4。
我有两个运行起搏器的节点,到目前为止一切正常,我设置了 DRBD,我可以手动将一个节点设置为主节点并挂载 DRBD 资源,这样也可以正常工作。
现在我创建了一个起搏器资源来控制 DRBD,但它无法将两个节点中的任何一个提升为 master,这也阻止了它被挂载。
pcs 状态如下所示:
Cluster name: hydroC
Last updated: Wed Jun 25 14:19:49 2014
Last change: Wed Jun 25 14:02:25 2014 via crm_resource on hynode1
Stack: cman
Current DC: hynode1 - partition with quorum
Version: 1.1.10-14.el6_5.3-368c726
2 Nodes configured
4 Resources configured
Online: [ hynode1 hynode2 ]
Full list of resources:
ClusterIP (ocf::heartbeat:IPaddr2): Started hynode1
Master/Slave Set: MSdrbdDATA [drbdDATA]
Slaves: [ hynode1 hynode2 ]
ShareDATA (ocf::heartbeat:Filesystem): Stopped
Run Code Online (Sandbox Code Playgroud)
ShareData 保持停止状态,因为没有 master
我最初遵循本教程:http :
//clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/_configure_the_cluster_for_drbd.html
这是起搏器配置的外观:
Cluster Name: hydroC
Corosync Nodes:
Pacemaker Nodes:
hynode1 hynode2
Resources:
Resource: ClusterIP (class=ocf provider=heartbeat type=IPaddr2)
Attributes: ip=10.0.0.100 cidr_netmask=32
Operations: monitor interval=30s (ClusterIP-monitor-interval-30s)
Master: MSdrbdDATA
Meta Attrs: master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify
=true
Resource: drbdDATA (class=ocf provider=linbit type=drbd)
Attributes: drbd_resource=r0
Operations: monitor interval=60s (drbdDATA-monitor-interval-60s)
Resource: ShareDATA (class=ocf provider=heartbeat type=Filesystem)
Attributes: device=/dev/drbd3 directory=/share/data fstype=ext4
Operations: monitor interval=60s (ShareDATA-monitor-interval-60s)
Stonith Devices:
Fencing Levels:
Location Constraints:
Ordering Constraints:
promote MSdrbdDATA then start ShareDATA (Mandatory) (id:order-MSdrbdDATA-Share
DATA-mandatory)
Colocation Constraints:
ShareDATA with MSdrbdDATA (INFINITY) (with-rsc-role:Master) (id:colocation-Sha
reDATA-MSdrbdDATA-INFINITY)
Cluster Properties:
cluster-infrastructure: cman
dc-version: 1.1.10-14.el6_5.3-368c726
no-quorum-policy: ignore
stonith-enabled: false
Run Code Online (Sandbox Code Playgroud)
从那以后,我尝试了不同的事情,例如设置位置约束或使用不同的资源设置……我从另一个教程中获取了这个:
Master: MSdrbdDATA
Meta Attrs: master-max=1 master-node-max=1 clone-max=2 notify=true target-role
=Master is-managed=true clone-node-max=1
Resource: drbdDATA (class=ocf provider=linbit type=drbd)
Attributes: drbd_resource=r0 drbdconf=/etc/drbd.conf
Meta Attrs: migration-threshold=2
Operations: monitor interval=60s role=Slave timeout=30s (drbdDATA-monitor-int
erval-60s-role-Slave)
monitor interval=59s role=Master timeout=30s (drbdDATA-monitor-in
terval-59s-role-Master)
start interval=0 timeout=240s (drbdDATA-start-interval-0)
stop interval=0 timeout=240s (drbdDATA-stop-interval-0)
Run Code Online (Sandbox Code Playgroud)
但结果保持不变,没有一个节点被提升为主节点。
我很感激任何指导我解决方案的帮助,在此先感谢。
确保您的 DRBD 设备正常。如果您# cat /proc/drbd
查看它的状态,您是否会看到以下内容:cs:Connected
、ro:Secondary/Secondary
,以及最重要的是ds:UpToDate/UpToDate
?
如果没有UpToDate
数据,DRBD 的资源代理将不会升级设备。如果您刚刚创建了设备的元数据,并且尚未强制单个节点进入该Primary
角色,您将看到您的磁盘状态为:ds:Inconsistent/Inconsistent
。您需要运行以下命令来告诉 DRBD 哪个节点应成为SyncSource
集群的节点:# drbdadm primary r0 --force
在正常情况下,这是唯一一次需要强制 DRBD 进入 Primary 的情况;所以--force
之后就忘记标志了;)