LVS集群之NAT模式实现
一、集群的种类
集群系统主要分为
1、HA:高可用集群,又叫双机热备。
  (a)原理
     2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B继续提供服务
  (b)常用的高可用开源软件:heartbeat和keepalived(可以做负载均衡)
 
2、LB:负载均衡集群
3、HPC:高性能计算集群
 
二、LB集群
1、实现手段
     硬件:F5负载均衡器
     软件:LVS(4层,网络层),  Nginx(7层,应用层)
 
2、负载均衡架构图

说明:
LVS集群使用三层架构
第一层:负载均衡层(Load Balancer)
位于整个集群系统的最前端,由一台或多台负载调度器(Director Server,以下简称dir)组成。
dir的作用类似一个路由器,它含有为完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给服务器群组层的应用服务器(Real Server)
ps:客户认为服务是来自一个虚拟IP地址上
 
第二层:服务器群组层(Server Arrary)
由一组实际运行应用服务的机器组成。Real Server(以下简称rs)可以是Web服务器、Mail服务器、FTP服务器、DNS服务器等
 
第三层:共享存储层(Shared Storage)
是为所有rs提供共享存储空间和内容一致性的存储区域,一般由磁盘阵列设备组成。
一般可以通过NFS网络文件系统共享数据(在繁忙的业务系统中,性能并不太好),此时可以用集群文件系统,如 Red Hat 的 GFS 文件系统,Oracle 提供的 OCFS2 文件系统等
 
3、LVS分3种模式
     (a)NAT(网络地址映射):通过网络地址转换的方法来实现调度 
     优点:支持所有操作系统及私有网络,且只需一个公网 IP 地址
     缺点:用户请求和响应报文都必须经过dr地址重写,当用户请求越来越多时,调度器的处理能力将成为瓶颈。
 
     (b)DR(直接路由模式):通过改写请求报文的MAC地址,将请求发送到 rs,而 rs 将响应直接返回给客户 ——》 性能最好
 
     (c)TUN(IP隧道模式):dr采用IP隧道技术将用户请求转发到某个rs,而这个rs将直接响应用户请求,不再经过dr ——》dr只处理用户的报文请求,从而使集群系统吞吐量大大提高
      ps:还有第 4 种模式 FULLNAT(淘宝ospf+lvs)
 
 
################   搭建来了   ###################
 
三、搭建LVS-NAT模式集群实现负载均衡
1、分发器 director 配置
  —— 网络配置前期工作
 (a)配置网络环境,增加网卡eth2(需要添加HWADDR不同的网卡,我的eth1跟eth0是一样的,所以只能用eth2)
 
 

 (b)生成eth2配置文件,配置虚拟 IP 地址为 10.0.69.132

    cp /etc/sysconfig/network-scripts/ifcfg-eth0  /etc/sysconfig/network-scripts/ifcfg-eth2
   (i)DEVICE=eth2
      (ii)IPADDR=10.0.69.132(跟物理机同一网段)
     
     (iii)GATEWAY=10.0.69.1
 
 (c)重启网络服务:service network restart
  内网ip:192.168.131.132
  外网ip:10.0.69.132
 

物理机可以ping通虚拟 IP

 

 
—— 开启路由转发功能,安装配置LVS-NAT
1、安装lvs核心软件包 yum install -y ipvsadm
2、写脚本管理(开启路由转发、添加虚拟服务、添加虚拟服务后端的real server)
vim /usr/local/sbin/lvs_nat.sh

参数说明:

-A:增加一个虚拟服务   
-a:增加real server
-r:指定real server 的 IP地址
-t:表示TCP服务       
-s:指定调度算法   rr:轮询算法(对调度算法感兴趣的大家可以查查~)
-m(masquerade):也就是NAT方式的LVS
 
3、执行脚本 sh !$
4、查看规则 ipvsadm -ln
 

 
二、真实服务器real server配置
rs1: 192.168.131.110
rs2: 192.168.131.131
 
rs1和rs2都要修改网卡配置文件:  /etc/sysconfig/network-scripts/ifcfg-eth0
1、网关GATEWAY都要指向分发器 dir 的 IP(192.168.131.132) ——》 一开始我懵逼,写成vip了,囧。一定要理解原理(so important)
 
2、重启网卡生效:ifdown eth0; ifup eth0
 
 
三、测试
1、修改nginx的默认页面(好区分)
rs1:echo "192.168.131.110 master" > /usr/share/nginx/html/index.html
rs2:echo "192.168.131.131 slave"   > /usr/share/nginx/html/index.html
 
2、real server(rs1,rs2)开启 nginx 服务:/etc/init.d/nginx start
(httpd也可以:yum install httpd)
其实就是开启80端口的web服务(记得查下 netstat查看是否监听80端口)
注意:分发器 dir 并没有监听 80 端口
     因为 dir 是一个路由器,只负责转发 80 端口上的数据给后端,自己并不处理请求
 
dir 访问外网 IP(10.0.69.132)
(1)不设权重测试(上面脚本内容就是)
 

(2)设置权重测试(rs1: 3   rs2: 1)
 
 
结果:
 

拓展:

ipvsadm -ln --stats  ==>  查看分发情况

ipvsadm -ln --rate  ==>   查看速率

ipvsadm -C  ==> 清空规则 

ps:如果curl无法成功,检查下防火墙是否关了(iptables -F;setenforce 0) ————》 懵逼的我被这里卡了很久 = =

大家一定要记得关防火墙哇 o(>ω<)o
     

LVS集群之NAT模式实现的更多相关文章

  1. Linux系统(四)负载均衡LVS集群之NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  2. LVS集群之NAT模式实例(3)

    LVS集群NAT模式实例 1. 实验拓扑图 DS 必须有两块网卡,需要在上面做NAT. 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20 ...

  3. LVS集群之NAT模式

    集群的分类: (1)HA:高可用集群,有叫双机热备 原理:两台机器A.B,正常是A提供服务,当A机宕机或者服务有问题时,会切换到B机继续提供服务常用的高了永软件:heartbeat和keepalive ...

  4. Linux系统(五)负载均衡LVS集群之DR模式

    序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图.LVS/NAT模式如下图: LVS/I ...

  5. LVS集群之DR模式 实现

    ps:做 dr 模式 之前,先把之前做过的操作清空掉 1.ipvsadm -ln 查看规则 2.ipvsadm -C 清空规则 3.ipvsadm -ln 确认 4.iptables -t nat - ...

  6. LB负载均衡集群及NAT模式配置

    一.LB(load balance)负载均衡集群 负载均衡集群常用的有: 1.软件实现的 nginx(工作在OSI第七层应用层) lvs+keepalived(工作在OSI第四层传输层) 2.硬件实现 ...

  7. LVS集群之DR模式

    今天来讲LVS-DR模式集群实现负载均衡的搭建方法 环境 主机名 IP   系统 角色 dir DIP:192.168.199.9 VIP:192.168.199.8 rhel7.4 集群服务器 no ...

  8. Linux系统(四)LVS集群负载均衡NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  9. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

随机推荐

  1. 再谈Newtonsoft.Json高级用法

    上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列 ...

  2. 2015Qcon参会记录(内有show girl)

    因为前一段刚去了一趟杭州的阿里TD时代交流,就没有好意思在部门内部申请Qcon的门票.但最后还是没有耐得住心里的痒,请假去听了,这里多谢把票让给我的XX同学(应他要求,马赛克了名字). 今年的Qcon ...

  3. 记一次事件委托在 ios 下的兼容 bug

    项目中碰到的兼容类 bug,记录一二. 页面上有几个同类型的控件,点击它们会触发一些事件,很显然,事件委托优于批量绑定.为了图方便,我将 click 事件绑定到了 document.body 上(绑定 ...

  4. Android开发自学笔记(Android Studio)—4.1布局组件

    一.引言 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.在Android4.0之前,我们通常说 ...

  5. 尝试使用Memcached遇到的狗血问题

    乘着有时间,尝试下利用Memcached进行分布式缓存,其中遇到了不少问题及狗血的事情,开篇记录下,希望对您有帮助. 我之前的项目为:Asp.Net MVC4 + Nhibernate + MSSQL ...

  6. Spring Boot 添加Shiro支持

    前言: Shiro是一个权限.会话管理的开源Java安全框架:Spring Boot集成Shiro后可以方便的使用Session: 工程概述: (工程结构图) 一.建立Spring Boot工程 参照 ...

  7. webpack ---loader,plugin下载命令

    css-loader:  cnpm install style-loader css-loader url-loader babel-loader sass-loader file-loader -- ...

  8. MongoDB学习笔记一

    操作系统:Windows7 1.下载MongoDB 2.6.5服务端,并安装 网址:http://pan.baidu.com/s/1dDfoJAh 说明:网上很多都不需要安装的,这个需要安装. 2.添 ...

  9. android 动画

    public void onClicked(View v_) { //wa.startAnimation(); // TextView tv = (TextView)findViewById(R.id ...

  10. 【BZOJ-3553】三叉神经树 树链剖分

    3553: [Shoi2014]三叉神经树 Time Limit: 160 Sec  Memory Limit: 256 MBSubmit: 347  Solved: 112[Submit][Stat ...