(转)LVS+Keepalived使用总结 vip丢失
/sbin/ifconfig lo: $vip broadcast $vip netmask 255.255.255.255 up
/sbin/ifconfig lo: 172.16.254.63 broadcast 172.16.254.63 netmask 0xffffffff up 效果一样
二、lvs和keepalived的安装
环境规划
2*(lvs+keepalived服务器)+n*real-server,一般lvs+keepalived是这样的架构。
开始安装
1、 下载软件包
在http://www.linuxvirtualserver.org/ 下载lvs的软件包
在http://www.keepalived.org/ 下载keepalived软件包
2、先编译安装lvs,再安装keepalived,安装lvs需要内核源码
下载lvs源码的时候,一定要选择你内核版本对应的源码包。
# uname -r
2.6.18-164.el5PAE
#yum install kernel-devel -y //安装内核源码包
#ln -s /usr/src/kernels/2.6.18-164.el5PAE-i686/ /usr/src/linux
#wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz //ipvsadm包就是lvs软件包,别觉得名字不一样
# tar -zxvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
#make && make install
检查lvs是否安装成功:
#ipvsadm //查看是否有输出
#lsmod | grep ip_vs //如果ipvsadm有输出,那么使用这个命令查看是否加载ip_vs模块,如果加载,那么lvs算安装成功。
2、 编译安装keepalived,一定在安装完lvs以后在安装keepalive
#wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz //不建议选择最新的版本
#tar -zxvf keepalived-1.1.15.tar.gz
#cd keepalived-1.1.15
#./configure --prefix=/ --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/linux/
Keepalived version : 1.1.15
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
Use VRRP Framework : Yes
Use LinkWatch : No
Use Debug flags : Nod
看见如上输入,注意yes和no的值,如果一样,证明配置成功,如果lvs为no,那么证明你的lvs没有安装成功,需要从新安装lvs再安装keepalived。
#make && make install
如果没有报错,那么就安装成功了,检查一下是否生成了keepalived命令。
三、LVS VS/DR模式搭建
环境介绍
|
主机IP |
角色 |
安装软件 |
|
122.225.32.134 |
Lvs+keepalived MASTER |
Ipvsadm keepalived |
|
122.225.32.135 |
Lvs+keepalived BACKUP |
Ipvsadm keepalived |
|
122.225.32.136 |
Real server |
Lvs_real脚本 |
|
122.225.32.137 |
Real server |
Lvs_real脚本 |
|
122.225.32.142 |
VIP |
注意:所有机器都在一个交换机,并且在一个网段。
1、在134和135上安装ipvsadm和keepalived软件。
2、修改keepalived的配置文件
122.225.32.134:
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
lr@isadba.com
}
notification_email_from lvs@isadba.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
122.225.32.142
}
}
virtual_server 122.225.32.142 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0 //此值为0,主要是为了方便测试,每次刷新页面结果会不一样
protocol TCP
real_server 122.225.32.136 80{
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 122.225.32.137 80{
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
122.225.32.135:
和122.225.32.134相比,值需要删除state MASTER 和 修改priority的值小于master的。
real server:
在所有real server上添加下面脚本,名执行# cat /sbin/lvs_real
#!/bin/bash
#description:start realserver
vip=122.225.32.157
source /etc/rc.d/init.d/functions
case $1 in
start)
echo "Start Realserver"
/sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
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
;;
stop)
echo "Stop Realserver"
/sbin/ifconfig lo:0 down
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 "Usage: $0 (start | stop)"
exit 1
esac
执行脚本以后,使用ip add命令查看lo接口是否添加了虚拟ip地址。
当然,real server上面需要安装http服务,并启动,在index.html里面添加自己的IP地址,方便客户端访问时候辨别访问的是哪个主机。
3、配置完成以后,开始测试:
在122.225.32.134和122.225.32.135上使用ip add检查,虚拟IP应该配置在134上面。
测试1{主要测试lvs}:访问虚拟IP是否可以访问真实服务器,是否轮询real server
在master上使用 ipvsadm命令查看lvs状态。
# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 122.225.32.142:http rr
-> 122.225.32.137:http Route 1 0 0
-> 122.225.32.136:http Route 1 0 0
在客户端访问虚拟IP 122.225.32.142,看是否可以访问。每次刷新,应该会换一个real server。访问数次后,通过ipvsadm观察lvs状态。
# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 122.225.32.142:http rr
-> 122.225.32.137:http Route 1 0 6
-> 122.225.32.136:http Route 1 0 6
测试2{主要测试keepalived}:lvs服务器的HA,当keepalived master挂掉后,keepalived backup会不会接管虚拟IP。
关闭master主机上的keepalived进程。
在backup上ip add查看是否添加虚拟IP,通过/var/log/message查看相关转换日志。
测试3{测试backup的lvs}:使用客户端访问现在虚拟ip,查看是否一切正常
测试完成后,开启master的keepalived进程,等虚拟ip转移到master以后,在从客户端访问,查看是否存在问题。
lvs也不是完全能判别节点故障的,譬如在wlc分配方式下,集群里有一个节点没有配置VIP,会使整个集群不能使用
### 参考:http://www.ha97.com/2603.html
(转)LVS+Keepalived使用总结 vip丢失的更多相关文章
- LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)
一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...
- 配置LVS + Keepalived高可用负载均衡集群之图文教程
负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性. 重点:每个节点时间都同步哈! C++代码 [r ...
- LVS+Keepalived搭建MyCAT高可用负载均衡集群
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...
- lvs+keepalived+nginx实现高性能负载均衡集群
一.为什么要使用负载均衡技术? 1.系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查, ...
- lvs + keepalived 介绍及安装
LVS介绍 lvs 核心ipvs Ipvs(IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了.Ipvs 具体实现是由ipvsadm ...
- LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 通过LVS+Keepalived搭建高可用的负载均衡集群系统
1. 安装LVS软件 (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...
- lvs+keepalived 负载均衡
LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器.目前有三种IP负 载均衡技术(VS/NAT.VS/T ...
随机推荐
- POJ2411(SummerTrainingDay02-I 状态压缩dp)
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 17187 Accepted: 991 ...
- CSS图标文字不对齐
页面排版经常遇到‘图标+文字’的需求,正常样式写下来是这样 , 但产品要的应该是长这样 ,怎么办呢?其实很简单,加个样式看看 vertical-align: top/middle/bottom; ...
- 大数据java基础day01
day01笔记 1.==操作符和equals方法 equals方法存在于Object类中,所有类的equals方法都继承于Object 2.String类的常用方法 ①.replace()替换字符串 ...
- jQuery首页更换背景皮肤
昨天做了一个jQuery首页更换背景皮肤,感觉还是挺不错的,一共需要两个文件,一个是我们写的HTML文件,我们起名叫做index.html,一个是我们引入的jQuery文件,我们起名叫做jQuery. ...
- phar 反序列化学习
前言 phar 是 php 支持的一种伪协议, 在一些文件处理函数的路径参数中使用的话就会触发反序列操作. 利用条件 phar 文件要能够上传到服务器端. 要有可用的魔术方法作为"跳板&qu ...
- Java实现后缀表达式建立表达式树
概述 表达式树的特点:叶节点是操作数,其他节点为操作符.由于一般的操作符都是二元的,所以表达式树一般都是二叉树. 根据后缀表达式"ab+cde+**"建立一颗树 文字描述: 如同后 ...
- Centos 7 安装GNOME桌面环境
第一步:列出可安装的桌面环境 [root@local ~]# yum grouplist 第二步:安装GNOME及相应桌面管理工具 [root@local ~]# yum group info &qu ...
- python 实现int函数
拖了这么久,最终还是战胜了懒惰,打开电脑写了这篇博客,内容也很简单,python实现字符串转整型的int方法 python已经实现了int方法,我们为什么还要再写一遍,直接用不就好了?事实确实如此,但 ...
- go语言练习:go实现md5
package main import ( "crypto/md5" "fmt" ) func main() { md5_ob := md5.New() md5 ...
- beego快速入门
beego的官方网址:https://beego.me 参考文档:https://beego.me/quickstart 1:安装 您需要安装 Go 1.1+ 以确保所有功能的正常使用. 需要已经设置 ...