阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7上实现LVS负载均衡群集之NAT转换模式

306次阅读
没有评论

共计 2692 个字符,预计需要花费 7 分钟才能阅读完成。

LVS 虚拟服务器

Linux Virtual Server(LVS)是针对 Linux 内核开发的一个负载均衡项目,由我国的章文嵩博土在 1998 年 5 月创建,官方站点位于 http://www.linuxvirtualserver.org/.

LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种高效的解决方法。

LVS 现在已成为 Linux 内核的一部分,默认编译为 ip_vs 模块,必要时能够自动调用。

LVS 的负载调度算法

针对不同的网络服务和配置需要,LVS 调度器提供多种不同的负载调度算法,其中最常用的四种算法包括轮询、加权轮询、最少连接和加权最少连接。

轮询(RoundRobin):将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器)。

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

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

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

使用 ipvsadm 管理工具

ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块添加、删除服务器节点,以及查看群集的运行状态。在 CentOS6 系统中,需要手动安装 ipvsadm 软件包。在 centos7 中直接安装就可以。

地址转换模式

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

图解

CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式
说明:节点服务器作用在私网,而客户端作用在公网,此时 LVS 就作为网关,节点服务器反馈信息给客户端时,会经过 LVS。

实验环境

角色 IP
LVS 192.168.100.1 / 12.0.0.1
apache1 192.168.100.110
apache2 192.168.100.120
NFS 192.168.100.130

步骤

在两台节点服务器上搭建 httpd 服务

# yum install httpd -y
# systemctl stop firewalld.service
# setenforce 0

在 NFS 服务器上搭建 NFS 服务

  • 安装服务
    # rpm -q nfs-utils
    # rpm -q rpcbind   // 看是否安装,服务已安装 
  • 编辑配置文件
    # vim /etc/exports
    /usr/share *(ro,sync)
    /opt/benet 192.168.100.0/24(rw,sync)// 创建目录 benet,192.168.100.0 网段的可以进行读写和同步操作
    /opt/accp 192.168.100.0/24(rw,sync)// 创建目录 accp,192.168.100.0 网段的可以进行读写和同步操作 
  • 创建目录并赋予权限
    # mkdir /opt/benet /opt/accp
    # chmod 777  /opt/benet /opt/accp
  • 开启 nfs 服务并发布共享
    # systemctl start nfs.service
    # exportfs -rv  // 发布共享 

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式

    节点服务器挂载 nfs 服务器的共享文件

  • apache1 将 /opt/benet 挂载到站点目录下
    # showmount -e 192.168.100.130  // 查看共享文件
    # mount.nfs 192.168.100.130:/opt/benet /var/www/html  // 挂载
    # cd /var/www/html/
    # echo "this is benet" > index.html
    # systemctl start httpd.service 

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式

  • apache2 将 /opt/accp 挂载到站点目录下
    # showmount -e 192.168.100.130  // 查看共享文件
    # mount.nfs 192.168.100.130:/opt/accp /var/www/html  // 挂载
    # echo "this is accp" > index.html
    # systemctl start httpd.service 

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式
    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式

    LVS 服务器 (注意是双网卡)

  • 安装 ipvsadm 管理工具
    # yum install ipvsadm -y
  • 加载内核模块
    # modprobe ip_vs
  • 设置路由转发(因为是双网卡)
    # vim /etc/sysctl.conf
    末尾添加:net.ipv4.ip_forward = 1
    # sysctl -p  // 立即生效 

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式

  • 防火墙设置
    iptables -F  
    # iptables -t nat -F
    # iptables -L
    // 清空所有规则
    # iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o ens36 -j SNAT --to-source 12.0.0.1   // 设置 SNAT 转发,将所有 192.168.100.0 段的都转换为 12.0.0.1,然后进行访问 client

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式

  • 开启 ipvsadm
    # systemctl start ipvsadm.service
    注:此时开启可能会出现问题
    # ipvsadm --save  > /etc/sysconfig/ipvsadm  // 输入该行即可 

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式

  • 编写可执行的脚本
    # cd /opt
    # vi net.sh
    #!/bin/bash
    ipvsadm -C
    ipvsadm -A -t 12.0.0.1:80 -s rr
    ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.110:80 -m
    ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.120:80 -m
    ipvsadm
    # chmod +x net.sh
    # ./net.sh
    解释如下:ipvsadm -C // 清除内核虚拟服务器表中的所有记录 //
    -A:添加虚拟服务器
    -s: 指定调度算法
    rr: 轮询算法
    -a: 添加真实服务器
    -t: 指定外网网关及 TCP 端口
    -r: 指定节点服务器的地址及 TCP 端口
    -m: 使用 NAT 集群模式 

    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式
    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式
    打开一台 win7 进行检测
    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式
    CentOS 7 上实现 LVS 负载均衡群集之 NAT 转换模式
    注:当两次连续访问 12.0.0.1 时,可能一时间切换不过来,显示的还是原来的界面,这时候就必须清除缓存,才能看到两个不同的界面。当然了,如果这时关掉其中一台节点服务器的 httpd 服务,那么再去访问 12.0.0.1 时,显示的就是另一台的网页界面啦。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2692字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中