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地址

这样就成功了

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值