keepalived与lvs

1 lvs

Linux服务器集群系统(一) -- LVS项目介绍

LVS(Linux Virtual Server)即Linux虚拟服务器,是一个基于Linux操作系统的虚拟服务器技术,用于实现负载均衡和高可用性。章文嵩,是中国国内最早出现的自由软件项目之一。

2 lvs发展史

在 Linux 2.2 内核时期,LVS 最初是以内核补丁的形式存在的,这意味着它不是直接集成到 Linux 内核中的,而是作为附加的补丁集来实现功能。

集成到 Linux 内核2.4.23 版本:

从 Linux 2.4.23 版本开始,LVS 的核心组件 IPVS (IP Virtual Server) 被正式合并到 Linux 内核中,成为官方内核的一部分。这意味着用户不再需要单独下载和安装补丁集来使用 LVS 功能

3 lvs组由ipvs和ipvsadm组成

LVS 是一个负载均衡框架,它定义了如何使用负载均衡器来分发网络请求的基本规则和架构

ipvs 是 LVS 中实现负载均衡的核心模块,它负责具体的负载均衡任务(虚拟出IP)

ipvsadm:是一个Linux内核中的IP负载均衡工具

4 LVS三种主要的工作模式

NAT TUN(隧道) DR

NAT:上行下行都走lvs,lvs压力爆大 ,但是安全,

TUN:上行走lvs,下行直接去客户端,lvs压力不大,但是内服务器ip直接暴漏给外网,非常不安全

DR:上行走lvs,下行走路由,路由会虚拟一个IP,lvs压力不大,还安全

5 keepalivde +lvs 高可用

准备:俩台干净的虚拟机(至少没用过nginx,keepalivde)

lvs-1 61 lvs-2 62

两台机子

yum -y install keepalived 用到keepalivde

yum install psmisc -y 用killall keepalivde di

lvs-1 vim /etc/keepalived/keepalived.conf

复制代码
[root@Lvs-1 ~]#  vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_27
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
   #虚拟的IP,网段要和lvs的网段一样
    virtual_ipaddress {
        192.168.58.66
    }
}
#lvs配置
virtual_server 192.168.58.66 49151 {
 #每个6秒检查realserver是否存活
    delay_loop 6
 #lb=loadbalance负载均衡算法,rr轮询
    lb_algo rr
 #lvs三种模式NAT|TUN隧道|DR
    lb_kind DR
 #一个请求固定到一个服务器上的时间 单位秒
    persistence_timeout 5
 #请求方式TPC|UPD
    protocol TCP
 #真实服务器配置,这两是装有tomcat的真实ip
    real_server 192.168.58.41 49151 {
       #权重
        weight 1
            #超时时长
            connect_timeout 3
             #重试次数
            nb_get_retry 3
             #重试时间间隔
            delay_before_retry 3
    }


    real_server 192.168.58.42 49151 {
        weight 1
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
}

lvs-2 vim /etc/keepalived/keepalived.conf

复制代码
[root@Lvs-2 ~]# vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_28
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.58.66
    }
}
virtual_server 192.168.58.66 49151 {
 #每个6秒检查realserver是否存活
    delay_loop 6
 #lb=loadbalance负载均衡算法,rr轮询
    lb_algo rr 
 #lvs三种模式NAT|TUN隧道|DR
    lb_kind DR
 #一个请求固定到一个服务器上的时间 单位秒
    persistence_timeout 5 
 #请求方式TPC|UPD
    protocol TCP
 #真实服务器配置
    real_server 192.168.58.41 80 {
       #权重 
        weight 1
            #超时时长
            connect_timeout 3
             #重试次数
            nb_get_retry 3
             #重试时间间隔
            delay_before_retry 3
    }       
    
    real_server 192.168.58.42 80 {
        weight 1
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }   
}

两台机子 都有的操作

cat cat /var/log/messages (可能会报这种错),无伤大雅,继续干

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'connect_timeout'

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'nb_get_retry'

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'delay_before_retry'

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'connect_timeout'

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'nb_get_retry'

Aug 22 09:02:03 Lvs-1 Keepalived_healthcheckers[3454]: Unknown keyword 'delay_before_retry'

ipvsadm -C

ipvsadm -Ln

service keepalived start

ipvsadm -Ln

在浏览器输入虚拟IP+装有tomcat机子配的端口号(如果配的是80,只用输虚拟IP就行)

192.168.58.66:49151

5.5 给tomcat配置虚拟ip 前后呼应

两台tomcat机子一样的操作 192.168.58.66虚拟ip

cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:1

vim /etc/sysconfig/network-scripts/ifcfg-lo:1

刷新lo网卡:

ifup lo 或者service network restart

查看:

ip a

6测试

在浏览器输入虚拟IP+装有tomcat机子配的端口号后出现项目页面

win+r cmd

黑窗口敲 arp -a 192.168.58.66

这是lvs-1的mac地址

在lvs-1:

killall keppalived

ipvsadm -C 清除所有当前的LVS配置

ipvsadm -Ln 列出当前的LVS配置

再次在黑窗口敲 arp -a 192.168.58.66 发现mac地址变了

变成vs-2的mac地址

这样就成功了

相关推荐
ZFB00017 分钟前
【麒麟桌面系统】V10-SP1 2503 系统知识——救援模式显示异常
linux·kylin
落笔画忧愁e8 分钟前
腾讯云轻量服务器 + OpenClaw 部署全攻略:从购买到飞书接入
服务器·飞书·腾讯云
第七序章8 分钟前
【Linux学习笔记】初识Linux —— 理解gcc编译器
linux·运维·服务器·开发语言·人工智能·笔记·学习
AI科技星12 分钟前
从ZUFT光速螺旋运动求导推出自然常数e
服务器·人工智能·线性代数·算法·矩阵
迎仔16 分钟前
A-总览:GPU驱动运维系列总览
linux·运维
tiantangzhixia19 分钟前
Master PDF Linux 平台的 5.9.35 版本安装与自用
linux·pdf·master pdf
choke23322 分钟前
软件测试任务测试
服务器·数据库·sqlserver
yyy的学习记录24 分钟前
Ubuntu下urdf模型转换成proto模型
linux·运维·ubuntu
礼拜天没时间.29 分钟前
自定义镜像制作——从Dockerfile到镜像
linux·docker·容器·centos·bash
xixingzhe229 分钟前
ubuntu安装gitlab
linux·ubuntu·gitlab