小白到运维工程师自学之路 第三十九集 (LVS架构)

一、概述

1、lvs

        LVS是Linux Virtual Server的缩写,是一种基于Linux内核的高性能、高可用性的

负载均衡软件。它可以将多台服务器组成一个虚拟的服务器集群,通过负载均衡算法将

客户端请求分发到不同的服务器上,从而提高系统的可用性和性能。LVS支持多种负载

均衡算法,包括轮询、加权轮询、最少连接数等,同时还支持会话保持和健康检查等功

能。LVS是开源软件,广泛应用于互联网、电子商务、游戏等领域。

2、keepalived

        keepalived是一个开源的高可用性软件,它可以在多个服务器之间提供负载均衡

和故障转移。它可以监控服务器的状态,并在服务器出现故障时自动将流量转移到其他

可用的服务器上,以确保服务的连续性和可用性。keepalived支持多种负载均衡算法,

包括轮询、加权轮询、最小连接数等。它还支持多种协议,包括TCP、HTTP、SMTP

等。keepalived可以在Linux和Unix操作系统上运行,并且可以与其他软件集成,如

HAProxy、Nginx等。

二、工作原理

lvs

1. 客户端向LVS发送请求,请求被LVS接收。

2. LVS根据负载均衡算法(如轮询、加权轮询、源地址哈希等)选择一台真实服务器。

3. LVS将请求转发给选中的真实服务器。

4. 真实服务器处理请求并将响应返回给LVS。

5. LVS将响应返回给客户端。

keepalived

1. keepalived在每个节点上运行,每个节点都有一个虚拟IP地址和一个实际IP地址。

2. 当主节点出现故障时,备份节点会接管主节点的虚拟IP地址,从而保证服务的高可用性。

3. keepalived使用VRRP协议来实现节点之间的通信和状态同步。VRRP协议定义了一个虚拟路由器,由多个节点共同维护,其中一个节点为主节点,其他节点为备份节点。

4. 主节点会定期发送VRRP广告包,告知其他节点自己的状态和优先级。备份节点会监听这些广告包,如果主节点出现故障或者优先级比备份节点低,备份节点会接管虚拟IP地址。

5. keepalived还支持健康检查功能,可以定期检查服务的可用性,如果服务不可用,就会将节点的优先级降低,从而避免将故障节点作为主节点。

三、准备工作

1、五台服务器

 2、关闭防火墙

3、lvs主从服务器安装keepalived   ipvsadm

4、web1  web2 服务器安装http

5、nfs文件共享服务器安装nfs

四、部署安装web服务(两台同时部署)

1、配置临时IP

cd /etc/sysconfig/network-scripts/     进入网卡配置文件夹

cp ifcfg-lo ifcfg-lo:666               复制虚拟网卡配置文件

vim ifcfg-lo:666                       配置虚拟网卡

DEVICE=lo:666                          设备名称
IPADDR=192.168.1.234                  虚拟网卡IP
NETMASK=255.255.255.255                虚拟网卡子网掩码
ONBOOT=yes                             是否开机自启
NAME=loopback:666                      虚拟网卡名称

systemctl restart network              重启网卡

route add -host 192.168.1.234/32 dev lo:666   添加本地回环

vim /etc/sysctl.conf     调整ARP参数

net.ipv4.conf.all.arp_ignore=1     表示当接收到ARP请求时,忽略所有接口的IP地址与请求中的目标IP地址不匹配的情况。         
net.ipv4.conf.all.arp_announce=2   表示当发送ARP请求时,使用接口的IP地址作为源IP地址,并将目标IP地址设置为请求中的目标IP地址。            
net.ipv4.conf.default.arp_ignore=1 表示当接收到ARP请求时,忽略默认接口的IP地址与请求中的目标IP地址不匹配的情况。
net.ipv4.conf.default.arp_announce = 2 表示当发送ARP请求时,使用默认接口的IP地址作为源IP地址,并将目标IP地址设置为请求中的目标IP地址。
net.ipv4.conf.lo.arp_ignore = 1    表示当接收到ARP请求时,忽略回环接口的IP地址与请求中的目标IP地址不匹配的情况。
net.ipv4.conf.lo.arp_announce=2    表示当发送ARP请求时,使用回环接口的IP地址作为源IP地址,并将目标IP地址设置为请求中的目标IP地址。

2、安装http

yum -y install httpd       安装http

echo "syh1" >/var/www/html/index.html   在首页文件中写入内容 方便测试

五、部署LVS主服务器

vim /etc/sysctl.conf            调整ARP参数

net.ipv4.conf.all.send_redirects = 0        禁止所有网络接口发送 ICMP 重定向报文
net.ipv4.conf.default.send_redirects=0      禁止默认网络接口发送 ICMP 重定向报文
net.ipv4.conf.ens33.send_redirects = 0      禁止名为 ens33 的网络接口发送 ICMP 重定向报文

touch /etc/sysconfig/ipvsadm    创建lvs负载均衡配置文件

yum install -y keepalived ipvsadm      安装keepalived ipvsadm

vim /etc/keepalived/keepalived.conf    进入keepalived配置文件

global_defs {                       
   router_id LVS_DEVEL1                指定了LVS的路由器ID
}

vrrp_instance master {                 定义了一个VRRP,用于实现高可用性
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                指定了虚拟IP地址
    192.168.1.234
    }
}

virtual_server 192.168.1.234 80 {      定义了一个虚拟服务器,用于实现负载均衡 
    delay_loop 6                       指定了LVS的延迟时间,lb_algo指定了负载均衡算法
    lb_algo rr
    lb_kind DR                         指定了负载均衡的方式,protocol指定了虚拟服务器使用的协议
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.1.211 80 {     定义了实际的服务器
        weight 1                       指定了服务器的权重
        HTTP_GET {                     指定了健康检查的方式
            url {                      url指定了健康检查的URL路径
              path /
            }
            connect_timeout 3          指定了连接超时时间
            nb_get_retry 3             指定了重试次数
            delay_before_retry 3       指定了重试前的延迟时间
        }
    }
    real_server 192.168.1.220 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
               

 

六、部署lvs备份服务器

vim /etc/sysctl.conf            调整ARP参数

net.ipv4.conf.all.send_redirects = 0        禁止所有网络接口发送 ICMP 重定向报文
net.ipv4.conf.default.send_redirects=0      禁止默认网络接口发送 ICMP 重定向报文
net.ipv4.conf.ens33.send_redirects = 0      禁止名为 ens33 的网络接口发送 ICMP 重定向报文

touch /etc/sysconfig/ipvsadm    创建lvs负载均衡配置文件

yum install -y keepalived ipvsadm      安装keepalived ipvsadm

vim /etc/keepalived/keepalived.conf    进入keepalived配置文件


global_defs {
   router_id LVS_DEVEL2                这个地方需要将ID修改为2
}

vrrp_instance master {
    state backup                       将这里修改为备份服务器
    interface ens33
    virtual_router_id 51
    priority 99                        将这里修改为99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    192.168.1.234        
    }
}

virtual_server 192.168.1.234 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.1.211 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.1.220 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

七、测试

systemctl start keepalived                启动keepalived

systemctl start ipvsadm                   启动ipvsadm

modprobe ip_vs                            加载ip_vs模块

ipvsadm -ln                               查看lvs节点状态

 

 

停掉web1的服务

就可以看到web2的访问页面了

以上就是lvs架构的基本配置方法

如有错误欢迎各位大佬批评指正,我们共同进步

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值