MC/Service Guard测试(1/2)

本文记录了一次数据库集群测试过程,包括配置文件的创建与修改、集群启动与状态检查、网络故障模拟及脑裂测试等内容。揭示了在心跳网络失效情况下,集群如何自动判断并隔离故障节点。

有了网络 有了共享的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来源,所以,这个试验无法进行。-->看看用作心跳的备用网络是否可以进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值