LVS(Linux Virtual Server)集群,(1)NAT模式

Cluster:集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。

集群分为三种类型:

LB(Load Balancing),负载均衡,多个主机组成,每个主机只承担一部分访问请求

HA(High Availiablity),高可用,避免单点故障

HPC(High-performance computing),高性能

LVS一共有三种工作模式:DR,Tunnel,NAT

轮询(Round Robin):将收到的访问请求按照顺序轮流分配给群集中的各节点。

加权轮询(Weighted Round Robin):根据调度器设置的权重值来分发请求,权重值越高,越优先获得任务并且分配的请求越多。

最少连接(Least Connections):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

加权最少连接数(Weighted Least Connections):在服务器节点的性能差异较大的情况下,调度器根据节点服务器负载自动调整权重。

集群:同一个业务系统,部署在多台服务器上。

集群设计原则:

可扩展性---集群的横向扩展能力

可用性---无故障时间

性能---访问响应时间

容量---单位时间内的最大并发吞吐量

软件:

lvs:阿里四层SLB使用四层的nginx负载均衡软件,内核中的功能性能强,功能少,百万级别的并发。

nginx:支持七层调度,阿里七层SLB使用Tengine,4层,3-6w并发

haproxy:支持七层调度,反向,十万级别(不太会用到)

LVS:调度器,负载均衡软件,类似于nginx,4层协议的代理

IPVS sheduler调度算法

LVS,负载调度器,内核集成。阿里的四层SLB是基于LVS+keepalived实现。

LVS集群中的术语:

VS(Virtual Server,VS)代理服务器,DS(Director Server),Dispatcher调度器

RS(real Server,RS)真实服务器:upstream server(nginx),backend server(paproxy),真实服务器

CIP(Client IP):客户机IP

VIP(Virtual Server IP):代理服务器的IP,外网IP

DIP(Director IP)VS内网的IP,代理服务器的IP

RIP(Real server IP):真实服务器的IP地址

LVS调度算法,调度算法分为两种,静态方法和动态方法。

静态方法就是不管后端真实服务器的状态,根据自身算法进行调度。

动态方法是会根据后端服务器的状态来进行调度。

仅根据算法本身进行调度。

静态:

RR:RoundRobin,轮询,常用

WRR:加权轮询,常用,先算总权重,再用自己的权重去除以总权重

SH,实现session sticky,源IP地址hash,将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定

DH,目的地址哈希,第一次轮询调度至RS

动态:

一个参考值来确定服务器是否忙,值越小代表服务器越空闲,就会优先调度个空闲的服务器

根据RS当前的负载状态及调度算法进行调度Overhead=value值,小的值被调度

1.LC:适用于长连接应用,最小连接数,不考虑权重

公式:Overhead=activeconns*256+inactiveconns

值=活动连接*256+非活动连接。没有权重

2.WLC:带权重的,weight,默认调度,加权最小连接数,第一轮不合理,都是一样的优先级

公式:Overhead=(activeconns*256+inactiveconns)/weight

值=(活动连接*256+非活动连接)/权重。有权重

3.SED:初始连接高权重优先,只检查活动连接,而不考虑非活动连接,权重小的,空闲的

公式:Overhead=(activeconns+1)*256/weight

值=(活动连接+1)*256/权重。

4.NQ:第一轮均匀分配,后续SED

ipvsadm 工具,选项说明

-A:添加虚拟服务器

-D:删除整个虚拟服务器

-s:指定负载调度算法

-a:添加真实服务器(节点服务器)

-d:删除某一个节点

-t:指定VIP地址及TCP端口

-r:指定RIP地址及TCP端口

-m:表示使用NAT群集模式

ipvsadm -C #清空

ipvsadm -R #重载

ipvsadm -A -t 12.0.0.1:80 -s rr #添加虚拟服务器,代理服务器

#添加真实服务器

ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.20:80 -m

ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.30:80 -m

通过yum安装:

yum install ipvsadm -y

NAT模式,LVS负载均衡部署

需要四台机子

7-1作为LVS是调度服务器,7-2作为真实服务器1,7-3作为真实服务器2,7-4作为客户端。

一次访问可能是192.168.114.20,那么下一次可能是192.168.114.30

systemctl stop firewalld

setenforce 0

在7-2和7-3真实服务器上配置httpd,准备主页文件。和指定网关

root@Node3 \~\]#:yum install -y httpd \[root@Node3 \~\]#:systemctl start httpd \[root@Node3 \~\]#:echo "7-3" \> /var/www/html/index.html 7-2同理: \[root@Node2 \~\]#:yum install -y httpd \[root@Node2 \~\]#:systemctl start httpd \[root@Node2 \~\]#:echo "7-2" \> /var/www/html/index.html 这里,网页主页就配置好了,还需要修改两台的网关,设置为调度服务器的ens33网卡的地址 \[root@Node3 \~\]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.114.30 NETMASK=255.255.255.0 GATEWAY=192.168.114.10 \[root@Node3 \~\]#:systemctl restart network 7-2同理: \[root@Node2 \~\]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.114.20 NETMASK=255.255.255.0 GATEWAY=192.168.114.10 \[root@Node2 \~\]#:systemctl restart network 总结:httpd服务,主页面配置。网络配置,指定网关。

7-1上LVS调度服务器

添加一块网卡,设为仅主机模式

修改ens36网卡:(刚添加的网卡,我这里叫ens36)

root@Node1 \~\]#:cd /etc/sysconfig/network-scripts/ \[root@Node1 network-scripts\]#:cp ifcfg-ens33 ifcfg-ens36 -a \[root@Node1 network-scripts\]#:vim ifcfg-ens36 #把UUID删了,修改网卡名称为ens36 IPADDR=12.0.0.1 NETMASK=255.255.255.0 GATEWAY=12.0.0.1 \[root@Node1 network-scripts\]#:systemctl restart network #开启路由转发: \[root@Node1 network-scripts\]#:vim /etc/sysctl.conf net.ipv4.ip_forward = 1 sysctl -p\[root@Node1 network-scripts\]#:sysctl -p net.ipv4.ip_forward = 1 #添加真实服务器和虚拟服务器(节点服务器) \[root@Node1 \~\]#:yum install -y ipvsadm \[root@Node1 \~\]#:systemctl start ipvsadm Job for ipvsadm.service failed because the control process exited with error code. See "systemctl status ipvsadm.service" and "journalctl -xe" for details. #需要这个文件目录 \[root@Node1 \~\]#:ipvsadm-save \> /etc/sysconfig/ipvsadm \[root@Node1 \~\]#:systemctl start ipvsadm #添加虚拟服务器: \[root@Node1 \~\]#:ipvsadm -A -t 12.0.0.1:80 -s rr #添加两个真实服务器: \[root@Node1 \~\]#:ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.20:80 -m \[root@Node1 \~\]#:ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.30:80 -m

7-4作为客户端

改成主机模式:点确定

root@Node4 \~\]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=12.0.0.100 NETMASK=255.255.255.0 GATEWAY=12.0.0.1 #重启网络 \[root@Node4 \~\]#:systemctl restart network

测试:

实现NAT模式LVS负载均衡

------end------

相关推荐
casdfxx2 分钟前
配置v3s支持8188eu、8192cu网卡(三)-openssh不能登录linux开发板。
linux·服务器·网络
gaize12132 分钟前
服务器数据如何恢复,看这里
运维·服务器
chian-ocean3 分钟前
基于openEuler集群的OpenStack云计算平台基础部署实战指南
服务器·云计算·openstack
遇见火星4 分钟前
Linux 服务器被入侵后,如何通过登录日志排查入侵源?【实战指南】
linux·运维·服务器·入侵·日志排查
代码游侠6 分钟前
应用——统计文件字符数、单词数、行数
服务器·笔记·算法
凤凰战士芭比Q10 分钟前
(一)zabbix7.0(安装、自定义监控、告警)
linux
gis分享者15 分钟前
如何在 Shell 脚本中使用管道(pipeline)实现数据传递?(容易)
linux·pipeline·shell·脚本·管道·数据传递
model200520 分钟前
Alibaba linux 3安装LAMP(2)
linux·运维·服务器
喵了meme26 分钟前
Linux学习日记16:守护进程
linux·服务器·学习
一匹电信狗29 分钟前
【Linux我做主】进程实践:手动实现Shell
linux·运维·服务器·c++·ubuntu·小程序·开源