集群及LVS原理

集群(cluster):单台服务器无法满足生产,其中包括容量,可用,性能等,就要组合多台服务器来协同处理,对外部环境来说,集群作为一个整体

一、集群的常见类型:

1、LB:Load Balancing 负载均衡集群

LB利用一个集群中的多台服务器完成工作,作用就是将用户的请求,选择分配给当时负载最小,且能提供最好的服务的服务器来处理。

LB主要应用于访问请求很大的web和在线网游场景

2、HA:High Availability 高可用集群

HA是利用集群中系统冗余,时刻以特定的方式对正在工作的服务器进行检测,当某台服务器发生故障时,备用服务器会替代它工作,最大限度保证服务的可用性。

HA主要应用关键型业务场景,例如银行,电信等

3、HP:High Performance 高性能集群

HP利用一个集群中多台服务器共同完成一件任务,大大提高运行速度和可靠性,弥补了单机性能的不足。

HP主要应用于大数据计算场景,例如天气预报,搜索引擎等。

说明:生产环境中,集群是混合使用的。如金融类网站,面对海量的访问,首先要由负载均衡平衡大访问,而重要数据又要保证可用性,为了提高访问速度又要提高性能。

二、负载均衡集群

负载均衡集群分为硬件和软件,硬件的性能较好,但价格较高,有F5、Citix、IBM等众多商家的相关产品,一般并发处理数500W以上。软件有LVS、Haproxy、nginx、apache等

软件负载均衡:LVS

LVS是一个开源的软件,可以实现linux平台下简单负载均衡。LVS是linux virtual server的缩写,意思为linux虚拟服务

LVS采用三层结构:负载调度器,服务器池,共享存储。

负载调度器(Director)工作在TCP/IP协议的四层,转发协议由内核模块完成,转发规则由管理员定义,所以,LVS是两段式的架构设计,在内核空间中工作的是ipvs,而在用户空间中工作的,用来让管理员定义集群服务规则的是ipvsadm。这跟iptables的工作原理几乎一样,只是运行路线不同。

iptables如下图:

lvs如下图:

lvs中各IP的说明,如图:

CIP:外网IP,客户端的请求IP

VIP:Director(负载调度器)用来向客户端提供服务的IP

DIP:Director用来和RIP通信的IP

RIP:集群节点(提供服务的服务器)的IP

LVS的四种转发模型:

1、LVS-NAT:网络地址转换 Network Address Translation

其实上图就是一个LVS-NAT模型,Director要处理请求和响应报文,因此压力山大,在实际生产环境中,很少用此模型,数据包地址转换过程如下:

S:CIP D:VIP-->Director-->S:CIP D:RIP-->Real server-->S:RIP D:CIP-->Director-->S:VIP D:CIP

此模型有以下特点:

(1)RS使用私有地址,RS的网关指向DIP

(2)请求和响应都由Director转发,Director易成为瓶颈

(3)支持端口映射

(4)RS可使用任意OS

(5)RS的RIP必须与Director的DIP在同一网络

2、LVS-DR:直接路由 Direct routing

此模型中Director仅处理客户端请求报文,而响应不经由Director。数据包地址转换过程如下:

S:CIP D:VIP[路由器MAC Director MAC]-->Director-->S:CIP D:VIP[Drector MAC Real server MAC]-->Real server-->S:VIP D:CIP

此模型有以下特点:

(1)保证前端路由器将目标地址为VIP的请求通过ARP解析后送往Director

解决方案:

静态绑定:在前端路由将VIP对应的MAC静态配置为Director的MAC

arptables:在各RS上,通过arptables规则拒绝其响应对VIP的ARP广播请求

内核参数:在RS上修改内核参数,并结合地址配置方式实现拒绝响应对VIP的ARP广播请求

(2)RS的RIP可以使用私有地址,也可用公网,通过公网对RS管理

(3)请求报文必须经由Directo调度,响应不经由

(4)各RIP必须与DIP在同一个物理网络

(5)不支持端口映射

(6)RS可使用多数OS

(7)RS的网关一定不能指向Director

3、LVS-TUN:IP隧道 IP tunneling

不修改请求报文IP首部,而是通过IP隧道机制在原有的IP报文之外再封装IP首部,经由互联网把请求报文交给选定的RS

架构特性

(1)RIP,DIP,VIP都是公网地址

(2)RS的网关不能指向DIP

(3)请求报文由Director分发,由RS响应Client

(4)不支持端口映射

(5)RS的OS要支持隧道功能

4、lvs-fulnat:通过修改源地址和目标地址实现,请求修改为DIP-RIP,响应修改为VIP-CIP

架构特性

(1)RIP,DIP可以使用私有地址

(2)RIP和DIP可以不在同一个网络,RIP的网关不必指向DIP

(3)支持端口映射

(4)RS的OS可使用任意

(5)请求和响应报文都经由Director

三、LVS的调度方法

调度方法,就是Director(调度器)在接收到用户请求后,根据算法把请求发给服务器池中的哪个服务器。其中调度方法又分为静态方法和动态方法。

1、静态调度方法 fixed scheduling

不关心当前连接的活动和非活动状态,不检查RS的连接状态,相应算法如下:

(1)RR:Round Robin 轮调

把请求依次分配给服务器池中的服务器,无需记录当前所有连接的状态,是一种无状态调度。其实最早的DNS的资源记录给1个域名,多个IP的负载均衡就是种算法。

(2)WRR:Weighted Round Robin 加权轮调

管理员可以根据后端服务器的处理性能,分配不同的权重比例,处理能力的大的分配大的权重。

(3)SH:Source Hashing 源地址哈希

源地址唯一性,用hash算法的表来记录CIP和RIP,根据请求的源IP地址进行判定,保证响应地址和进来的地址,从同一个防火墙通过

(4)DH:Destination Hashing 目标地址哈希

目标地址唯一性,此算法会产生一个hash算法的表来记录客户的这次请求所用的CIP和建立连接RIP,根据首次为其分配的RIP,在hash表缓存时间内,使其每次的新请求,都定向访问到这个RIP

2、动态调度方法 dynamic scheduling

由于静态调度算法不考虑RS的当前状态,因此对于动态网站,动态调度算法才合适,因为其能够给予后台服务器当前的活动连接数进行请求分配,避免了一台服务器负载太多,而其它则闲置

两种标准:

活动状态的连接(active)

非活动状态的连接(inactive)

例如:ssh,telnet均是基于状态的连接,需要实时进行检查连接的状态,而http则是无状态的连接

相应的算法:

(1)LC:Least Connections 最少连接调度

把请求分给当前负载最小的服务器,负载判断值为overhead,overhead=active*256+inactive,当active都为0时,则分发请求由上而下进行。

(2)WLC:weight LC 加权重的最少连接

考虑服务器池的每台服务器性能不统一,也就意味着,活动连接数大并不表示性能差,因此为其加上权重,判断值为:overhead=(active*256+inactive)/weight

(3)SED:Shortest Expected Delay 最短的期望延迟

不计算非活动连接,如果两个性能不同,但是计算后权重一样的服务器,则选择性能好的服务器来处理新请求,计算方法:overhead=(active+1)*256/weight

(4)NQ:Never Queue 永不排队

不计算非活动连接,不论权重,只要没有活动连接,就依次分配给RS一个请求,如果所有服务器都忙,则按overhead计算。

(5)LBLC:Locality-Based Least Connection 基于本地的最少连接

如果客户请求之前连接过并产生缓存未失效,则直接将请求发给之前连接过的RS,否则,以LC算法调度。

(6)LBLCR:Locality-Based Least Connection with Replication 带复制的基于本地的最少连接

假设两台RS,由于缓存的缘故,一个非常忙,一个非常闲,为了负载均衡将忙的RS的缓存发送给不忙的RS,然后使用LC调度算法重新负载均衡即可,此算法要求RS之间要配置缓存共享。

SED和NQ不计算非活动连接,所以大多情况LC和WLC最常用。

WLC和LBLC用的比较多,WLC用于正常的服务场景,LBLC用于带缓存的请求。

四、LVS的共享存储(shared storage)

共享存储实际上也是物理磁盘等存储介质,命名只是应用环境的特殊性。

共享存储为服务器池提供一个共享的存储区,使得服务器池有相同的内容,提供相同的服务。

共享存储通常是数据库、网络文件系统或者分布式文件系统。服务器结点需要动态更新的数据一般存储在数据库系统中,还需保证并发访问时数据的一致性。静态的数据可以存储在网络文件系统(如NFS/CIFS)中,但网络文件系统的伸缩能力有限,一般来说,NFS/CIFS只支持3~6个繁忙的服务器结点。对于规模较大的集群系统,使用分布式文件系统,如AFS、GFS、coda和Intermezzo等。分布式文件系统的分布式锁管理器(Distributed Lock Manager)是保证数据一致性的有效手段。

共享存储的简单分类:

1、DAS:Direct Attached Storage

直接连接到主机的存储设备,一般需要PCI总线的支持,速度比较快。直连式存储的数据量越大,备份和恢复越慢,对服务器硬件的依赖性越大。此类设备的一般接口为IDE,SCSI,USB,SATA

2、NAS:Network Attached Storage  网络附加存储

NAS是一种通过网络介质实现数据存储的机制。优点:适用于共享存储,有文件锁,易于部署,跨平台等。实现方式一般为NFS,SAMBA,WIN共享等,缺点是传输和响应速度慢。

3、SAN:Storage Area Network 存储网络

SAN一般是局域网磁盘阵列,具有磁盘阵列的所有特征:大容量,高效能,可靠。易于安装,维护,良好的扩展,响应快。缺点:由于其工作更底层,因此没有文件管理系统,两个请求同时对一个文件操作,会导致文件系统崩溃,因此需要软件级别的高可用集群实现分布式文件锁

时间: 2024-10-17 17:45:33

集群及LVS原理的相关文章

Linux集群服务 LVS

linux虚拟服务器(LVS)项目在linux操作系统上提供了最常见的负载均衡软件. 集群定义: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中 的核心技术.本文就集群系统的定义.发展趋势.任务调度等问题进行了简要论述.集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性

hbase 学习(十二)集群间备份原理

集群建备份,它是master/slaves结构式的备份,由master推送,这样更容易跟踪现在备份到哪里了,况且region server是都有自己的WAL 和HLog日志,它就像mysql的主从备份结构一样,只有一个日志来跟踪.一个master集群可以向多个slave集群推送,收到推送的集群会覆盖它本地的edits日志. 这个备份操作是异步的,这意味着,有时候他们的连接可能是断开的,master的变化不会马上反应到slave当中.备份个格式在设计上是和mysql的statement-based

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

linux 集群及lvs

集群及LVS 集群: 一组通过高速网络互联的计算机组,并以单一系统的模式加以管理 价格很多服务器集中起来,提供同一种服务,在客户端看起来就像只有一个服务器 可以在付出较低成本的情况下获得在性能,可靠性,灵活性方面的相对较高的收益 任务调度室集群系统中的核心技术 集群目的: 提高性能:如计算密集型应用,如:天气预报,核试验模拟 降低成本:相对于百万美元级的超级计算机,价格便宜 提高可扩展性:只要增加集群节点即可 增强可靠性:多个节点完成相同功能,避免单点失败 集群分类: 高性能计算集群HPC:通过

linxu集群架设——LVS

LVS框架: 三层结构:     网络      (LVS--linux)      (WWW , FTP ,STML)     (GFS,OCFS2)用户 -- >   Director Server  ---> Real Server1       Real Server2    --> 集群文件系统      Real Server3软件: 浏览器        ipvsadm              httpd                 ↑   heartbeat(ldi

Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行配置安装,前

基于Vmare的虚拟Linux集群搭建-lvs+keepalived

基于Vmare的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvs服务器的的双机热备和真实服务器之间的负载均衡.这方面的blog挺多,但是每个人搭建集群的环境不同,遇到的问题也不同,本文简述配置的一些过程以及配置过程中遇到问题时的解决方案. 准本工作 1. 创建Linux虚拟机 本文是基于Vmare虚拟环境搭建集群的,所以首先在Vmare中创建一些虚拟机(安装一个Linux系统,其他的复制第一次安装的即可),本文创建4台虚拟机.网卡模式设置成桥接方式,这

HA 高可用集群概述及其原理解析

HA 高可用集群概述及其原理解析 1. 概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS 的HA和YARN的HA. 3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF). 4)NameNode主要在以下两个方面影响HDFS集群: ? NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 ? NameNode机器需要升级

LVS集群之工作原理

  首先我们要了解LVS的工作机制: LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求. LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下通过用户请求的地址和端口来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现. 而且这个转发的过程对用户而言是透明的(简单的讲,就是用户访问DR的IP,而DR转发给RSS,而用户不知道这个过程) LVS的工作模式: 1.D