找回密码
 注册
查看: 4041|回复: 1

Linux集群之corosync+pacemaker实现MySQL高可用

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2017-9-23 11:01:23 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 2 金钱 才能浏览

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2017-9-23 11:31:22 | 显示全部楼层
写这篇文章的时候,其实心里很不爽,国外VPN出了点问题,所以用度娘了,度娘搜出来的东西,80%是一样,有的名字不一样,但是内容还是一样的,corosync pacemaker mysql drbd 的高可用,我在想,如果不用drbd是不是就不能用corosync pacemaker实现高可用了?7 t- D& n9 m! U
对度娘的搜索算法,以及竞价排名,我只想说我去年买了个表。
: ^( z' r/ P% Z/ R/ @一,mysql replication主从配置: S0 j  ]# T& z* a: t# |
请参考:mysql replication 主从(master-slave)同步2 W2 x" R" ~& w' i3 [; a( e
二,corosync pacemaker安装配置. }& a' h2 b5 ^; ^* p
请参考:corosync pacemaker nginx 高可用 安装配置
) }: Q- D- I  U8 ~4 r8 Z上面二篇博客的/etc/hosts是定义的不一样的,以mysql replication为准,也就是masters,slave2。( |) _# H. P0 U8 F9 ?; m
在这里要注意,改过hosts的名称后,masters节点,要重新生成auth文件的。
* k+ p2 S' w. ~& _

, _9 g' O- K+ X  O+ D5 ][root@masters corosync]# corosync-keygen  
1 Y. v" V: s0 Y. X' L; I; ][root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多节点都要copy  - G! B4 h2 Q9 J" s% U( g
* ^! s: P  l% n: n  N) ^$ G
各节点重启corosync。; a3 _( m! I( K: Q% g7 O
三,masters节点,配置mysql crmsh
, K; c9 \) P' I% }1,配置mysql crmsh
6 P3 i! A% |! |[root@masters tank]# crm  
# e1 P' R! [  |& M, Ucrm(live)# configure  - ?+ M: E; K- h
crm(live)configure#  
5 N* x4 [) G9 L' T/ \crm(live)configure# property stonith-enabled=false  
0 W# E8 p3 `" Mcrm(live)configure# property no-quorum-policy=ignore  
  _9 A; Z& f5 h3 k% U5 kcrm(live)configure# primitive mysqlip ocf:heartbeat:IPaddr params ip=192.168.10.231 op monitor interval=30s timeout=20s on-fail=restart crm(live)configure# primitive mysqlserver lsb:mysqld  4 ^% `  O9 d5 ]! ]
crm(live)configure# colocation mysql_col inf: mysqlserver mysqlip  5 o1 q' h6 ]$ C* b
crm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver  
# ?* n5 Q0 H$ s! U% ~crm(live)configure# verify  
8 N+ A! _! s) {2 ~! Q6 P# Pcrm(live)configure# commit  ! ^8 B# I7 g" _' Z5 j+ p
crm(live)configure# show  
- P  a; H, S5 n; H  B3 F% j8 M  j
; \9 t: B- A& G
在这里发现一个问题,在网上看了一些资料,关于monitor后时间配置,有几种版本
4 j' j2 y& P+ jmonitor interval=30 timeout=20: r* X0 f! C6 `) U. P+ q: c0 \* f
monitor interval="30" timeout="20"  b9 ~2 r/ g+ V* x! t
monitor interval="30s" timeout="20s"$ G7 x0 o0 w3 u7 `9 E; A% Q1 H
我没有验证这些写法的正确性,但是monitor interval=30s timeout=20s,这种写法肯定是正确的,我用的系统是centos 6.5 64位,并且在帮助文档中也是这种写法。. s( U/ d6 o: n6 i! i& d* B
) q% L( G* \0 ~3 B6 G

( s$ {! S7 l0 ]! ~, O/ x这是配置完成后的,通过show查看3 U9 p0 n: ^- f: q
8 y+ q  T4 W5 B: O% Q; \; s
3 f3 L% ]) k/ m4 X+ a. v0 I
2,检测mysql各节点状态
% W( {9 v- W; Q3 q3 M0 ]& n7 ~( b9 f+ P9 h- E5 G

' E$ _+ ]0 q9 }" [- s5 y$ h[root@masters tank]# crm status  ) e- W6 p8 T4 |& O. \; l
Last updated: Thu Apr 23 02:36:54 2015  
: g+ w6 l1 ?4 a2 p' H/ ALast change: Thu Apr 23 02:36:06 2015  + e7 T# h2 t  e9 c! F6 S
Stack: classic openais (with plugin)  
0 O- P- U* J1 w) C; qCurrent DC: slave2 - partition with quorum  
, S; Y' j' @$ x6 H" X9 JVersion: 1.1.11-97629de  5 @" d. h$ b7 d7 L0 t1 _9 `+ M
5 Nodes configured, 2 expected votes  5 u- A* T" @8 }) U3 M8 O* ~, ?" z
3 Resources configured  
0 v' I+ i( i" p$ K5 H6 z, j" c* I  
4 S! G4 s2 v. w0 T7 COnline: [ masters slave2 ]  //二节点都要在线  8 r: t% R8 A( g2 l0 r  P$ b
OFFLINE: [ localhost.localdomain node1 node2 ]  
2 B' J- }! \, K  F  
0 X3 d2 w# P3 h# O. y webip (ocf::heartbeat:IPaddr): Started masters  - N! c# f8 z; a( K6 ]
nginx_res (lsb:nginx): Started masters  
( r. ]+ e2 R( `( ? mysqlip (ocf::heartbeat:IPaddr): Started slave2  * X4 o0 C2 v4 _, `$ H
mysqlserver (lsb:mysqld): Started slave2  
0 D0 d7 j$ R/ w; c
( A% |9 T, h3 t8 v" t0 G/ w- a+ |3 X2 b2 C/ ]( }
1 d0 ]- y! V# A2 U) R% g# G

2 u6 L' W$ d! S& a/ O+ S7 O. F; ]9 _5 l* l! E) r8 G+ }% ?
如果online,节点不全的话,offline的机器上面,执行
: A8 H! A, y: W' E% M[root@slave2 ~]# crm node online  % m1 u4 b- j; ^! Z' Q9 i

! A# L( \* }' v4 e. q& d
% ]0 B1 \9 L7 H+ y8 o( V$ n6 ^3 F
0 o& B: j  W/ A0 T# l
9 y( T3 z' x+ s- g& K' ]
# G7 G. S8 P2 n* y四,测试
& g' M% z2 Z4 }4 f' G- K查看复制打印?7 m# C, c; O7 ~5 N- {
[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果实际连接masters的话  8 D4 q% q: m3 w* O/ w! r
[root@masters ~]# crm node standby //masters机器,将masters挂起  
* b7 W- v2 P4 F6 n4 g  c7 n: ?[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功连接到slave2的话,说明测试成功  
) F/ k9 v$ K  U7 W# l8 P有三台mysql,一主二从,如果主服务器down机了,二台从服务器,能不能自动转成一主一从,并保持数据的完成性呢,MHA可以帮我们解决这问题。" n0 [$ ?8 ]+ s, ?% W6 ]# W" {
8 T$ h$ o( ^  I  N7 Q! \

% {$ N. x( J( `  K' m
( k0 f) M3 K1 F4 }6 ?* A# Z6 u2 s/ @# J) s
7 d3 b: F2 a. }# s! p+ j6 |
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:57 , Processed in 0.078740 second(s), 25 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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