LVS模块:使用LVS-NAT搭建集群

最近学习Linux也是学到了LVS这一服务,我把我所学到的东西分享给大家,我会尽量详细介绍搭建环境过程,我先介绍NAT模式,下章介绍DR模式。

 

一:集群与LVS集群

1.1什么是集群

         一组各自相互独立且又相互依赖的,通过高速网络互联的计算机组成的一个计算机组, 以单一的系统模式加以管理, 为用户提供服务, 对用户来说, 用户只会认为对方是一个服务.  这个里面, 一组计算机的一台计算机就是集群的一个节点

        集群的特性:可伸缩性, 可靠性,  可管理 

        集群系统主要分为:

                    1: 负载均衡(Load Balance)集群,简称LB

                    2:高可用(High Availability)集群,简称 HA 集群

                    3:高性能计算(High Perfermance Computing)集群,简称 HPC 集群

1.2LVS集群

        LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的*软件项目之一,是根据iptables的实现来开发的,所以使用时候会和iptables相当类似。

       LVS提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)。不同的转发模式决定了不同的cluster的网络结构

      NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包,有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。

      下面是基本架构图:LVS负责对后端的分发,realserver是后端真实服务器。

LVS模块:使用LVS-NAT搭建集群

 

二:搭建LVS-NAT集群环境

实验前期准备:

      1、准备3台主机   2、iptables -F , 清除规则          3、编辑/etc/selinux/config设置为Disabled。

2.1 LVS配置成分发器:

 

1:打开路由转发功能

[[email protected]xuegod63 ~]# vim /etc/sysctl.conf  

添加或改为:net.ipv4.ip_forward = 1

让配置生效:

[[email protected] ~]# sysctl -p

 

2、配置网络环境:

添加一个网卡(需要两张网卡), 配置成以下网络环境:

ens33  124.124.124.124        公网

ens44 192.168.2.63               内网(同时也是后端集群的网关)

 

3:安装: LVS管理工具: ipvsadmin

 [[email protected] Packages]# yum install ipvsadm   -y
配置lvs-nat模式

[[email protected] ~]# ipvsadm -A -t 124.124.124.124:80 -s rr       rr代表轮循  

选项:

-A 添加虚拟服务器(该地址是对外使用的地址)

 -t 表示TCP的服务  VIP:PORT

 -s 指定调度算法  rr表示round-robin 轮循

 

[[email protected] ~]#  ipvsadm -a -t 124.124.124.124:80 -r 192.168.2.64 -m

[[email protected] ~]#  ipvsadm -a -t 124.124.124.124:80 -r 192.168.2.62 -m

选项:

 -a 表示添加real server的地址

 -r 指定后端的IP地址

 -m 表示masquerade 也就是NAT方式的LVS

 

4: 查看:

Ipvsadm命令,用于配置及查看内核IPVS表和算法的工具,类似于iptables

[[email protected] ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  124.124.124.124:80 rr

  -> 192.168.2.62:80              Masq    1      0          0         

  -> 192.168.2.64:80              Masq    1      0          0        

 保存配置或规则

[[email protected] ~]# ipvsadm -S    保存以上的配置

 

2.2  配置真实服务器

后端:在xuegod62和xuegod64上面配置:

准备:

1、配置IP:后端自己的网络相关信息配置成如下:

xuegod62: eth0: vmnet4 : 192.168.2.62  网关: 192.168.2.63

xuegod64: eth0: vmnet4 : 192.168.2.64  网关: 192.168.2.63

 

2、配置xuegod64为后端, 并启web服务

[[email protected] ~]# yum install -y httpd

[[email protected] ~]# systemctl restart httpd

[[email protected] ~]# echo "192.168.2.64" > /var/www/html/index.html    #(实验期间,各个服务器的页面不同)

 

3、配置xuegod62为后端, 并启web服务

[[email protected] ~]# yum install -y httpd

[[email protected] ~]# systemctl restart httpd

[[email protected] ~]# echo "192.168.2.62" > /var/www/html/index.html    #(实验期间,各个服务器的页面不同)

 

4: 测试:

在xuegod63上测试:

[[email protected] ~]# yum install elinks   

 

测试realserver :

[[email protected] ~]# elinks 192.168.2.64

[[email protected] ~]# elinks 192.168.2.64 --dump

   192.168.2.64

[[email protected] ~]# elinks 192.168.2.62 --dump

   192.168.2.62

 

 测试VIP:

[[email protected] ~]# elinks 124.124.124.124 --dump

   192.168.2.62

[[email protected] ~]# elinks 124.124.124.124 --dump

   192.168.2.64

不通的可以关闭防火墙或者开放80端口试试。

5:扩展

ipvsadm  -C 清空所有规则

ipvsadm -Ln 查看规则

ipvsadm  -S 保存配置

其他可以看看ipvsadm  --help查看帮助命令翻译一些,多用帮助命令

 

三:总结

配置不难那,基本上很简单,下一章介绍DR模式,有啥问题可以留言或者加我QQ:409480811!