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-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!