LVS负载均衡

一、企业群集应用概述

1、群集的含义
(1)Cluster,集群、群集
(2)由多台主机构成,但对外只表现为一个整体

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

3、解决方法
(1)使用价格昂贵的小型机、大型机
(2)使用普通服务器构建服务群集

二、企业群集分类

1、根据群集所针对的目标差异,可分为三种类型
(1)负载均衡群集(轮循《加权》、最小连接《加权》)
(2)高可用群集(访问数量、可靠性)
(3)高性能运算群集(并发处理任务)

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

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

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

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

1、负载均衡群集是目前企业用得最多的群集类型

2、群集的负载调度技术有三种工作模式
(1)地址转换(NAT)
(2)IP隧道(TUN)
(3)直接路由(建立外网连接)

四、NAT模式

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

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

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

五、负载均衡群集架构

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

六、关于LVS虚拟服务器

1、Linux Virtual Server
针对Linux内核的负载均衡解决方案
1998年5月,由我国的章文嵩博士创建
官方网站: http://www.linuxvirtualserver.org/

2、LVS的负载调度算法

(1)轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器, 而不管服务器实际的连接数和系统负载

(2)加权轮询(Weighted Round Robin)
根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重
保证处理能力强的服务器承担更多的访问流量

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

(4)加权最少连接(Weighted L east Connections)
在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重
权重较高的节点将承担更大比例的活动连接负载

七、NFS共享存储服务

1、Network File System,网络文件系统
(1)依赖于RPC (远端过程调用)
(2)需安装nfs-utils、rpcbind软件包
(3)系统服务: nfs、rpcbind
(4)共享配置文件: /etc/exports

2、在客户机中访问NFS共享资源
(1)安装rpcbind软件包,并启动rpcbind服务
(2)手动挂载NFS共享目录
(3)fstab自动挂载设置

八、部署步骤

1、加载ip_ _vs模块,安装ipvsadm工具
2、新建LVS虚拟服务器并添加节点服务器
3、配置节点服务器
建立测试网站
挂载NFS共享存储
建立测试网页
4、保存规则并测试


案例:

--------------------------地址规划-----------------------

调度服务器

外网卡:12.0.0.1
内网卡:192.168.200.1

节点服务器

web1:192.168.200.110
web2:192.168.200.120

存储服务器

网卡:192.168.200.130

client服务器

12.0.0.12
----------------------------环境----------------------

centos7-4
查看nfs-utils、rpcbind有没有安装,没有安装的话进行yum安装
rpm -q nfs-utils
rpm -q rpcbind

centos7-2和centos7-3
查看httpd安装包有没有安装,没有安装的话进行yum安装
rpm -q httpd

centos7-1
查看管理软件ipvsadm有没有安装,没有安装的话进行yum安装
rpm -q ipvsadm

------------------centos7-4——存储服务器--------------------

网卡模式设为仅主机

设静态IP——192.168.200.130

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.200.130
NETMASK=255.255.255.0
GATEWAY=192.168.200.1

service network restart                    //重启网卡
systemctl stop firewalld.service        //关闭防火墙
setenforce 0

systemctl start nfs.service               //开启nfs服务
systemctl status nfs.service             //查看开启状态

systemctl start rpcbind.service            //开启rpcbind服务
systemctl status rpcbind.service          //查看开启状态

vim /etc/exports
/usr/share *(ro,sync)
/opt/accp 192.168.200.0/24(rw,sync)
/opt/benet 192.168.200.0/24(rw,sync)

cd /opt/
mkdir benet accp

chmod 777 accp/ benet/           //赋予权限

exportfs -rv                //发布共享

--------------------------centos7-2——节点服务器----------------------

网卡模式设为仅主机

设静态IP——192.168.200.110

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.200.110
NETMASK=255.255.255.0
GATEWAY=192.168.200.1

service network restart                    //重启网卡
systemctl stop firewalld.service        //关闭防火墙
setenforce 0

systemctl start httpd.service              //开启httpd服务
netstat -ntap | grep 80                 //查看端口开启状态

ping 192.168.200.130                 //保证在互通状态下
showmount -e 192.168.200.130            //先查看,可以看到就可以进行挂载

mount.nfs 192.168.200.130:/opt/accp /var/www/html/      //挂载

df -h                 //查看挂载状态
192.168.200.130:/opt/accp   20G  3.4G   17G   17% /var/www/html

cd /var/www/html/
echo "this is accp web" > index.html              //写html标签

写好后再存储服务器上,查看/opt/accp/目录下,有index.html就说明没问题

自测:
在浏览器中输入http://127.0.0.1/访问,访问到:this is accp web 。就说明没问题

--------------------------centos7-2——节点服务器----------------------

网卡模式设为仅主机

设静态IP——192.168.200.120

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.200.120
NETMASK=255.255.255.0
GATEWAY=192.168.200.1

service network restart                    //重启网卡
systemctl stop firewalld.service        //关闭防火墙
setenforce 0

systemctl start httpd.service              //开启httpd服务
netstat -ntap | grep 80                 //查看端口开启状态

ping 192.168.200.130                 //保证在互通状态下
showmount -e 192.168.200.130            //先查看,可以看到就可以进行挂载

mount.nfs 192.168.200.130:/opt/benet /var/www/html/      //挂载

df -h                 //查看挂载状态
192.168.200.130:/opt/benet   20G  3.4G   17G   17% /var/www/html

cd /var/www/html/
echo "this is benet web" > index.html              //写html标签

写好后再存储服务器上,查看/opt/benet/目录下,有index.html就说明没问题

自测:
在浏览器中输入http://127.0.0.1/访问,访问到:this is benet web 。就说明没问题

---------------------------centos7-1——调度服务器--------------------------

再添加一块网卡:ens36

两张网卡都设为仅主机模式

ens33(内网卡):192.168.200.1
ens36(外网卡):12.0.0.1

配置静态IP

(1)vim ifcfg-ens33 

BOOTPROTO=static

IPADDR=192.168.200.1
NETMASK=255.255.255.0

(2)cp ifcfg-ens33 ifcfg-ens36

vim ifcfg-ens36

其中33改为36,UUID行删掉

BOOTPROTO=static

IPADDR=12.0.0.1
NETMASK=255.255.255.0

service network restart            //重启网卡

vim /etc/sysctl.conf 
net.ipv4.ip_forward=1              //开启路由转发功能

sysctl -p                   //加载生效

iptables -t nat -F            
iptables -F                        //清空

做SNAT规则:
-A:指定列
-o:指定出口
-s:指定原地址
-j:做动作
--to-source:转换
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1

验证:
(1)win7——client服务器

网卡模式仅主机,固定IP:12.0.0.12,关闭防火墙

(2)centos7-2——节点服务器

ping 12.0.0.12           //保证能通

加载LVS内核模块:

modprobe ip_vs                 //加载
cat /proc/net/ip_vs                 //查看

管理软件:

ipvsadm --save > /etc/sysconfig/ipvsadm          //保存
systemctl start ipvsadm.service                 //开启服务
systemctl status ipvsadm.service              //查看开启状态

NAT只要在服务器上配置,业务服务器不需要特殊配置:

cd /opt/

vim nat.sh

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip forward         #开启永久转发
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.110:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.200.120:80 -m
ipvsadm

ipvsadm -C    //清除内核虚拟服务器表中的所以记录

source nat.sh          //执行脚本

在win7上进行访问:

访问IP:12.0.0.1

显示网页(轮循显示)

this is accp web

this is benet web

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值