实验环境

LVS-Master 10.0.100.201

VIP:10.0.100.203

LVS-Slave       10.0.100.204
WEB1-Tomcat 10.0.2.29 gateway:10.0.2.253
WEB2-Tomcat 10.0.100.202

(注意:应保持所有服务器的时间一致)

Install LVS

# ln -s /usr/src/kernels/2.6.32-431.el6.i686/ /usr/src/linux
//若找不到这个目录则先安装kernel-devel
# yum -y install kernel-devel # tar xf ipvsadm-1.24.tar.gz # cd /soft/ipvsadm-1.24 # make;make install # ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn

Install keepalived

# tar –xvf keepalived-1.2.12.tar.gz

# ./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.-.el6.i686/
Keepalived version : 1.2.
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lssl -lcrypto -lcrypt
Use IPVS Framework : Yes //表示使用ipvs框架也代表启动ipvs功能
IPVS sync daemon support : Yes //表示启动ipvs的同步功能,--disabled-lvs-sysncd此参数可以关闭
IPVS use libnl : No //表示使用新的libn1版本,如果想使用新的版本,需要重新安装libn1的包
Use VRRP Framework : Yes //表示使用VRRP框架,这个实现keepalived高可用的必须功能
Use VRRP VMAC : Yes //表示使用基础VMAC接口的xmit VRRP包
SNMP support : No
SHA1 support : No
Use Debug flags : No # make;make install # cp /soft/keepalived-1.2./bin/keepalived /usr/bin/

配置

1. LVS-Master的Keepalived配置

! Configuration File for keepalived
//全局定义
global_defs {
notification_email //定义邮件
{
xxxxxxxxx@.com //定义邮件地址
}
notification_email_from xxxxxxxxx@.com
smtp_server mail..com //定义邮件服务器
smtp_connect_timeout //邮件超时时间
router_id LVS_DEVEL //route_id标识
} //定义VRR组
vrrp_instance VI_1 {
state MASTER //定义为MASTER
interface eth0 //对外访问的网络接口
virtual_router_id //虚拟路由标识(注意要主从一致)
priority //优先级(主肯定比从高)
nopreempt //不抢占模式
advert_int //广播周期秒数
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
10.0.100.203 //VIP地址
}
} //VIP地址与端口等设置-->注意DR模式的VIP端口和所有WEB端口应该保持一致
virtual_server 10.0.100.203 {
delay_loop //健康检查时间间隔,单位秒
lb_algo rr //调度算法为rr
lb_kind DR //模式为DR
persistence_timeout //设置同一IP多少秒内的请求都发送到同一个realserver
protocol TCP //使用TCP协议 //realserver的IP与端口等设置
real_server 10.0.2.29 {
weight
TCP_CHECK {
connect_timeout //连接超时时间,单位s
nb_get_retry
delay_before_retry
connect_port //连接端口
} }
real_server 10.0.100.202 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

LVS-Master:keepalived.conf

2. LVS-Slave的keepalived配置

! Configuration File for keepalived
global_defs {
notification_email
{
xxxxxxxxx@.com
}
notification_email_from xxxxxxxxx@.com
smtp_server mail..com
smtp_connect_timeout
router_id LVS_DEVEL
} vrrp_instance VI_1 {
state BACKUP //这里的角色是BACKUP
interface eth0
virtual_router_id //这里注意和MASTER保持一致
priority //优先级设置应比MASTER低
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
10.0.100.203
}
} virtual_server 10.0.100.203 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP real_server 10.0.2.29 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 10.0.100.202 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

LVS-Slave:keepalived.conf

3. 利用脚本配置所有的WEB服务器

#!/bin/bash
# Written by NetSeek
# description: Config realserver lo and apply noarp
WEB_VIP="10.0.100.203" //这里是VIP地址 . /etc/rc.d/init.d/functions case "$1" in
start)
ifconfig lo: $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
/sbin/route add -host $WEB_VIP dev lo:
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null >&
echo "RealServer Start OK"
;;
stop)
ifconfig lo: down
route del $WEB_VIP >/dev/null >&
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo: | grep $WEB_VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $web_VIP`
if [ ! "$islothere" -o ! "isrothere" ]
then
echo "LVS-DR real server Stopped."
else
echo "LVS-DR Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit
;;
esac
exit

realserver.sh

启动与验证

1. 在所有WEB服务器运行脚本,并查看是否都有了VIP?

WEB1:10.0.2.29
# ./realserver.sh start
RealServer Start OK
# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet 10.0.100.203/32 brd 10.0.100.203 scope global lo:0
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever WEB2:10.0.100.202
# ./realserver.sh start
RealServer Start OK
# ip add show
: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00::00:00:00 brd ::00:00:00:00
inet 127.0.0.1/8 scope host lo
inet 10.0.100.203/ brd 10.0.100.203 scope global lo:
inet6 ::1/ scope host
valid_lft forever preferred_lft forever

2. 在MASTER和SLAVE都启动LVS,查看VIP位置

LVS-Master:10.0.100.201
# /etc/init.d/keepalived start
正在启动 keepalived: [确定]
# ip add show
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UNKNOWN qlen
link/ether 00:0c:29:0f:bf:4a brd ff:ff:ff:ff:ff:ff
inet 10.0.100.201/16 brd 10.0.255.255 scope global eth0
inet 10.0.100.203/32 scope global eth0
inet6 fe80::20c:29ff:fe0f:bf4a/64 scope link
valid_lft forever preferred_lft forever LVS-Slave:10.0.100.204
# /etc/init.d/keepalived start
正在启动 keepalived: [确定]
# ip add show
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UNKNOWN qlen
link/ether :0c::2e:1d:0d brd ff:ff:ff:ff:ff:ff
inet 10.0.100.204/16 brd 10.0.255.255 scope global eth0
inet6 fe80::20c:29ff:fe2e:1d0d/ scope link
valid_lft forever preferred_lft forever

3. 访问测试(可通过浏览器访问VIP,我们测试是否在两个实验WEB服务器访问中实现了负载均衡)

LVS-Master:10.0.100.201
# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.100.203:http rr
-> 10.0.100.202:http Route 1 0 0
-> 10.0.2.29:http Route 1 0 0 LVS-Slave:10.0.100.204
# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.100.203:http rr
-> 10.0.100.202:http Route 1 0 0
-> 10.0.2.29:http Route 1 0 0

LVS+keepalived DR模式配置高可用负载均衡集群的更多相关文章

  1. Linux下Keepalived+LVS-DR模式配置高可用负载均衡集群

    一.环境说明:     操作系统:Centos-6.5_x86_64    keepalived软件安装在node2和node3机器上.     实际安装之前,先关闭keepalived节点(node ...

  2. Keepalived+Nginx实现高可用负载均衡集群

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+nginx双主高可用负载均衡集群及LAMP应用keepalived-1 ...

  3. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  4. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  5. LVS+Keepalived 实现高可用负载均衡集群

    LVS+Keepalived  实现高可用负载均衡集群     随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5 ,Array又太贵,你们又是创业型互联公司如何有效 ...

  6. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群

    一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...

  7. 测试LVS+Keepalived高可用负载均衡集群

    测试LVS+Keepalived高可用负载均衡集群 1. 启动LVS高可用集群服务 此时查看Keepalived服务的系统日志信息如下: [root@localhost ~]# tail -f /va ...

  8. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...

  9. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

随机推荐

  1. HBase入门篇

    目录: 1-HBase的安装 2-Java操作HBase例子 3-HBase简单的优化技巧 4–存储 5(集群) -压力分载与失效转发 6 -白话MySQL(RDBMS)与HBase之间 7 -安全& ...

  2. 如何快速解决myeclipse中导入jquery文件的报错。

    如何快速解决myeclipse中导入jquery文件的报错. 解决: 选中错误的文件, 点击右键, 选中myeclipse,点击Exclude From Validation.

  3. 2018-12-20 第一章初识JAVA-上机

    JAVA初体验之课后练习 一.请写出Java 程序执行过程与编译原理 答:①执行过程:创建.java文件——编译器(JDK环境里的javac.exe文件编译)——输出.class供计算机接受(只有cl ...

  4. 苹果软件App上架问题

    0.官方网站 开发者中心 itunes connect 优酷 哔哩哔哩 腾讯视频 1.上架流程 1.1 开发者账号申请 2017年苹果企业开发者账请完号申整指南 iOS开发之苹果开发者账号注册申请流程 ...

  5. OCP最新题库收集,新版052考题及答案整理-19

    19.Which is true about invalid PL/SQL objects? A) They are automatically recompiled against the new ...

  6. 简单的数字校验JS

    /** *张衍涛 * 数字校验 v:校验的元素 l:要保留的小数点位数 */ function checkNumber(v,l){ var val=v.value; if(isNaN(val) || ...

  7. 浅谈Android选项卡(二)

    前面简单介绍了选项卡,下面以及后面的几篇文章介绍下Android选项卡的几种简单实现方法. http://blog.csdn.net/xia215266092/article/details/9613 ...

  8. nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  9. Angular material mat-icon 资源参考_Navigation

    ul,li>ol { margin-bottom: 0 } dt { font-weight: 700 } dd { margin: 0 1.5em 1.5em } img { height: ...

  10. LOJ6500. 「雅礼集训 2018 Day2」操作(哈希+差分)

    题目链接 https://loj.ac/problem/6500 题解 区间取反 \(01\) 串的经典套路是差分.我们令 \(b_i = a_i\ {\rm xor}\ a_{i - 1}\)(\( ...