设为首页 收藏本站
查看: 698|回复: 0

[经验分享] Corosync+Pacemaker+DRBD+MySQL实现MySQL的高可用集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-11 09:03:09 | 显示全部楼层 |阅读模式
一、Corosync概述
1、什么是AIS和OpenAIS?
    AIS是应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放、高移植性的程序接口。是在实现高可用应用过程中是亟需的。服务可用性论坛(SA Forum)是一个开放性论坛,它开发并发布这些免费规范。使用AIS规范的应用程序接口(API),可以减少应用程序的复杂性和缩短应用程序的开发时间,这些规范的主要目的就是为了提高中间组件可移植性和应用程序的高可用性。
    OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式,这个模式包括集群框架,集群成员管理,通信方式,集群监测等,能够为集群软件或工具提供满足 AIS标准的集群接口,但是它没有集群资源管理功能,不能独立形成一个集群。
2、corosync简介
    corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以说corosync是OpenAIS的一部分,但后面的发展明显超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案。如Redhat的RHCS集群套件就是基于corosync实现。
    corosync只提供了message layer,而没有直接提供CRM,一般使用Pacemaker进行资源管理。
3、小结
    不管是heartbeat,还是corosync都是高可用集群中的Cluster Messaging Layer(集群信息层),是主要传递发集群信息与心跳信息的,并没有资源管理功能,资源管理还得依赖于上层的crm(Cluster resource Manager,集群资源管理器)。最著名的资源管理器,就是pacemaker,它是heartbeat v3分离出去的子项目。而现在corosync+pacemaker成了高可用集群中的最佳组合。好了,到这里corosync与pacemaker的基础知识就说到这里了,下面我们来看看怎么安装corosync与pacemaker。
二、环境准备

1、拓扑结构
wKiom1ZpQPGDZPgwAAEHgvTDL2M977.jpg
2、服务器配置情况
名称IP安装软件系统
node1.wzlinux.comVIP:192.168.0.18
eth0:192.168.0.10
corosync、pacemaker
DRBD、Mysql
CentOS 6.4 32位
node2.wzlinux.com
VIP:192.168.0.18
eth0:192.168.0.11
corosync、pacemaker
DRBD、Mysql
CentOS 6.4 32位
3、关闭防火墙、SELinux和配置时间同步

1
2
3
4
5
#关闭防火墙
service iptables stop
#关闭SELinux
sed -i 's/enforcing/disabled/g' /etc/sysconfig/selinux
setenforce 0



4、配置各节点互相解析
node1:
1
2
3
4
5
6
7
[iyunv@node1 ~]# uname -n  
node1.wzlinux.com  
[iyunv@node1 ~]# cat /etc/hosts  
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.10 node1.wzlinux.com node1
192.168.0.11 node2.wzlinux.com node2



node2:
1
2
3
4
5
6
7
[iyunv@node2 ~]# uname -n  
node2.wzlinux.com  
[iyunv@node2 ~]# cat /etc/hosts  
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.10 node1.wzlinux.com node1
192.168.0.11 node2.wzlinux.com node2



5、配置各节点ssh互信
node1:
1
2
[iyunv@node1 ~]# ssh-keygen  -t rsa -f ~/.ssh/id_rsa  -P ''  
[iyunv@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2.wzlinux.com



node2:
1
2
[iyunv@node2 ~]# ssh-keygen  -t rsa -f ~/.ssh/id_rsa  -P ''
[iyunv@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1.wzlinux.com



三、软件的安装

    以下如果没有特别说明,就是在node1和node2上面同时执行。
1、corosync和pacemaker的安装
   RHEL6.x以后的版本中,直接集成了corosync和pacemaker,因此直接使用yum安装即可。
1
yum install corosync pacemaker -y



2、查看corosync安装生成文件

# rpm -ql corosync
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/etc/corosync      #配置文件目录
/etc/corosync/corosync.conf.example     #配置事例文件
/etc/corosync/corosync.conf.example.udpu
/etc/corosync/service.d
/etc/corosync/uidgid.d
/etc/dbus-1/system.d/corosync-signals.conf
/etc/rc.d/init.d/corosync          #服务脚本
/etc/rc.d/init.d/corosync-notifyd
/etc/sysconfig/corosync-notifyd
/usr/bin/corosync-blackbox
/usr/libexec/lcrso
/usr/libexec/lcrso/coroparse.lcrso
/usr/libexec/lcrso/objdb.lcrso
/usr/libexec/lcrso/quorum_testquorum.lcrso
/usr/libexec/lcrso/quorum_votequorum.lcrso
/usr/libexec/lcrso/service_cfg.lcrso
/usr/libexec/lcrso/service_confdb.lcrso
/usr/libexec/lcrso/service_cpg.lcrso
/usr/libexec/lcrso/service_evs.lcrso
/usr/libexec/lcrso/service_pload.lcrso
/usr/libexec/lcrso/vsf_quorum.lcrso
/usr/libexec/lcrso/vsf_ykd.lcrso
/usr/sbin/corosync
/usr/sbin/corosync-cfgtool
/usr/sbin/corosync-cpgtool
/usr/sbin/corosync-fplay
/usr/sbin/corosync-keygen           #集群间通讯秘钥生成工具
/usr/sbin/corosync-notifyd
/usr/sbin/corosync-objctl
/usr/sbin/corosync-pload
/usr/sbin/corosync-quorumtool
/usr/share/doc/corosync-1.4.7
…… ……



3、配置corosync

1
2
cd /etc/corosync/
cp corosync.conf.example corosync.conf



# cat corosync.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Please read the corosync.conf.5 manual page
compatibility: whitetank
totem {   
        version: 2    #版本号,只能是2,不能修改
        secauth: on   #安全认证,当使用aisexec时,会非常消耗CPU
        threads: 2    #线程数,根据CPU个数和核心数确定
        interface {
                ringnumber: 0   #冗余环号,节点有多个网卡是可定义对应网卡在一个环内
                bindnetaddr: 192.168.0.0  #绑定心跳网段
                mcastaddr: 226.94.8.8     #心跳组播地址
                mcastport: 5405           #心跳组播使用端口
                ttl: 1
        }
}
logging {
        fileline: off       #指定要打印的行
        to_stderr: no       #是否发送到标准错误输出
        to_logfile: yes     #记录到文件
        to_syslog: no       #记录到syslog
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on       #是否打印时间戳,利于定位错误,但会消耗CPU
        logger_subsys {
                subsys: AMF
                debug: off
        }
}
service {
  ver:  0
  name: pacemaker           #定义corosync启动时同时启动pacemaker
}



4、生成密钥文件
    corosync生成key文件会默认调用/dev/random随机数设备,一旦系统中断的IRQS的随机数不够用,将会产生大量的等待时间,因此,为了节约时间,我们在生成key之前讲random替换成urandom,以便节约时间。
1
2
3
4
5
6
7
[iyunv@node1 corosync]# mv /dev/{random,random.bak}   
[iyunv@node1 corosync]# ln -s /dev/urandom /dev/random
[iyunv@node1 corosync]# corosync-keygen
Corosync Cluster Engine Authentication key generator.
Gathering 1024 bits for key from /dev/random.
Press keys on your keyboard to generate entropy.
Writing corosync key to /etc/corosync/authkey.



    然后把配置好的配置文件传输到领一台设备上面

1
[iyunv@node1 corosync]# scp -p authkey corosync.conf node2:/etc/corosync/



四、corosync的启动与检查
1、corosync的启动
1
2
3
4
[iyunv@node1 corosync]# service corosync start
Starting Corosync Cluster Engine (corosync):               [OK]
[iyunv@node1 corosync]# ssh node2 'service corosync start'
Starting Corosync Cluster Engine (corosync):               [OK]







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-149478-1-1.html 上篇帖子: 关于mysql的服务端参数max_allowed_packet 下篇帖子: mysql启动报错 Starting MySQL.. ERROR! The server quit without updating PID file
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表