CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式

CentOS7 部署 LVS 负载均衡群集

  • 一、群集技术概述
    • 1.群集的含义
    • 2.群集的类型
      • 1)负载均衡(Load Balancer)群集
      • 2)高可用(High Available)群集
      • 3)高性能运算(High Performance Computer)群集
    • 3.负载均衡的结构
      • 第一层,负载调度器(Load Balancer 或 Director)(至少一个)
      • 第二层,服务器池(Server Pool)(大量真实服务器)
      • 第三层,共享存储(Share Storage)
    • 4.负载均衡的工作模式
  • 二、部署 LVS-NAT 群集
    • 1.配置 LVS 服务器
      • 1)加载模块
      • 2)确认内核对LVS的支持
      • 3)启用路由转发
      • 4)使用ipvsadm工具(LVS群集管理工具)
    • 2.配置 NFS 共享存储服务器
      • 1)安装 nfs-utils、rpcbind 软件包
      • 2)创建共享目录
      • 3)设置 NFS 共享文件
      • 4)启动 NFS 服务程序
      • 5)查看本机发布的 NFS 共享目录
    • 3.配置 Web1,Web2 服务器
      • 1)安装 httpd 服务
      • 2)配置 NFS 共享存储客户端
    • 4.测试 LVS 群集(NAT模式)
  • 三、部署 LVS-DR 群集
    • 1.配置 LVS 服务器
      • 1)配置虚拟 IP 地址
      • 2)调整 /proc 响应参数
      • 3)配置负载分配策略
    • 2.配置 Web 节点服务器
      • 1)配置虚拟 IP 地址 VIP
      • 2)调整内核参数
    • 3.配置 NFS 共享存储服务器
      • 1)安装 nfs-utils、rpcbind 软件包
      • 2)创建共享目录
      • 3)设置 NFS 共享文件
      • 4)启动 NFS 服务程序
      • 5)查看本机发布的 NFS 共享目录
    • 4.配置 Web1,Web2 服务器
      • 1)安装 httpd 服务
      • 2)配置 NFS 共享存储客户端
    • 5.测试 LVS 群集(DR模式)

一、群集技术概述

互联网中,站点对硬件性能、响应速度、服务稳定性、数据可靠性的要求很高。(单台服务器难以承担所有访问的需要)
LVS——企业中常用的一种群集(Cluster)服务(Linux Virtual Server 虚拟服务器)

1.群集的含义

Cluster,集群、群集
由多台主机(至少两台节点服务器)构成,但对外只表现为一个整体,只提供一个访问接口(域名或 IP)

2.群集的类型

1)负载均衡(Load Balancer)群集

提高应用系统的响应能力。获得高并发、高负载(LB)的整体性能。例(DNS轮询、应用层交换、反向代理)等

2)高可用(High Available)群集

提高应用系统的可靠性。 例(故障切换、双击热备、多机热备)

工作方式:

  • 双工:所有节点同时在线;
  • 主从:主节点在线,从节点在主节点发生故障时自动切换为主节点;

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

提高应用系统的 CPU 运算速度,扩展硬件资源和分析能力。例(云计算、网格计算),依赖于"分布式计算"“并行计算”

3.负载均衡的结构

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第1张图片

第一层,负载调度器(Load Balancer 或 Director)(至少一个)

访问这个群集系统的唯一入口。对外为 VIP 地址(虚拟 IP/群集 IP 地址)。通常配置主、从双机热备,确保高可用性

第二层,服务器池(Server Pool)(大量真实服务器)

每个节点都有独立的 rip(真实 IP),只处理调度器分发的客户机请求;
某个节点暂时失效时,负责调度器的容错机制将其隔离。错误排除后再重新纳入服务器池;

第三层,共享存储(Share Storage)

为服务器池提供稳定、一致的文件存取服务,确保群集的统一性;
可使用 NAS 设备或提供 NFS 共享服务的专用服务器;

4.负载均衡的工作模式

基于 IP、端口、内容等。基于 IP 效率最高
CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第2张图片
基于IP:

地址转换(NAT)模式:

  • 调度器为服务器节点的网关,客户机的访问入口和各节点的回应出口;
  • 服务器和调度器使用私有ip,在同一物理网络。安全性优于下两个;

IP隧道(TUN)模式:

  • 开放式网络结构;
  • 调度器为客户机访问入口;
  • 节点服务器都具有独立的公网 IP,分散在不同的地方,直接回应客户机;
  • 通过专用 IP 隧道与调度器互相通信;

直接路由(DR)模式:

  • 半开放式;
  • 调度器只为客户机访问入口;
  • 节点服务器集中在一起,和调度器在同一物理网络。通过本地连接;
  • 节点服务器直接回应客户机;

区别:

  • NAT 只需要一个公网 IP,最易用,安全性好,许多硬件负载均衡设备采用;
  • DR 和 TUN,负载能力更强大,适用范围更广,节点安全性稍差;

二、部署 LVS-NAT 群集

准备工作:

主机名 操作系统 虚拟网卡 IP地址 网关
NAT-Server CentOS7 VM12 192.168.1.1192.168.10.1 充当网关
Web1 CentOS7 VM1 192.168.1.2 192.168.1.1
Web2 CentOS7 VM1 192.168.1.3 192.168.1.1
NFS CentOS7 VM1 192.168.1.4 192.168.1.1
外网客户机 Win7 VM2 192.168.10.2 192.168.10.1

1.配置 LVS 服务器

1)加载模块

[root@NAT-Server ~]# modprobe ip_vs

2)确认内核对LVS的支持

[root@NAT-Server ~]# cat /proc/net/ip_vs

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第3张图片

3)启用路由转发

[root@NAT-Server ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@NAT-Server ~]# sysctl -p

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第4张图片

4)使用ipvsadm工具(LVS群集管理工具)

挂载光盘,并配置yum源

[root@NAT-Server ~]# yum -y install ipvsadm

创建虚拟服务器,VIP必须是本机真实ip地址

[root@NAT-Server ~]# ipvsadm -C    	#清除原有的策略
[root@NAT-Server ~]# ipvsadm -A -t 192.168.10.1:80 -s rr
  • -A:添加虚拟服务器;
  • -t:VIP 地址及端口号;
  • -s:负载调度算法(轮询 rr,加权轮询 wrr,最少连接 lc,加权最少连接 wlc)

添加服务器节点 Web1,Web2

[root@NAT-Server ~]# ipvsadm -a -t 192.168.10.1:80 -r 192.168.1.2:80 -m -w 1
[root@NAT-Server ~]# ipvsadm -a -t 192.168.10.1:80 -r 192.168.1.3:80 -m -w 1
  • -a:添加真实服务器;
  • -t:vip 地址及 tcp 端口号;
  • -r:rip 地址及端口号;
  • -m:使用 nat 群集默认(-g DR模式,-i TUN模式)
  • -w:设置权重(0是暂停节点)

保存策略,并设置开机自启

[root@NAT-Server ~]# ipvsadm-save
[root@NAT-Server ~]# systemctl enable ipvsadm

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第5张图片

2.配置 NFS 共享存储服务器

挂载光盘,并配置yum源

1)安装 nfs-utils、rpcbind 软件包

[root@NFS ~]# yum -y install nfs-utils rpcbind
[root@NFS ~]# systemctl enable nfs
[root@NFS ~]# systemctl enable rpcbind

2)创建共享目录

[root@NFS ~]# mkdir -p /opt/web1 /opt/web2

3)设置 NFS 共享文件

将文件夹web1,web2分别共享给web1,web2主机使用,允许读写操作

[root@NFS ~]# vim /etc/exports
添加:
/opt/web1 192.168.1.2(rw,sync,no_root_squash)
/opt/web2 192.168.1.3(rw,sync,no_root_squash)

注解:
rw 读写
sync 同步写入
no_root_squash 客户机以root身份访问时赋予本地root权限

4)启动 NFS 服务程序

  • 注意:先启动 rpcbind,再启动 nfs;
[root@NFS ~]# systemctl start rpcbind
[root@NFS ~]# systemctl start nfs
[root@NFS ~]# netstat -anpu | grep rpcbind

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第6张图片

5)查看本机发布的 NFS 共享目录

[root@NFS ~]# showmount -e

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第7张图片

3.配置 Web1,Web2 服务器

挂载光盘,并配置yum源

1)安装 httpd 服务

[root@Web1 ~]# yum -y install httpd

2)配置 NFS 共享存储客户端

[root@Web1 ~]# yum -y install rpcbind nfs-utils
[root@Web1 ~]# systemctl start rpcbind
[root@Web1 ~]# showmount -e 192.168.1.4
[root@Web1 ~]# mount 192.168.1.4:/opt/web1 /var/www/html/										 #Web2  /opt/web1 换成 /opt/web2
[root@Web1 ~]# echo "

This is Web1

"
> /var/www/html/index.html #Web2 web1 换成 web2 [root@Web1 ~]# echo "192.168.1.4:/opt/web1 /var/www/html nfs defaults,_netdev 0 0" >> /etc/fstab #Web2 /opt/web1 换成 /opt/web2 [root@Web1 ~]# systemctl start httpd

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第8张图片

4.测试 LVS 群集(NAT模式)

  • 注意:一定要指定对应网关,不然会访问不了 Web 页面。

使用 Win7 客户机访问:http://192.168.10.1
CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第9张图片
多访问几次,不然看不到效果
CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第10张图片
在 LVS 调度器上查看 LVS 策略

[root@NAT-Server ~]# ipvsadm -ln

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第11张图片

三、部署 LVS-DR 群集

准备工作:

主机名 操作系统 虚拟网卡 IP地址
DR-Server CentOS7 VM1 192.168.1.1
Web1 192.168.1.2
Web2 192.168.1.3
NFS 192.168.1.4
测试客户机 Win7 192.168.1.5

1.配置 LVS 服务器

1)配置虚拟 IP 地址

采用虚接口的方式,为 ens33 绑定 VIP 地址,以便响应群集访问

[root@DR-Server ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
添加:
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens33:0"
DEVICE="ens33:0"
ONBOOT="yes"
IPADDR="192.168.1.188"
PREFIX="24"
[root@localhost network-scripts]# systemctl restart network       #重启网卡
[root@localhost network-scripts]# ifconfig ens33:0  		      #查看IP是否改成

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第12张图片

2)调整 /proc 响应参数

对于 DR 群集模式来说,用于 LVS 负载调度器和各节点需要公用 VIP 地址,应该关闭 linux 内核重定向参数

[root@localhost ~]# cat <<END >> /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第13张图片

3)配置负载分配策略

挂载光盘,并配置yum源

[root@DR-Server ~]# yum -y install ipvsadm   		#安装ipvsadm工具
[root@DR-Server ~]# ipvsadm -C
[root@DR-Server ~]# ipvsadm -A -t 192.168.1.188:80 -s rr
[root@DR-Server ~]# ipvsadm -a -t 192.168.1.188:80 -r 192.168.1.2:80 -g -w 1
[root@DR-Server ~]# ipvsadm -a -t 192.168.1.188:80 -r 192.168.1.3:80 -g -w 1
[root@DR-Server ~]# ipvsadm-save
[root@DR-Server ~]# systemctl enable ipvsadm

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第14张图片

2.配置 Web 节点服务器

Web1 Web2 操作一致

1)配置虚拟 IP 地址 VIP

使用DR模式,节点服务器,也需要配置VIP地址,使用这个地址做web响应的源地址

[root@Web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
NETMASK=255.255.255.255            			#子网掩码必须为255.255.255.255
IPADDR=192.168.1.188               			#改为VIP地址
[root@Web1 ~]# systemctl restart network   	#重启网卡
[root@Web1 ~]# ip a							#查看IP是否生效

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第15张图片
为 Web1 和 Web2 添加一台路由记录,将 VIP 的数据限制在本地,避免通信混乱

[root@Web1 ~]# yum -y install net-tools
[root@Web1 ~]# route add -host 192.168.1.188 dev lo:0
[root@Web1 ~]# echo "/sbin/route add -host 192.168.1.188 dev lo:0" >> /etc/rc.local

2)调整内核参数

[root@Web1 ~]# cat <<END >> /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
net.ipv4.conf.lo.arp_announce = 2
END
[root@Web1 ~]# sysctl -p

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第16张图片

3.配置 NFS 共享存储服务器

挂载光盘,并配置yum源

1)安装 nfs-utils、rpcbind 软件包

[root@NFS ~]# yum -y install nfs-utils rpcbind
[root@NFS ~]# systemctl enable nfs
[root@NFS ~]# systemctl enable rpcbind

2)创建共享目录

[root@NFS ~]# mkdir -p /opt/web1 /opt/web2

3)设置 NFS 共享文件

将文件夹 web1 web2 分别共享给 Web1 Web2 主机使用,允许读写操作

[root@NFS ~]# vim /etc/exports
添加:
/opt/web1 192.168.1.2(rw,sync,no_root_squash)
/opt/web2 192.168.1.3(rw,sync,no_root_squash)

4)启动 NFS 服务程序

  • 注意:先启动 rpcbind,再启动 nfs;
[root@NFS ~]# systemctl start rpcbind
[root@NFS ~]# systemctl start nfs
[root@NFS ~]# netstat -anpu | grep rpcbind

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第17张图片

5)查看本机发布的 NFS 共享目录

[root@NFS ~]# showmount -e

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第18张图片

4.配置 Web1,Web2 服务器

挂载光盘,并配置yum源

1)安装 httpd 服务

[root@Web1 ~]# yum -y install httpd

2)配置 NFS 共享存储客户端

[root@Web1 ~]# yum -y install rpcbind nfs-utils
[root@Web1 ~]# systemctl start rpcbind
[root@Web1 ~]# showmount -e 192.168.1.4
[root@Web1 ~]# mount 192.168.1.4:/opt/web1 /var/www/html/										 #Web2  /opt/web1 换成 /opt/web2
[root@Web1 ~]# echo "

This is Web1

"
> /var/www/html/index.html #Web2 web1 换成 web2 [root@Web1 ~]# echo "192.168.1.4:/opt/web1 /var/www/html nfs defaults,_netdev 0 0" >> /etc/fstab #Web2 /opt/web1 换成 /opt/web2 [root@Web1 ~]# systemctl start httpd

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第19张图片

5.测试 LVS 群集(DR模式)

  • 在 Win7 客户机上将 VM2 改为 VM1,并设置 IP 为 192.168.1.88

使用浏览器访问:http://192.168.1.188
CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第20张图片
CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第21张图片
也可以用脚本测试:

[root@NFS ~]# for i in $(seq 10); do curl http://192.168.1.188;done

CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第22张图片
在 LVS 调度器上查看 LVS 策略
CentOS7 部署 LVS 负载均衡群集——NAT 模式,DR 模式_第23张图片

你可能感兴趣的:(运维,LVS,负载均衡群集,LVS-NAT模式,LVS-DR模式,linux,centos)