目录
2.2 加权轮询(Weighted Round Robin) WRR
2.4加权最少连接(Weighted Least Connections)
无论是哪种群集,都至少存在两台节点服务器,而对外表现为一个整体,只提供一个访问入口
①负载均衡群集
②高可用群集
③高性能运算群集
第一层:负载调度器
访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份。当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。
第二层:服务器池
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时。负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
第三层:共享存储
为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。
①地址转换 (NAT模式)
1、Network Address Translation,简称NAT模式
2、类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机
的访问入口,也是各节点回应客户机的访问出口
3、服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
②IP隧道技术(TUN模式)
1、IP Tunnel,简称TUN模式
2、采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
3、服务器节点分散在互联网中的不同位置,具有独立的公网P地址,通过传用IP隧道与负载调度器相互通信
③直接路由(DR模式)
1、Direct Routing,简称DR模式
2、采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
3、负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
LVS现在已成为Lfnux内核的一部分,默认编译为ip_vs模块, 必要时能够自动调用
查看当前系统中ip_vs 模块的版本信息
- [root@zwb ~]# modprobe ip_vs
- [root@zwb ~]# cat /proc/net/ip_vs
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器, 而不管服务器实际的连接数和系统负载
根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
保证性能强的服务器承担更多的访问流量
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
服务器节点的性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承担更大比例的活动连接负载
- [root@zwb ~]# yum -y install ipvsadm.x86_64
-
- [root@zwb ~]# ipvsadm -v
- ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
ipvsadm [选项]
常用选项:
-A/--add-service | 添加一条新的虚拟服务 |
-E/--edit-service | 编辑虚拟服务 |
-D/--delete-service | 删除虚拟服务 |
-C/--clear | 清除所有的虚拟服务规则 |
-R/--restore | 恢复虚拟服务规则 |
-S/--save | 保存虚拟服务器规则 |
-a/--add-server | 在一个虚拟服务中添加一个新的真实服务器 |
-e/--edit-server | 编辑某个真实服务器 |
-d/--delete-server | 删除某个真实服务器 |
-L/-l/--list | 显示内核中的虚拟服务规则 |
-Z/--zero | 将转发消息的统计清零 |
--set tcp/tcpfin/udp | 配置三个超时时间(tcp/tcpfin/udp) |
--start-daemon | 启动同步守护进程。 |
--stop-daemon | 停止同步守护进程 |
-h/--help | 显示帮助信息 |
-t/--tcp-service service-address | 指定VIP地址和tcp端口 |
-u/--udp-service service-address | UDP协议的虚拟服务 |
-f/--fwmark-service fwmark | 说明是经过iptables 标记过的服务类型。 |
-s/--scheduler scheduler | 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc. |
-p/--persistent [timeout] | 持久稳固的服务。 |
-M/--netmask | 指定客户地址的子网掩码 |
-r/--real-serverserver-address | 真实的服务器 |
-g/--gatewaying | 指定LVS 的工作模式为直接路由模式 |
-i/--ipip | 指定LVS 的工作模式为隧道模式 |
-m/--masquerading | 指定LVS 的工作模式为NAT 模式 |
-w/--weightweight | 设置权重 |
--mcast-interface interface | 指定组播的同步接口 |
-c/--connection | 显示ipvs中目前存在的连接 |
-6: | 如果fwmark用的是ipv6地址需要指定此选项。 |
①创建虚拟服务器
[root@zwb ~]# ipvsadm -A -t 192.168.159.68:80 -s rr
-A:添加一条新的虚拟服务
-t:指定VIP地址和tcp端口
-s:使用的调度算法
②添加服务器节点
- [root@zwb ~]# ipvsadm -a -t 192.168.159.68:80 -r 172.168.159.68 -m -w 1
-
-
- [root@zwb ~]# ipvsadm -ln ###########查看
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 192.168.159.68:80 rr
- -> 172.168.159.68:80 Masq 1 0 0
-a : 表示添加真实服务器
-t :指定VIP地址和tcp端口
-r :指定真实服务器ip地址(RIP)及tcp 端口
-m:使用的群集模式
-w: 设置权重
③ 删除
1、需要从服务器池中删除某一个节点使用-d
- [root@zwb ~]# ipvsadm -d -r 172.168.159.68:80 -t 192.168.159.68:80
- -删除 -RIP:端口 -VIP:端口
- [root@zwb ~]# ipvsadm -ln
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 192.168.159.68:80 rr
2、需要删除整个虚拟服务时
- [root@zwb ~]# ipvsadm -D -t 192.168.159.68:80
- -删除 -vip:端口
- [root@zwb ~]# ipvsadm -ln
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
④保存负载分配策略
- [root@zwb ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
-
- [root@zwb ~]# systemctl stop ipvsadm ####关闭
- [root@zwb ~]# systemctl status ipvsadm
- ● ipvsadm.service - Initialise the Linux Virtual Server
- Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
- Active: inactive (dead)
- [root@zwb ~]# systemctl start ipvsadm ####开启
- [root@zwb ~]# systemctl status ipvsadm
- ● ipvsadm.service - Initialise the Linux Virtual Server
- Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
- Active: active (exited) since 四 2022-09-08 00:53:40 CST; 2s ago
-
-
-