服务器群集—LVS负载均衡群集(LVS-NAT部署)

一、群集概述

1.1 群集的概念

Cluster,集群、群集
有多台主机钩成,但对外只表现为一个整体

1.2 群集的作用

有多台主机钩成,但对外只表现为一个整体
接待用户的请求

1.3 为什么需要群集

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心

1.31 解决方法

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

1.4 群集的种类

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

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

1.41 负载均衡群集(Load Balance Cluster)

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

1.42 高可用群集(High Availability Cluster)——主●备

● 提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
● HA的工作方式包括双工和主从两种模式

1.43 高性能运算群集(High Performance Computer Cluster)

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

二、负载均衡群集架构

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

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

负载均衡群集是目前企业用得最多的群集类型
群集的负载调度技术有三种工作模式:

地址转换——NAT优点:与负载调度器位于同一个物理网络,安全性要优于其他两种方式;缺点:负载量相较于另外两种较低

IP隧道——Tunnel;特点:具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信;优点:承载更多用户

直接路由——DR
相同点:都是各web节点直接响应客户机
不同点
1、TUN各节点有独立的公网,DR没有
2、TUN各web节点和调度器是IP隧道的方式,而DR各web节点和调度器是局域网方式
3、YUN web节点直接响应,DR web节点需要通过路由器响应

2.11 NAT模式——地址转换

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

2.12 TUN模式——IP隧道

● lP Tunnel,简称TUN模式
● 采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
● 服务器节点分散在互联网中的不同位置,特点:具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信;优点:承载更多用户

2.13 DR模式——直接路由

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

2.14 TUN和DR的区别

相同点:都是各web节点直接响应客户机
不同点
1、TUN各节点有独立的公网,DR没有
2、TUN各web节点和调度器是IP隧道的方式,而DR各web节点和调度器是局域网方式
3、YUN web节点直接响应,DR web节点需要通过路由器响应

三、关于LVS虚拟服务器

3.1 Linux Virtual Server

● 针对Linux内核的负载均衡解决方案
● modprobe ip_vs(加载lvs)
● cat /proc/net/ip_vs(查看lvs)

3.2 LVS的负载调度算法

3.21 轮询(RR)

将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等的对待每一台服务器,而不管服务器实际的链接数和系统负载
解释:依次顺序分配,公平

3.22 加权轮询(WRR)

1、根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
2、保证性能的服务器承担更多的访问流量
解释:权重高的优先分配,按权重比例分配

3.23 最少连接(LC)

根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
解释:连接数少的优先分配

3.24 加权最少连接(WLC)

1、在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
2、性能较高的节点将承担更大比例的活动连接负载
解释:服务器节点的性能差异较大时,自动调整权重,按权重比例分配连接

四、LVS群集创建与管理

1、创建虚拟服务器
2、添加、删除服务器节点
3、查看群集及节点情况
4、保存负载分配策略

4.1 部署步骤

1、加载ip_vs模块,安装ipvsadm工具
2、开启路由转发
3、新建LVS虚拟服务器并添加节点服务器
4、配置节点服务器
(1)建立测试网站
(2)挂载NFS共享存储
(3)建立测试网页
5、保存规则并测试

4.2 LVS-NAT项目部署

部署环境

调度服务器:vmnet1:192.168.100.11(内网)vmnet2:192.168.200.11(外网)
web1vmnet1:192.168.100.12(内网)
web2vmnet1:192.168.100.13(内网)
nfsvmnet1:192.168.100.14(内网)
客户端vmnet2:192.168.200.15(外网)

1、配置网卡
##配置完网卡记得重启网卡!!内网ping内网,外网ping外网互通

web1、web2的网关需指向调度服务器的vmnet1
客户端的网关需指向调度服务器的vmnet2
调度服务器的vmnet2记得删除UUID

2、配置NFS

[root@server4 ~]# yum -y install rpcbind nfs-utils
[root@server4 ~]# mkdir /opt/web1      #创建网页
[root@server4 ~]# mkdir /opt/web2
[root@server4 ~]# echo "<h1> this is web1. </h1>" > /opt/web1/index.html
[root@server4 ~]# echo "<h1> this is web2. </h1>" > /opt/web2/index.html
[root@server4 ~]# vi /etc/exports    #添加
/opt/web1 192.168.100.12(ro)
/opt/web2 192.168.100.13(ro)
[root@server4 ~]# systemctl restart nfs   
[root@server4 ~]# systemctl restart rpcbind
[root@server4 ~]# showmount -e 192.168.100.14     #查看
Export list for 192.168.100.14:
/opt/web2 192.168.100.13
/opt/web1 192.168.100.12

在这里插入图片描述
在这里插入图片描述

3、配置web1和web2
web1:

[root@server2 ~]# yum -y install httpd     #新系统未下载过
[root@server2 ~]# showmount -e 192.168.100.14
Export list for 192.168.100.14:
/opt/web2 192.168.100.13
/opt/web1 192.168.100.12
[root@server2 ~]# mount 192.168.100.14:/opt/web1 /var/www/html
[root@server2 ~]# df -Th   #检查挂载
[root@server2 ~]# systemctl restart httpd
[root@server2 ~]# netstat -anpt |grep httpd   #检查服务是否开启
tcp6       0      0 :::80                   :::*                    LISTEN      54179/httpd  
[root@server2 ~]# curl http://localhost   #未出效果
[root@server2 ~]# systemctl stop firewalld    #关闭防火墙
[root@server2 ~]# setenforce 0
[root@server2 ~]# curl http://localhost
<h1> this is web1. </h1>

在这里插入图片描述
在这里插入图片描述

web2:

[root@server3 ~]# yum -y install httpd
[root@server3 ~]# showmount -e 192.168.100.14
Export list for 192.168.100.14:
/opt/web2 192.168.100.13
/opt/web1 192.168.100.12
[root@server3 ~]# mount 192.168.100.14:/opt/web2 /var/www/html
[root@server3 ~]# df -Th
[root@server3 ~]# systemctl start httpd
[root@server3 ~]# netstat -anpt |grep httpd   #检查服务是否开启
tcp6       0      0 :::80                   :::*                    LISTEN      54055/httpd 
[root@server3 ~]# curl http://localhost    #没出效果
[root@server3 ~]# systemctl stop firewalld    #关闭防火墙
[root@server3 ~]# setenforce 0
[root@server3 ~]# curl http://localhost
<h1> this is web2. </h1>

在这里插入图片描述
在这里插入图片描述

4、配置LVS调度服务器

[root@server1 ~]# echo "net.ipv4.ip_forward=1"> /etc/sysctl.conf   #开启路由交换功能
[root@server1 ~]# sysctl -p   #检查是否开启
net.ipv4.ip_forward = 1    #这时候内外网可以互ping,因为路由功能以开启
[root@server1 ~]# modprobe ip_vs   #加载lvs
[root@server1 ~]# 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 InActCo    #lvs未设置
[root@server1 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm      #安装管理软件ipvsadm,不需要启动
[root@server1 ~]# vi nat.sh     #编写调度脚本
#!/bin/bash
ipvsadm -C     #清除虚拟服务器表中所有记录
ipvsadm -A -t 192.168.200.11:80 -s rr     #创建虚拟服务器
ipvsadm -a -t 192.168.200.11:80 -r 192.168.100.12:80 -m     #添加服务器节点,虚拟地址映射真实web地址
ipvsadm -a -t 192.168.200.11:80 -r 192.168.100.13:80 -m      #添加服务器节点,虚拟地址映射真实web地址
ipvsadm -Ln     #以数字形式查看节点状态 

在这里插入图片描述

###参数注释

“-A”表示添加虚拟服务器
“-a”表示添加真实服务器
“-t”用来指定VIP地址及TCP端口
“-r”用来指定RIP地址及TCP端口
“-s”用来指定负载调度算法一一rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)
“-m”表示使用NAT群集模式("-g"是DR模式,"-i"是TUN模式)
[root@server1 ~]# sh nat.sh      #执行前在自己网页访问下web  ip,自己能访问别人才能通过自己访问
[root@server1 ~]# sh nat.sh    #执行脚本
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.200.11:80 rr
  -> 192.168.100.12:80            Masq    1      0          0         
  -> 192.168.100.13:80            Masq    1      0          0         

在这里插入图片描述

4、客户机访问

[root@server5 ~]# curl http://192.168.200.11   #不出效果
curl: (7) Failed connect to 192.168.200.11:80; 没有到主机的路由    #关闭自己和LVS调度服务器防火墙
[root@server5 ~]# systemctl stop firewalld    #LVS调度服务器防火墙也要关
[root@server5 ~]# setenforce 0
[root@server5 ~]# curl http://192.168.200.11
<h1> this is web2. </h1>
[root@server5 ~]# curl http://192.168.200.11
<h1> this is web1. </h1>

在这里插入图片描述
在这里插入图片描述

5、lvs查看调度情况

[root@server1 ~]# ipvsadm -Lnc
IPVS connection entries
pro expire state       source             virtual            destination
TCP 01:53  TIME_WAIT   192.168.200.15:46440 192.168.200.11:80  192.168.100.12:80
TCP 01:52  TIME_WAIT   192.168.200.15:46438 192.168.200.11:80  192.168.100.13:80
TCP 01:53  TIME_WAIT   192.168.200.15:46442 192.168.200.11:80  192.168.100.13:80
TCP 01:54  TIME_WAIT   192.168.200.15:46446 192.168.200.11:80  192.168.100.13:80
TCP 01:54  TIME_WAIT   192.168.200.15:46444 192.168.200.11:80  192.168.100.12:80
TCP 01:55  TIME_WAIT   192.168.200.15:46448 192.168.200.11:80  192.168.100.12:80
[root@server1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.200.11:80 rr
  -> 192.168.100.12:80            Masq    1      0          3         
  -> 192.168.100.13:80            Masq    1      0          3         

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值