一、安装keepalived和ipvsadm

注意:ipvsadm并不是lvs,它只是lvs的配置工具。

为了方便起见,在这里我们使用yum的安装方式

分别在10.18.1.140和10.18.1.141两台主机上安装keepalived和ipvsadm

# yum install -y keepalived ipvsadm

安装完成后查看版本号是否一致 keepalived --version ipvsadm --version

主机配置文件

! Configuration File for keepalived

global_defs {

#   notification_email {

#     acassen@firewall.loc

#     failover@firewall.loc

#     sysadmin@firewall.loc

#   }

#   notification_email_from Alexandre.Cassen@firewall.loc

#   smtp_server 192.168.200.1

#   smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eth2

virtual_router_id 51

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.18.1.146

}

}

virtual_server 10.18.1.146 8066 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 10.18.1.143 8066 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 8066

}

}

real_server 10.18.1.143 8066 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 8066

}

}

}

从机配置文件

! Configuration File for keepalived

global_defs {

#   notification_email {

#     acassen@firewall.loc

#     failover@firewall.loc

#     sysadmin@firewall.loc

#   }

#   notification_email_from Alexandre.Cassen@firewall.loc

#   smtp_server 192.168.200.1

#   smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state BACKUP

interface eth2

virtual_router_id 51

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.18.1.146  #测试过程中发现,该虚拟ip只有和真实ip在同一网段,才好用

}

}

virtual_server 10.18.1.146 8066 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 10.18.1.143 8066 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 8066

}

}

real_server 10.18.1.143 8066 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 8066

}

}

}

注意:ipvsadm并不是lvs,它只是lvs的配置工具

LVS由两部分组成,包括ipvs和ipvsadm:

1.ipvs:ipvs是工作在内核空间netfilter的input链上的框架,通过用户空间工具进行管理,是真正生效实现调度的代码。

2.ipvsadm:ipvsadm负责为ipvs内核框架编写规则,管理配置内核中ipvs程序的用户空间的管理工具

二、启动两台机器的keepalived服务

1.分别在两台机器执行命令  service keepalived start

2.通过ipvsadm -L命令查看VIP是否能成功映射到后端mycat服务。如果失败了,可通过/var/log/messages日志定位keepalived启动失败的原因。

三、安装Mycat
  1. 解压Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz到/usr/local/目录下
  2. 配置schema.xml rule.xml server.xml
  3. 编写脚本realserver.sh,如下:

#!/bin/bash

#description: Config realserver

VIP=10.18.1.146

/etc/rc.d/init.d/functions

case "$1" in

start)

/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

/sbin/route add -host $VIP 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

echo "RealServer Start OK"

;;

stop)

/sbin/ifconfig lo:0 down

/sbin/route del $VIP >/dev/null 2>&1

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

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

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

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

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

  1. 如果/etc/rc.d/init.d/functions报错执行chmod 777 /etc/rc.d/init.d/functions
  2. 执行脚本 sh realserver.sh start,绑定到指定VIP(10.18.1.146)上
  3. 启动mycat,执行/bin/local/mycat/bin/mycat start
四、最后验证

分别在keepalived的两台机器上执行ipvsadm -L查看LVS规则是否正确,如下是连接两个mycat规则

在客户机10.18.1.138机器上执行“mysql -h10.18.1.146 -P8066 -uvps -pvps -DTESTSMARTBUS  -e 'select @@hostname'”查看是否理想情况一致(负载规则轮询)。

KEEPALIVED+LVS+MYCAT实现MYSQL高可用环境搭建的更多相关文章

  1. 使用KeepAlived搭建MySQL高可用环境

    使用KeepAlived搭建MySQL的高可用环境.首先搭建MySQL的主从复制在Master开启binlog,创建复制帐号,然后在Slave输入命令   2016年7月25日   配置安装技巧:   ...

  2. 基于PXC的MySQL高可用环境简单部署

    PXC简介 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节 ...

  3. haproxy + rabbitmq + keepalived的高可用环境搭建

    一.rabbitmq的搭建:参考rabbimq的安装及集群设置 二.安装和配置haproxy 1.安装haproxyyum install haproxy 2.安装rsysloga. 检查rsyslo ...

  4. Kafka高可用环境搭建

    Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedin于2010年贡献给 ...

  5. hadoop学习笔记(八):hadoop2.x的高可用环境搭建

    本文原创,转载请注明作者及原文链接 高可用集群的搭建: 几个集群的启动顺序问题: 1.先启动zookeeper --->zkServer.sh start 2.启动journalNodes集群  ...

  6. Eureka高可用环境搭建

    1.创建govern-center 子工程 包结构:com.dehigher.govern.center 2.pom文件 (1)父工程pom,用于依赖版本管理 <dependencyManage ...

  7. 大数据学习(07)——Hadoop3.3高可用环境搭建

    前面用了五篇文章来介绍Hadoop的相关模块,理论学完还得操作一把才能加深理解.这一篇我会花相当长的时间从环境搭建开始,到怎么在使用Hadoop,逐步介绍Hadoop的使用. 本篇分这么几段内容: 规 ...

  8. hadoop学习笔记(九):mr2HA高可用环境搭建及处步使用

    本文原创,如需转载,请注明原文链接和作者 所用到的命令的总结: yarn:启动start-yarn.sh   停止stop-yarn.sh zk :zkServer.start ;:zkServer. ...

  9. Redis Cluster 集群三主三从高可用环境搭建

    前言 Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用. Window环境下载地址:https://github.com/tporadowski/redis ...

随机推荐

  1. Sperner定理及其证明

    额,最近看到了一个十分有趣的定理--Sperner定理.其实这个定理在OI中没什么用处,因此我都没把这篇文章放到我的OI标签里(不知道在MO中是否有用?)但是觉得它很有趣于是就过来写一下. 由于博主太 ...

  2. 转载 - 算法实践——舞蹈链(Dancing Links)算法求解数独

    出处:http://www.cnblogs.com/grenet/p/3163550.html 在“跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题”一文中介绍了舞蹈链(Dan ...

  3. js dom元素加载完成执行

    //dom ready执行 function ready(fn){ if(document.addEventListener){ document.addEventListener('DOMConte ...

  4. ajax传对象或者数组到后端

    ajax是无法直接传送对象或者数组,有些人自己处理的话,能够把数据依照自己的标准连接成一个字符串,然后到后端处理.可是数据的不确定性.导致有可能会出错.并且麻烦 事实上有开源的包,能够直接解释成jso ...

  5. 【小超_Android】android上开源的酷炫的交互动画和视觉效果:Interactive-animation

    1.交互篇 2.视觉篇 交互篇 1.SlidingUpPanelLayout 项目介绍:他的库提供了一种简单的方式来加入一个可拖动滑动面板(由谷歌音乐推广,谷歌地图和Rdio)你的Android应用程 ...

  6. luogu3811 【模板】乘法逆元

    题目大意:给出n,求1~n所有数的乘法逆元. 乘法逆元的概念是:如果b*rev(b)≡1 (mod p),p与b互质,则rev(b)就是b的模p乘法逆元.乘法逆元往往用于除法取模. 具体操作详见htt ...

  7. POJ1742 Coins 背包

    题目大意:给出一些钱币的价值和对应的数目,求在一定价值限定下这些钱币能凑成的价值数. 本题用多重背包直接拆分或二进制拆分法都太慢.说起处理一组物品,完全背包可算是比较效率高的,但是本题中物体的数目是有 ...

  8. 【POJ 3696】 The Luckiest number

    [题目链接] http://poj.org/problem?id=3696 [算法] 设需要x个8 那么,这个数可以表示为 : 8(10^x - 1) / 9, 由题, L | 8(10^x - 1) ...

  9. 【转】ios蓝牙开发学习笔记(四)ios蓝牙应用的后台处理 -- 不错

    原文网址:http://dev.ailab.cn/article-1038-220511-1.html 默认情况下,当应用进入后台或挂起时,蓝牙任务是不执行的.但是,你可以把应用声明为支持蓝牙后台执行 ...

  10. md5 c# unicode 互换(原创)

    php 代码 $input='中国'; $result= md5($input); $temp=iconv("UTF-8", "UTF16LE", $input ...