易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4039|回复: 1
收起左侧

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

[复制链接]
发表于 2017-9-23 11:01:23 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 2 金钱 才能浏览
 楼主| 发表于 2017-9-23 11:31:22 | 显示全部楼层
写这篇文章的时候,其实心里很不爽,国外VPN出了点问题,所以用度娘了,度娘搜出来的东西,80%是一样,有的名字不一样,但是内容还是一样的,corosync pacemaker mysql drbd 的高可用,我在想,如果不用drbd是不是就不能用corosync pacemaker实现高可用了?2 d* {7 V/ N/ p) x
对度娘的搜索算法,以及竞价排名,我只想说我去年买了个表。8 V6 {8 w1 v+ M) G
一,mysql replication主从配置# E$ X4 V% |. k( O3 a
请参考:mysql replication 主从(master-slave)同步. I3 H1 r0 f" E& q) {% K
二,corosync pacemaker安装配置( M% q3 w! \9 g: C
请参考:corosync pacemaker nginx 高可用 安装配置# V5 x/ B. h# K' g1 p: b5 L7 y/ N9 n
上面二篇博客的/etc/hosts是定义的不一样的,以mysql replication为准,也就是masters,slave2。4 F/ r6 j- y3 n/ z% w$ ]& o6 }- a8 Y
在这里要注意,改过hosts的名称后,masters节点,要重新生成auth文件的。+ I3 K1 A/ J) y6 r+ R
2 s3 _& n4 t3 P6 o
[root@masters corosync]# corosync-keygen  ) u& A+ Q* [. M# b* U+ X+ A8 _+ c
[root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多节点都要copy  . \7 b8 t: I2 u& L' g4 h3 ]

4 J/ i: I8 S! c+ r8 x# B( |各节点重启corosync。% ]" n  Q# J1 Q+ P1 B( E) J8 ^
三,masters节点,配置mysql crmsh
8 [" d5 k, _; m/ |) S: l$ m1,配置mysql crmsh: Q; R& d( g9 T+ }. M8 X' A
[root@masters tank]# crm  9 o, w4 u# n1 ~  }, i' H
crm(live)# configure  * Y4 R7 B9 w1 ^
crm(live)configure#  
+ E$ Z  g( C, J! L- `crm(live)configure# property stonith-enabled=false  ' W5 i3 t& h6 w" I
crm(live)configure# property no-quorum-policy=ignore  
# }6 o: T8 l, s4 Xcrm(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  
' i" i4 D9 t! Q( ]! ]+ ?0 zcrm(live)configure# colocation mysql_col inf: mysqlserver mysqlip    P) b, O$ a- e+ m2 R: Y2 O
crm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver  
) Q: ~& J2 T2 r  q2 g/ h3 pcrm(live)configure# verify  0 o( Z$ c3 O/ m4 b
crm(live)configure# commit  / r# C: R9 f+ x0 }( r
crm(live)configure# show  
* F8 s# y7 ]  G3 q0 J' d9 E
, Z9 m0 a1 R% q8 |! }! G& i

+ t$ F: ]$ W( d/ W在这里发现一个问题,在网上看了一些资料,关于monitor后时间配置,有几种版本
9 |8 |3 f2 N) }, ?3 v# k3 N' z. emonitor interval=30 timeout=20
! u, A& M2 _, Z0 tmonitor interval="30" timeout="20"
1 S1 ]3 N, U; z) D2 Omonitor interval="30s" timeout="20s". Q% n! h6 ]- Y% i3 s) q. x
我没有验证这些写法的正确性,但是monitor interval=30s timeout=20s,这种写法肯定是正确的,我用的系统是centos 6.5 64位,并且在帮助文档中也是这种写法。5 M- o4 n6 D, [* U+ b3 p

# a- `: d; Y' [
1 J+ j+ _* D2 q& v这是配置完成后的,通过show查看
# p! Y2 v0 M3 P% M8 B2 R) ^9 f0 k4 P
  E2 n' V1 |& c# @
2,检测mysql各节点状态
- G6 ]( p4 {1 O
4 U( F- m+ B. g( n7 O2 G
! ?4 N& v, z# m5 k3 m[root@masters tank]# crm status  
2 a1 Y7 V$ Q$ N  s* c3 J# {Last updated: Thu Apr 23 02:36:54 2015  2 u: U; q6 V/ H5 q0 I2 U
Last change: Thu Apr 23 02:36:06 2015  
, v" x' M* ]( X, ~1 c& HStack: classic openais (with plugin)    q/ T, }, G; \/ G' a
Current DC: slave2 - partition with quorum  " H2 l3 ?& K$ R0 H" o9 Q, e1 |- N
Version: 1.1.11-97629de  
# d: `, m6 }2 x0 ~0 G8 j5 Nodes configured, 2 expected votes  ' K$ |! ]% n! B/ ], a/ ]
3 Resources configured  
( Q, L6 ?' `4 t$ J0 S" v  
* g( ?& ^5 Z6 m2 l, X8 a9 LOnline: [ masters slave2 ]  //二节点都要在线  
. g* U, Z! ]& t: \OFFLINE: [ localhost.localdomain node1 node2 ]  
, p* q- _7 w0 {3 ?: P  : m$ D* Q7 R# G  ]
webip (ocf::heartbeat:IPaddr): Started masters  7 b; A+ `6 @7 C- F  z! s* \7 I5 i  }* x
nginx_res (lsb:nginx): Started masters  " l0 I; }  f+ T( B
mysqlip (ocf::heartbeat:IPaddr): Started slave2  ( O. i* Y/ F5 D6 m
mysqlserver (lsb:mysqld): Started slave2  6 M4 b# w5 C3 s9 U8 Y/ Q

$ C8 t' h/ s1 ^  m% u  \
( F6 @; D' ?) c' P* I! g# h5 e/ [

$ J, t7 o, h  ^0 i  i: k; F* e$ T# G; }8 \5 f
如果online,节点不全的话,offline的机器上面,执行3 i5 A3 o3 u0 ]4 j8 h$ ?8 J, n
[root@slave2 ~]# crm node online  ; Y  A* f# r' j9 r8 B; a
6 `% I  [6 j# [' k2 j8 J

9 H" y1 q3 o4 j2 j8 j+ U  e
9 i' f6 h9 J1 Y4 a2 E7 o- q$ P& }: J0 J# X' h- }3 R$ O

1 {  X- I/ u: @' e/ F- y四,测试3 R" O0 ~2 D, x! a  m
查看复制打印?
! `9 W- b  C6 {" l# x[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果实际连接masters的话  
8 N2 n- u) r2 Y# r2 n+ Z3 ][root@masters ~]# crm node standby //masters机器,将masters挂起  
* n& _0 @9 Y' _* ]: S$ R# C5 M[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功连接到slave2的话,说明测试成功  
% R5 R" \( {8 m3 I% @% l8 j有三台mysql,一主二从,如果主服务器down机了,二台从服务器,能不能自动转成一主一从,并保持数据的完成性呢,MHA可以帮我们解决这问题。# b6 D6 j4 S6 r  B. e
5 t/ u6 B; V; k5 H5 h  {) ?

( k% z& V  y  C3 M, j6 _% K6 ]% N/ _5 p4 D
# [, v9 k$ u4 i. \) c% o0 a

4 {! g/ a) L5 i# I  j
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 00:00 , Processed in 0.069696 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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