阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LVS + Keepalived 介绍及安装

238次阅读
没有评论

共计 5916 个字符,预计需要花费 15 分钟才能阅读完成。

LVS 介绍

LVS 核心 ipvs

Ipvs(IP Virtual Server) 是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了。Ipvs 具体实现是由 ipvsadm 这个程序来完成,因此判断一个系统是否具备 ipvs 功能,只需要察看 ipvsadm 程序是否被安装。察看 ipvsadm 程序最简单的办法就是在任意路径执行命令 ipvsadm。

学习 LVS+Keepalived 必须阅读的三个文档。

1、《Keepalived 权威指南》下载见 http://www.linuxidc.com/Linux/2012-05/60951.htm

2、《LVS 手册》http://www.linuxidc.com/Linux/2016-03/129233.htm

3、《Red_Hat_Enterprise_Linux-5-Virtual_Server_Administration-zh-CN》http://www.linuxidc.com/Linux/2016-03/129234.htm

[root@LVS-DR-Backup ~]# ipvsadm(已安装)
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
[root@LVS-DR-Backup ~]# ipvsadm(未安装)
-bash: ipvsadm: command not found

 安装 lvs

1、下载 ipvsadm,wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

2、创建一个连接文件,其命令为:ln -s /usr/src/kernels/2.6.32-573.el6.x86_64/  /usr/src/linux 注意一定要与当前的运行的内核相一致,因为 /usr/src/kernels 目录下可多个目录。如果不创建这个连接文件,在编译时会出错,从而不能继续进行安装。

3、解包。tar zxf ipvsadm-1.26.tar.gz

4、编译并安装。cd ipvsadm-1.26; make;make install

5、检验 ipvsadm 是否被正确安装:a. 执行 ipvsadm,看是否有如上的输出。b. 检查当前加载的内核模块,看是否存在 ip_vs 模块。

1 [root@LVS-DR-Backup ~]# lsmod|grep ip_vs
2 ip_vs                126534  0
3 libcrc32c              1246  1 ip_vs
4 ipv6                  335589  137 ip_vs(注:只有执行 ipvsadm 以后,才会在内核加载 ip_vs 模块,也不能以查进程的方式判断 ipvs 是否运行。)

LVS 客户端

不需要安装软件,只运行一个脚本就可以,脚本如下:

#!/bin/bash

VIP= 此处设置你的 vip 地址

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

case “$1” in
  start)
        action ” start LVS of REALServer” /bin/true
        /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)
        /sbin/ifconfig lo:0 down
        action “close LVS Directorserver” /bin/true
        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

keepalived 介绍

1、keepalived 是 lvs 的扩展项目,因此它们之间具备良好的兼容性。

2、通过对服务器池对象的健康检查,实现对失效机器 / 服务的故障隔离。

3、负载均衡器之间的失败切换 failover,是通过 VRRPv2(Virtual Router Redundancy Protocol)stack 实现的。

LVS + Keepalived 介绍及安装

keepalived 内部结构图

在这个结构图里,处于下端的是内核空间,它包括 ipvs 和 NETLINK 两个部分。Ipvs 的作用在前面的章节已经做过描述,不再重复叙述;netlink 提供高级路由及其他相关的网络功能,如果我们在负载均衡器上启用 netfilter/iptable, 将会直接影响它的性能。出于图形上方的组件为用户空间,由它来实现具体的功能,下面选取几个重要的来做说明:

1、WatchDog 负责监控 checkers 和 VRRP 进程的状况。

2、Checkers 负责真实服务器的健康检查 healthchecking,是 keepalived 最主要的功能。换句话说—可以没有 VRRP Stack, 但健康检查 healthchecking 是一定要有的。

3、VRRP Stack 负责负载均衡器之间的失败切换 FailOver. 如果只用一个负载均衡器,则 VRRP 不是必须的。

4、IPVS wrapper 用来发送设定的规则到内核 ipvs 代码。

5、Netlink Reflector 用来设定 vrrp 的 vip 地址等。

安装 keepalived(因为比较简单,不做详细介绍)

1、下载最新稳定版 http://www.keepalived.org/software/keepalived-1.2.23.tar.gz

2、解包 tar zxf keepalived-1.2.23.tar.gz

3、切换目录 cd keepalived-1.2.23

4、安装依赖包 yum install -y libnfnetlink-devel openssl-devel

5、配置并编译安装./configure;make ; make install

6、拷贝相应文件到 /etc 下,命令如下:

1 cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
2 cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
3 cp /usr/local/sbin/keepalived /usr/sbin/
4 mkdir /etc/keepalived -p
5 cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

7、启动并查看 keepalived

[root@LVS-DR-Backup script]# /etc/init.d/keepalived start
正在启动 keepalived:[确定]
[root@LVS-DR-Backup script]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.200.100:https rr persistent 50
  -> 192.168.201.100:https        Masq    1      0          0       
TCP  10.10.10.2:connlcli rr persistent 50
  -> 192.168.200.2:connlcli      Masq    1      0          0       
  -> 192.168.200.3:connlcli      Masq    1      0          0       
TCP  10.10.10.3:connlcli rr persistent 50
  -> 192.168.200.4:connlcli      Masq    1      0          0       
  -> 192.168.200.5:connlcli      Masq    1      0          0       
[root@LVS-DR-Backup script]#

8、至此安装完成,下一章,keepalived.conf 详解。

参考:http://www.keepalived.org/documentation.html

附:lvs 和 keepalived 一键安装脚本

#!/bin/bash
# Filename :Install_lvs.sh
# Description : 安装 lvs+keepalived 软件脚本

# 参数设置
Toolsdir=/home/test/tools
IPVSADM=ipvsadm-1.26
Kernel=uname -r
KEEPALIVED=keepalived-1.2.23

# 定义安装 ipvsadm 函数
function IPvsadm(){
cd ${Toolsdir}
# 下载 ipvsadm 软件
[! -f ${IPVSADM}.tar.gz ] && wget http://www.linuxvirtualserver.org/software/kernel-2.6/${IPVSADM}.tar.gz
# 安装依赖包
yum install -y popt libnl-devel popt-static

# 解压并安装 ipvsadm
tar zxf ${IPVSADM}.tar.gz
if [$? == 0];then
    cd ${IPVSADM}
    ln -s /usr/src/kernel/${Kernel}/ /usr/src/linux
    make
    if [$? == 0];then
        make install
        if [$? == 0];then
              echo “IPVSADM INSTALL SUCCESSFUL.”
        else
              echo “make install error.”
              eixt 0
              sleep 5
        fi
    else
        echo “make  error.”
        exit 1
    fi
else
    echo “tar error.”   
    exit 2
fi
}
 
# 定义安装 keepalived 函数

function Keepalived(){
# 下载软件
cd ${Toolsdir}
[! -f  ${KEEPALIVED}.tar.gz ] && wget http://www.keepalived.org/software/${KEEPALIVED}.tar.gz

# 安装依赖包
yum install -y libnfnetlink-devel openssl-devel

# 安装 keepalived
tar zxf ${KEEPALIVED}.tar.gz
if [$? == 0];then
    cd ${KEEPALIVED}
    ./configure
    if [$? == 0];then
        make
        if [$? == 0];then
            make install
            if [$? == 0];then
                echo “Keepalived install successful.”
            else
                echo “make install error”
            fi
        else
            echo “make error.”
        fi
    else
        echo “configure error.”
    fi
else
    echo “tar error”
fi

# 拷贝配置文件
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived -p
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

# 开启内核转发
sed -i ‘s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g’ sysctl.conf
sysctl -p
}

IPvsadm
Keepalived

Linux 下 HAProxy+Keepalived 双机高可用方案  http://www.linuxidc.com/Linux/2016-02/128566.htm

Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm

Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134791.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5916字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中