视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
lvs keepalived
2025-10-02 15:38:17 责编:小OO
文档
      服务器负载均衡技术lvs+keepalived(D模式)

一  工作原理    1

1 lvs主服务器master的作用    1

2 lvs 从服务器的作用    1

3 lvs主从服务器的相互工作关系    1

二 系统环境    2

三 所需软件    2

四 安装软件    2

1 安装 ipvsadm    2

2 安装keepalived    2

3 配置keepalived    3

4 配置文件内容详解参数说明    4

5 .配置web群    6

6  nagios监控系统报警    8

一  工作原理 

 1 lvs主服务器master的作用

lvs主服务器master提供服务,负责将客户的请求按照轮训算法分配到每个web服务器中,每台真实的web服务器在主服务器master中都会在他的地址表中查到分配的连接数,断开的连接数和提供的什么服务端口都可以看到。并且一旦后台的web服务器当机或服务停止都会立刻从主服务器master的地址表中去掉,同时不会在将客户的请求轮训导该web服务器。并且会通过linux自身的smtp向管理员发送邮件通知那台web服务器出现问题并记录ip和主机状态比如 什么时间80端口down或主机down等信息。一旦web服务器恢复,立刻从新将他添加到主服务器master的地址表提供服务恢复请求。

2 lvs 从服务器的作用

从服务器backup不提供服务只是侦听主服务器master的状态,一旦主服务器master当机或网络出现问题,立刻替代主服务器上的作用将自己变成主服务器提供和主服务器一样的功能。当原来的主服务器恢复后从新启动服务又将自己的身份变成master身份,而backup变回原有身份继续侦听主服务器master。

3 lvs主从服务器的相互工作关系

lvs主从就是通过健康检查机制不断切换从而提供负载均衡服务,提供高可用性的负载均衡服务提高了网站的访问效率增加了的网站的负载,可以提供高并发减缓了对单台web服务器的负载。

二 系统环境 

conrtos5.4或redhat5以上版本内核必须是支持ipvs技术所以linux的内核在2.6.18或以上比较好。后端web服务器是apache2.2x系列或nginx均可。

三 所需软件 

ipvsadm-1.24.tar 提供负载均衡服务,通过不同的算法会有不同的轮训方式。

keepalived-1.1.15.tar.gz 提供高可用性和健康检查机制,它可以检测后端web服务器状态并根据情况将出现问题的web端从ipvs的地址表中删除,如果恢复后又添加该节点信息。继续提供服务。

以上2个软件要根据linux的内核而选择。

四 安装软件

1 安装 ipvsadm

LVS_mastr && LVS_backup主和从都要安装

# tar zxvf ipvsadm-1.24.tar

# cd ipvsadm-1.24

# ln –s /usr/src/kernels/2.6.18-53.el5-i686/ /usr/src/linux   //防止编译错误将内核做软连接

# make

# make install

2 安装keepalived

LVS_mastr && LVS_backup

# tar zxvf keepalived-1.1.15.tar.gz

# cd keepalived-1.1.15

# ./configure

Keepalived configuration

------------------------

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          : No

如果 编译时出现以上内容就证明可以下一步编译安装

# make && make install

3 配置keepalived

LVS_mastr && LVS_backup

# mkdir /etc/keepalived

# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/

# ln -s /usr/local/sbin/keepalived /usr/sbin/keepalived

# vi /etc/keepalived/keepalived.conf

 4 配置文件内容详解参数说明

! Configuration File for keepalived

global_defs { 定义全局配置

   notification_email { 设置报警接收邮箱地址

       xxx@sina.com

   }

   notification_email_from Alexandre.Cassen@firewall.loc 发送邮箱地址

   smtp_server smtp.sina.com 邮件服务器地址

   smtp_connect_timeout 30 链接邮件服务器超时时间

   router_id LVS_DEVEL  运行keepalived的服务器的标识名称。从keepalive的名称要和主服务器有所区别

}

vrrp_sync_group GLVS { 定义vrrp虚拟路由组

    group {

     LVS_1 组名称

    }

}

vrrp_instance LVS_1 { 定义虚拟路由标识

    state MASTER    //备份主机用BACKUP

    interface eth0  指定负载均衡的网卡

    lvs_sync_daemon_inteface eth0 指定keepalived的网卡

    virtual_router_id 51 虚拟路由标识,相同实例表示id必须相同,master和backup标识id要相同

    priority 100 优先级,从服务器优先级数字要小于master服务器

    advert_int 1 同步master和backup健康检查的时间单位是秒

    authentication { 设置密码认证

        auth_type PASS 用password认证方式

        auth_pass 1111

    }

    virtual_ipaddress { 设置服务ip,将域名解析到这个ip

        192.168.1.10

    }

}

virtual_server 192.168.1.10 80 {  虚拟ip提供服务的端口

    delay_loop 6 健康检查时间单位秒

    lb_algo wlc 设置负载均衡算法

    lb_kind DR 设置负载均衡的模式

    nat_mask 255.255.255.0

    #persistence_timeout 50   //会话表示时间针对动态网页由这个部分处理直到超时

    protocol TCP 协议类型

    real_server 192.168.1.4 80 { web服务器节点

        weight 1  节点权值

            TCP_CHECK {    节点状态监测

            connect_timeout 3 超时时间

            nb_get_retry 3  重试此时节点超时后从新测试3次

            delay_before_retry 3 重新测试间隔时间3秒

            connect_port 80 连接端口

        }

    }

    real_server 192.168.1.5 80 {

        weight 1

            TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

        }

      

    }

}

# /etc/rc.d/init.d/keepalived start

启动主从服务器的服务

5 .配置web群

Real_web1 && Real_web2

DR脚本: 脚本目的是忽略arp请求脚本

# vi DR

#/bin/bash

VIP=192.168.1.10

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

case "$1" in

start)

echo "start LVS of directorserver"

/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

sysctl -p

;;

stop)

/sbin/ifconfig lo:0 down

echo "close lvs of directorserver"

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

6  nagios监控系统报警

由于keepalive只能提供邮件报警方式不能第一时间将出现问题的情况及时告诉管理员所以要通过nagios监控系统的飞信报警给你及时将信息通过短信方式

发送给系统维护人员,及时处理。

在飞信网站现在新版的飞信版本为2010版的linux版本的客户端程序解压放到nagios的/usr/local/nagios/libexec/sms

在 nagios的commands.cfg文件添加内容

#notify-service-by-sms

define command{

        command_name    notify-service-by-sms

        command_line   /usr/local/nagios/libexec/sms/fetion --mobile=飞信登陆的手机号 --pwd=飞信登陆密码 --to=$CONTACTPAGER$ --msg-utf8="$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"

#service notify by sms 

define command{ 

        command_name    notify-host-by-sms

        command_line   /usr/local/nagios/libexec/sms/fetion --mobile=飞信登陆的手机号 --pwd=飞信登陆密码 --to=$CONTACTPAGER$ --msg-utf8="HOST$HOSTSTATE$ alter for $HOSTNAME$! on $DATETIMEA$"

}

 在 templates.cfg 文件定义飞信报警方式

define contact{

        name                            generic-contact         ; The name of this contact template

        service_notification_period     24x7                    ; service notifications can be sent anytime

        host_notification_period        24x7                    ; host notifications can be sent anytime

        service_notification_options    w,u,c,r,f,s             ; send notifications for all service states, flapping events, and scheduled downtime events

        host_notification_options       d,u,r,f,s               ; send notifications for all host states, flapping events, and scheduled downtime events

        service_notification_commands   notify-service-by-email,notify-service-by-sms   ; send service notifications via email

        host_notification_commands      notify-host-by-email,notify-host-by-sms     ; send host notifications via email

        register                        0                       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!

        }

 

 添加notify-service-by-sms notify-host-by-sms一个是对服务的报警一个是对主机的报警。

从新启动nagios如果有主机或系统问题就会收到短信提示。下载本文

显示全文
专题