目录
一、LVS群集应用基础
1.群集技术概述
- a.群集的类型
负载均衡群集(LB):以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能
高可用群集:以提高应用系统的可靠性、尽可能的减少中断时间为为目标,确保服务的连续性,达到高可用(HA)的容错效果
高性能运算群集:以提高应用系统CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型超级计算机的高性能运算(HPC)能力
b.负载均衡的分层结构
第一层,负载调度器:这是访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP(虚拟IP)地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效后能够替换至备用调度器
第二层,服务器池:群集所提供的应用服务(HTTP、FTP)由服务器池承担,其中每个节点具有独立的RIP(真实IP)地址,只处理调度器分发过来的客户机请求。当某个节点失效时,负载均衡调度器的容错机制会将其隔离,等待错误排除后重新纳入服务器池
第三层,共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。在Linux中共享存储可以使用NAS设备或者提供NFS(网络文件系统)共享服务器的专用服务器
c.负载均衡的工作模式
地址转换(NAT模式):负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是个节点回应客户机的访问出口。服务器节点使用私有IP地址,与负载调度器位于同一物理网路,安全性要优于其他两种方式
IP隧道(TUN模式):采用开放式网络结构,负载调度器仅作为客户端的访问入口,个节点通过各自的internet连接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中不同的位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信
直接路由(DR模式):采用半开放式的网络结构,与TUN模式的结构类似,但各节点不是分散在各地,而是与调度器位于同一物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
2.LVS虚拟服务器
a.LVS的负载调度算法
轮询:将收到的访问请求按照顺序轮流分配给集群中的各个节点,均等地对待每台服务器而不管服务器实际连接数和系统负载
加权轮询:根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务并分配请求越多,这样可以保证性能高的节点承担更多请求
最少连接:根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。如果所有的服务器节点性能相近,采用这种方式可以更好的均衡负载
加权最少连接:在服务器节点的性能差异较大的情况下,调度器可以根据节点服务器的负载自动调整权重,权重较高的节点将承担更大比例的活动连接负载
3.NFS共享存储服务
NFS是一种基于TCP/IP传输的网络文件系统协议。
通过NFS协议,客户机可以向访问本机目录一样访问远程服务器中的共享资源
二、案例:地址转换模式(LVS-NAT)
1.资源清单
主机 |
操作系统 |
IP地址 |
应用 |
lvs |
OpenEuler24.03 |
192.168.16.142 |
Ipvsadm |
web1 |
OpenEuler24.03 |
192.168.16.143 |
Apache、nfs、bind-utils |
web2 |
OpenEuler24.03 |
192.168.16.144 |
Apache、nfs、bind-utils |
nfs |
OpenEuler24.03 |
192.168.16.145 |
nfs、bind-utils |
2.修改主机名
hostnamectl set-hostname lvs
hostnamectl set-hostname web2
hostnamectl set-hostname web1
hostnamectl set-hostname nfs
3.配置负载调度器(LVS上)
a.在Lvs服务器新增一块网卡,仅主机模式,作为vip(集群ip,模拟外网ip)使用
#添加网卡
#修改网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=ens36
DEVICE=ens36
ONBOOT=yes
#激活ens36网卡
ifup ens36
#查看添加的网卡IP
[root@lvs ~]# ip a | grep ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.42.128/24 brd 192.168.42.255 scope global dynamic noprefixroute ens36
b.检查模块
# 加载 ip_vs 模块
modprobe ip_vs
# 查看 ip_vs 版本信息
cat /proc/net/ip_vs
c.安装ipvsadm管理工具
dnf install -y ipvsadm
d.开启路由转发规则
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
e.配置负载分配策略
ipvsadm -A -t 192.168.42.128:80 -s rr
ipvsadm -a -t 192.168.42.128:80 -r 192.168.16.143:80 -m -w 1
ipvsadm -a -t 192.168.42.128:80 -r 192.168.16.144:80 -m -w 1
ipvsadm -ln
4.配置节点服务器(web1、web2)
a.安装httpd,创建测试网页
dnf -y install httpd
#创建测试网页
#web1节点
echo "This is web1" > /var/www/html/index.html
#web2节点
echo "This is web2" > /var/www/html/index.html
b.启动httpd服务
systemctl start httpd
systemctl enable httpd
c.修改节点服务器的网关,指向lvs调度器的192.168.16.142(模拟的内网网卡)
nmcli con mod ens33 ipv4.gateway 192.168.16.142
nmcli con up ens33
ip route
5.测试LVS群集(本机访问)
C:\Users\Y>curl 192.168.42.128
This is web2
C:\Users\Y>curl 192.168.42.128
This is web1
C:\Users\Y>curl 192.168.42.128
This is web2
C:\Users\Y>curl 192.168.42.128
This is web1
6.使用NFS发布共享资源(nfs上)
a.安装nfs-utils、rpcbind软件包
dnf -y install rpcbind nfs-utils
b.设置共享目录
mkdir -p /opt/wwwroot
vi /etc/exports
/opt/wwwroot 192.168.16.0/24(rw,sync,no_root_squash)
c.启动NFS共享目录
systemctl start nfs rpcbind
systemctl enable nfs rpcbind
d.查看本机发布的NFS共享目录
showmount -e
7.在客户机中访问NFS共享资源
a.安装rpcbind软件包(web1、web2)
dnf -y install rpcbind nfs-utils
b.手动挂载NFS共享目录(web1、web2)
mount 192.168.16.145:/opt/wwwroot /var/www/html
c.NFS创建测试文件(nfs上)
ls /opt/wwwroot/
echo 'this is NFS' > /opt/wwwroot/index.html
d. fstab自动挂载设置(web1、web2)
ls /opt/wwwroot/
echo 'this is NFS' > /opt/wwwroot/index.html
e.访问测试
C:\Users\Y>curl 192.168.42.128
this is NFS
C:\Users\Y>curl 192.168.42.128
this is NFS
C:\Users\Y>curl 192.168.42.128
this is NFS