LVS 负载均衡集群

目录

LVS负载均衡群集部署

1.DR模式

1.配置负载调度器

2.部署共享存储nfs服务器

3.配置节点服务器

2.NAT模式

0.虚拟机预览

1.部署共享存储(NFS服务器)

2.web节点服务器

1.第一台web节点服务器

2.第二台web节点服务器

3.配置负载调度器 NAT

1.配置SNAT转发规则

2.加载LVS内核模块

3. 安装ipvsadm 管理工具

4.配置负载分配策略


LVS调度器用的调度方法基本分为两类:
固定调度算法:rr,wrr,dh,sh
rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

动态调度算法:wlc,lc,lblc
wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS负载均衡群集部署

1.DR模式

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

1.配置负载调度器

modprobe ip_vs

cat /proc/net/ip_vs

yum -y install ipvsadm
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.64.100
NETMASK=255.255.255.255
# 配置虚拟 IP 地址

ifup ens33:0
ifconfig ens33:0

LVS 负载均衡集群_第1张图片

vim /etc/sysctl.conf
# 编辑内核参数
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p
# 刷新参数

LVS 负载均衡集群_第2张图片

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm


ipvsadm -C
ipvsadm -A -t 192.168.64.100:80 -s rr
ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.40:80 -g
ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.50:80 -g
ipvsadm

ipvsadm -ln
# 查看节点状态

LVS 负载均衡集群_第3张图片

2.部署共享存储nfs服务器

yum -y install nfs-utils rpcbind
mkdir /opt/pc /opt/mo
chmod 777 /opt/pc /opt/mo

vim /etc/exports

/usr/share *(ro,sync)
/opt/pc 192.168.80.0/24(rw,sync)
/opt/mo 192.168.80.0/24(rw,sync)
# 配置nfs共享文件

systemctl start rpcbind.service
systemctl start nfs.service

LVS 负载均衡集群_第4张图片

3.配置节点服务器

给2个节点服务器配置虚拟网卡(两个节点进行以下操作)

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
		
vim ifcfg-lo:0

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.64.100
NETMASK=255.255.255.255

systemctl restart network
ifconfig lo:0
route add -host 192.168.64.100 dev lo:0

vim /etc/rc.local
/sbin/route add -host 192.168.64.100 dev lo:0
vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd

第一个节点服务器

mkdir /var/www/html -p
mount.nfs 192.168.64.20:/opt/pc /var/www/html
echo 'this is pc web!' > /var/www/html/index.html

第二个节点服务器 

mkdir /var/www/html -p
mount.nfs 192.168.64.20:/opt/mo /var/www/html
echo 'this is mo web!' > /var/www/html/index.html

LVS 负载均衡集群_第5张图片

2.NAT模式

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。
 

0.虚拟机预览

1.部署共享存储(NFS服务器)

yum install nfs-utils rpcbind -y
# 安装nfs

systemctl start rpcbind.service
systemctl start nfs.service
# 启动

systemctl enable nfs.service
systemctl enable rpcbind.service
# 设为开机自启
mkdir /opt/pc /opt/ben
chmod 777 /opt/pc /opt/ben
# 创建目录并给予权限

echo 'this is pc web!' > /opt/pc/index.html
echo 'this is ben web!' > /opt/ben/index.html
# 设置网页内容
vim /etc/exports
# 输入以下内容

/usr/share *(ro,sync)
/opt/pc 192.168.64.0/24(rw,sync)
/opt/ben 192.168.64.0/24(rw,sync)

exportfs -rv
# 发布共享

LVS 负载均衡集群_第6张图片

2.web节点服务器

yum install httpd -y
# 安装httpd

systemctl start httpd.service
systemctl enable httpd.service
# 启动并设为开机自启
yum install nfs-utils rpcbind -y
# 安装nfs

showmount -e 192.168.64.50
# 查询NFS服务器上已经导出的所有文件系统

systemctl start rpcbind
systemctl enable rpcbind
# 启动并开机自启

1.第一台web节点服务器

mount.nfs 192.168.64.50:/opt/pc /var/www/html
# 将nfs服务器的pc目录挂载到/var/www/html

vim /etc/fstab
# 修改配置文件以永久挂载
192.168.64.50:/opt/pc  /var/www/html        nfs     defaults,_netdev     0         0
# nfs服务器共享目录     挂载到本地的位置  文件系统类型     挂载选项      转储频率  自检次序

2.第二台web节点服务器

mount.nfs 192.168.64.50:/opt/ben /var/www/html
# 将nfs服务器的ben目录挂载到/var/www/html

vim /etc/fstab
# 修改配置文件以永久挂载
192.168.64.50:/opt/ben  /var/www/html       nfs     defaults,_netdev     0         0
# nfs服务器共享目录     挂载到本地的位置  文件系统类型     挂载选项      转储频率  自检次序

3.配置负载调度器 NAT

1.配置SNAT转发规则

vim /etc/sysctl.conf
# 修改配置文件
net.ipv4.ip_forward = 1

sysctl -p
# 读取变量

iptables -t nat -F
# 清空nat表

iptables -F
# 删除默认链

iptables -t nat -A POSTROUTING -s 192.168.64.0/24 -o ens36 -j SNAT --to-source 12.0.0.1
# 设置snat链

LVS 负载均衡集群_第7张图片

2.加载LVS内核模块

modprobe ip_vs					
# 加载 ip_vs模块

cat /proc/net/ip_vs				
# 查看 ip_vs版本信息

LVS 负载均衡集群_第8张图片

3. 安装ipvsadm 管理工具

yum -y install ipvsadm
# 安装ipvsadm 管理工具

ipvsadm-save > /etc/sysconfig/ipvsadm
# 启动服务前须保存负载分配策略

systemctl start ipvsadm.service

4.配置负载分配策略

ipvsadm -C 					
# 清除原有策略

ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.64.30:80 -m -w 1
ipvsadm -a -t 12.0.0.1:80 -r 192.168.64.40:80 -m -w 1

ipvsadm						
# 启用策略

LVS 负载均衡集群_第9张图片

ipvsadm -ln					
# 查看节点状态,Masq代表 NAT模式
ipvsadm-save > /opt/ipvsadm						
# 保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm

LVS 负载均衡集群_第10张图片

你可能感兴趣的:(lvs,负载均衡,运维)