您好,欢迎访问一九零五行业门户网

CoroSync + Drbd + MySQL 实现MySQL的高可用集群_MySQL

mysql集群
 corosync + drbd + mysql构建高可用mysql集群
节点规划:
node1.huhu.com172.16.100.103
node2.huhu.com172.16.100.104
资源名称规划
资源名称:可以是除了空白字符外的任意acsii码字符
drbd设备:在双节点上,此drbd设备文件,一般为/dev/drbdn,主设备号147
磁盘:在双方节点上,各自提供存储设备
网络配置:双方数据同步所使用的网络属性
drbd从linux内核2.6.33起已经整合进内核
1.配置双击互信(基于秘钥认证),hosts文件,时间同步
1)所有节点的主机名称和对应的ip地址解析服务可以正常工作,且每个节点的主机名称需要跟uname -n“命令的结果保持一致;因此,需要保证两个节点上的/etc/hosts文件均为下面的内容:
172.16.100.103node1.huhu.com node1
172.16.100.104node2.huhu.com node2
node1:
#sed -i 's@/(hostname=/).*@/1node1.huhu.com@g' /etc/sysconfig/network
#hostname node1.huhu.com
node2:
#sed -i 's@/(hostname=/).*@/1node2.huhu.com@g' /etc/sysconfig/network
#hostname node2.huhu.com
2)设定两个节点可以基于密钥进行ssh通信,这可以通过类似如下的命令实现:
#yum install openssh-clients
node1:
#ssh-keygen -t rsa
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
node2:
#ssh-keygen -t rsa
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
配置时间同步:
*/5* * * * root /usr/sbin/ntpdate ntp.api.bz & > /dev/null
2.创建和配置drbd
node1上执行:
#rpm -uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
#ssh node2 'rpm -uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm'
#yum update -y
#ssh node2 'yum update -y'
#yum install drbd84-utils kmod-drbd84 -y
#ssh node2 'yum install drbd84-utils kmod-drbd84 -y'
加载模块到内核:
#/sbin/modprobe drbd
#ssh node2 '/sbin/modprobe drbd'
drbd的配置文件:
/etc/drbd.conf
/etc/drbd.d/global_common.conf
/etc/drbd.d/resource.d/
#yum -y install parted
#ssh node2 'yum -y install parted'
#fdisk /dev/sdb
n新建分区
p主分区
1分区号,两车回车按照默认大小选择
wq保存退出
#partprobe /dev/sdb1
资源规划:
资源名称:mydrbd
drbd设备:/dev/drbd0
磁盘:/dev/sdb1
网络配置:100m
#cat /etc/drbd.d/global_common.conf | grep -v #
global{
usage-countyes;
}
common{
handlers{
pri-on-incon-degr/usr/lib/drbd/notify-pri-on-incon-degr.sh;/usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ;reboot -f;
pri-lost-after-sb/usr/lib/drbd/notify-pri-lost-after-sb.sh;/usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ;reboot -f;
local-io-error/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh;echo o > /proc/sysrq-trigger ; halt -f;
}
startup{
}
options{
}
disk{
on-io-errordetach;
}
net{
cram-hmac-alg sha1;
shared-secret 1q2w3e4r5t6y;
}
syncer{
rate 200m;
}
}
#cat mydrbd.res
resourcemydrbd {
device/dev/drbd0;
disk/dev/sdb1;
meta-diskinternal;
onnode1.huhu.com {
address172.16.100.103:7789;
}
onnode1.huhu.com {
address172.16.100.104:7789;
}
}
复制配置文件到node2节点
scp-r /etc/drbd.* node2:/etc/
在两个节点上,初始化已定义的资源,并启动服务
#drbdadm create-md mydrbd
#ssh node2 'drbdadm create-md mydrbd'
#/etc/init.d/drbd start
#ssh node2 '/etc/init.d/drbd start'
查看drbd设备的状态:
#cat /proc/drbd
version:8.4.4 (api:1/proto:86-101)
git-hash:599f286440bd633d15d5ff985204aff4bccffadd build by phil@build64r6, 2013-10-1415:33:06
0:cs:connected ro:secondary/secondaryds:inconsistent/inconsistent c r-----
ns:0nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2096348
目前两个节点都处于secondary状态,手动让其node1成为主节点:
#drbdadm -- --overwrite-data-of-peer primary mydrbd
#cat /proc/drbd
version:8.4.4 (api:1/proto:86-101)
git-hash:599f286440bd633d15d5ff985204aff4bccffadd build by phil@build64r6, 2013-10-1415:33:06
0:cs:connected ro:primary/secondaryds:uptodate/uptodatec r-----
ns:2096348nr:0 dw:0 dr:2097012 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
在primary节点上进行格式化drbd分区然后挂载
#mke2fs -j /dev/drbd0
#mkdir /mydata
#mount /dev/drbd0 /mydata/
#cp /etc/inittab /mydata/
#ls -lh /mydata/
total20k
-rw-r--r--.1 root root 884 jul 8 17:24 inittab
drwx------.2 root root 16k jul 8 17:23 lost+found
到此drbd分区已经可以正常使用了
drbd分区的主备切换
primary节点上执行:
#umount /mydata/
# drbdadm secondary mydrbd
#drbd-overview
0:mydrbd/0connectedsecondary/secondaryuptodate/uptodatec r-----
secondary上执行
#drbd-overview确保两者的状态都有secondary状态
#drbdadm primary mydrbd
#mkdir -p /mydata
# mount /dev/drbd0 /mydata/
#ls -lh /mydata/
total20k
-rw-r--r--.1 root root 884 jul 8 17:24 inittab
drwx------.2 root root 16k jul 8 17:23 lost+found
#drbd-overview
0:mydrbd/0connectedprimary/secondaryuptodate/uptodate cr----- /mydata ext3 2.0g 36m 1.9g 2%
状态已经改变,primary /secondary
3.配置coresync服务
各个节点上停止掉drbd服务,并且关闭开机启动
#/etc/init.d/drbd stop
#ssh node2 '/etc/init.d/drbd stop'
#chkconfig drbd off
#ssh node2 'chkconfig drbd off'
#chkconfig --list | grep drbd
#ssh node2 'chkconfig --list | grep drbd'
drbd0:off 1:off 2:off 3:off 4:off 5:off 6:off
安装corosync
#yum install libibverbs librdmacm lm_sensors libtool-ltdl openhpi-libs openhpiperl-timedate
#yum install corosync pacemaker
#ssh node2 '# yum install libibverbs librdmacm lm_sensors libtool-ltdlopenhpi-libs openhpi perl-timedate'
wgethttp://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/stable/centos_centos-6/x86_64/crmsh-2.1-1.1.x86_64.rpm&& wgethttp://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/stable/centos_centos-6/x86_64/pssh-2.3.1-4.1.x86_64.rpm
#ssh node2 'wget http://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/stable/centos_centos-6/x86_64/crmsh-2.1-1.1.x86_64.rpm&& wgethttp://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/stable/centos_centos-6/x86_64/pssh-2.3.1-4.1.x86_64.rpm'
yum--nogpgcheck localinstall crmsh-2.1-1.1.x86_64.rpm pssh-2.3.1-4.1.x86_64.rpm
如果安装失败,请添加以下源
#vim /etc/yum.repos.d/ha-clustering.repo
[haclustering]
name=haclustering
baseurl=http://download.opensuse.org/repositories/network:/ha-clustering:/stable/centos_centos-6/
enabled=1
gpgcheck=0
#yum --nogpgcheck localinstall crmsh-2.1-1.1.x86_64.rpmpssh-2.3.1-4.1.x86_64.rpm
node2上同样执行以上
配置corosync
#cd /etc/corosync/
#cp corosync.conf.example corosync.conf
#cat corosync.conf | grep -v ^# | sed -e'/^$/d'
compatibility: whitetank
totem {
version: 2
secauth: on
threads: 2
interface {
ringnumber: 0
bindnetaddr: 172.16.100.0
mcastaddr: 226.94.8.9
mcastport: 5405
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: no
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: amf
debug: off
}
}
service {
ver: 0
name: pacemaker
# use_mgmtd: yes
}
aisexec {
user: root
group: root
}
amf {
mode: disabled
}
生成秘钥
#corosync-keygen
#scp -p authkey corosync.conf node2:/etc/corosync/
创建日志文件目录
#mkdir -p /var/log/cluster/ -pv
# ssh node2 'mkdir -p /var/log/cluster/ -pv'
启动corosync服务
#service corosync start
#ssh node2 'service corosync start'
检查corosync引擎是否已经启动
#grep -e corosync cluster engine -e configuration file/var/log/cluster/corosync.log
jul09 10:28:14 corosync [main ] corosync cluster engine ('1.4.1'): started andready to provide service.
jul09 10:28:14 corosync [main ]successfullyreadmain configuration file '/etc/corosync/corosync.conf'.
查看节点成员之间通信是否正常
#grep totem /var/log/cluster/corosync.log
jul09 10:28:14 corosync [totem ] initializing transport (udp/ip multicast).
jul09 10:28:14 corosync [totem ] initializing transmit/receive security:libtomcrypt sober128/sha1hmac (mode 0).
jul09 10:28:14 corosync [totem ]the network interface[172.16.100.103] is now up.
jul09 10:28:14 corosync [totem ] a processor joined or left the membership and anew membership was formed.
jul09 10:28:29 corosync [totem ] a processor joined or left the membership and anew membership was formed.
检查pacemaker启动是否正常
#grep pcmk_startup /var/log/cluster/corosync.log
jul09 10:28:14 corosync [pcmk ] info: pcmk_startup: crm: initialized
jul09 10:28:14 corosync [pcmk ] logging: initialized pcmk_startup
jul09 10:28:14 corosync [pcmk ]info: pcmk_startup:maximum core file size is:18446744073709551615
jul09 10:28:14 corosync [pcmk ] info: pcmk_startup: service: 9
jul09 10:28:14 corosync [pcmk ] info: pcmk_startup: local hostname: node1.huhu.com
查看错误信息
#grep error /var/log/cluster/corosync.log | grep -v unpack_resources
jul09 10:28:14 corosync [pcmk ] error: process_ais_conf: you have configured acluster using the pacemaker plugin for corosync. the plugin is not supported inthis environment and will be removed very soon.
jul09 10:28:14 corosync [pcmk ] error: process_ais_conf: please see chapter 8 of'clusters from scratch' (http://www.clusterlabs.org/doc) for details on usingpacemaker with cman
jul09 10:28:35 [1373] node1.huhu.com pengine: notice: process_pe_message:configuration errors found during pe processing. please run crm_verify-l to identify issues.
注意:这里因为没有使用stonith设备,因此错误可以忽略
#crm status
lastupdated: wed jul 9 10:49:53 2014
lastchange: wed jul 9 10:19:07 2014 via crmd on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node1.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
0resources configured
online:[ node1.huhu.com node2.huhu.com ]
以上说明corosync配置启动正常。
关闭stonith设备,并验证提交
crm(live)#configure
crm(live)configure#property stonith-enabled=false
crm(live)configure#verify
crm(live)configure#commit
关闭不具备法定票数的时候,不能关闭集群服务
crm(live)configure#property no-quorum-policy=ignore
crm(live)configure#verify
crm(live)configure#commit
配置资源粘性,更倾向于当前节点
crm(live)configure#rsc_defaults resource-stickiness=100
crm(live)configure#verify
crm(live)configure#commit
查看当前的配置
crm(live)configure#show
nodenode1.huhu.com
nodenode2.huhu.com
propertycib-bootstrap-options: /
dc-version=1.1.10-14.el6_5.3-368c726/
cluster-infrastructure=classicopenais (with plugin) /
expected-quorum-votes=2/
stonith-enabled=false/
no-quorum-policy=ignore
rsc_defaultsrsc-options: /
resource-stickiness=100
crm(live)configure#
查看drbd的资源代理
crm(live)configure#cd ..
crm(live)#ra
crm(live)ra#providers drbd
linbit
注意:这里只有linbit没有beartbeat,corosync1.4以前的版本有heartbeat。
查看原数据
crm(live)ra#meta ocf:linbit:drbd
定义资源:
crm(live)configure#primitive mysql_drbd ocf:linbit:drbd paramsdrbd_resource=mydrbd op start timeout=240 op stop timeout=100 op monitorrole=master interval=50s timeout=30s op monitor role=slave interval=60s timeout=30s
定义群集资源:
crm(live)configure#master ms_mysql_drbd mysql_drbd metamaster-max=1 master-node-max=1 clone-max=2clone-node-max=1 notify=true
crm(live)configure#show mysql_drbd
primitivemysql_drbd ocf:linbit:drbd /
paramsdrbd_resource=mydrbd /
opstart timeout=240 interval=0 /
opstop timeout=100 interval=0 /
opmonitor role=master interval=50s timeout=30s /
opmonitor role=slave interval=60s timeout=30s
crm(live)configure#show ms_mysql_drbd
msms_mysql_drbd mysql_drbd /
metamaster-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
crm(live)configure#verify
crm(live)configure#commit
crm(live)configure#cd
crm(live)#status
lastupdated: wed jul 9 11:54:30 2014
lastchange: wed jul 9 11:54:17 2014 via cibadmin on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
2resources configured
online:[ node1.huhu.com node2.huhu.com ]
master/slave set: ms_mysql_drbd [mysql_drbd]
masters: [ node1.huhu.com ]
slaves: [ node2.huhu.com ]
crm(live)#
主从资源已经定义完成
[root@node1corosync]# drbd-overview
0:mydrbd/0connected primary/secondary uptodate/uptodate c r-----
[root@node1corosync]#
此时当前节点已经成为主资源了
手动做一次主从切换:
#crm node standby
#crm status
lastupdated: wed jul 9 12:01:44 2014
lastchange: wed jul 9 12:01:29 2014 via crm_attribute on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
2resources configured
nodenode1.huhu.com: standby
online:[ node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters:[ node2.huhu.com ]
stopped:[ node1.huhu.com ]
#crm node online
#crm status
lastupdated: wed jul 9 12:02:46 2014
lastchange: wed jul 9 12:02:43 2014 via crm_attribute on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
2resources configured
online:[ node1.huhu.com node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters:[ node2.huhu.com ]
slaves:[ node1.huhu.com ]
#drbd-overview
0:mydrbd/0connected secondary/primary uptodate/uptodate c r-----
[root@node1corosync]#
当前节点就切换为从节点了
此时保证了资源可以主从切换,但是文件系统是没有挂载
因此必须定义文件系统
crm(live)configure#primitive mystore ocf:heartbeat:filesystem paramsdevice=/dev/drbd0 directory=/mydata fstype=ext3 op start timeout=60 op stoptimeout=60
crm(live)configure#verify
注意:这里千万不要提交,因为必须保证文件系统跟主节点在一起,定义排列约束
crm(live)configure#colocation mystore_with_ms_mysql_drbd inf: mystorems_mysql_drbd:master
定义存储资源必须和资源的主节点在一起
crm(live)configure#order mystore_after_ms_mysql_drbd mandatory:ms_mysql_drbd:promote mystore:start
定义存储资源必须在主节点启动后进行挂载
crm(live)configure#verify
crm(live)configure#commit
crm(live)configure#cd ..
crm(live)#status
lastupdated: wed jul 9 12:25:25 2014
lastchange: wed jul 9 12:22:30 2014 via cibadmin on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
3resources configured
online:[ node1.huhu.com node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters:[ node1.huhu.com ]
slaves:[ node2.huhu.com ]
mystore(ocf::heartbeat:filesystem): started node1.huhu.com
crm(live)#
可以看到master在node1上,mystore就启动在node1上
[root@node1~]# ls -lh /mydata/
total20k
-rw-r--r--.1 root root 884 jul 8 17:24 inittab
drwx------2 root root 16k jul 8 17:23 lost+found
[root@node1~]#
手动模拟一次切换
[root@node1corosync]# crm node standby
[root@node1corosync]# crm status
lastupdated: wed jul 9 12:28:55 2014
lastchange: wed jul 9 12:28:49 2014 via crm_attribute on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
3resources configured
nodenode1.huhu.com: standby
online:[ node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters:[ node2.huhu.com ]
stopped:[ node1.huhu.com ]
mystore(ocf::heartbeat:filesystem): started node2.huhu.com
[root@node1corosync]#
[root@node2~]# ls -lh /mydata/
total20k
-rw-r--r--.1 root root 884 jul 8 17:24 inittab
drwx------2 root root 16k jul 8 17:23 lost+found
youhave new mail in /var/spool/mail/root
[root@node2~]#
这样就切换到node2节点上。
4.配置mysql结合drbd和corosync
分别在node1节点上创建mysql用户和组
#groupadd -g 3306 mysql
#useradd -u 3306 -g mysql -s /sbin/nologin -m mysql
#id mysql
uid=3306(mysql)gid=3306(mysql) groups=3306(mysql)
#ssh node2 'groupadd -g 3306 mysql'
#ssh node2 'useradd -u 3306 -g mysql -s /sbin/nologin -m mysql'
#wgethttp://cdn.mysql.com/downloads/mysql-5.5/mysql-5.5.38-linux2.6-x86_64.tar.gz
#tar zxvf mysql-5.5.38-linux2.6-x86_64.tar.gz -c /usr/local/
#cd /usr/local/
#ln -s mysql-5.5.38-linux2.6-x86_64/ mysql
#cd mysql
#chown root:mysql -r .
#cp support-files/my-huge.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#[ -x /etc/init.d/mysqld ] && echo ok || echo no
确保当前在主节点上操作
#drbd-overview
0:mydrbd/0connectedprimary/secondaryuptodate/uptodate cr----- /mydata ext3 2.0g 36m 1.9g 2%
#mkdir -p /mydata/data
#chown -r mysql:mysql /mydata/data/
#scripts/mysql_install_db --user=mysql--datadir=/mydata/data
vim/etc/my.cnf
datadir=/mydata/data
#chkconfig --add mysqld
#chkconfig mysqld off
#service mysqld start
确保启动ok
#/usr/local/mysql/bin/mysql -uroot -e create database mydb
[root@node1mysql]# /usr/local/mysql/bin/mysql -uroot -e show databases
+--------------------+
|database |
+--------------------+
|information_schema |
|mydb|
|mysql |
|performance_schema |
|test |
+--------------------
#service mysqld stop
#chkconfig --list | grep 3:off | grep mysql
mysqld0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@node1mysql]#
将存储资源切换到node2上,在node2mysql配置好
#crm node standby
[root@node1mysql]# crm status
lastupdated: wed jul 9 14:45:36 2014
lastchange: wed jul 9 14:45:29 2014 via crm_attribute on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
3resources configure
nodenode1.huhu.com: standby
online:[ node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters: [ node2.huhu.com ]
stopped:[ node1.huhu.com ]
mystore (ocf::heartbeat:filesystem): started node2.huhu.com
[root@node1mysql]# crm node online
[root@node1mysql]# crm status
lastupdated: wed jul 9 14:45:52 2014
lastchange: wed jul 9 14:45:49 2014 via crm_attribute on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
3resources configure
online:[ node1.huhu.com node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters: [ node2.huhu.com ]
slaves:[ node1.huhu.com ]
mystore (ocf::heartbeat:filesystem): started node2.huhu.com
[root@node1mysql]#
# scp /root/mysql-5.5.38-linux2.6-x86_64.tar.gz node2:/root/
# scp /etc/my.cnf node2:/etc/my.cnf
# scp /etc/init.d/mysqld node2:/etc/init.d/mysqld
在node2上安装mysql
#tar zxvf mysql-5.5.38-linux2.6-x86_64.tar.gz -c /usr/local/
#cd /usr/local/
#ln -s mysql-5.5.38-linux2.6-x86_64/ mysql
#cd mysql
#chown root:mysql -r .
注意:千万不要手动创建/mydata/data,否则会导致文件损坏
缺少相关库文件# yum install libaio
#service mysqld start
#/usr/local/mysql/bin/mysql -uroot -e show databases
+--------------------+
|database |
+--------------------+
|information_schema |
|mydb|
|mysql |
|performance_schema |
|test |
+--------------------+
[root@node2mydata]#
#service mysqld stop
#chkconfig mysqld off
配置mysql成为集群资源
crm(live)#configure
crm(live)configure#primitive mysqld lsb:mysqld
crm(live)configure#verify
crm(live)configure#colocation mysqld_with_mystore inf: mysqld mystore
crm(live)configure#show xml
mysql服务一定是跟mysql存储资源在一起
crm(live)configure#order mysqld_after_mystore mandatory: mystore mysqld
crm(live)configure#verify
mysql服务一定是在mysq存储转移之后的,因此定义顺序约束
crm(live)#status
lastupdated: wed jul 9 16:18:27 2014
lastchange: wed jul 9 16:18:16 2014 via cibadmin on node2.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
4resources configured
online:[ node1.huhu.com node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters: [ node2.huhu.com ]
slaves:[ node1.huhu.com ]
mystore (ocf::heartbeat:filesystem): started node2.huhu.com
mysqld (lsb:mysqld): started node2.huhu.com
crm(live)#
因此登录node2节点
#/usr/local/mysql/bin/mysql -uroot -e show databases
+--------------------+
|database |
+--------------------+
|information_schema |
| mydb|
|mysql |
|performance_schema |
|test |
+--------------------+
#/usr/local/mysql/bin/mysql -uroot -e drop database mydb
#/usr/local/mysql/bin/mysql -uroot -e create database testdb
这里再次进行主从节切换
#crm node standby
#crm status
masters:[ node1.huhu.com ]
stopped:[ node2.huhu.com ]
mystore(ocf::heartbeat:filesystem): started node1.huhu.com
mysqld(lsb:mysqld): started node1.huhu.com
#crm node online
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters: [ node1.huhu.com ]
slaves:[ node2.huhu.com ]
mystore (ocf::heartbeat:filesystem): started node1.huhu.com
mysqld (lsb:mysqld): started node1.huhu.com
在node1节点上
#/usr/local/mysql/bin/mysql -uroot -e show databases
+--------------------+
|database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
|test |
|testdb|
+--------------------
testdb正常显示
最后给mysql定义一个虚拟ip资源
crm(live)configure#primitive myip ocf:heartbeat:ipaddr paramsip=172.16.100.119 nic=eth0 cidr_netmask=24
crm(live)configure#verify
crm(live)configure#colocation myip_with_ms_mysql_drbd inf:ms_mysql_drbd:master myip
crm(live)configure#verify
crm(live)configure#show xml
crm(live)configure#commit
crm(live)configure#cd ..
crm(live)#status
lastupdated: wed jul 9 16:46:27 2014
lastchange: wed jul 9 16:46:20 2014 via cibadmin on node1.huhu.com
stack:classic openais (with plugin)
currentdc: node2.huhu.com - partition with quorum
version:1.1.10-14.el6_5.3-368c726
2nodes configured, 2 expected votes
5resources configured
online:[ node1.huhu.com node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters: [ node1.huhu.com ]
slaves:[ node2.huhu.com ]
mystore (ocf::heartbeat:filesystem): started node1.huhu.com
mysqld (lsb:mysqld): started node1.huhu.com
myip (ocf::heartbeat:ipaddr): started node1.huhu.com
crm(live)
可以看到myip已经在node1启动。
#ip addr
1:lo: mtu 16436 qdisc noqueue state unknown
link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00
inet127.0.0.1/8 scope host lo
inet6::1/128 scope host
valid_lftforever preferred_lft forever
2:eth0: mtu 1500 qdisc pfifo_fast stateup qlen 1000
link/ether00:0c:29:a9:86:42 brd ff:ff:ff:ff:ff:ff
inet172.16.100.103/24 brd 172.16.100.255 scope global eth0
inet172.16.100.119/24brd 172.16.100.255 scopeglobal secondary eth0
inet6fe80::20c:29ff:fea9:8642/64 scope link
valid_lftforever preferred_lft forever
5.在其节点上进行mysql登录验证
登录mysql创建用户
#/usr/local/mysql/bin/mysql -uroot -e grant all on *.* to root@'%'identified by '123.com';flush privileges
#mysql -uroot -p123.com -h172.16.100.119 -e show databases
+--------------------+
|database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
|test |
| testdb |
+--------------------+
[root@localhost~]#
在模拟主从节点切换:
#crm node standby
#crm node online
#crm status
online:[ node1.huhu.com node2.huhu.com ]
master/slaveset: ms_mysql_drbd [mysql_drbd]
masters: [ node2.huhu.com ]
slaves:[ node1.huhu.com ]
mystore (ocf::heartbeat:filesystem): started node2.huhu.com
mysqld (lsb:mysqld): started node2.huhu.com
myip (ocf::heartbeat:ipaddr): started node2.huhu.com
#mysql -uroot -p123.com -h172.16.100.119 -e show databases
[root@node2~]# crm
crm(live)#configure
crm(live)configure#show
nodenode1.huhu.com /
      attributesstandby=off
nodenode2.huhu.com /
      attributesstandby=off
primitivemyipipaddr /
      paramsip=172.16.100.119nic=eth0cidr_netmask=24
primitivemysql_drbdocf:linbit:drbd /
      paramsdrbd_resource=mydrbd/
      opstarttimeout=240interval=0/
      opstoptimeout=100interval=0/
      opmonitorrole=masterinterval=50stimeout=30s/
      opmonitorrole=slaveinterval=60stimeout=30s
primitivemysqldlsb:mysqld
primitivemystorefilesystem /
      paramsdevice=/dev/drbd0directory=/mydatafstype=ext3/
      opstarttimeout=60interval=0/
      opstoptimeout=60interval=0
msms_mysql_drbd mysql_drbd /
       metamaster-max=1master-node-max=1clone-max=2clone-node-max=1notify=true
colocationmyip_with_ms_mysql_drbdinf:ms_mysql_drbd:mastermyip
colocationmysqld_with_mystoreinf:mysqldmystore
colocationmystore_with_ms_mysql_drbdinf:mystorems_mysql_drbd:master
ordermysqld_after_mystoremandatory:mystore mysqld
ordermystore_after_ms_mysql_drbdmandatory:ms_mysql_drbd:promote mystore:start
propertycib-bootstrap-options:/
      dc-version=1.1.10-14.el6_5.3-368c726/
      cluster-infrastructure=classic openais (with plugin) /
      expected-quorum-votes=2/
      stonith-enabled=false/
      no-quorum-policy=ignore
rsc_defaultsrsc-options: /
      resource-stickiness=100
crm(live)configure#
其它类似信息

推荐信息