LVS负载均衡群集

目录

企业集群应用概述

群集的含义

解决办法

根据群集所针对的目标差异,可分为三种类型

负载均衡群集(Load Balance Cluster)

群集技术可用

集群的类型

负载均衡群集(Load Balance Cluster)

高可用群集(High Availability Cluster)

高性能运算群集(HighPerformanceComputerCluster)

负载均衡群集架构

负载均衡的结构

负载均衡群集工作模式分析

MAT模式

地址转换

DR模式

直接路由

实验环境

在101上添加一块网卡修改新网卡的IP地址,LVS调度器

修改客户端的IP地址

测试连接客户端主机,如果可以ping通说明连接没有问题,如果ping不通说明连接的IP地址有错误

配置web节点服务器

在两个web节点安装httpd,并创建测试页,同步102、103两个主机

取消俩台主机的同步在102、103分别创建一个index的文件输入不一样的内容,

分别来到104主机来测试一下俩主机配置的文件是否有问题

分别修改102、103主机上的网关地址为192.168.10.101

配置负载调度器

书写IOS策略

添加服务节点

删除集群

删除某个节点

将当前 IPVS 的配置保存到文件

在LVS上查看调度信息

linux做客户端时可以用以下代码来测试

NFS共享存储服务

在104主机上使用NFS发布共享资源,先安装相关软件包nfs-utils和rpcbind

在配置文件/etc/exports文件中设置要共享的资源

启动NFS程序

创建共享目录

在web节点上挂载共享目录,在102、103主机上

linux做客户端时1可以用以下代码进行测试


企业集群应用概述

群集的含义

  • Cluster,集群、群集
  • 由多台1主机构成,但对外只表现为一个整体

解决办法

  • 使用价格昂贵的小型机、大型机
  • 使用普通服务器构建服务器群集

根据群集所针对的目标差异,可分为三种类型

  • 负载均衡群集
  • 高可用群集
  • 高性能运算群集

负载均衡群集(Load Balance Cluster)

  • 提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高并发、高负载(LB)的整体性能
  • LB的负载分配依赖于主节点的分流算法

群集技术可用

集群的类型

无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口。根据群集所针对的目标差异,可分为以下三种类型。

负载均衡群集(Load Balance Cluster)

以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延退为目标,获得高并发、高负载的整体性能。例如,“DNS轮询”“应用层交换”“反向代理”等都可用作负载均衡群集。LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。

高可用群集(High Availability Cluster)

以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用的容错效果。例如,“故障切换”“双机热备”“多机热备”等都属于高可用群集技术。HA的工作方式包括双工和主从两种模式。双工即所有节点同时在线:主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。

高性能运算群集(HighPerformanceComputerCluster)

以提高应用系统的CPL运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力。例如,“云计算”“网格计算”也可视为高性能运算的一种。高性能运算群集的高性能依赖于“分布式运算”“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。

负载均衡群集架构

负载均衡的结构

  • 第一层,负载调度器(Load Balancer或Director)
  • 第二层,服务器池(Server Pool)
  • 第三层,共享存储(Share Storage)

负载均衡群集工作模式分析

  • 负载均衡群集
  • 群集的负载均衡调度技术有三种工作模式
  1. 地址转换
  2. IP隧道
  3. 直接路由

MAT模式

地址转换

  • Network Address Translation,简称NAT模式
  • 类似于防火墙的私有网络结构网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
  • 服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

DR模式

直接路由

  • Direct Routing,简称DR模式
  • 采用半开放式的网络模式,与TUN模式的结构类似,但各节点并不是分散在各地1,而是与调度器位于同一个物理网络
  • 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP通道

实验环境

在101上添加一块网卡修改新网卡的IP地址,LVS调度器

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ifconfig          #查看网卡信息
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36     #将 ifcfg-ens33文件复制一份,创建一个新的文件ifcfg-ens36。
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=172.16.16.172           #修改IP地址
NETMASK=255.255.255.0
#GATEWAY=192.168.10.254               #不要网关
DNS1=114.114.114.114
DNS2=8.8.8.8
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=ens36
DEVICE=ens36
ONBOOT=yes
[root@localhost network-scripts]# systemctl restart network       #重启网络服务

修改客户端的IP地址

修改linux客户端的IP地址为172.16.16.200,注释掉网关

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=172.16.16.200
#GATEWAY=192.168.10.254
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig                #查看网卡信息

测试连接客户端主机,如果可以ping通说明连接没有问题,如果ping不通说明连接的IP地址有错误

[root@localhost ~]# ping 172.16.16.200

配置web节点服务器

在两个web节点安装httpd,并创建测试页,同步102、103两个主机

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl stop firewalld                #关闭防火墙设置
[root@localhost ~]# setenforce 0

取消俩台主机的同步在102、103分别创建一个index的文件输入不一样的内容,

102主机
[root@localhost ~]# vim /var/www/html/index.html
test web01
[root@localhost ~]# systemctl start httpd        #分别启动两台服务器的Apache
103主机
[root@localhost ~]# vim /var/www/html/index.html
test web02
[root@localhost ~]# systemctl start httpd        #分别启动两台服务器的Apache

分别来到104主机来测试一下俩主机配置的文件是否有问题

[root@localhost ~]# curl 192.168.10.102
test web01
[root@localhost ~]# curl 192.168.10.103
test web02

分别修改102、103主机上的网关地址为192.168.10.101

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.101
[root@localhost ~]# systemctl restart network

104、NFS不需要连接到互联网当中不用设置网关

来到101主机,安装管理工具

配置负载调度器

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# ipvsadm -v          #查看版本信息
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

书写IOS策略

[root@localhost ~]# ipvsadm-save
[root@localhost ~]# ipvsadm -C     #清空当前的 IPVS 配置。它会移除所有已定义的虚拟服务器和服务。
[root@localhost ~]# ipvsadm -A -t 172.16.16.172:80 -s wrr     #在 IPVS 中添加一个使用加权轮询算法的虚拟服务器,该服务器监听在 172.16.16.172:80 上。

添加服务节点

[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 192.168.10.102:80 -m -w 1
[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 192.168.10.103:80 -m -w 2
[root@localhost ~]# ipvsadm-save          #将当前 IPVS 的配置保存到文件
-A -t localhost.localdomain:http -s wrr
-a -t localhost.localdomain:http -r 192.168.10.102:http -m -w 2
-a -t localhost.localdomain:http -r 192.168.10.103:http -m -w 1
[root@localhost ~]# ipvsadm-save >/opt/aaa.txt


  • ipvsadm: 这是一个用于管理 IP Virtual Server 的命令行工具。
  • -a: 表示添加一个新的虚拟服务器规则。
  • -t 172.16.16.172:80: 指定了目标服务器的虚拟 IP 和端口,即客户端请求将会发送到这个虚拟 IP 的 80 端口。
  • -r 192.168.10.103:80: 指定了实际的后端真实服务器 IP 和端口,即从这个真实 IP 的 80 端口获取服务。
  • -m: 表示使用 masquerading (SNAT) 模式,即源地址转换,后端服务器接收到的请求将显示为来自负载均衡器。
  • -w 1: 指定权重为 1,用于负载均衡算法中确定每个后端服务器的权重。

删除集群

[root@localhost ~]# ipvsadm -D -t192.168.10.172:80 

删除某个节点

[root@localhost ~]# ipvsadm -d -t192.168.10.172:80 -r 192.168.10.103

-s:指定调度算法

rr:轮询

wrr:加权轮询

lc:最小链接数

wlc:加权最小连接数

-A    添加一个新的集群服务;

-E    修改一个己有的集群服务;

-D    删除指定的集群服务;

-a    向指定的集群服务中添加RS及属性;

-e    修改RS属性;

-t    指定为tcp协议;

-u    指定为udp协议;

-s    调度方法,默认为wlc;

-w    指定权重,默认为1;

-g    Gateway, DR模型;

-i    ipip, TUN模型;

-m    masquerade, NAT模型;

-S    保存ipvsadm设定的规则策略,默认保存在/etc/sysconfig/ipvsadm中;

-R    载入己保存的规则策略,默认加载/etc/sysconfig/ipvsadm;

-C    清除所有集群服务;

-Z    清除所有记数器;

-L    显示当前己有集群服务,能通过相应的options查看不同状态信息;

-r          指定真实服务器的地址

将当前 IPVS 的配置保存到文件

[root@localhost ~]# ipvsadm-save        
-A -t localhost.localdomain:http -s wrr
-a -t localhost.localdomain:http -r 192.168.10.102:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.10.103:http -m -w 1
[root@localhost ~]# systemctl enable ipvsadm         #自动加载并运行ipvsadm

在LVS上查看调度信息

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.16.172:80 wrr
  -> 192.168.10.102:80            Masq    1      0          1         
  -> 192.168.10.103:80            Masq    1      1          0       

ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED

InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接

LISTENING状态:服务启动后首先处于侦听(LISTENING)状态。

ESTABLISHED状态:ESTABLISHED的意思是建立连接。表示两台机器正在通信。

CLOSE_WAIT状态:对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

TIME_WAIT状态:我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。

SYN_SENT状态:SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED

上述环境能正常使用后可以就可以开始配置共享存储服务了

linux做客户端时可以用以下代码来测试

[root@localhost ~]# for i in $(seq 10); do curl 172.16.16.172;done

NFS共享存储服务

在104主机上使用NFS发布共享资源,先安装相关软件包nfs-utils和rpcbind

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install nfs-utils rpcbind
 

在配置文件/etc/exports文件中设置要共享的资源

[root@localhost ~]# vim /etc/exports
/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)

[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs

rw 可读写的权限 

ro 只读的权限 

no_root_squash 登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限,这个参数极不安全,不建议使用

root_squash 登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份

all_squash 不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody

sync 资料同步写入到内存与硬盘当中 

async 资料会先暂存于内存当中,而非直接写入硬盘 

insecure 允许从这台机器过来的非授权访问

启动NFS程序

[root@localhost ~]# netstat -anpt | grep nfs
[root@localhost ~]# netstat -anpt | grep rpc
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      11871/rpc.mountd    
tcp        0      0 0.0.0.0:35359           0.0.0.0:*               LISTEN      11861/rpc.statd     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      11837/rpcbind       
tcp6       0      0 :::20048                :::*                    LISTEN      11871/rpc.mountd    
tcp6       0      0 :::111                  :::*                    LISTEN      11837/rpcbind       
tcp6       0      0 :::54525                :::*                    LISTEN      11861/rpc.statd

创建共享目录

[root@localhost ~]# mkdir /opt/wwwroot
[root@localhost ~]# cd /opt/wwwroot/
[root@localhost wwwroot]# vim index.html

在web节点上挂载共享目录,在102、103主机上

102主机
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mount 192.168.10.104:/opt/wwwroot /var/www/html/
103主机
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mount 192.168.10.104:/opt/wwwroot /var/www/html/
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls                        #如果访问不到index文件说明被覆盖住了用 echo "test">index.html创建出来
index.html
[root@localhost html]# cat index.html 
test web

linux做客户端时1可以用以下代码进行测试

[root@localhost ~]# for i in $(seq 10); do curl 172.16.16.172;done
test web

  • 40
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值