集群

声明

文档不断更新中...

集群概念

一组相互独立又相互依赖的,通过网络连接的由计算机组,以单一的模式进行管理,为对方提供服务,对于用户来说,用户会认为对方是一个服务。

  • DIP:用来和后端服务器进行数据交互的IP

  • CIP:客户端的IP

  • VIP:是域名解析的IP,是集群对外的公网IP

  • RIP:真实服务器的IP

  • 节点:一组计算机组中的一台就是集群的一个节点。

集群特性

可伸缩性、可靠性、可管理性。

Web服务器并发相应瓶颈

  • 向上扩展/纵向扩展:加CPU、加内存、加带宽、加SSD。
  • 向外扩展/横向扩展:加服务器,使用多台服务器同时为用户提供服务。

向外扩展:就是集群

集群的分类

  • 负载均衡(Load Balance)集群,简称LB
  • 高可用(High Availability)集群,简称HA
  • 高性能(High Perfermance)集群,简称HPC

LB实现方法:

  • 硬件:-F5负载均衡器
  • 软件:-LVS(4层,传输层)、Nginx(7层,应用层)

LVS集群

LVS是Linux Virtual Server的缩写,即Linux虚拟服务器,是一个虚拟的服务器集群系统。根据iptables的实现开发的,使用方法和iptables类似。

官网地址:http://www.linuxvirtualserver.org/

中文站点: http://zh.linuxvirtualserver.org/

负载调度器

分发器(Load Balancer Director):整个集群对外的最前端,负责接收用户请求,并且根据自己的调度算法,将请求转发到后端的真实服务器上的动作,而用户认为服务是来自一个IP地址(虚拟地址VIP)上的。

服务器池

Server Pool:真正为用户提供服务的服务器,每一台就是一台RS(Real Server),执行的服务有Web, Mail, FTP, DNS等。

共享存储

Shared Storaged为RS保持相同内容,提供数据的一致性,也就是说,它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

LVS负载均衡的三种模式

  • NAT(网络地址映射)
  • IP Tunneling(IP隧道)
  • Direct Routing(直接路由)

不同的转发模式决定了不同的Cluster(群)的网络结构。

NAT:网络地址转换

DNAT:目标地址转换,改变的是目标地址

SNAT:源地址转换,改变的是原地址

LVS-NAT:使用的就是SNAT和DNAT完成包的转发。

NAT模式工作原理:

客户端访问调度器时,调度器通往网络地址转换,重写请求报文的目标地址,根据预设的调度算法,将请求分发给后端RS服务器,RS服务器的相应报文通过调度器时,报文的源地址被重写,再返回给用户,完成整个负载调度过程。

优点

NAT方式支持任何操作系统,以及私有网络,并且只需要一个Internet IP 地址。

缺点

执行NAT每次需要重写包,有一定的延迟,对负载均衡器的压力大。

搭建LVS-NAT集群

节点声明:

  1. 配置LVS-NAT集群:
  2. harry63配置成分发器:
  3. 1、打开路由转发功能
  4. [root@harry63 ~]# vim /etc/sysctl.conf
  5. 改:net.ipv4.ip_forward = 0
  6. 为:net.ipv4.ip_forward = 1
  7. 让配置生效:
  8. [root@harry63 ~]# sysctl -p
  9. 2、配置网络环境:
  10. 添加一个网卡(需要两张网卡), 配置成以下网络环境:
  11. eth0 192.168.1.63 模式:br0 模拟公网
  12. eth1 192.168.2.63 模式:vmnet4 模拟内网
  13. Director分发器:需不需要开启80(服务的)端口
  14. 1.4.5 安装: LVS管理工具: ipvsadmin
  15. [root@harry63 Packages]# pwd
  16. /mnt/Packages
  17. [root@harry63 Packages]# rpm -ivh ipvsadm-1.25-9.el6.x86_64.rpm
  18. 或:
  19. yum install ipvsadm
  20. 1.4.6 使用ipvsadm命令设置规则:
  21. [root@harry63 ~]# ipvsadm -A -t 192.168.1.63:80 -s rr rr代表轮循
  22. 选项:
  23. -A 添加虚拟服务器
  24. -t 表示TCP的服务 VIPPORT
  25. -s 指定调度算法 rr表示round-robin 轮循
  26. [root@harry63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.64 -m
  27. [root@harry63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.62 -m
  28. 选项:
  29. -a 表示添加real server的地址
  30. -r 指定real serverIP地址
  31. -m 表示masquerade 也就是NAT方式的LVS
  32. 1.4.7 查看:
  33. Ipvsadm命令,用于配置及查看内核IPVS表和算法的工具,类似于iptables
  34. [root@harry63 ~]# ipvsadm -L -n
  35. IP Virtual Server version 1.2.1 (size=4096)
  36. Prot LocalAddress:Port Scheduler Flags
  37. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  38. TCP 192.168.1.63:80 rr
  39. -> 192.168.2.62:80 Masq 1 0 0
  40. -> 192.168.2.64:80 Masq 1 0 0
  41. 1.4.8 保存配置或规则
  42. [root@harry63 ~]# ipvsadm --save > /etc/sysconfig/ipvsadm
  43. ipvsadm -S 保存以上的配置
  44. Saving IPVS table to /etc/sysconfig/ipvsadm: [确定]
  45. 1.4.9 配置真实服务器
  46. RealServer:在harry62harry64上面配置:
  47. 准备:
  48. 1、配置IPREAL SERVER自己的网络相关信息配置成如下:
  49. harry62 eth0 vmnet4 192.168.2.62 网关: 192.168.2.63
  50. harry64 eth0 vmnet4 192.168.2.64 网关: 192.168.2.63
  51. 2、配置harry64realserver 并启web服务
  52. [root@harry64 ~]# yum install -y httpd
  53. [root@harry64 ~]# systemctl restart httpd
  54. [root@harry64 ~]# echo "192.168.2.64" > /var/www/html/index.html #(实验期间,各个服务器的页面不同)
  55. 3、配置harry62realserver 并启web服务
  56. [root@harry62 ~]# yum install -y httpd
  57. [root@harry62 ~]# systemctl restart httpd
  58. [root@harry62 ~]# echo "192.168.2.62" > /var/www/html/index.html #(实验期间,各个服务器的页面不同)
  59. 1.4.10 测试:
  60. harry63上测试:
  61. [root@harry63 ~]# yum install elinks
  62. 测试realserver
  63. [root@harry63 ~]# elinks 192.168.2.64
  64. [root@harry63 ~]# elinks 192.168.2.64 --dump
  65. 192.168.2.64
  66. [root@harry63 ~]# elinks 192.168.2.62 --dump
  67. 192.168.2.62
  68. 1.4.11 测试VIP
  69. [root@harry63 ~]# elinks 192.168.1.63 --dump
  70. 192.168.2.62
  71. 访问: 在物理上打开浏览器访问: 每按F5刷新一次,就会变换一个页面。
  72. 至此,NAT模式集群配置完毕。

IP Tunneling(IP隧道)

Director(分发器)分配请求到不同的Real Server,Real Server处理请求后直接回应用户。

条件

服务器必须拥有正式的IP地址用于与客户机直接通信,并且所有服务器必须支持IP隧道协议。

优点

提高了调度器的处理能力,允许Real Server在任何LAN或者WAN上运行,允许异地部署,容错。

Direct Routing(直接路由)

与IP Tunneling类似,负载均衡器仅处理一半的连接,同样增加了系统的可伸缩性。

1)基于mac的数据报文转发, 是效率最好的, 但是是根据交换机的MAC地址表来实现的

2)2层设备不具有路由功能, 那么广播也就不具有跨路由的功能, 所有要实现mac地址广播, 必须在同一物理网段

3):vlan具有隔离广播的功能, 所有要能处理mac地址广播, 就应该在同一个VLAN中

原理

  • client向目标vip发出请求,Director接收。
  • Director分发器根据负载均衡算法选择一台active的realserver,将RIP网卡所在的mac地址作为目标mac地址发送到局域网。
  • realserver在局域网中接收到这个帧。
  • 如果client与VS在同一网段,那么就直接接收到回复报文,如果跨网段,则通过路由器/gateway经由Internet返回给用户。

条件

  • 所有设备应该在同一物理网段中
  • 所有设备应该在同一广播域中

优点

没有IP封装的开销。基于2层的数据报文转发,要比基于3层的网络转发效率高。在LVS的所有模式中,效率最好。

缺点

所有服务器都必须在一个物理网段。

全部服务器都为公网IP地址,可以直接和客户端通信。

DR集群搭建

待更新...

环境声明

DIP 192.168.0.64

VIP 192.168.0.46

RIP1: 192.168.0.66

RIP2: 192.168.0.67

  1. # 配置虚拟IP

负载均衡

LB负载均衡分为两类:LVS(四层)和nginx或者haproxy

CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR);的更多相关文章

  1. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  2. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

  3. Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)

    当下Linux运维技术越来越受到企业的关注和追捧, 在某些企业, 尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案.那么如何实施Llinux集群架构,才能既有效 ...

  4. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  5. 手把手教程: CentOS 6.5 LVS + KeepAlived 搭建 负载均衡 高可用 集群

    为了实现服务的高可用和可扩展,在网上找了几天的资料,现在终于配置完毕,现将心得公布处理,希望对和我一样刚入门的菜鸟能有一些帮助. 一.理论知识(原理) 我们不仅要知其然,而且要知其所以然,所以先给大家 ...

  6. lvs+heartbeat搭建负载均衡高可用集群

    [172.25.48.1]vm1.example.com [172.25.48.4]vm4.example.com 集群依赖软件:

  7. LVS+Keepalived实现高可用集群

    LVS+Keepalived实现高可用集群来源: ChinaUnix博客 日期: 2009.07.21 14:49 (共有条评论) 我要评论 操作系统平台:CentOS5.2软件:LVS+keepal ...

  8. 基于Keepalived实现LVS双主高可用集群

    Reference:  https://mp.weixin.qq.com/s?src=3&timestamp=1512896424&ver=1&signature=L1C7us ...

  9. RabbitMQ高级指南:从配置、使用到高可用集群搭建

    本文大纲: 1. RabbitMQ简介 2. RabbitMQ安装与配置 3. C# 如何使用RabbitMQ 4. 几种Exchange模式 5. RPC 远程过程调用 6. RabbitMQ高可用 ...

随机推荐

  1. 探讨MySQL的各类锁

    参考文档:http://blog.csdn.net/soonfly/article/details/70238902 锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除了传统的计算机 ...

  2. Java多线程和并发(十),JMM(Java内存模型)

    目录 1.什么是JMM 2.JMM的主内存和工作内存 3.JMM如何解决可见性问题-指令重排序 4.Volatile 十.JMM(Java内存模型)(暂时没有理解) 1.什么是JMM 2.JMM的主内 ...

  3. TTTTTTTTTTT hdu 1520 Anniversary party 生日party 树形dp第一题

    Anniversary party Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  4. 捕获有问题的SQL

  5. HDU 2859—Phalanx(DP)

    Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Today i ...

  6. oracle 获取时间

    1.获取当前时间的前24小时的各小时时间段 select to_char(to_date(to_char(sysdate ) ,'yyyy-mm-dd hh24') || ':00:00','yyyy ...

  7. oracle ROW_NUMBER() OVER(PARTITION BY '分组' ORDER BY '排序' DESC) 用法

    转载:https://blog.csdn.net/dbagaoshou/article/details/51330829 SELECT * FROM ( SELECT ROW_NUMBER() OVE ...

  8. C1:DOM 元素的尺寸和位置

    DOM元素的尺寸和位置 DOM 元素的尺寸 DOM.offsetWidth/offsetHeight: 包括内容区宽/高,padding,border,不包括margin.如果元素的box-sizei ...

  9. [翻译]C#中异步方法的性能特点

    翻译自一篇博文,原文:The performance characteristics of async methods in C# 异步系列 剖析C#中的异步方法 扩展C#中的异步方法 C#中异步方法 ...

  10. 20175212童皓桢 《Java程序设计》第十周学习总结

    学号 2016-2017-2 <Java程序设计>第X周学习总结 教材学习内容总结 一.Java中的线程的状态 建的线程在它的一个完整的生命周期中通常要经历如下的四种状态: 1.新建: 当 ...