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

[经验分享] corosync/pacemaker, 实现高可用的MariaDB

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-4 08:38:48 | 显示全部楼层 |阅读模式
实验环境:
    两台mariaDB服务器 172.16.10.20 172.16.10.21
    fip:172.16.10.28
    MariaDB文件存储共享:172.16.10.22
实验准备:
   1、两个节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称需要跟"uname -n“命令的结果保持一致

1
2
3
4
5
6
7
8
9
  vim /etc/hosts
     172.16.10.20 21.xuphoto.com 20xu
     172.16.10.21 22.xuphoto.com 21xu
     Node1:
     # sed -i 's@\(HOSTNAME=\).*@\121.xuphoto.com@g'
     # hostname 21.xuphoto.com
     Node2:
     # sed -i 's@\(HOSTNAME=\).*@\122.xuphoto.com@g'
     # hostname 22.xuphoto.com



   2、各节点时间保持一致可添加统一NTP服务器同步任务:

1
2
crontab -e
     */3 * * * * /usr/sbin/ntpdate 172.16.0.1 &>/dev/null






   3、 各节点间可基于密钥验证SSH而无需密码

1
2
3
4
5
6
      ssh-keygen -t rsa
        ssh-copy-id-i root@172.16.10.22
       # node1 节点  
        ssh-keygen -t rsa
        ssh-copy-id-i root@172.16.10.21
       # node1 节点



配置安装 corosync/pacemaker


1
    yum install corosync pacemaker -y



1
2
3
4
  
[iyunv@21~]# rpm -ql corosync     #查看 corosync文件位置
/etc/corosync
/etc/corosync/corosync.conf.example







1、       配置corosync配置文件,组播地址,密钥验证等等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vim /etc/corosync/corosync.conf
           compatibility:whitetank #是否兼容whitetank版本 保持默认即可
          totem定义底层通信层: 组播地址,线程,安全认证等等;
          secauth:on   #安全认证
         threads:0   #线程数 0表示不基于线程模式,基于进程模式工作;
interface:
           ringnumber:0 # 保持0 类似于TTL值
          bindnetaddr:172.16.0.0 #监听的网络地址
           mcasaddr:239.255.X.X  #多播地址
          mcastport:5405       #多播端口
          TTL:1               #TTL值默认
logging:
        to_logfile: yes
timestamp: on             #是否记录时间戳,开启会影响性能,依系统性能而定
        logger_subsys {
                subsys: AMF
                debug: off
        }
}




配置pacemake以插件形式运行在corosync.conf中插入以下代码
1
2
3
4
5
6
7
8
9
service {
  ver:  0
  name: pacemaker
  # use_mgmtd: yes
}
aisexec {
  user: root
  group: root
}






使用corosync-keygen生成验证密钥
2、      使用corosync-kegen
    直接运行命令即可,但是他需要从随机数熵池中读取1024个随机数 /dev/random 如果不够可以做I/O操作
wKiom1Vu8o-j_zFGAASH7RYFSak572.jpg
3、拷贝 authkey corosync.conf 文件到另外一个节点上
1
scp -p authkey corosync.conf 20xu:/etc/corosync



          4、  启动服务
  
1
           # service corosync start;ssh 20xu 'service corosync start'




      5404端口处于监听状态;
wKiom1Vu82yCbB2NAAHpAaHSOVU097.jpg


1
#tail -f /var/log/cluster/corosync.log #监控 日志系统看看有没有异常状态;




安装crmsh (在DC上安装即可,也可每都安装)
先下载crmsh pssh 然后用yum 安装 解决依赖关系并不检查gpg信息,
1
#yum --nogpgcheck localinstall crmsh-2.1-1.6.x86_64.rpm pssh-2.3.1-2.el6.x86_64.rpm



wKioL1Vu9XTg92b3AAMS1oV7WAs443.jpg


安装完成:
使用crm  进入子命令模式;
wKioL1Vu9gvQUKW5AAExWY_0etY729.jpg
配置全局属性
crm(live)configure#property stonith-enabled=false
#如果没有stonith 设备需要禁止
crm(live)configure#property  no-quorum-policy=ignore
crm(live)configure#verify   #检查语法:
commit: #保存

wKiom1Vu9UaCxmI2AAG1pHHNqBA345.jpg


定义 fip:172.16.10.28
1
crm(live)configure#primitive mysqlip ocf:heartbeat:IPaddr params ip=172.16.10.28 nic=eth0cidr_netmask=16 op monitor interval=10s timeout=20s





定义 mysqlnfs
1
crm(live)configure#primitive mysqlnfs ocf:heartbeat:Filesystem paramsdevice="172.16.10.22:/mysql" directory="/mysql"fstype="nfs" op monitor timeout=40 interval=20 op start timeout=60 opstop timeout=60





定义mysql:
1
crm(live)configure#primitive mysqld lsb:mysqld op monitor timeout=40 interval=2





定义组:
1
crm(live)configure#group mysqlgroup mysqlip mysqlnfs mysqld





定义排序:
1
2
crm(live)configure#order mysqlip_before_mysqlnfs Mandatory: mysqlip mysqlnfs
crm(live)configure#order mysqlnfs_before_mysqld Mandatory: mysqlnfs mysqld



wKiom1Vu9gSDfcV4AAKA5PBIXzw594.jpg

wKiom1Vu9iSCpOOaAAKcxzhp-H4542.jpg

wKiom1Vu9kaj-pq8AAIpt6Db5J4839.jpg

切换节点后数据正常。

运维网声明 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.iyunv.com/thread-73673-1-1.html 上篇帖子: corosync结合drbd实现HA mysql service 下篇帖子: 基于drbd的mariaDB 的高可用集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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