仓库源文站点原文


title: LVS功能配置 cover: https://img.paulzzh.com/touhou/random?11 date: 2020-04-10 11:49:22 categories: 分布式 toc: true tags: [分布式, 负载均衡, LVS]

description: 紧接着上一篇LVS三种模型的推导, 本文介绍了LVS的相关配置

紧接着上一篇LVS三种模型的推导, 本文介绍了LVS的相关配置

<br/>

<!--more--> <!-- **目录:** --> <!-- toc --> <!-- <br/> -->

LVS功能配置

在上一篇文章负载均衡LVS-三种模型推导我们进行了LVS三种常用的工作模型的介绍.

本文在此基础之上介绍LVS相关功能的配置;

LVS网卡配置

在前面讲到, 为了实现DR模型, 需要在RS中配置一个对外隐藏, 对内可见的VIP. 而在Linux内核中有两个参数arp_ignorearp_announce, 可以通过修改/proc/sys/net/ipv4/conf/*IF*/目录下的两个文件即可;

每一个/*IF*/目录代表一个网卡的配置(也包括虚拟网卡), 例如:

zk@zk:/proc/sys/net/ipv4/conf$ ll
dr-xr-xr-x 1 root root 0 4月  10 08:53 ./
dr-xr-xr-x 1 root root 0 4月  10 08:53 ../
dr-xr-xr-x 1 root root 0 4月  10 08:53 all/
dr-xr-xr-x 1 root root 0 4月  10 11:57 br-44f57ba828cf/
dr-xr-xr-x 1 root root 0 4月  10 11:57 br-f2f675760ec5/
dr-xr-xr-x 1 root root 0 4月  10 08:53 default/
dr-xr-xr-x 1 root root 0 4月  10 11:57 docker0/
dr-xr-xr-x 1 root root 0 4月  10 08:53 enp34s0/
dr-xr-xr-x 1 root root 0 4月  10 11:57 lo/

其中:

<br/>

配置文件说明:

配置上述两个参数后:

在处理请求时, 未在arp_ignore配置的请求将不会做出响应;

同时在操作系统开启时, 不会向所有主机通告自己的地址(ARP表);

从而实现了对外隐藏, 对内可见;

<br/>

此外, 在只有一块网卡的情况下, 应当将配置配置在lo网卡上!

<font color="#f00">**否则对于arp_ignore而言: 在模式1下, 无论如何都会接受到请求(无法实现目标请求MAC地址过滤)**</font>

<br/>

LVS管理程序

在Linux中由ipvs实现LVS的功能, 而此功能是嵌入Linux内核中的.

所以在进行交互时需要使用ipvsadm应用程序来管理;

<br/>

LVS调度方法

① 静态调度算法


② 动态调度算法

LVS不会对客户端建立三次握手

但是可以通过窥探第四层传输层的标识符来记录当前RS连接数, 进而进行动态调度算法

<br/>

在LVS中默认调度算法为WLC

<br/>

LVS命令

首先安装ipvsadm应用程序:

yum install ipvsadm -y

然后配置ipvs管理集群服务

<br/>

IPVS需要配置两个方案:

配置参数分别为-A-a

对监控包的设置-A

例如:

ipvsadm -A -t 192.168.9.100:80 -s rr表示, 客户端在请求192.168.9.100:80的TCP连接时, 会使用负载均衡;

<br/>

IPVS支持配置多个IP地址的负载均衡

例如:

在上面配置的基础上, 再进行ipvsadm -A -t 172.16.11.1:8080 -s rr配置

则会同时对192.168.9.100:80以及172.16.11.1:8080两个地址进行负载均衡;(但是他们是单独负载均衡)


对负载包的设置-a

例如:

ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -g

ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -g

上面两条命令增加了两个对负载包的配置, 即对VIP172.16.100.1:80配置了两个负载均衡RS: 192.168.10.8和192.168.10.9; 并指定使用DR模型;


LVS配置查看


LVS删除与保存

例如:

ipvsadm -S > /path/to/somefile用于将当前配置保存在文件中;

ipvsadm -R < /path/to/somefile用于载入配置文件中的配置;

<br/>

ipvsadm没有配置文件, 但是可以通过向内核导入导出完成配置

<br/>

附录

如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯

内容和博客同步更新~

<br/>