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

楼主 |
发表于 2017-9-23 11:31:22
|
显示全部楼层
写这篇文章的时候,其实心里很不爽,国外VPN出了点问题,所以用度娘了,度娘搜出来的东西,80%是一样,有的名字不一样,但是内容还是一样的,corosync pacemaker mysql drbd 的高可用,我在想,如果不用drbd是不是就不能用corosync pacemaker实现高可用了?
2 s" p5 @+ W. L2 z对度娘的搜索算法,以及竞价排名,我只想说我去年买了个表。
* l0 k8 N' t1 U2 Z% e一,mysql replication主从配置3 Y' K5 Q& |* |) U3 _/ S
请参考:mysql replication 主从(master-slave)同步, l( G+ t, \* [, K
二,corosync pacemaker安装配置
R4 N$ ?: Y& f, m: D9 {& `请参考:corosync pacemaker nginx 高可用 安装配置4 G* P( B4 O5 e8 S, K
上面二篇博客的/etc/hosts是定义的不一样的,以mysql replication为准,也就是masters,slave2。
]- I h8 N2 X, S! X3 T% D在这里要注意,改过hosts的名称后,masters节点,要重新生成auth文件的。6 B8 u8 F+ _% O" K) M1 ~' z
" |% n% e+ s. F) P2 z, C
[root@masters corosync]# corosync-keygen 0 \" S& b# H) H, N9 W& e! T
[root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多节点都要copy & Q7 r8 Q! [4 S' D
P, j, y: L% a( l各节点重启corosync。
+ H. T: q3 w$ G' c7 D三,masters节点,配置mysql crmsh
c5 Z& M( d9 c- z1,配置mysql crmsh
2 r- P( Y) P0 v* n7 o[root@masters tank]# crm 0 F: B& W9 X* s
crm(live)# configure 7 `9 j+ F* Q. S8 u. {) t
crm(live)configure#
4 r, Z2 ?4 g2 M; gcrm(live)configure# property stonith-enabled=false
2 P' W9 T# |; o N5 o" scrm(live)configure# property no-quorum-policy=ignore
/ q) K' F* j% ?* D) }# 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 8 M1 ]) z/ \# g# {. P; V
crm(live)configure# colocation mysql_col inf: mysqlserver mysqlip : q$ n. R4 g A
crm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver
h! a' ~3 {1 ^* y {; R- F6 e/ ~crm(live)configure# verify : b$ N, b" `8 z& _ Q: P: Y: ^
crm(live)configure# commit X! |% y0 m/ i
crm(live)configure# show
' s, r5 K5 ]+ N. |+ b( x) t" `2 K; t" q! R7 k5 L, p+ N
- T# L7 A [7 C6 x- a% L, M( o3 l
在这里发现一个问题,在网上看了一些资料,关于monitor后时间配置,有几种版本+ \; g1 \1 W- l" h
monitor interval=30 timeout=20
" X6 y9 a& A7 O. L) c7 K" {' {8 Omonitor interval="30" timeout="20"
6 @6 D5 G- i9 Y, F% N) _7 Cmonitor interval="30s" timeout="20s" e5 F4 K$ Z. |9 F6 {
我没有验证这些写法的正确性,但是monitor interval=30s timeout=20s,这种写法肯定是正确的,我用的系统是centos 6.5 64位,并且在帮助文档中也是这种写法。8 K4 O6 B/ S {- Y% C
' q. m" I- G$ y7 n
: L0 h+ @ N7 V- t8 B$ v" @, b# j这是配置完成后的,通过show查看- p4 r% E$ h: |2 P
4 A2 Z0 U! b T; ~# M( a
$ \/ B6 p$ o' n6 w2,检测mysql各节点状态3 Z: @5 Y0 v/ ~7 U+ m6 m
2 U$ \ k( u# K4 \
L$ w; v N+ M" y' o5 u1 J# k
[root@masters tank]# crm status
4 _9 Z* o: E' e1 d4 p3 e0 u9 rLast updated: Thu Apr 23 02:36:54 2015
' ^5 j& K) o2 U- @! m- \ w/ ]. M; ?Last change: Thu Apr 23 02:36:06 2015
0 i+ ?8 U, Y5 v0 ~( b( Y8 e4 |Stack: classic openais (with plugin) " |! K( H: n" g' U" t& @! A
Current DC: slave2 - partition with quorum
M; X& F( s4 ?- h h1 M; vVersion: 1.1.11-97629de
$ v1 z0 {! s' _- W$ G5 Nodes configured, 2 expected votes
3 T- x! k1 d# O0 @$ q3 Resources configured + S- x7 w" e/ u' {7 o5 }3 h
- Q- M* F2 s# P3 Q1 s& sOnline: [ masters slave2 ] //二节点都要在线
/ P. b- ]2 k7 `/ [1 HOFFLINE: [ localhost.localdomain node1 node2 ]
) i5 U, D4 |9 H3 y* i. P ; W9 s6 m0 q3 M, {5 j8 F
webip (ocf::heartbeat:IPaddr): Started masters 6 b3 ^9 p! {- c! C
nginx_res (lsb:nginx): Started masters
4 Q ^, X; u0 S0 Z5 @: E" C" n& D mysqlip (ocf::heartbeat:IPaddr): Started slave2 1 Q# T, q# S/ W8 u0 _6 L; W
mysqlserver (lsb:mysqld): Started slave2
. U( X, B6 \9 K' I' H( c0 ?7 B$ o& V6 w0 x# H
$ `2 \6 A* h$ s% Z! T0 J# ^- \# u$ y( r4 J" R1 `: D# G0 U, Q! \
3 w& G% z+ L$ F X# O6 W
% O" i. \- p# ~# f如果online,节点不全的话,offline的机器上面,执行
4 f9 V# Y: h8 G- a9 u[root@slave2 ~]# crm node online
. y1 a0 W5 E0 v# v& A: D
/ x- I/ O" K" W, J3 H( L2 j" r2 w* H
9 Z+ b: `" V O6 \& v5 O. V
- H! s2 h" m/ p" m9 _( `5 b
+ {+ `" \- C1 H' O6 {四,测试
1 P" R3 o. x# W& r: Y查看复制打印?
+ H6 b1 ^$ c" P4 w[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果实际连接masters的话
0 Z) |4 U1 ^: F, t, |[root@masters ~]# crm node standby //masters机器,将masters挂起 ( j v5 @- ]/ D$ H* h
[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功连接到slave2的话,说明测试成功
* u$ C0 a4 M* ^) [; N h4 r有三台mysql,一主二从,如果主服务器down机了,二台从服务器,能不能自动转成一主一从,并保持数据的完成性呢,MHA可以帮我们解决这问题。' f# g2 F! @* f. C
& V; P7 |2 s0 }8 M. E- z4 A" z
; l3 t, ~: l! k7 Y
$ O! Z, m! M! W) n: ]5 X( O4 N2 ~1 Y# _' |
0 D* {; k# G/ W) P" f A0 E' K
|
|