1、PDVS架构
DPVS的一些关键特点:
-
高性能:DPVS使用多核心、多线程技术,能够高效处理大量的并发请求。它具有出色的转发性能和低延迟,适用于高负载的网络环境。
-
负载均衡:DPVS支持多种负载均衡算法,如轮询、加权轮询、哈希、最少连接等。它可以根据不同的调度策略,将请求分发到后端服务器,从而实现负载均衡和流量优化。
-
高可用性:DPVS支持热备份和故障切换功能,确保在后端服务器故障时能够无缝切换到备份服务器,提供持续可用的服务。
-
协议支持:DPVS支持多种网络协议,包括TCP、UDP、HTTP等。它可以对不同协议的请求进行处理和转发,并根据需要进行协议转换。
-
灵活配置:DPVS提供灵活的配置选项,允许管理员根据具体需求进行定制化设置。它支持配置文件和命令行接口,使得配置和管理变得简单且易于操作。
-
可扩展性:DPVS可以使用多台服务器构建一个分布式负载均衡器集群。通过添加更多的服务器节点,可以实现扩展能力和负载均衡的增加。
2、DPVS两种常见的工作模式
单臂
双臂
DPVS提供了多种负载均衡的工作模式,每种模式都有其独特的优点和适用场景。下面是对几种常见的DPVS工作模式的详细介绍:
-
DR(Direct Routing)模式:
- 工作原理:在DR模式下,DPVS将客户端请求直接转发给后端服务器,通过修改目标MAC地址实现直接路由。DPVS在返回时只处理服务器响应的数据包。
- 优点:DR模式在转发客户端请求时极为高效,无需经过额外的网络处理。这种模式具有低延迟和高吞吐量,并且能够支持大规模并发请求。
- 缺点:DR模式要求DPVS和后端服务器在同一子网内,且需要额外的网络配置来处理服务器响应的数据包。
-
NAT(Network Address Translation)模式:
- 工作原理:NAT模式在DPVS和后端服务器之间使用NAT技术来转发客户端请求和服务器响应。DPVS使用源地址和端口映射来处理请求和响应的数据包。
- 优点:NAT模式在转发请求时非常灵活,可以支持不同子网的部署。与DR模式相比,NAT模式在网络拓扑和部署上更加灵活。
- 缺点:NAT模式引入了额外的网络转换和地址映射,可能导致一定的性能损失,并增加了复杂性。
-
TUN(Tunnel)模式:
- 工作原理:TUN模式通过在DPVS和后端服务器之间创建一个隧道来转发请求和响应。DPVS将客户端请求封装在一个新的数据包中,并通过隧道发送给服务器。
- 优点:TUN模式是一种通用的负载均衡模式,可以适应不同的部署环境。它允许DPVS和后端服务器在不同的子网中,并具有较高的灵活性和可扩展性。
- 缺点:TUN模式需要对数据包进行封装和解封装,增加了网络开销,并且可能引入一些额外的延迟。
选择合适的DPVS工作模式取决于具体的应用场景和需求。DR模式适用于需要最大化性能和效率的情况,但要求网络部署在同一子网内。NAT模式适用于网络拓扑较为复杂,需要跨越不同子网的部署。TUN模式是一种通用的负载均衡模式,适用于不同的网络环境和需求。
需要注意的是,每种模式都有其实现和配置上的细微差异,详细的配置和使用方法可以参考DPVS的官方文档或相关的用户指南。
3、验证
3.1 CPU消耗
top - 19:38:15 up 2 days, 23:20, 1 user, load average: 6.19, 1.89, 0.75 Tasks: 249 total, 2 running, 246 sleeping, 0 stopped, 1 zombie %Cpu0 : 0.0 us, 0.4 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 63.3 us, 36.7 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu8 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu9 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu10 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu11 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu12 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu13 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu14 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu15 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu16 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu17 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu18 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu19 : 1.0 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 65685352 total, 15695352 free, 48908988 used, 1081012 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 16171432 avail Mem
3.2 转发性能