CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR)

目录

  • 集群

    • 声明
    • 集群概念
    • 集群特性
    • Web服务器并发相应瓶颈
    • 集群的分类
      • LB实现方法:
    • LVS集群
      • 负载调度器
      • 服务器池
      • 共享存储
      • LVS负载均衡的三种模式
    • 负载均衡

集群

声明

文档不断更新中...

集群概念

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

  • 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集群
配置LVS-NAT集群:
harry63配置成分发器:
1、打开路由转发功能
[[email protected] ~]# vim /etc/sysctl.conf
改:net.ipv4.ip_forward = 0
为:net.ipv4.ip_forward = 1
让配置生效:
[[email protected] ~]# sysctl -p

2、配置网络环境:
添加一个网卡(需要两张网卡), 配置成以下网络环境:
eth0  192.168.1.63  模式:br0    模拟公网
eth1  192.168.2.63  模式:vmnet4    模拟内网

Director分发器:需不需要开启80(服务的)端口  ?

1.4.5  安装: LVS管理工具: ipvsadmin
 [[email protected] Packages]# pwd
/mnt/Packages
[[email protected] Packages]# rpm -ivh ipvsadm-1.25-9.el6.x86_64.rpm
或:
yum install ipvsadm  

1.4.6  使用ipvsadm命令设置规则:
[[email protected] ~]# ipvsadm -A -t 192.168.1.63:80 -s rr       rr代表轮循
选项:
-A 添加虚拟服务器
 -t 表示TCP的服务  VIP:PORT
 -s 指定调度算法  rr表示round-robin 轮循

[[email protected] ~]#  ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.64 -m
[[email protected] ~]#  ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.62 -m
选项:
 -a 表示添加real server的地址
 -r 指定real server的IP地址
 -m 表示masquerade 也就是NAT方式的LVS

1.4.7  查看:
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  192.168.1.63:80 rr
  -> 192.168.2.62:80              Masq    1      0          0
  -> 192.168.2.64:80              Masq    1      0          0        

1.4.8  保存配置或规则
[[email protected] ~]# ipvsadm --save > /etc/sysconfig/ipvsadm
或ipvsadm -S    保存以上的配置
Saving IPVS table to /etc/sysconfig/ipvsadm:           [确定]

1.4.9  配置真实服务器
RealServer:在harry62和harry64上面配置:
准备:
1、配置IP:REAL SERVER自己的网络相关信息配置成如下:
harry62: eth0: vmnet4 : 192.168.2.62  网关: 192.168.2.63
harry64: eth0: vmnet4 : 192.168.2.64  网关: 192.168.2.63

2、配置harry64为realserver, 并启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、配置harry62为realserver, 并启web服务
[[email protected] ~]# yum install -y httpd
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# echo "192.168.2.62" > /var/www/html/index.html    #(实验期间,各个服务器的页面不同)

1.4.10  测试:
在harry63上测试:
[[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

1.4.11  测试VIP:
[[email protected] ~]# elinks 192.168.1.63 --dump
   192.168.2.62

访问: 在物理上打开浏览器访问: 每按F5刷新一次,就会变换一个页面。
至此,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地址,可以直接和客户端通信。

负载均衡

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

原文地址:https://www.cnblogs.com/fusheng11711/p/12050131.html

时间: 2024-11-03 05:41:32

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

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

随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实施linux集群架构,才能既有效保证网站健康运行,又能节省运维成本呢?下面依据近几年的运维经历,简单梳理下自己的一点感悟. (1)机房的选择如果有自己公司的机房那是再好不过的了:如果没有,建议放在BGP机房内托管,如果有选择的话,最好是选择带有硬件防火墙的机房,这样在安全方面也有保障:网站如若是放在

Haproxy+keepalived实现双主负载均衡高可用集群

项目说明 1.         使用LVS负载均衡用户请求到后端web服务器,并且实现健康状态检查 2.         使用keepalived高可用LVS,避免LVS单点故障 3.         集群中分别在LK-01和LK-02运行一个VIP地址,实现LVS双主 4.         用户通过DNS轮训的方式实现访问集群的负载均衡(不演示) 实验拓扑 环境介绍: IP地址 功能描述 HK-01 172.16.4.100 调度用户请求到后端web服务器,并且和LK-02互为备份 HK-02

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

[172.25.48.1]vm1.example.com [172.25.48.4]vm4.example.com 集群依赖软件: 1.安装heartbeat集群软件 2.生成heartbeat配置文件. 3.配置heartbeat配置文件.

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

前言 前面说过基于heartbeat的LVS高可用方案,今天带来另一种解决方案:基于Keepalived实现LVS双主高可用集群.什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生.本文将详细讲述Keepalived工作原理及高可用解决方案的实现. 相关介绍 Keepalived简介 Keepalived采用VRRP(virtual router redundancy protocol,虚拟路由冗余

LVS+Keepalived+Nginx+Tomcat高可用集群搭建(转)

LVS+Keepalived+Nginx+Tomcat高可用集群搭建 最近公司重整架构,十几台服务器而且还要尽可能节约成本.我就谷歌了一下在几种集群之前进行比较最终采用了Keepalived+Nginx做负债均衡高可用.虽然之前也研究过集群,看过很多集群方面的原理和架构,但毕竟没有真正操作过以下案例是在虚拟机中完成实验其实对于高可用搭建来说只用给出Keepalived和Nginx的配置即可后面的一些安装搭建完全是本人项目需要可以不用理睬仅供参考. 本文只是实验搭建记录方便以后在服务器中实施搭建.

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

MHA 高可用集群搭建(二)

MHA 高可用集群搭建安装scp远程控制http://www.cnblogs.com/kevingrace/p/5662839.html yum install openssh-clients mysql5.7运行环境:centos6.51 主机部署 manager:192.168.133.141test1: 192.168.133.138test2:192.168.133.139 (为master1的备用)test3: 192.168.133.140 test1为主,test2和test3为备

CentOS7/RHEL7 pacemaker+corosync高可用集群搭建

目录 一.集群信息... 4 二.集群搭建... 4 1.制作软件源... 4 2.主机基础配置... 5 3.集群基础环境准备... 7 4.集群资源准备... 9 5.资源配置... 11 6.constraint配置... 12 7.stonith配置... 13 8.集群功能验证... 14 三.集群常用命令及作用... 17 1.验证群集安装... 17 2.查看群集资源... 17 3.使用群集脚本... 17 4.STONITH 设备操作... 17 5.查看群集配置... 17

linux 下heartbeat简单高可用集群搭建

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.通过Heartbeat我们可以实现双机热备,以实现服务的持续性. linux下基于heartbeat的简单web服务的高可用集群搭建 首先规划好两台主机作为heartbeat的双机热备,命名为node1.lvni.cc(主) ;node2.lvni.cc, node1的eth0IP :192.168.157.148  Vip eth0:0:192.168.157.149 node2的eth0IP :19