有了网络 有了共享的lun 可以做一些db的cluster测试了
db1,db2,db3三台机器
db1#cmquerycl -v -n db1 -n db2
列出了node信息 可用的网络信息 可能的锁盘信息,可用的各节点上的lvm信息。
生成cluster配置文件:
db1#cd /etc/cmcluster
db1#cmquerycl -v -n db1 -n db2 -C mcdb.conf
配置文件mcdb.conf的内容(修改后)
CLUSTER_NAME mcdb
FIRST_CLUSTER_LOCK_VG /dev/vgdb0
NODE_NAME db1
NETWORK_INTERFACE lan0
HEARTBEAT_IP 10.10.10.1
NETWORK_INTERFACE lan1
STATIONARY_IP 192.168.14.221
NETWORK_INTERFACE lan2
FIRST_CLUSTER_LOCK_PV /dev/dsk/c8t0d0
NODE_NAME db2
NETWORK_INTERFACE lan0
HEARTBEAT_IP 10.10.10.2
NETWORK_INTERFACE lan1
STATIONARY_IP 192.168.14.222
NETWORK_INTERFACE lan2
FIRST_CLUSTER_LOCK_PV /dev/dsk/c8t0d0
HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 8000000
AUTO_START_TIMEOUT 600000000
NETWORK_POLLING_INTERVAL 2000000
NETWORK_FAILURE_DETECTION INOUT
MAX_CONFIGURED_PACKAGES 4
VOLUME_GROUP /dev/vgdb0
失败了,lan2没有plumb,两个node上都plumb一下
再次检查一下
db1#cmquerycl -v -c /etc/cmcluster/mcdb.conf -n db1 -n db2 --->错误
检查使用:
db1#cmcheckconf -v -C /etc/cmcluster/mcdb.conf
ok
应用:
db1#cmapplyconf -v -C /etc/cmcluster/mcdb.conf
出错了:
Error: Volume group /dev/vgdb0 must be activated
Error: Unable to initialize cluster lock /dev/dsk/c8t0d0 on node db1.
db1#vgchange -a y /dev/vgdb0
db1#cmapplyconf -v -C /etc/cmcluster/mcdb.conf
成功。
db1#cmruncl
db1#cmviewcl -v
CLUSTER STATUS
mcdb up
NODE STATUS STATE
db1 up running
Network_Parameters:
INTERFACE STATUS PATH NAME
PRIMARY up 0/1/2/0 lan0
PRIMARY up 0/1/2/1 lan1
STANDBY up 0/3/1/0 lan2
NODE STATUS STATE
db2 up running
Network_Parameters:
INTERFACE STATUS PATH NAME
PRIMARY up 0/1/2/0 lan0
PRIMARY up 0/1/2/1 lan1
STANDBY up 0/3/1/0 lan2
?启动cluster之后,锁盘所在vg可以inactive了.
# 切换测试cmhaltnode
脑裂测试:
在db2上将心跳网络disable, ifconfig lan0 disable
然后在各自节点上查询cluster状态
总体node status都是up,但对方的network interface都是unknown的了。
过了一段时间后 node2上看log 13-->26,13分钟。
node2#Sep 19 12:26:12 db2 cmcld: Timed out node db1. It may have failed.
Sep 19 12:26:12 db2 cmcld: Attempting to adjust cluster membership
Sep 19 12:26:12 db2 cmcld: Beginning standard partial election
Sep 19 12:26:13 db2 cmclconfd[11434]: Updated file /var/adm/cmcluster/frdump.cmcld.0 for node db2 (length = 512096).
Sep 19 12:26:21 db2 cmcld: Obtaining Cluster Lock
...
Sep 19 12:28:04 db2 cmcld: 1 nodes have formed a new cluster, sequence #4
Sep 19 12:28:04 db2 cmcld: The new active cluster membership is: db2(id=2)
Sep 19 12:28:04 db2 cmcld: One of the nodes is down.
node1#13-->27,差不多时间13分钟
Sep 18 22:27:10 db1 cmcld: Timed out node db2. It may have failed.
Sep 18 22:27:10 db1 cmcld: Attempting to form a new cluster
Sep 18 22:27:10 db1 cmcld: Beginning standard election
Sep 18 22:27:11 db1 cmclconfd[10087]: Updated file /var/adm/cmcluster/frdump.cmcld.0 for node db1 (length = 512096).
Sep 18 22:27:19 db1 cmcld: Obtaining Cluster Lock
Sep 18 22:27:20 db1 cmcld: Cluster lock was denied. Lock was obtained by another node.
Sep 18 22:27:20 db1 cmcld: Attempting to form a new cluster
Sep 18 22:27:20 db1 cmcld: Beginning standard election
Sep 18 22:27:30 db1 cmcld: Cluster lock has been denied
Sep 18 22:27:30 db1 cmcld: Attempting to form a new cluster
Sep 18 22:27:30 db1 cmcld: Beginning standard election
Sep 18 22:27:40 db1 cmcld: Cluster lock has been denied
Sep 18 22:27:40 db1 cmcld: Attempting to form a new cluster
Sep 18 22:27:40 db1 cmcld: Beginning standard election
3次之后,自动就restart了
然后node2虽然这次被选为留用人,但其心跳网络被禁止,但是其节点启动后也不知道啊..
node1启动后,并没有自动加入到cluster中,因为
/etc/rc.config.d/cmcluster的autostart_cmcld默认设置为0(不自动启动cluster节点随着os的boot)
所以,cluster状态依然为
CLUSTER STATUS
mcdb up
NODE STATUS STATE
db1 down failed
db2 up running
两台机器好象时钟不同步,使用xntp同步时间,
还是不同步,一会查查时区设置。--搞定
*当一个节点异常停机-或者心跳断开,或者cluster没有异常退出没有通知其他节点,则发生脑裂。重新投票后,选定一个节点failed。而如果使用命令退出则为正常管理退出,halted状态。
*刚才做了一个试验standby的lan2 网卡,当lan1 down后,没有启作用啊?--->明白了,对于使用iscsi以及用产品的ip作为锁盘的iscsi来源,所以,这个试验无法进行。-->看看用作心跳的备用网络是否可以进行。
本文记录了一次数据库集群测试过程,包括配置文件的创建与修改、集群启动与状态检查、网络故障模拟及脑裂测试等内容。揭示了在心跳网络失效情况下,集群如何自动判断并隔离故障节点。
471

被折叠的 条评论
为什么被折叠?



