panjianm 发表于 2015-9-4 11:31:08

lvs keepalived 安装配置详解【转】

  
lvs keepalived 安装配置详解

  张映 发表于 2012-06-20
  分类目录: 服务器相关

  前段时间看了一篇文章,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

[*]# 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服务器
[*]
[*]# 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
[*]TCP192.168.1.8:80 rr persistent 50
[*] -> 192.168.1.16:80Route   1      0          0
[*] -> 192.168.1.17:80Route   1      0          0
  到这儿就安装配置好了。

0
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/1417.html
页: [1]
查看完整版本: lvs keepalived 安装配置详解【转】