网站流量能打开wifi打不开,广西壮族自治区省长,网站怎么搭建,界面设计网站LVS 介绍#xff1a;
Linux Virtual Server#xff08;LVS#xff09;是一个基于Linux内核的开源软件项目#xff0c;用于构建高性能、高可用性的服务器群集。LVS通过将客户端请求分发到一组后端服务器上的不同节点来实现负载均衡#xff0c;从而提高系统的可扩展性和可…LVS 介绍
Linux Virtual ServerLVS是一个基于Linux内核的开源软件项目用于构建高性能、高可用性的服务器群集。LVS通过将客户端请求分发到一组后端服务器上的不同节点来实现负载均衡从而提高系统的可扩展性和可靠性。
LVS的核心组件
IPVSIP Virtual ServerIPVS是LVS的核心模块它实现了负载均衡的功能。IPVS模块通过拦截传入的流量并进行调度将请求分发给后端的实际服务器。它存储和管理负载均衡配置并在内核空间进行数据包的转发。 负载均衡器 LBLoad Balancer负载均衡器是LVS的中心组件它是位于客户端和后端服务器之间的设备或软件。负载均衡器接收客户端请求并根据配置的负载均衡策略将请求转发给后端服务器以实现负载分发和高可用性。 后端服务器 RSReal Server后端服务器是LVS集群中实际处理客户端请求的服务器节点。它们分担负载并提供服务响应。 负载均衡调度算法LVS支持多种负载均衡调度算法用于确定请求应该转发到哪个后端服务器上。常见的调度算法包括轮询Round Robin、最少连接Least Connection、源地址哈希Source IP Hash等。通过选择适当的调度算法可以根据应用需求在后端服务器之间平衡负载。
LVS的工作原理 客户端发送请求 客户端向LVS负载均衡器发送请求请求的目标是负载均衡器的虚拟IPVirtual IP地址。 负载均衡器接收请求 负载均衡器接收到来自客户端的请求并根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。 负载均衡算法选择后端服务器 LVS支持多种负载均衡调度算法例如轮询Round Robin、最少连接Least Connection、源地址哈希Source IP Hash等。根据指定的算法负载均衡器将请求转发给一个后端服务器。选择后端服务器时考虑服务器的负载情况、可用性和性能指标。 请求转发到后端服务器 负载均衡器将客户端请求转发给选定的后端服务器。根据配置的调度算法请求可能会被平均地分发到多个后端服务器上从而实现负载均衡。 后端服务器处理请求 后端服务器接收到来自负载均衡器的请求并处理该请求。后端服务器执行请求所需的任务并生成响应。 响应返回至客户端 后端服务器生成的响应流量经过负载均衡器负载均衡器会将响应的目标地址重写为自己的地址并将响应返回给客户端。 会话保持可选 为了保持会话的连贯性LVS可通过会话保持功能使来自同一客户端的请求始终被分发到同一后端服务器上。这可以通过IP地址、Cookie等方式实现。
LVS负载均衡方式
NATNetwork Address Translation方式负载均衡器位于前端与客户端之间调度器将客户端请求的源IP地址和端口转换为自己的IP地址和端口并将请求转发到后端服务器。后端服务器的响应经过调度器再转发回客户端。DRDirect Routing方式负载均衡器位于前端与后端服务器之间不会修改流量的目标地址。调度器将客户端请求的目标IP地址和端口保持不变直接将请求转发到后端服务器。后端服务器的响应不经过调度器直接返回给客户端。TUNIP Tunneling方式类似于DR方式负载均衡器位于前端与后端服务器之间并使用IP隧道将请求从客户端传递到后端服务器。负载均衡器将请求封装在一个新的IP包中并将其发送到目标后端服务器上。后端服务器接收到请求后解析IP隧道并响应客户端。也就是通过创建虚拟设备将数据包从调度器转发到后端服务器。
LVS名词解释
VSVirtual Server 虚拟服务器通常是分发器负载均衡集群对外提供的IPPorRSReal Server 实际提供服务的真实服务器可被DS划分到一个或多个负载均衡组. DSDirector Server 负载均衡器将流量分发到后端的真实服务器上. BDSBackup Director Server为了保证负载均衡器的高可用衍生出的备份. CIPClient IP 客户的客户端IP。VIPVirtual Server IPVS的IP。client请求服务的DIPdestination IP address定义在DS上client或其网关需要有其路由DIPDirector IP 分发器的IPRIPReal Server IP 真实服务器的IP
CIP – VIP DIP – RIP 客户端访问VIPDIP将请求转发到RIP
1、NATNetwork Address Translation
NAT 是通过网络地址转换的方法来实现调度的。 客户端发送请求客户端向LVS负载均衡器发送请求请求的目标地址是VIP。 负载均衡器接收请求负载均衡器接收到来自客户端的请求该请求VIP和CIP。 NAT转换NAT模式下负载均衡器会将请求包的VIP进行NAT转换将其替换为负载均衡器的RIP。这样在后续的网络通信中响应流量将通过负载均衡器经过NAT转换返回给客户端。 负载均衡算法选择后端服务器LVS负载均衡器根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。 请求转发到后端服务器负载均衡器将经过NAT转换后的请求转发给选定的后端服务器。后端服务器接收到请求后将其视为来自负载均衡器的请求。 后端服务器处理请求 并生成响应 响应返回至客户端响应经过负载均衡器负载均衡器进行NAT转换将响应的RIP替换为VIP然后将响应返回给客户端。 2、DRDirect Routing
DR通过修改目标MAC地址来实现调度。DR 模式中input经过DRoutput不经过DR。为了响应对整个群集的访问DS与RS都需要配置有VIP地址, 且DS与RS要处在同一网段。 客户端发送请求客户端向LVS负载均衡器发送请求请求的目标地址是VIP。 负载均衡器接收请求并根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。 负载均衡器修改目标MAC地址在DR模式下负载均衡器会修改请求数据包的目标MAC地址为所选后端服务器的MAC地址并将数据包转发给后端服务器。这样数据包越过负载均衡器直接到达后端服务器。 后端服务器接收到来自负载均衡器的请求并进行相应的处理和计算。 后端服务器生成响应并将响应发送回客户端。在DR模式下响应数据包将直接发送到客户端绕过负载均衡器。
3、TUNIP Tunneling 在DR方式下DS只修改数据包中数据链路层的MAC信息IP信息不修改。于是DS通过MAC来定位RS由此限制了DS和RS要处于同一网段。那么如果DS可以不通过MAC就可以定位到RS的话也就不用限制RS和DS处于同一网段了。 TUN模式下负载均衡器通过建立IP隧道将请求和响应数据通过隧道在负载均衡器和后端服务器之间进行传输。IP隧道可以理解为IP in IP, 即发送方在IP头的外部再包装一个IP头接收方先解出第一层IP头然后再按照正常流程处理剩下的的IP数据包。 客户端发送请求客户端向LVS负载均衡器发送请求请求的目标地址是VIP。 负载均衡器接收请求负载均衡器接收到来自客户端的请求并根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。 负载均衡器建立隧道在TUN模式下负载均衡器会与所选后端服务器建立一个IP隧道以便在负载均衡器和后端服务器之间传输请求和响应数据。 负载均衡器转发请求负载均衡器将来自客户端的请求打包并通过隧道发送给后端服务器。 RS发现请求报文的IP地址是自己的eth0的IP地址就剥掉IP隧道包头。 RS处理请求生成响应并将响应通过隧道发送回客户端。 LVS架构可以提供高性能和高可用性的负载均衡解决方案。通过将客户端请求分发到后端服务器上的多个节点可以平衡系统负载并提供故障容错能力。同时LVS具有开源、灵活和可定制的特点可以根据实际需求进行配置和扩展。 需要注意的是LVS只提供负载均衡功能并不处理应用层的逻辑。应用层的会话维护、数据同步等需要通过其他方式来实现如使用Session Persistence和数据库复制等。
LVS NAT模式配置
环境说明
主机名称 网卡信息ens160为nat、ens192为仅主机安装应用 系统Client客户端192.168.100.200ens160无RHEL8DSDIP:192.168.253.142(ens160)–VIP:192.168.227.128(ens224) ipvsadmRHEL8RS1RIP:192.168.253.143(ens160)–192.168.253.142httpdRHEL8RS2RIP:192.168.253.144(ens160)–192.168.253.142httpdRHEL8 1、DR、RS1、RS2三台主机都关闭防火墙和selinux
DS:
[rootDS ~]# systemctl stop firewalld
[rootDS ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[rootDR ~]# vim /etc/sysconfig/selinux
SELINUXdisabledRS1
[rootRS1 ~]# systemctl stop firewalld
[rootRS1 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[rootRS1 ~]# vi /etc/sysconfig/selinux
SELINUXdisabledRS2
[rootRS2 ~]# systemctl stop firewalld
[rootRS2 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[rootRS2 ~]# vi /etc/sysconfig/selinux
SELINUXdisabled2、配置IP信息
DS添加ens224网卡信息
[rootDR ~]# nmcli connection add con-name ens224 ifname ens224 type ethernet
Connection ens224 (922bcff0-35fd-43c2-a608-edb0d58ccec3) successfully added.
[rootDR ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
IPADDR192.168.253.142
PREFIX24
DNS18.8.8.8
[rootDR ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens224
IPADDR182.168.227.128
PREFIX24
DNS18.8.8.8
[rootDR ~]# systemctl restart NetworkManager
[rootDR ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[rootDR ~]# nmcli connection up ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)RS1
[rootRS1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
IPADDR192.168.253.143
PREFIX24
GATEWAY192.168.253.142
DNS18.8.8.8
[rootRS1 ~]# systemctl restart NetworkManager
[rootRS1 ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)RS2
[rootRS2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
IPADDR192.168.253.144
PREFIX24
GATEWAY192.168.253.142
DNS18.8.8.8
[rootRS2 ~]# systemctl restart NetworkManager
[rootRS2 ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)3、后端RS1和RS2部署WEB服务器
[rootRS1 ~]# yum -y install httpd
[rootRS1 ~]# echo RS1 /var/www/html/index.html
[rootRS1 ~]# systemctl restart httpd
[rootRS1 ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.[rootRS2 ~]# yum -y install httpd
[rootRS2 ~]# echo RS2 /var/www/html/index.html
[rootRS2 ~]# systemctl restart httpd
[rootRS2 ~]# systemctl enable httpd4、配置DS
4.1、开启IP转发功能
[rootDR ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward 1
[rootDR ~]# sysctl -p
net.ipv4.ip_forward 14.2、安装ipvsadm并添加规则
[rootDR ~]# yum -y install ipvsadm
[rootDR ~]# ipvsadm -A -t 192.168.227.128:80 -s rr
[rootDR ~]# ipvsadm -a -t 192.168.227.128:80 -r 192.168.253.143:80 -m
[rootDR ~]# ipvsadm -a -t 192.168.227.128:80 -r 192.168.253.144:80 -m
[rootDR ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.227.128:80 rr- 192.168.253.143:80 Masq 1 0 0 - 192.168.253.144:80 Masq 1 0 0
[rootDR ~]# ipvsadm -Sn /etc/sysconfig/ipvsadm
[rootDR ~]# systemctl restart ipvsadm.service
[rootDR ~]# systemctl enable ipvsadm.service
Created symlink /etc/systemd/system/multi-user.target.wants/ipvsadm.service → /usr/lib/systemd/system/ipvsadm.service.5、客户端测试
[rootRS3 ~]# curl http://192.168.227.128
RS2
[rootRS3 ~]# curl http://192.168.227.128
RS1
[rootRS3 ~]# curl http://192.168.227.128
RS2
[rootRS3 ~]# curl http://192.168.227.128
RS1配置信息转载自 LVS 教程