找回密码
 注册
查看: 4040|回复: 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实现高可用了?; i% ^4 E" `: w5 R; f
对度娘的搜索算法,以及竞价排名,我只想说我去年买了个表。
* v- d" _1 s) \8 W一,mysql replication主从配置( D# F" H6 \4 R4 U% e
请参考:mysql replication 主从(master-slave)同步  z- V! f1 h+ H+ b- ^
二,corosync pacemaker安装配置
- y* E  i4 p4 t请参考:corosync pacemaker nginx 高可用 安装配置
; n- _  q( ~. C% j. M$ E3 X9 Z上面二篇博客的/etc/hosts是定义的不一样的,以mysql replication为准,也就是masters,slave2。; ]# \; A9 B! i3 @0 q; q9 j* {
在这里要注意,改过hosts的名称后,masters节点,要重新生成auth文件的。
. Z' @+ z# E; ~2 B0 w
: d  H) _8 T1 r; m+ z
[root@masters corosync]# corosync-keygen  8 u3 V+ E0 I/ u! m1 ], O- p" L
[root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多节点都要copy  
# C2 F- v7 ?7 x. c' u8 a1 A3 X0 M
  N- a. c5 Y+ S- J各节点重启corosync。
6 Q$ A. p7 K( Q% e) B三,masters节点,配置mysql crmsh
/ h  v6 h4 Q7 v# I1,配置mysql crmsh
, r, [. M) z7 `7 Y[root@masters tank]# crm  
! y7 [7 l5 w/ B$ s3 Rcrm(live)# configure  3 g5 z! ~" T3 H, l- z% g4 Z
crm(live)configure#  . ]7 i1 M. H0 [& ^* [) z0 B) J
crm(live)configure# property stonith-enabled=false  
/ t' K* d8 u/ c7 B. D  h2 A6 xcrm(live)configure# property no-quorum-policy=ignore  0 P% k6 @, j/ s" t
crm(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  # M2 U2 O7 b1 s. l6 E: m
crm(live)configure# colocation mysql_col inf: mysqlserver mysqlip  
/ j- F& B: C4 ycrm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver  2 @4 r: U; |- c: Y6 q- @) e- a
crm(live)configure# verify  * ]* x. @% d8 b4 N# B
crm(live)configure# commit  
+ A* f& y5 \) X5 m. i4 `4 pcrm(live)configure# show  * v- ]1 x4 S8 a

6 f$ P% e. i* v. @. a- r
4 m+ `( x5 ^$ d' N4 D* U0 b
在这里发现一个问题,在网上看了一些资料,关于monitor后时间配置,有几种版本5 U5 o4 Q$ w* u! c. x
monitor interval=30 timeout=20
* ?7 a! r; e! ?* @5 ]. qmonitor interval="30" timeout="20"9 A8 m: Y, _/ p; S* {8 \$ p
monitor interval="30s" timeout="20s"
' G! _' [, L6 L& T8 L: S我没有验证这些写法的正确性,但是monitor interval=30s timeout=20s,这种写法肯定是正确的,我用的系统是centos 6.5 64位,并且在帮助文档中也是这种写法。
( y. x, s5 V# v1 [1 r0 ?
" U/ f! ?) p) J6 i8 P9 s9 _5 s( p
$ A* U) v3 H$ o3 |这是配置完成后的,通过show查看0 W$ X& N4 ]5 ^& ]* O! X
  }  f9 A1 s/ }

) o* r" a8 y- y. e9 d9 q- U& b- N1 p2,检测mysql各节点状态
' b( A1 H/ z1 e1 w! ~) y. P5 ]5 ]* _2 m
: m; i0 t/ U/ G
7 x0 P$ `( f- r) a' R[root@masters tank]# crm status  
9 L' R) p8 A% R+ n3 t7 t$ s0 E! d% zLast updated: Thu Apr 23 02:36:54 2015  : Y0 C5 x1 D, K( Z
Last change: Thu Apr 23 02:36:06 2015  3 T" q5 P6 f! g  U
Stack: classic openais (with plugin)  6 S/ R; t4 k3 E& T
Current DC: slave2 - partition with quorum  
. s. |4 t# I$ n3 y, p$ cVersion: 1.1.11-97629de  
1 N% M5 Q! b0 o% ~) c  W4 N5 Nodes configured, 2 expected votes  
: U8 a% n% y7 y* D) ~3 Resources configured  3 z9 }( u7 [7 V
  
3 D, {. C+ J8 b8 _2 XOnline: [ masters slave2 ]  //二节点都要在线  
' X  Q! p( w3 s  x7 t7 [OFFLINE: [ localhost.localdomain node1 node2 ]  
4 g; h7 d1 T; _  
% ]% k* \- J' j$ i) H) C* r webip (ocf::heartbeat:IPaddr): Started masters  0 h8 ]0 k/ r! i; _
nginx_res (lsb:nginx): Started masters  % I/ F$ M8 `  O: ]2 t5 s! \: a( h
mysqlip (ocf::heartbeat:IPaddr): Started slave2  
' u1 z/ B# I; f1 J6 t6 b8 i mysqlserver (lsb:mysqld): Started slave2  
' Y$ Q: a% L1 m4 j
' P, p$ j: B5 \. O- e" g% A5 X
. J- b* `( g- l" Q. l0 e& G
- n$ f; ]" U- ^& j
$ V2 c- C( x+ R  a* ?# [0 A" n; T
# \- Y' |' E: j! }8 n( ?; s8 M! a如果online,节点不全的话,offline的机器上面,执行2 p# O4 a$ N  z$ o* x
[root@slave2 ~]# crm node online  & B/ d$ @6 g- y9 K3 c& B

( A1 V9 |: e4 g0 Y7 M
) y% }' L. |- j+ o+ L+ h& G- {& m5 ^6 S% e* m4 m
) @1 `& C6 ?$ I
* Z& c5 O& X- R9 Q" w8 g+ @- x# ~+ ~  R
四,测试/ \* ^9 G, g- l8 ]1 x
查看复制打印?
) j1 X1 ?+ l  @& m( u) X4 {[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果实际连接masters的话  $ C2 K4 ?# N3 N6 @! U3 n! w9 H& l
[root@masters ~]# crm node standby //masters机器,将masters挂起  
+ |, n4 S9 ^/ E[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功连接到slave2的话,说明测试成功  
1 [# t* F1 w: _  k- i有三台mysql,一主二从,如果主服务器down机了,二台从服务器,能不能自动转成一主一从,并保持数据的完成性呢,MHA可以帮我们解决这问题。
3 g- B, `1 K8 j! i/ O! F" O+ v+ J. U) t+ X6 Q

0 ~# A" A6 A2 \7 Q9 N3 C, j1 I. D, i6 f: z
$ U" B  n6 H( E" ^

7 ~% P8 k  q3 ~; l( k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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