Keepalived+Lvs+Mysql主主复制(一)

2015-01-23 22:08:23 · 作者: · 浏览: 14

一简介

Keepalived+lvs+mysql主主复制是比较常用的一种Mysql高可用方案,其中lvs 提供读负载均衡,Keepalived通过虚拟vip漂移实现故障自动转移,而Mysql虽然配置成主主复制,但是一般都是采用单点写入来保证数据一致性。

整个方案实现非常简单,仅需两台服务器即可,安装配置也相对简单,但需要自己写脚本实现keepalived服务的开启和关闭,适用于只有两台数据库服务器并且未实现读写分离的场景。系统整体结构框图如下

\

二环境搭建

2.1 环境配置如下

Keepalived

Server

LVS

Server

LVS

Realserver

MySQL

Master-Master

Write VIP

Read VIP

OS

MySQL

Master

10.0.11.243

10.0.11.243

10.0.11.243

10.0.11.243

10.0.11.190

10.0.11.191

Centos6

Percona5.6

Backup

10.0.11.244

10.0.11.244

10.0.11.244

10.0.11.244

10.0.11.190

10.0.11.191

Centos6

Percona5.6

?

?

2.2 mysql master-master复制配置

主主复制配置本质上就是配置两台服务器互相的主从,实现比较简单,大致步骤如下

2.2.1 在Master上创建一个复制账户

mysql>grantreplication slave on *.* to rep71@10.0.11.244identified by‘123456’;

mysql>flushprivileges;

?

2.2.2 修改两台mysql配置文件my.cnf如下

##Replication General Config (both master and slave)

server-id= 101

log-bin= mysql-log-bin

auto-increment-increment= 2

auto-increment-offset= 1

binlog_format= row

relay_log= mysql-relay-bin

?

2.2.3 在Master服务器上执行show master status,记录下File和Position

mysql>show master status\G;

***************************1. row ***************************

File:mysql-log-bin.000005

Position:327933

Binlog_Do_DB:

Binlog_Ignore_DB:test,mysql,information_schema,performance_schema

2.2.4 在Slave服务上执行

mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to
-> master_host='10.0.11.243',
-> master_user='rep71',
-> master_password='123456',
-> master_log_file=' mysql-log-bin.000005',
-> master_log_pos=327933;
Query OK, 0 rows affected (0.01 sec)

mysql> start slave;

2.2.5重复以上四个步骤,在Slave服务器上创建账户rep72,show master status,在Master上start slave,这样mysql的主主同步就配置好了,分别在两台服务器上运行show slave status,如果结果都显示Slave_IO_Running: Yes,Slave_SQL_Running: Yes,则证明同步正常。

?

2.3 Keepalived的安装

2.3.1 在 master、backup 服务器都进行安装:

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

sudotar zxvf ipvsadm-1.24.tar.gz

cdipvsadm-1.24

sudoln -s /usr/src/kernels/2.6.32-358.el6.x86_64/ /usr/src/linux

make

sudomake install

?

2.4 Keepalived 的安装

2.4.1在 master、backup 服务器都进行安装:

wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz

tarzxvf keepalived-1.1.19.tar.gz

cdkeepalived-1.1.19

yuminstall -y openssl openssl-devel

sudoyum install popt-devel –y

./configure--sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.18-308.el5-x86_64/

make

sudomake install

ln -s /usr/local/sbin/keepalived /sbin/

2.4.2 Master上的Keepalived 的配置

global_defs{

router_id mysqlmha1

}

vrrp_scriptcheck_run {

script"/etc/keepalived/check_mysqll.sh"

interval 1

}



vrrp_instanceVI_1 {

state MASTER

interface em1

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

check_run

}

virtual_ipaddress {

10.0.11.190 dev em1 label em1:1

10.0.11.191 dev em1 label em1:2

}

}

virtual_server10.0.11.190 3306 {

delay_loop6

lb_algorr

lb_kindDR

persistence_timeout20

protocolTCP

sorry_server10.0.11.244 3306

real_server10.0.11.243 3306 {

w