六章——LVS负载均衡群集(应用——linux防护与群集)

2023-11-09 08:59

本文主要是介绍六章——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以数字的形式显示地址、端口等信息
-tvip地址及tcp端口
-s负载调度算法(轮询rr 、加权轮询wrr 、最少连接lc 、加权最少连接 wlc)
-S或--save保存虚拟服务器规则
-rrip地址及端口()
-g | -m | -iDR 模式   |   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:ens33192.168.1.1/24C-1:ens37200.1.1.1/24C-1:ens37:0200.1.1.100
web1:ens33192.168.1.4/24web1:ens37200.1.1.10/24web1:lo:0200.1.1.100
web2:ens33192.168.1.6/24web2:ens37200.1.1.20/24web2:lo:0200.1.1.100
web3:ens33192.168.1.7/24web3:ens37200.1.1.30/24web3:lo:0200.1.1.100
NFS:ens33192.168.1.8/24NFS: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:ens33192.168.1.4/24外网web1:ens37200.1.1.10/24群集web1:lo:0200.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:ens33192.168.1.6/24web2:ens37200.1.1.20/24web2:lo:0200.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防护与群集)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/375192

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal