LINUX负载均衡LVS-NAT搭建

时间:2022-09-05 16:20:47

1.搭建前的规划工作

这里从lvs官方网站找了一个nat模型的图,如下:

LINUX负载均衡LVS-NAT搭建

我这里使用虚拟机模拟出了4台rhel6机器。一台服务器作为lvs调度器(40网段使用的都是仅主机模式,168网段使用桥接模式),3台服务器作为具体的web服务器(使用仅主机模式),我本是的宿主机就是作为web测试机器。

具体配置如下

机器名称 ip配置 ip配置附加 备注信息
lvs调度器 192.168.40.200 192.168.168.200 有2个网卡地址,
RS1 192.168.40.201   和lvs的第一个ip地址,rs2,rs3属于同一网段
RS2 192.168.40.202   和lvs的第一个ip地址,rs2,rs3属于同一网段
RS3 192.168.40.203   和lvs的第一个ip地址,rs2,rs3属于同一网段
宿主机   192.168.168.10 和lvs的第二个ip地址属于同一网段

配置好上面的环境,确保同一个网段的主机可以相互ping的通。 这里都先关闭防火墙和selinux设置。

2.检查操作系统支持lvs情况

[root@localhost ~]# grep -i 'vs' /boot/config-2.6.-.el6.i686      #有输出说明支持,我们使用的rhel6,默认的编译就有lvs模块。

3.安装ipvsadm工具

[root@localhost ~]# yum -y install ipvsadm

4.ipvsadm工具的简单使用

ipvsadm:
管理集群服务
添加:-A -t|u|f service-address [-s scheduler]
-t: TCP协议的集群
-u: UDP协议的集群
service-address: IP:PORT
-f: FWM: 防火墙标记
service-address: Mark Number
修改:-E
删除:-D -t|u|f service-address # ipvsadm -A -t 172.16.100.1: -s rr 管理集群服务中的RS
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
-t|u|f service-address:事先定义好的某集群服务
-r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;
[-g|i|m]: LVS类型
-g: DR模型
-i: TUN模型
-m: NAT模型
[-w weight]: 定义服务器权重
修改:-e
删除:-d -t|u|f service-address -r server-address # ipvsadm -a -t 172.16.100.1: -r 192.168.10.8 -m
# ipvsadm -a -t 172.16.100.1: -r 192.168.10.9 -m
查看
-L|l
-n: 数字格式显示主机地址和端口
--stats:统计数据
--rate: 速率
--timeout: 显示tcp、tcpfin和udp的会话超时时长
-c: 显示当前的ipvs连接状况 删除所有集群服务
-C:清空ipvs规则
保存规则
-S
# ipvsadm -S > /path/to/somefile
载入此前的规则:
-R
# ipvsadm -R < /path/form/somefile

5.设置所有的RS服务器的网关为调度器的ip地址

[root@localhost ntpstats]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
#修改网关为调度器的ip地址
GATEWAY=192.168.40.200
#三个rs服务器都需要设
确保在各个RS服务的路由信息的正确性
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.40.0    *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.40.200  0.0.0.0         UG    0      0        0 eth

6.给那个RS服务器安装http服务并测试

[root@localhost ntpstats]# yum install httpd              #每个rs服务器都安装httpd服务
[root@localhost ntpstats]# service httpd restart #每个rs服务器都重新启动
[root@localhost ntpstats]# echo rs1> /var/www/html/index.html #给rs1服务器创建一个主页,只在rs1上执行
[root@localhost ntpstats]# echo rs2> /var/www/html/index.html  #给rs2服务器创建一个主页,只在rs2上执行
[root@localhost ntpstats]# echo rs2> /var/www/html/index.html  #给rs3服务器创建一个主页,只在rs3上执行
#接下来使用在调度器lvs服务器先测试下各个页面是否可以正常访问
[root@localhost ~]# elinks -source 192.168.40.201
rs1
[root@localhost ~]# elinks -source 192.168.40.202
rs2
[root@localhost ~]# elinks -source 192.168.40.203
rs3

7.创建LVS

[root@localhost ~]# ipvsadm -A -t 192.168.168.200: -s rr              #创建一个集群服务,调度算法rr,
[root@localhost ~]# ipvsadm -a -t 192.168.168.200: -r 192.168.40.201 -m #添加rs1 nat方式
[root@localhost ~]# ipvsadm -a -t 192.168.168.200: -r 192.168.40.202 -m #添加rs2 nat方式
[root@localhost ~]# ipvsadm -a -t 192.168.168.200: -r 192.168.40.203 -m #添加rs3 nat方式

8.打开ip转发机制

调度器要能访问168,40两个网段的,需要打开ipforward功能。

[root@localhost ~]# echo  >/proc/sys/net/ipv4/ip_forward #打开ipv的ip转发机制,当前生效
[root@localhost ~]# vim /etc/sysctl.conf
#打开ipv的ip转发机制,永久生效
net.ipv4.ip_forward =

9. 确保集群的时间不能太大

这里建议在调度器lvs上安装ntp服务,其他RS服务器来同步时间

10.我们使用宿主机进行测试

浏览器输入http://192.168.168.200,不断刷新,就可以看到如下的三个图片信息。测试成功后,就可以把三个RS服务器页面做成一样的啦。

LINUX负载均衡LVS-NAT搭建

LINUX负载均衡LVS-NAT搭建

LINUX负载均衡LVS-NAT搭建

宿主机测试量太小了。 我们直接在调度器上使用ab命令测试下

[root@localhost ~]# ab -n  -c  http://192.168.168.200/index.html
[root@localhost ~]# ipvsadm -L -n --rate
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
-> RemoteAddress:Port
TCP 192.168.168.200:
-> 192.168.40.201:
-> 192.168.40.202:
-> 192.168.40.203:

上面可以看到,3个RS的任务是基本一样多的。

LINUX负载均衡LVS-NAT搭建的更多相关文章

  1. Linux负载均衡--LVS(IPVS)

    一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的*软件项目,现在已经是 Linux标准内核的一部分.LVS是一种叫基于T ...

  2. 负载均衡 Lvs nat 模式笔记

    nat技术(网络地址转换) 缺点就是进入和返回都通过调度器的服务器,未来可能会成为瓶颈 实验:nat 模式 先在调度器安装ipvsadm 后再添加网卡,后面就连不上网了(yum -y install ...

  3. Linux负载均衡软件LVS简介

    Linux负载均衡软件LVS LVS集群的体系结构以及特点 1. LVS简介        LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...

  4. Linux负载均衡软件LVS之二(安装篇)&lbrack;转&rsqb;

    Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文 ...

  5. 服务器负载均衡lvs(Linux Virtual Server)

    服务器负载均衡lvs(Linux Virtual Server) 一.总结 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 三.Linu ...

  6. (转)Linux负载均衡软件LVS之一(概念篇)

    转:http://ixdba.blog.51cto.com/2895551/552947 Linux负载均衡软件LVS之二(安装篇):http://ixdba.blog.51cto.com/28955 ...

  7. linux负载均衡(什么是负载均衡)

    linux负载均衡(什么是负载均衡) 一.总结 一句话总结: 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...

  8. linux负载均衡总结性说明(四层负载&sol;七层负载)

    在常规运维工作中,经常会运用到负载均衡服务.负载均衡分为四层负载和七层负载,那么这两者之间有什么不同?废话不多说,详解如下: 一,什么是负载均衡1)负载均衡(Load Balance)建立在现有网络结 ...

  9. &lbrack;转帖&rsqb;负载均衡 LVS&plus;Keepalived

    负载均衡 LVS+Keepalived https://www.cnblogs.com/jicki/p/5546862.html 改天试试 一直没搞过. 系统  CentOS 5.6 X64 物理机 ...

  10. linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS&plus;keepalived负载均衡

    最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...

随机推荐

  1. 新作《ASP&period;NET Web API 2框架揭秘》正式出版

    我觉得大部分人都是“眼球动物“,他们关注的往往都是目光所及的东西.对于很多软件从业者来说,他们对看得见(具有UI界面)的应用抱有极大的热忱,但是对背后支撑整个应用的服务却显得较为冷漠.如果我们将整个“ ...

  2. 在Django中进行注册用户的邮件确认

    之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...

  3. 可拖动的DIV

    在做WEB UI设计的时候,拖动某个HTML元素已经成为一种不能忽视的用户界面模式,比较典型的应用例子就是Dialog,一个元素是怎么实现拖动的呢?其实原理非常简单,要想实现首先得了解几个基本知识. ...

  4. JAVA中I&sol;O流

    IO流分为输入流(InputStream)和输出流(OutputStream)两类 按流所处理的数据类型又可以分为字节流和字符流(用于处理Unicode字符数据)两类 字节流主要是由 InputStr ...

  5. pthread 学习系列 case1-- 共享进程数据 VS 进程

    #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <pthread.h& ...

  6. &lbrack;BS-14&rsqb; 打印NSArray和NSDictionary的3种方法

    打印NSArray和NSDictionary的3种方法 NSArray *arr = @[@"奔驰",@"宝马",@"路虎",@" ...

  7. Linux下ps -ef和ps aux的区别及格式详解

    Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格, System V风格和BSD 风格 ...

  8. java中的类实现comparable接口 用于排序

    import java.util.Arrays; public class SortApp { public static void main(String[] args) { Student[] s ...

  9. (转载)mysql书籍

    (转载)http://blog.csdn.net/symdfbb/article/details/7636332 MySQL技术内幕 mysql使用大全,可以说方方面面都包括了.认真研读大概一本就差不 ...

  10. CoreAnimation 目录

    CoreAnimation 目录 CoreAnimation 开篇 CoreAnimation 寄宿图 CoreAnimation 图层几何学 CoreAnimation 视觉效果