找回密码
 注册
查看: 4043|回复: 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实现高可用了?
' s: u7 b+ p3 [  L* V对度娘的搜索算法,以及竞价排名,我只想说我去年买了个表。
% f' ]& Z; T/ M: S, [, s一,mysql replication主从配置( l. r! y6 Z) c; X, s; K$ c& i$ I
请参考:mysql replication 主从(master-slave)同步5 J1 ~1 \& c1 D) M
二,corosync pacemaker安装配置. G/ B3 c  `3 p
请参考:corosync pacemaker nginx 高可用 安装配置
" r$ |: Z  d" R! e& V上面二篇博客的/etc/hosts是定义的不一样的,以mysql replication为准,也就是masters,slave2。# n- x/ s/ t9 o
在这里要注意,改过hosts的名称后,masters节点,要重新生成auth文件的。
' r3 E- r9 ?: F4 R; u* E" n
: g  x: S9 _. S) `9 J2 o5 `
[root@masters corosync]# corosync-keygen  0 o  Z5 u. t7 G8 Z5 E/ J4 u
[root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多节点都要copy  ; `9 ~3 z9 p. ^$ @4 p0 b
  `3 ?6 g( u- b" r
各节点重启corosync。9 O' h4 g. l- [% Y
三,masters节点,配置mysql crmsh
3 n2 b  S- e& F' G9 r2 `7 p1,配置mysql crmsh
5 |" q+ F! T- \, q& C[root@masters tank]# crm  3 N9 m: e6 T5 E3 `
crm(live)# configure  % H, A8 S# R! ?
crm(live)configure#  
9 O1 x8 G( L, {crm(live)configure# property stonith-enabled=false  6 m: E6 C8 m2 y
crm(live)configure# property no-quorum-policy=ignore  
6 Y1 i9 g; j7 [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  9 m1 `& H; X0 t7 X* K! M
crm(live)configure# colocation mysql_col inf: mysqlserver mysqlip  3 Z3 {! l. H* ^6 f
crm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver  . M! ^8 _0 x; j/ L
crm(live)configure# verify  
, T- f/ v1 Y+ ~  A  t, ycrm(live)configure# commit  ( }( V5 h% l" t1 |* [+ S+ \
crm(live)configure# show  
* ~$ G( N+ _' P! M" A$ F6 z  r* K7 t0 B/ L2 Y
! o: `% V! M* u2 {9 m8 e+ {" C
在这里发现一个问题,在网上看了一些资料,关于monitor后时间配置,有几种版本
' }0 P$ E+ q9 X8 Tmonitor interval=30 timeout=20
- }+ T6 ]' B6 e! i5 d5 |+ fmonitor interval="30" timeout="20"
  d" Z+ c7 C9 m: B5 ~& Umonitor interval="30s" timeout="20s"% X2 \$ o- @7 t6 Z% K% o
我没有验证这些写法的正确性,但是monitor interval=30s timeout=20s,这种写法肯定是正确的,我用的系统是centos 6.5 64位,并且在帮助文档中也是这种写法。
3 `9 J; X! {" b1 B! ?, R$ [- N" ], u" s
3 d% I& @% ~7 P) H% `/ P1 v" G+ J
这是配置完成后的,通过show查看. Z$ d" S3 Z* i/ W# P6 F% @

' H7 e0 p+ @) w8 g
$ k: R7 M6 S/ s9 f1 k! [; c8 n' p2,检测mysql各节点状态
# t+ b; e  j" j/ S0 B" i5 n6 A+ R" s/ L, T- u6 m/ @3 M

) k1 f9 x4 x! M$ z+ @) Z[root@masters tank]# crm status  
) N$ G/ [# K% x3 l: l; R  fLast updated: Thu Apr 23 02:36:54 2015  5 U8 b" w8 d- P, p6 z
Last change: Thu Apr 23 02:36:06 2015  0 }8 {/ j- P4 ^$ |
Stack: classic openais (with plugin)  
) F' U! `0 ~5 [7 K# X- X9 SCurrent DC: slave2 - partition with quorum  
: @5 i$ {+ a( z( J# D$ G0 q4 rVersion: 1.1.11-97629de  
5 E0 }0 ^+ T! ~: j% W! \/ y5 Nodes configured, 2 expected votes  ' Y3 R# n' _; ~  F" f  V) d
3 Resources configured  
$ s# k% T$ D, u; e/ v! Q  
5 D) N3 q5 t9 N9 E, i9 kOnline: [ masters slave2 ]  //二节点都要在线  
! }7 m/ S; d. ~/ F, N& d6 l1 t: R& fOFFLINE: [ localhost.localdomain node1 node2 ]  : k' Z# f, u2 M# m  K
  
0 m, F+ Y% h8 ? webip (ocf::heartbeat:IPaddr): Started masters  
) C2 W' E0 t. v/ y& q& r8 E" U# A nginx_res (lsb:nginx): Started masters  . F1 J! S" w, B0 N' N2 o/ b' P
mysqlip (ocf::heartbeat:IPaddr): Started slave2  3 q- k  x1 O* j; G) _' J
mysqlserver (lsb:mysqld): Started slave2  ' C) ]* x9 V' D1 C; d! j
/ P) h. f) o/ @

% y# w# G% d) C" I: S/ {; I" d& ~/ n

# G: k* F, ?4 V/ d- w
" w; A: m! X+ M. E# a! }3 l如果online,节点不全的话,offline的机器上面,执行  c' X% j& W3 S+ T7 x3 J9 S
[root@slave2 ~]# crm node online    i& b5 e8 u9 q/ W$ y

7 D+ f% }+ Y$ n$ h. z( s! ~
; F3 E% S* `2 w' y) z6 m; c: G8 R8 N9 `

- M+ r& R( X+ `" l) Y5 p3 }4 v: E3 [% v& b4 M. `
四,测试* z# t7 B4 C+ y* t  @
查看复制打印?
% A1 Y" x5 E' k3 h3 [6 L8 s! ?[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果实际连接masters的话  / t+ |0 `7 A, Q
[root@masters ~]# crm node standby //masters机器,将masters挂起  
6 e  H$ i1 ^1 R+ D[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功连接到slave2的话,说明测试成功  
  D4 t" z$ Q: g5 K2 [有三台mysql,一主二从,如果主服务器down机了,二台从服务器,能不能自动转成一主一从,并保持数据的完成性呢,MHA可以帮我们解决这问题。
& N6 D6 Z) w7 c7 L+ {
2 K$ ?4 j3 G& K9 `* c; C: n( ~( h& H% Q' A
, ^/ b2 z  I. F% O

1 |! K$ @' I% [+ v0 G' o
  f1 G! V8 h  r4 z& ~% w' u! r
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:06 , Processed in 0.075191 second(s), 25 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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