六章——LVS负载均衡群集(应用——linux防护与群集)
三期总目录链接
目录
一、LVS群集应用基础
(一)群集技术概述
1、群集类型
2、负载均衡的分成介绍
3、负载均衡的工作模式
(二)LVS虚拟服务器相关介绍
LVS的负载调度算法
二、构建LVS负载均衡群集
(一)案例:地址转换模式(LVS-NAT)
1、准备环境
2、在c-1机器:LVS服务器上操作
3、NFS服务器:共享目录
3、web服务器池
4、验证
(二)案例:直接路由路由(VLS-DR)
1、LVS服务器
2、配置节点服务器
3、NFS服务器不用做配置
4、测试
复习题
一、LVS群集应用基础
(一)群集技术概述
由多台主机(至少两台节点服务器)构成,但对外只表现为一个整体,只提供一个访问接口(域名或ip)
1、群集类型
1)、负载均衡(Load Balancer)群集:提高应用系统的响应能力。获得高并发、高负载(LB)的整体性能。例(DNS轮询、应用层交换、反向代理)等。
2)、高可用(High Available)群集:提高应用系统的可靠性。例(故障切换、双击热备、多机热备)工作方式:双工:所有节点同时在线;主从:主节点在线,从节点在主节点发生故障时自动切换为主节点。
3)、高性能运算(High Performance Computer)群集(用的较少):提高应用系统的CPU运算速度,扩展硬件资源和分析能力。例(云计算、网格计算),依赖于‘分布式计算’‘并行计算’。必要时可以合并使用几种群集模式
2、负载均衡的分成介绍
第一层 负载调度器(Load Balancer或Director)(至少一个) |
访问这个群集系统的唯一入口。对外为VIP地址(虚拟ip/群集ip地址)。通常配置主、从双机热备,确保高可用性 |
第二层 服务器池(Server Pool)(大量真实服务器) |
每个节点都有独立的rip(真实ip),只处理调度器分发的客户机请求。 某个节点暂时失效时,负责调度器的容错机制将其隔离。错误排除后再重新纳入服务器池 |
第三层 共享存储(Share Storage) |
为服务器池提供稳定、一致的文件存取服务,确保群集的统一性 可使用NAS设备或提供NFS共享服务的专用服务器 |
3、负载均衡的工作模式
地址转换(NAT)模式 |
1、调度器为服务器节点的网关,客户机的访问入口和各节点的回应出口 2、服务器和调度器使用私有ip,在同一物理网络。安全性优于下两个 |
|
IP隧道(TUN)模式 |
1、开放式网络结构 2、调度器为客户机访问入口 3、节点服务器都具有独立的公网ip,分散在不同的地方,直接回应客户机 4、通过专用ip隧道与调度器互相通信 |
|
直接路由(DR)模式 |
1、半开放式 2、调度器只为客户机访问入口 3、节点服务器集中在一起,和调度器在同一物理网络。通过本地连接 4、节点服务器直接回应客户机 |
|
nat和DE、TUN的区别 | nat只需要一个公网ip,最易用,安全性好,许多硬件负载均衡设备采用 | |
DR和TUN,负载能力更强大,适用范围更广,节点安全性稍差 |
(二)LVS虚拟服务器相关介绍
Linux Virtual Server是针对Linux内核开发的一个负载均衡项目,由我国的章文嵩博士在1998年5月创建,LVS上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法。LVS现在已成为Linux内核的一部分,默认编译为ip_vs模块。
LVS的负载调度算法 |
|
轮询(Round Robin) | 按照顺序轮流分配,不管实际连接数和系统负载 |
加权轮询(Weighted Round Robin) | 自动查询各节点的负载情况,动态调整其权重 |
最少连接(Least Connections) | 优先分配给连接数最少的节点 |
加权最少连接(Weighted Least Connections) | 服务器节点性能差异大时,自动调整权重。权重高的承担更大比例的活动连接负载 |
ipvsadm管理工具选项说明 | |
-A | 添加虚拟服务器节点 |
-D | 删除虚拟服务器节点 |
-a | 添加真实服务器 |
-d | 删除真实服务器 |
-C | 清空所有配置 |
-c | 显示ipvs中目前存在的连接 |
-L | -l | 查看LVS虚拟服务(可结合-n使用) |
-R 或--restore | 恢复虚拟服务规则 |
-n | 以数字的形式显示地址、端口等信息 |
-t | vip地址及tcp端口 |
-s | 负载调度算法(轮询rr 、加权轮询wrr 、最少连接lc 、加权最少连接 wlc) |
-S或--save | 保存虚拟服务器规则 |
-r | rip地址及端口() |
-g | -m | -i | DR 模式 | nat模式 | TUN模式 |
-w | 设置权重(0时暂停节点) |
--stats | 显示历史转发消息统计(累加值) |
--timeout | 显示配置的tcp/tcpfin/udp超时时间 |
二、构建LVS负载均衡群集
(一)案例:地址转换模式(LVS-NAT)
1、准备环境
本次实验使用5台CentOS7服务器:C-1、web1、web2、web3、NFS地址如上图
LVS调度器作为Web服务器池的网关(web服务需要设置网关:192.168.1.1)
使用轮询(rr)调度算法
全网ping通设置过程省略
2、在c-1机器:LVS服务器上操作
[root@C-1 ~]# modprobe ip_vs #加载模块
[root@C-1 ~]# cat /proc/net/ip_vs #确认内核对LVS的支持
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn[root@C-1 ~]# vim /etc/sysctl.conf #启用路由转发
......
..
net.ipv4.ip_forward = 1 #添加内容;保存退出[root@C-1 ~]# sysctl -p
net.ipv4.ip_forward = 1
2.2、使用ipvsadm工具:LVS群集管理工具
[root@C-1 ~]# yum -y install ipvsadm #安装ipvsadm工具
.......
...
已安装:ipvsadm.x86_64 0:1.27-7.el7 完毕![root@C-1 ~]# ipvsadm -v #查看版本信息
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
创建虚拟服务器,VIP必须是本机真实ip地址
[root@C-1 ~]# ipvsadm -A -t 200.1.1.1:80 -s rr
[root@C-1 ~]# ipvsadm -a -t 200.1.1.1:80 -r 192.168.1.4:80 -m -w 1 #添加节点服务器web1
[root@C-1 ~]# ipvsadm -a -t 200.1.1.1:80 -r 192.168.1.6:80 -m -w 1 #添加节点服务器web2
[root@C-1 ~]# ipvsadm -a -t 200.1.1.1:80 -r 192.168.1.7:80 -m -w 1 #添加节点服务器web3
删除节点服务器
[root@C-1 ~]# ipvsadm -d -r 192.168.1.4:80 -t 200.1.1.1:80 #删除节点服务器web1
[root@C-1 ~]# ipvsadm -d -r 192.168.1.6:80 -t 200.1.1.1:80 #删除节点服务器web2
删除整个虚拟服务器
[root@C-1 ~]# ipvsadm -D -t 200.1.1.1:80 #删除整个虚拟服务器
保存策略
[root@C-1 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm # 把ipvsadm的输出结果保存到/etc/sysconfig/ipvasdm文件中
[root@C-1 ~]# cat /etc/sysconfig/ipvsadm #查看
-A -t C-1:http -s rr
-a -t C-1:http -r 192.168.1.4:http -m -w 1
-a -t C-1:http -r 192.168.1.6:http -m -w 1
-a -t C-1:http -r 192.168.1.7:http -m -w 1
查看群集节点状态 Masq----地址伪装NAT模式 Route---DR模式
[root@C-1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.1.1.1:80 rr-> 192.168.1.4:80 Masq 1 0 0 -> 192.168.1.6:80 Masq 1 0 0 -> 192.168.1.7:80 Masq 1 0 0
[root@C-1 ~]# systemctl enable ipvsadm #开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/ipvsadm.service to /usr/lib/systemd/system/ipvsadm.service.
[root@C-1 ~]# systemctl start ipvsadm #启动服务
3、NFS服务器:共享目录
NFS:是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用NFS协议.客户机可以像访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议;依赖于RPC(远端过程调用),需安装nfs-utils(NFS共享发布和访问)、rpcbind(rpc支持)软件包,系统服务:nfs、rpcbind,共享配置文件:/etc/exports
[root@NFS ~]# yum -y install nfs-utils rpcbind #安装nfs-utils、rpcbind软件包
......
...
[root@NFS ~]# systemctl enable nfs #开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@NFS ~]# systemctl enable rpcbind #开机自启动
设置共享目录
文件内容默认为空(无任何共享) 语法结构: 目录位置 客户机地址(权限操作)注意标点符号
[root@NFS ~]# mkdir -p /opt/web1 /opt/web2 /opt/web3 #创建共享目录
[root@NFS ~]# vim /etc/exports #配置nfs共享文件/opt/web1 192.168.1.4(rw,sync,no_root_squash) #rw:读写;sync:同步写入;no_root_squash:客户机以root身份访问时赋予本地root权限
/opt/web2 192.168.1.6(rw,sync,no_root_squash)
/otp/web3 192.168.1.7(rw,sync,no_root_squash) #保存退出[root@NFS ~]# systemctl start rpcbind #先启动rpcbind
[root@NFS ~]# systemctl start nfs #在启动nfs[root@NFS ~]# netstat -anput | grep rpcbind
udp 0 0 0.0.0.0:620 0.0.0.0:* 2141/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 2141/rpcbind
udp6 0 0 :::620 :::* 2141/rpcbind
udp6 0 0 :::111 :::* 2141/rpcbind [root@NFS ~]# showmount -e 查看本机发布的NFS共享目录
Export list for NFS:
/opt/web3 192.168.1.7
/opt/web2 192.168.1.6
/opt/web1 192.168.1.4
查看格式: showmount -e 服务器ip
[root@C-1 ~]# showmount -e 192.168.1.8 从LVS服务器上查看服务器的共享情况
Export list for 192.168.1.8:
/opt/web3 192.168.1.7
/opt/web2 192.168.1.6
/opt/web1 192.168.1.4
3、web服务器池
3.1 web1上安装
[root@web1 ~]# yum -y install httpd rpcbind nfs-utils #安装http和rpcbind nfs-utils
配置nfs共享存储客户端
[root@web1 ~]# systemctl enable rpcbind
[root@web1 ~]# systemctl start rpcbind
[root@web1 ~]# showmount -e 192.168.1.8
Export list for 192.168.1.8:
/opt/web3 192.168.1.7
/opt/web2 192.168.1.6
/opt/web1 192.168.1.4
与挂载本地文件系统有所不同 :mount NFS的ip地址:NFS共享路径 本地路径(设备位置处应指出NFS地址)
[root@web1 ~]# mount 192.168.1.8:/opt/web1 /var/www/html #将NFS服务器共享的/opt/web1目录挂载到本地目录/var/www/html
[root@web1 ~]# tail -l /etc/mtab #确认挂载结果
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/mapper/centos-root / xfs rw,relatime,attr2,inode64,noquota 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12937 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
/dev/sr0 /media/cdrom iso9660 ro,relatime 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=48364k,mode=700 0 0
192.168.1.8:/opt/web1 /var/www/html nfs4 rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.4,local_lock=none,addr=192.168.1.8 0 0[root@web1 ~]# echo "<h1>web1 192.168.1.4399小游戏</h1>" > /var/www/html/index.html #编辑web1测试首页
[root@web1 ~]# vim /etc/fstab #设置自动挂载
......
....
192.168.1.8:/opt/web1 /var/www/html nfs defaults,_netdev 0 0 #在最后输入
文件系统为: nfs ;挂载中的参数:_netdev 设备需要网络 ;若添加 soft 、intr参数可以实现软挂载,允许在网络中断时放弃挂载
[root@web1 ~]# systemctl enable httpd #开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@web1 ~]# systemctl start httpd #启动http
3.2 web2上安装(同web1)
[root@web2 ~]# yum -y install httpd rpcbind nfs-utils #安装http和rpcbind nfs-utils
配置nfs共享存储客户端
[root@web2 ~]# systemctl enable rpcbind
[root@web2 ~]# systemctl start rpcbind
[root@web2 ~]# showmount -e 192.168.1.8
Export list for 192.168.1.8:
/opt/web3 192.168.1.7
/opt/web2 192.168.1.6
/opt/web1 192.168.1.4
与挂载本地文件系统有所不同 :mount NFS的ip地址:NFS共享路径 本地路径(设备位置处应指出NFS地址)
[root@web2 ~]# mount 192.168.1.8:/opt/web2 /var/www/html #挂载
[root@web2 ~]# tail -l /etc/mtab
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/mapper/centos_c--06-root / xfs rw,relatime,attr2,inode64,noquota 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=35,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13107 0 0
/dev/sr0 /media/cdrom iso9660 ro,relatime 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=48364k,mode=700 0 0
192.168.1.8:/opt/web2 /var/www/html nfs4 rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.6,local_lock=none,addr=192.168.1.8 0 0[root@web2 ~]# echo "<h1>web2 192.168.1.6今天是大太阳</h1>" > /var/www/html/index.html #编辑首页web2
[root@web2 ~]# vim /etc/fstab
......
....
192.168.1.8:/opt/web1 /var/www/htm2 nfs defaults,_netdev 0 0 #在最后输入
文件系统为: nfs ;挂载中的参数:_netdev 设备需要网络 ;若添加 soft 、intr参数可以实现软挂载,允许在网络中断时放弃挂载
[root@web2 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@web2 ~]# systemctl start httpd
web3(同web1、2步骤略)
4、验证
使用本机访问:http://200.1.1.1 每一次刷新都会切换一次
[root@C-1 ~]# ipvsadm -ln #查看负载分配情况
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.1.1.1:80 rr-> 192.168.1.4:80 Masq 1 0 1 -> 192.168.1.6:80 Masq 1 0 2 -> 192.168.1.7:80 Masq 1 0 1
ActiveConn:活动连接数
InActConn:指除了ESTABLISHED以外的,所有的其它状态的tcp连接 ESTABLISHED:意思是建立连接。表示两台机器正在通信。
(二)案例:直接路由路由(VLS-DR)
在DR模式的群集中,LVS负载调度器作为群集的访问入口,不作为网关使用,web池中的所有节点服务器都各自接入lnternet,发送给web响应数据包不需要经过LVS负载调度器,继上面的实验修
使用上次实验环境:ip地址部署
内网地址配置 | 外网地址配置 | 群集地址配置 | |||
C-1:ens33 | 192.168.1.1/24 | C-1:ens37 | 200.1.1.1/24 | C-1:ens37:0 | 200.1.1.100 |
web1:ens33 | 192.168.1.4/24 | web1:ens37 | 200.1.1.10/24 | web1:lo:0 | 200.1.1.100 |
web2:ens33 | 192.168.1.6/24 | web2:ens37 | 200.1.1.20/24 | web2:lo:0 | 200.1.1.100 |
web3:ens33 | 192.168.1.7/24 | web3:ens37 | 200.1.1.30/24 | web3:lo:0 | 200.1.1.100 |
NFS:ens33 | 192.168.1.8/24 | NFS:ens37 | 没有地址 | NFS | 没有地址 |
1、LVS服务器
外网ens37 200.1.1.1/24 ; 群集 ens37:0 200.1.1.100
[root@C7--01 ~]# cd /etc/sysconfig/network-scripts/
[root@C7--01 network-scripts]# cp ifcfg-ens37 ifcfg-ens37:0
[root@C7--01 network-scripts]# vim ifcfg-ens37:0TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37:0 #修改网卡名称
DEVICE=ens37:0 #修改网卡名称
ONBOOT=yes
IPADDR=200.1.1.100 #修改为群集地址
PREFIX=24
GATEWAY=200.1.1.254 #网关可有可无
IPV6_PRIVACY=no保存退出[root@C7--01 network-scripts]# ifup ens37:0
[root@C7--01 network-scripts]# ifconfig ens37:0
ens37:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 200.1.1.100 netmask 255.255.255.0 broadcast 200.1.1.255ether 00:0c:29:6d:c2:fc txqueuelen 1000 (Ethernet)
1.1、对于 DR 集群来说,由于由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应
[root@C7--01 ~]# vi /etc/sysctl.conf.......
...
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens37.send_redirects = 0保存退出[root@C7--01 ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens37.send_redirects = 0
1.2 配置LVS-DR群集策略
[root@C7--01 ~]# ipvsadm -C #清除原有策略
[root@C7--01 ~]# ipvsadm -ln #查看
[root@C7--01 ~]# ipvsadm -A -t 200.1.1.100:80 -s rr
[root@C7--01 ~]# ipvsadm -a -t 200.1.1.100:80 -r 200.1.1.10 -g -w 1 #添加节点服务器200.1.1.10
[root@C7--01 ~]# ipvsadm -a -t 200.1.1.100:80 -r 200.1.1.20 -g -w 1
[root@C7--01 ~]# ipvsadm -a -t 200.1.1.100:80 -r 200.1.1.30 -g -w 1[root@C7--01 ~]# ipvsadm-save #保存配置
-A -t C7--01.1:http -s rr
-a -t C7--01.1:http -r 200.1.1.10:http -g -w 1
-a -t C7--01.1:http -r 200.1.1.20:http -g -w 1
-a -t C7--01.1:http -r 200.1.1.30:http -g -w 1
[root@C7--01 ~]# systemctl enable ipvsadm[root@C7--01 ~]# ipvsadm -ln #查看节点状态,Route代表 DR模式
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.1.1.100:80 rr-> 200.1.1.10:80 Route 1 0 0 -> 200.1.1.20:80 Route 1 0 0 -> 200.1.1.30:80 Route 1 0 0
2、配置节点服务器
内网web1:ens33 | 192.168.1.4/24 | 外网web1:ens37 | 200.1.1.10/24 | 群集web1:lo:0 | 200.1.1.100 |
web1:确认ens33网卡确认ens37网卡是否已经配置完成
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #直接新建lo:0虚拟接口DEVICE=lo:0
ONBOOT=yes
IPADDR=200.1.1.100 #群集vip虚拟ip
NETMASK=255.255.255.255 #必须为32位全1掩码保存退出[root@web1 ~]# ifup lo:0
[root@web1 ~]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 200.1.1.100 netmask 255.255.255.255loop txqueuelen 1 (Local Loopback)
2.1 调整/proc内核参数,关闭ARP响应
[root@web1 ~]# vi /etc/sysctl.conf......
....
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1保存退出[root@web1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
解释:
arp_ignore
通常client和我们的主机不在同一网段中,当request到达路由器后,路由器就会发送arp广播寻找vip对应的mac地址,由于rs的lo:vip也绑定了vip,那么所有的rs都会受到arp广播,这是不应该的,因为我们的目的是只让vip收到
0:表示对于arp请求,任何配置在本地的目的IP地址都会回应,不管你有多少网卡,虚拟接口等等,只要在同一网段都会回应。这也是linux中默认的
1:表示如果arp请求的目的地址ip,不是该arp请求包进入的接口的ip地址,那么就不回应,显然arp包是从eth37口进来的,所以lo:vip就不回回应了
arp_announce
当rs向client发送reply包时,肯定要经过内网的路由器,那么它就会发送一个arp请求包给路由器来获取路由器的mac地址。关键就在这个arp请求包里,这个arp请求包里会包含rs自己的ip和mac,注意这个ip是之前client的request包的目的ip(因为rs在处理完请求后将source和destination对调返回给client),也就是vip。路由器在收到这arp请求后就会更新自己的缓存,此时arp缓存vip对应的就是rs的mac,在有client进来的request就找不到调度器了。而正确的应该vip对应调度器的mac
0:表示用ip包的source地址来设置arp请求的source地址
1:表示不适用ip包的source地址来设置arp请求的source地址,如果ip包source地址和端口的ip在同一网段,仍然使用ip包的source地址
2:不使用ip包的source地址来设置arp请求的source地址,而是由系统选择最好的接口来发送
2.2 添加到群集IP地址的本地路由记录
[root@web1 ~]# vi /etc/rc.local #添加VIP本地访问路由......
...
/sbin/route add -host 200.1.1.100 dev lo:0 #添加内容 群集ip地址 本地虚拟网卡lo:0 保存退出[root@web1 ~]# route add -host 200.1.1.100 dev lo:0
2.3、web2:确认ens33网卡确认ens37网卡是否已经配置完成
web2:ens33 | 192.168.1.6/24 | web2:ens37 | 200.1.1.20/24 | web2:lo:0 | 200.1.1.100 |
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #直接新建lo:0虚拟接口DEVICE=lo:0
ONBOOT=yes
IPADDR=200.1.1.100 #群集vip虚拟ip
NETMASK=255.255.255.255 #必须为32位全1掩码保存退出[root@web1 ~]# ifup lo:0
[root@web1 ~]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 200.1.1.100 netmask 255.255.255.255loop txqueuelen 1 (Local Loopback)
2.4、 调整/proc内核参数,关闭ARP响应
[root@web1 ~]# vi /etc/sysctl.conf......
....
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1保存退出[root@web1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
2.5 添加到群集IP地址的本地路由记录
[root@web1 ~]# vi /etc/rc.local #添加VIP本地访问路由......
...
/sbin/route add -host 200.1.1.100 dev lo:0 #添加内容 群集ip地址 本地虚拟网卡lo:0 保存退出[root@web1 ~]# route add -host 200.1.1.100 dev lo:0
2.6、web3同:web1 web2
3、NFS服务器不用做配置
4、测试
访问 http://200.1.1.100
[root@C7--01 ~]# ipvsadm -ln #查看节点状态
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 200.1.1.100:80 rr-> 200.1.1.10:80 Route 1 0 3 -> 200.1.1.20:80 Route 1 1 3 -> 200.1.1.30:80 Route 1 1 3
复习题
1. 常见的群集类型包括哪几种?
三种:负载均衡群集、高可用群集、高性能运算群集
2. 图示负载均衡群集的分层结构
3. 简述LVS负载均衡群集的NAT模式和DR模式的区别?
NAT模式:只需要一个公网ip,最易用,安全性好,许多硬件负载均衡设备采用
DR模式:DR和TUN,负载能力更强大,适用范围更广,节点安全性稍差
4. LVS负载均衡群集的常用调度算法包含哪几种?
四种:轮询、加权轮询、 最少连接、 加权最少连接
5. 在Linux系统中执行ipvsadm -A -t 172.16.16.172:80 -s rr命令的作用是什么?
对TCP80端口提供负载分流服务,使用的调度为轮询
6. 在使用ipvsadm命令添加集群节点时使用-m、-g、-i分别表示什么含义?
分别表示: -g 使用DR 模式 | -m 使用nat模式 | -i 使用TUN模式
7. 在Linux系统中执行showmount -e 192.168.7.250命令的作用是什么
查看NFS服务器共享了哪些目录
8. 在 /etc/sysctl.conf配置文件中添加net.ipv4.ip_forward = 1配置项的作用是?
启用路由转发
9. 在Linux系统中执行什么命令可以清除ipvsadm所设置的负载分配策略?
执行 ipvsadm -C 可以清空所有的负载分配策略
10. 构建LVS-DR群集时,在调度器与节点服务器中的/proc参数调整有何区别?
DR群集模式:LVS负载调度器和节点需要共同VIP地址,应关闭Linux内核的重定向参数响应
节点服务器:同样要有VIP地址,但此地址仅用作发送Web响应数据包的原地址,不需要监听客户机的访问请求(改由调度器监听毕分发)
六章——LVS负载均衡群集(应用——linux防护与群集)相关推荐
- 四章——Nginx网站服务(应用——linux防护与群集)
三期总目录链接 目录 一.Nginx服务 1.安装及运行控制 2.配置文件nginx.conf 2.1全局配置 解释: 2.2 I/O事件配置 解释: 2.3 HTTP配置 解释: 3 ...
- linux加权_「学员笔记」LINUX随堂笔记(十一):LVS负载均衡群集
第12章 LVS负载均衡群集 一.群集概述 1.1 群集的类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机,根据群集所提 ...
- Linux企业运维——LVS负载均衡
Linux企业运维--LVS负载均衡 文章目录 Linux企业运维--LVS负载均衡 一.LVS简介 二.DR模式 三.使用DR模式实现负载均衡 四.问题解决 五.LVS的10个调度算法简介 一.LV ...
- 超详细!一文带你了解 LVS 负载均衡集群!
作者 | JackTian 来源 | 杰哥的IT之旅(ID:Jake_Internet) 前言 如今,在各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求也越来越高,单台服务 ...
- LVS 负载均衡集群(一)| 超详细!一文带你了解 LVS 负载均衡集群
前言 如今,在各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求.当然了,除了使用性价比高的设备和专用负载分流设备外,还有 ...
- LVS负载均衡集群概念
LVS负载均衡集群概念 一.群集的含义 集群.群集 由多台主机构成,但对外,只表现为一个整体,只提供一个访问入口(域名或IP),相当于一台大型计算机. 1.群集存在的必要 互联网应用中,随着站点对硬件 ...
- LVS负载均衡和nat模式的实操
LVS理论和实操 一.企业群集应用概述 1.群集的含义 2.问题 3.解决方法 总结: 二.集群的分类 三.负载均衡群集架构 四.LVS负载均衡群集工作模式分析 1.负载均衡群集是目前企业用得最多的群 ...
- LVS负载均衡之流量转发过程、lvs简介
一.网页打开链路过程 客户通过本地设置dns获得hosts文件,dns解析CDN(需要厂家购买的服务或者自研),CDN进入企业内部的VIP上,一般公司会把VIP强制到路由器上,路由器通过OSPF协议走 ...
- 集群(一)——LVS负载均衡集群
集群(一)--LVS负载均衡集群 一.企业群集应用 1.群集的含义 2.问题出现 3.解决办法 4.根据群集所针对的目标差异进行分类 ①.负载均衡群集 ②.高可用群集 ③.高性能运算群集 二.负载均衡 ...
- Linux LVS 负载均衡群集
目录 Linux LVS 负载均衡群集 一.集群与分布式 集群的含义 LVS 模型 系统性能扩展方式 群集的三种类型 负载均衡群集 高可用群集 高性能运算群集 LVS 的负载调度算法 分布式系统 集群 ...
最新文章
- 2022-2028年中国HDPE膜行业市场研究及投资发展分析报告
- Spring Boot 2.x中如何使用Log4j2记录日志
- 模拟栈 java_Java 模拟栈结构
- rdp协议打开 windows_ubuntu客户端使用RDP协议连接windows服务器
- 用同一uuid作为两个字段的值_这两个小技巧,让SQL语句不仅躲了坑,还提升了 1000 倍...
- C语言入门基础——Brute-Force算法
- yuv420(planer) to bgr24 to bmp
- Spring Boot(7)---构建系统和依赖管理
- 我的第一个C++程序——方块游戏 v1.0
- Excel Cookbook by Eric
- 点线面的特点_黑白装饰画——点线面 设计入门必备
- SDUST 作业10 Problem D 魔方阵
- 砍掉中国90%的科研人员,对科技发展的影响微乎其微,某教授酒后真言!
- 优化大中型企业Internet连接
- 深度学习实现视频分类的6种方法
- ThinkPHP5.1根据时间范围查询这个期限内生日的人
- HP惠普打印机驱动安装详解
- 姓氏头像制作小工具超多制作模板的姓氏头像生成器微信小程序源码最新版
- WHQL 认证服务过程
- CodeVs 1148 传球游戏
热门文章
- pcd格式点云转bin格式点云
- /bin/sh: -c: line 20: syntax error: unexpected end of file
- 恶意软件向云伸出魔爪,云端智能如何谈起?
- 2018年内蒙古生产安全事故数量、死亡人数双下降
- requests对接三要素实名认证接口
- 投资平台中宏涌晟投资理财时的几个小技巧
- 问题 1118: Tom数
- 防身共享-穷人救命五十秘方
- React Router v6 传参
- Web大学生网页作业成品 基于HTML+CSS+JavaScript---个人介绍5页 带视频 带报告