nosilence 发表于 2019-1-3 09:17:43

LVS负载均衡之二:LVS

实现LVS的NAT模式
  其原理及特点详细介绍请看LVS负载均衡之一:LVS-NAT、LVS-DR模式的原理详细介绍

1.实验环境
  IP地址规划
  客户端访问服务的请求IP地址:VIP 12.0.0.1




Server
IP
系统




Director Server
DIP 192.168.10.1
CentOS7


NFS Server
192.168.10.50
RedHat6


Real Server1
RIP 192.168.10.51
CentOS7


Real Server2
RIP 192.168.10.52
CentOS7


  在配置的Director的服务器上添加两块网卡,详细步骤可参考DNS分离解析这篇博文有介绍,设置外网ens37为VIP,内网ens33为DIP,把两个 real server 的网关设置为 Director 的内网 iP即DIP。
  在虚拟机的配置中DIP网络连接方式设置为仅主机模式,Real Server也配置为仅主机模式。
http://i2.运维网.com/images/blog/201806/28/e63305196d2aff4f3605997dcd462afd.png

2.安装和配置
  yum安装软件
  方法一:如果虚拟机网络是仅主机模式,没有网络,可以本地创建yum仓库,然后进行yum安装。
  方法二:如果虚拟机网络是NAT模式,有网络,可以在线yum安装。

(1) 配置NFS服务器
  安装nfs软件并启动nfs服务

yum install nfs-utils -y    #7系统版本需要安装nfs工具包
service rpcbind start
service nfs restart
  创建共享目录并赋予写入权限

mkdir /opt/wwwroot1 /opt/wwwroot2
chmod 777 /opt/wwwroot1 /opt/wwwroot2
  编辑配置文件

vim /etc/exports
/opt/wwwroot1 192.168.10.0/24(rw,sync)
/opt/wwwroot2 192.168.10.0/24(rw,sync)
  发布共享

exportfs -rv
  关闭防火墙

service iptables stop
(2) 配置两个real server服务器
  安装nfs客户端

yum install nfs-utils -y
systemctl start rpcbind.service
systemctl start nfs.service
  查看nfs挂载

showmount -e 192.168.10.50
  Real Server1挂载nfs

#法一:直接挂载
mount.nfs 192.168.10.50:/opt/wwwroot1 /var/www/html
#法二:修改fatab文件挂载
vim /etc/fstab
192.168.10.50:/opt/wwwroot1 /var/www/html nfs defaults,_netdev0 0
  Real Server2挂载nfs

方法同Real Server1,将挂载目录/opt/wwwroot1改成/opt/wwwroot2,其余一样。

  安装httpd

yum install httpd -y
  创建测试网页并启动httpd服务

#real server1创建测试网页
echo "Server 192.168.10.51" > /var/www/html/index.html
#real server2创建测试网页
echo "Server 192.168.10.52" > /var/www/html/index.html
#启动httpd服务
systemctl start httpd.service
systemctl enable httpd.service
  关闭防火墙和安全性策略

systemctl stopfirewalld.service
systemctl disable firewalld.service
setenforce 0
  测试网页打开是否正常

firefox http://127.0.0.1/
http://i2.运维网.com/images/blog/201806/28/d646b8fabd23030d6db9d2f34cdf5309.png
http://i2.运维网.com/images/blog/201806/28/fd313997832d7a8448cce8141cc35fb9.png

(3) 配置Director server服务器
  安装ipvsadm管理工具

yum install ipvsadm -y
  调用LVS内核模块

modprobe ip_vs #加载LVS内核模块
cat /proc/net/ip_vs#查看ip_vs版本信息
http://i2.运维网.com/images/blog/201806/28/5fcec44a0a278f450d944b9e5fe8912a.png
  开启路由转发

#法一:编辑sysctl.conf文件,永久路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p#保存
#法二:直接编辑,临时路由转发
echo "1" > /proc/sys/net/ipv4/ip_forward
  配置SNAT转发规则,设置nat防火墙

iptables -F -t nat      #清空nat防火墙
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 12.0.0.1
  Director 上编辑 nat 实现负载分配脚本

# 设置 ipvsadm
vim nat.sh
#!/bin/bash
ipvsadm-save> /etc/sysconfig/ipvsadm   #保存策略
service ipvsadm start
ipvsadm -C   #清除内核虚拟服务器表中的所有记录
ipvsadm -A -t 12.0.0.1:80 -s rr#创建虚拟服务器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.51:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.52:80 -m
ipvsadm

  ipvsadm管理工具的选项用法:


[*]-A: 表示添加虚拟服务器
[*]-t: 用来指定VIP地址及TCP端口
[*]-s: 用来指定负载均衡调度算法
[*]-a: 表示添加真实服务器
[*]-r: 用来指定RIP地址及TCP端口
[*]-m: 表示使用NAT群集模式
[*]-g: 表示使用DR群集模式
[*]-i: 表示使用TUN群集模式
[*]-w: 用来设置权重

  保存nat脚本后直接运行

chmod +x nat.sh
./nat.sh
http://i2.运维网.com/images/blog/201806/28/5b56676875ca66a5c74b98dda0b2ae67.png
查看ipvsadm设置的规则

ipvsadm -ln
http://i2.运维网.com/images/blog/201806/28/64dd3a36b6f3b3b7713b3a8cfb72174f.png

3.测试LVS群集
  用Windows客户端直接访问http://12.0.0.1, 将能够看到由真实服务器提供的网页内容。
  第一次访问:
http://i2.运维网.com/images/blog/201806/28/c3f2a91330030de9fd1cde046db979c0.png
Real Server连接次数查看:
http://i2.运维网.com/images/blog/201806/28/fc78a77fda9d5339dfd556cf35d68f0b.png
刷新一次:
http://i2.运维网.com/images/blog/201806/28/0c403d3c484abc1dcc0273c629d9845c.png?x-oss-http://blog.运维网.com/11134648/2133893process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
Real Server连接次数查看:
http://i2.运维网.com/images/blog/201806/28/d75a37fa01ca31f12dbd9ecdfb15b358.png
  LVS-DR模式的案列配置请看LVS负载均衡之三:LVS-DR搭建web群集、LVS结合Keepalived搭建高可用web群集



页: [1]
查看完整版本: LVS负载均衡之二:LVS