博客
关于我
Lvs+keepalived 高可用性负载均衡自动化配置
阅读量:790 次
发布时间:2023-02-06

本文共 4685 字,大约阅读时间需要 15 分钟。

LVS+Keepalived 高可用性负载均衡配置

随着互联网的发展,提供用户访问的web服务器,必须要保证每天24不间断服务,访问量不断增加,有什么好的web架构既能实现高可用性负载均衡,而且价格又是免费的呢?答案有木有?有!LVS+Keepalived 是不错的选择!

一、实验环境

我们使用4台CentOS 5.4服务器,拓扑结构如下:

  • LVS-Master: 192.168.2.108
  • LVS-BACKUP: 192.168.2.109
  • LVS-DR-VIP: 192.168.2.100
  • WEB1-Realserver: 192.168.2.79
  • WEB2-Realserver: 192.168.2.80

二、安装ipvsadm+keepalived,脚本自动安装

由于我们使用的是LVS+Keepalived,直接在keepalived.conf中配置即可,不需要手动编写LVS-DR脚本。以下是安装脚本:

#!/bin/sh# 脚本编写目的:自动安装LVS+Keepalived# 编写时间:2011年7月6日17:25:39# 初稿人:wugk# 定义变量DIR1=/usr/srcDIR2=/usr/localcat << EOF++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Welcome to use Linux installed a key LVS+KEEPALIVED shells scripts++++++++++++++++++++++++++*************************++++++++++++++++++++++++EOFif [ $UID -ne 0 ]; then    echo "This script must use root user ,please exit……"    sleep 2    exit 0fidownload(){    cd $DIR1 && \    wget -c http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz \    http://www.keepalived.org/software/keepalived-1.1.15.tar.gz}if [ $? -eq 0 ]; then    echo "Download LVS Code is OK!"fi else    echo "Download LVS Code is failed,Please check!"    exit 1fiipvsadm_install(){    ln -s $DIR1/kernels/2.6.* $DIR1/linux    cd $DIR1 && \    tar xzvf ipvsadm-1.24.tar.gz && \    cd ipvsadm-1.24 && \    make && make install}if [ $? -eq 0 ]; then    echo "Install ipvsadm success,please waiting install keepalived ............."fi else    echo "Install ipvsadm failed ,please check !"    exit 1fikeepalived_install(){    cd $DIR1 && \    tar -xzvf keepalived-1.1.15.tar.gz && \    cd keepalived-1.1.15 && \    ./configure && make && make install}if [ $? -eq 0 ]; then    echo "Install keepalived success,please waiting configure keepalived ............."fi else    echo "Install keepalived failed ,please check install version !"    exit 1fikeepalived_config(){    cp $DIR2/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ \    cp $DIR2/etc/sysconfig/keepalived /etc/sysconfig/ \    mkdir -p /etc/keepalived \    cp $DIR2/etc/keepalived/keepalived.conf /etc/keepalived/ \    cp $DIR2/sbin/keepalived /usr/sbin/}if [ $? -eq 0 ]; then    echo "Keepalived system server config success!"fi else    echo "Keepalived system server config failed ,please check keepalived!"    exit 1fi# 以上脚本分别在LVS-Master和LVS-BACKUP上执行安装。

三、配置keepalived.conf

以下是LVS-Master的配置示例:

global_defs {    notification_email { wgkgood@163.com }    notification_email_from wgkgood@163.com    smtp_server 127.0.0.1    smtp_connect_timeout 30    router_id LVS_DEVEL}vrrp_instance VI_1 {    state MASTER    interface eth0    lvs_sync_daemon_inteface eth0    virtual_router_id 51    priority 100    advert_int 5    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.2.100    }}virtual_server 192.168.2.100 80 {    delay_loop 6    lb_algo wlc    lb_kind DR    persistence_timeout 60    protocol TCP    real_server 192.168.2.79 80 {        weight 100        TCP_CHECK {            connect_timeout 10            nb_get_retry 3            delay_before_retry 3            connect_port 80        }    }    real_server 192.168.2.80 80 {        weight 100        TCP_CHECK {            connect_timeout 10            nb_get_retry 3            delay_before_retry 3            connect_port 80        }    }}

注意:

  • LVS-BACKUP端同样配置,只需修改stateBACKUPpriority90即可。

四、配置Apache并执行脚本

在WEB1、WEB2上分别配置Apache,并执行以下脚本:

#!/bin/shPS3="Please Choose whether or not to start a realserver VIP1 configuration:"select i in "start" "stop"docase "$i" instart)    read -p "Please enter the virtual server IP address:" VIP1    ifconfig lo:0 $VIP1 netmask 255.255.255.255 broadcast $VIP1    /sbin/route add -host $VIP1 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"    exit 0;;stop)    ifconfig lo:0 down    route del $VIP1 >> /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"    exit 1;;*)    echo "Usage: $0 {start|stop}"    exit 2esacdone

脚本会提示是否启动,按1即启动,输入VIP地址192.168.2.100,用ifconfig你会看到:lo:0的IP即表示配置IP成功。

五、启动Keepalived服务

在LVS-Master、LVS-BACKUP上执行:

/etc/init.d/keepalived restart

查看LVS-Master日志:

tail -f /var/log/keepalived.log

在浏览器中访问即可!当你宕掉LVS-Master后,LVS-BACKUP会接管变成LVS-Master提供服务,当LVS-Master故障恢复后,LVS-BACKUP又会变成原来的状态。

安装的脚本可以在这里下载:[下载链接](注意:请勿直接复制链接,确保遵守网络规定)。

转载地址:http://vtufk.baihongyu.com/

你可能感兴趣的文章
live555 testrtspclient客户端建立rtp over tcp 异常问题
查看>>
LiveBOS UploadFile.do 任意文件上传漏洞复现(XVE-2023-21708)
查看>>
LiveData Call Adapter for Retrofit 使用教程
查看>>
LiveData的分析与简单使用
查看>>
LiveGBS user/save 逻辑缺陷漏洞复现(CNVD-2023-72138)
查看>>
live和on的区别
查看>>
Liya Linux:Arch 的又一尝试,提供 Cinnamon 和 MATE 桌面,底层为 Btrfs
查看>>
li下的ul----多级列表
查看>>
lk部分没有msm8937相关目录原因(指向msm8952)
查看>>
LL(1),LR(0),SLR(1),LR(1),LALR(1)的 联系与区别
查看>>
Llama 越狱探索 Llama-3.1-8B-Instruct去除限制过程
查看>>
Llama3的传奇还在继续,网友手搓Llama3-12B-Chinese,Ollama轻松部署
查看>>
llm 从0开始学习大语言模型, transformer架构学习
查看>>
LLM:《第 1 部分》只是一个记忆技巧吗?
查看>>
LLM:《第 3 部分》从数学角度评估封闭式LLM的泛化能力
查看>>
LLM;超越记忆《第 2 部分 》
查看>>
LLVM 简介-ChatGPT4o作答
查看>>
LLVM简明安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
LM393双电压比较器集成电路引脚图及功能_工作原理及应用电路
查看>>
ln,创建软连接与硬连接
查看>>