您的位置:首页 > 其它

lvs keepalived 安装配置详解

2016-04-01 09:07 441 查看
前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较。F5相当的贵,真不是一般企业能负担的起的。负载均衡软件也用过不少,nginx,apache,haproxy等。下面说一下lvs配合keepalived实现高可用,配合heartbeat也行,看个人喜欢好了。

一,lvs和keepalived简单介绍

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

二,安装前的说明

1,服务器介绍

查看复制打印?

Master 192.168.1.11 //lvs主服务器

BACKUP 192.168.1.12 //lvs从服务器

VIP 192.168.1.8 //虚拟IP

WEB1-Real 192.168.1.16 //WEB服务器

WEB2-Real 192.168.1.17 //web服务器

2,内核比较,以及加软连接

/usr/src/kernels/下面内核版本要和所使用的内核版本要一样,如下图




内核是不是一样

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

如果没有linux文件夹建之。

我在网上找资料的时候,发现第2步,可以不要,不过我没有做测试。

三,安装配置

1,安装lvs,keepalived

yum install ipvsadm keepalived

2,lvs服务器主,从配置keepalived

查看复制打印?

[root@localhost kernels]# cat /etc/keepalived/keepalived.conf

! 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_sync_group VGM { //定义一个vrrp组

group {

VI_1

}

}

vrrp_instance VI_1 { //定义vrrp实例

state MASTER //主LVS是MASTER,从的BACKUP

interface eth0 //LVS监控的网络接口

virtual_router_id 51 //同一实例下virtual_router_id必须相同

priority 100 //定义优先级,数字越大,优先级越高

advert_int 5 //MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

authentication { //验证类型和密码

auth_type PASS

auth_pass 1111

}

virtual_ipaddress { //虚拟IP

192.168.1.8

# 192.168.1.9 //如果有多个,往下加就行了

# 192.168.1.7

}

}

virtual_server 192.168.1.8 80 { //定义虚拟服务器

delay_loop 6 //健康检查时间,单位是秒

lb_algo rr //负载调度算法,这里设置为rr,即轮询算法

lb_kind DR //LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选

persistence_timeout 50 //会话保持时间,单位是秒

protocol TCP //转发协议类型,有tcp和udp两种

sorry_server 127.0.0.1 80 //web服务器全部失败,vip指向本机80端口

real_server 192.168.1.16 80 { //定义WEB服务器

weight 1 //权重

TCP_CHECK { //通过tcpcheck判断RealServer的健康状态

connect_timeout 5 //连接超时时间

nb_get_retry 3 //重连次数

delay_before_retry 3 //重连间隔时间

connect_port 80 //检测端口

}

}

real_server 192.168.1.17 80 {

weight 1

TCP_CHECK {

connect_timeout 5

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

从服务器只要改二个地方就行了,priority的权重调小一点,state改成BACKUP

3,WEB服务器配置脚本

查看复制打印?

vim /etc/init.d/lvs //新增文件lvs

#!/bin/bash

VIP=192.168.1.8

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

case "$1" in

start)

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)

ifconfig lo:0 down

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

添加可执行权限,

chmod +x /etc/init.d/lvs
chmod +x /etc/rc.d/init.d/functions

四,启动并查看

查看复制打印?

/etc/init.d/keepalived start //LVS服务器

/etc/init.d/lvs start //WEB服务器

[root@localhost kernels]# watch ipvsadm

Every 2.0s: ipvsadm Wed Jun 20 22:21:21 2012

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.8:80 rr persistent 50

-> 192.168.1.16:80 Route 1 0 0

-> 192.168.1.17:80 Route 1 0 0

到这儿就安装配置好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: