Lvs+keepalived+mysql主从热备

Lvs+keepalived+mysql主从热备

实验拓扑图:

一、安装 LVS+keepalivedMaster+Backup都需安装)

需要软件

ipvsadm-1.26.tar.gz

keepalived-1.2.13.tar.gz

裸机需要安装如下插件

popt-static-1.13-7.el6.x86_64.rpm

yum -y install  libnl* popt* kernel* openssl* gcc* make*

vi /etc/selinux/config #编辑SE防火墙配置文件

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存,退出

setenforce 0  #立即生效

Service iptables stop 关闭防火墙

二、安装Lvs

关联lvskeepalivedipvs所需的内核信息

ln -s       /usr/src/kernels/2.6.32-71.el6.x86_64/     /usr/src/linux

解压ipvsadm  

使用make 进行编译makeinstall 编译后安装

完成后  使用ipvsadm –v  查看版本

三、安装keepalived

解压keepalived

进入目录  配置keepalived存放路径

指定目录后  输出版本信息  和所支持的选项

留意Configure配置Use IPVS FrameworkIPVS sync daemon support Use VRRP Framework要返回yes,否则无法关联ipvs功能

最后编译安装

优化keepalived路径做软连接

ln -s /usr/local/keepalived/etc/keepalived /etc/

ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

ln -s /usr/local/keepalived/bin/genhash /bin/

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

配置MySQL双机热备

环境说明

 

Msql主备结构

1MySQL 主服务器

系统:CentOS 6.2

IP192.168.1.251

主机名称:MySQLMaster

MySQL 版本:mysql-5.5.22

2MySQL 从服务器

系统:CentOS 6.2

IP192.168.1.252

主机名称:MySQLSlave

MySQL 版本:mysql-5.5.22

一、配置MySQL 主从服务器

修改两台服务器的IP    然后使用rpm包安装好mysql数据库,

使用mysql –u root –p 登录  密码默认为空,

建立数据库smiledb

授权用户rsync 只能从192.168.1.252 这个IP

访问主服务器192.168.1.251 上面的数据库,并且只具有数据库备份的权限,

刷新系统授权表,

备注:在导出之前可以先进入MySQL 控制台执行下面命令

flush tables with read lock; #数据库只读锁定命令,防止导出数据库的时候有数据写入,

#MySQL 主服务

器进行操作,导出数据库smiledb /home/smile.sql

将备份的smile.sql 上传至从服务器(上传大家都会 我就不演示)

在从服务器先创建smiledb库;

使用 use smildb;进入库

导入备份文件到从数据库,

测试在从服务器上登录到主服务器,

二、配置MySQL (主)--服务器的my.cnf 文件

如图,修改my.cnf文件,(上面描述的非常详细)

主服务器 /usr/share/mysql/my-my-large.cnf 修改为my.cnf并且移动到/etc/ 目录下

然后重启MySQL

再次进入mysql控制台,使用 show master status;   必须把库锁住 否则会出现变动

查看master数据库当前正在使用的二进制日志及当前执行二进制日志位置;

三、配置MySQL (从)--服务器的my.cnf 文件

如图,修改my.cnf文件,(上面描述的非常详细)

从服务器  /usr/share/mysql/my-my-large.cnf 修改为my.cnf并且移动到/etc/ 目录下

然后重启MySQL

进入mysql控制台   停止slave同步进程

执行同步语句;

change master to master_host='192.168.1.210', master_user='rsync', master_password='123456',master_port=5656,  master_log_file='mysql-bin.000001', master_log_pos=107;

开启slave同步信息;

完成后别忘记解除主服务器库的锁定,

最后使用 SHOW SLAVE STATUS\G 查看同步信息;

注意查看:

Slave_IO_Running: Yes            Slave_SQL_Running: Yes

以上这两个参数的值为Yes,即说明配置成功!

进入主服务器 创建test  查看从服务器是否同步过来;

create table test ( id int not null primary key,name char(20) );

show tables;会看到有一个新建的表test,表示数据库同步成功

配置主从keepalived.conf文件

上面的Keepalived.conf配置文件在MASTERBACKUP上都要配置,在这样只有一个vrrp_instance 的环境里,主负载均衡器(MASTER)与备份负载均衡器(BACKUP)配置文件的差异一共只有3: 全局定义的route_idvrrp_instance statevrrp_instance的优先级priority

将虚拟IP绑定到两台Mysql服务器

指定虚拟IP 192.168.1.250

/sbin/ifconfig lo:0 192.168.1.250 netmask 255.255.255.255 broadcast 192.168.1.250

/sbin/route add -host 192.168.1.250 dev lo:0

       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

 sysctl -p >/dev/null 2>&1

使用ip route 查看是否绑定到l0

模拟故障

测试realserver

测试关闭其中一台realserver

通过上面测试可以知道,当realserver故障或者无法提供服务时,负载均衡器通过健康检查自动把失效的机器从转发队列删除掉,

启动被关闭的realserver

realserver故障恢复后,负载均衡器通过健康检查自动把恢复后的机器添加到转发队列中

 

http://blog.163.com/wingswing@126/blog/static/22676416201173105514120/

posted @ 2017-01-21 21:53  oldxulinux  阅读(486)  评论(0编辑  收藏  举报