- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|

楼主 |
发表于 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 |
|