魔兽世界用的什么数据库?

魔兽世界用的什么数据库?,第1张

引用自cnblogs@Zealic:
最近几天重温了一下WOW,结合最近学习的数据库知识和自己的了解,对WOW的大概体系做了分析。当然,我仅仅只是窥豹见斑而已,希望对WOW有所了解的大侠能给我和向了解WOW的人指点;让世人更加了解WOW,让中国的游戏能够学习(不是抄袭)并超越WOW。
不知道哪来的想法,就想到了WOW的数据库的结构以及程序实现,那么,就来了解一下吧。
首先想到:Game Server 使用的是什么OS和Database
起初猜测为 : Unix/BSD ,数据库为 Oracle
这样比较适合WOW这样的大型网络游戏,因为其存储和数据量极大
网上查到的一些关键资料,可以证明我的猜想和实际相差不大
19C在一次服务器故障中的说明,下面只列出关键部分
08:29 收到EVA存储报警邮件,联系数据中心工程师,联系惠普工程师
08:35 故障应急流程启动,相关人员包括THE9/HP/Blizzard US
15:33 Oracle专家加入故障应急流程
15:50 暴雪数据库工程师开始与Oracle专家继续分析故障情况
17:15 暴雪表示暂时还未从他们的admin以及DBA处获得任何有新的消息,他们仍然在研究此故障。
2Blizzard的数据库管理员招聘要求
Oracle Database Administrator
The World of Warcraft development team is looking for a self-motivated and knowledgeable IT professional to help administer the WoW databases As the person responsible for handling the database-side of WoW pushes and patches, our Live Team Oracle DBA's job duties would include designing, configuring, maintaining, monitoring, benchmarking and troubleshooting Oracle databases
Blizzard offers a fun, creative, and technically challenging environment with excellent compensation and a full range of benefits
Responsibilities:
Provide production on-call support
Maintain and enhance existing databases
Perform routine database maintenance
Work with end users to ensure smooth production rollouts and pushes
Assist in training other employees
Requirements:
3+ years professional Oracle DBA experience, including Oracle 9i
Extensive experience with database performance tuning
Experience working with large databases (>1TB)
Experience with Oracle RAC and Partitioning features
Proficiency in Linux/Unix environments including shell scripting
Plusses:
Strong knowledge of SQL & PL/SQL
Familiarity with UNIX tools and shell scripting
Familiarity with HP EVA's and Data Protector
Passion for video games, including MMORPG's
因此WOW的服务器应该为 : HPUNIX + ORACLE
那么我就对WOW的数据库做一些猜想,至于正确与否或者符合程度集合,就无从而知了
主要分为以下几块
-游戏服务器:
这里说的是游戏中的服务器,而非上面提到的物理意义上的服务器,比如,七区的恶魔之魂、黑铁、加基森就是游戏服务器。
-游戏区:
游戏大区,一个大区是由许多个游戏服务器构成的。之所以分大区,我认为完全是因为物理原因,每个区都其物理构成应应该是一个服务器群集,而在这群集上,有许多的数据库实例,每一个数据库实例都对应一个游戏服务器。
-验证系统:
游戏中的登录、排队、验证身份应该都是又这一部分完成的。
-聊天频道:
聊天频道是一个独立的服务器,这一点可以从游戏中人物、地图都很卡而聊天却完全不受影响的情况分析出来,聊天不可以离线发送消息,因此我可以武断的认为,聊天服务器基本不 *** 作数据库,至多在当前无法处理或者玩家暂时接收不到的情况下,使用一些临时的表来保存消息;或者服务器将聊天数据全部保存到数据库中,以方便对玩家的行为查询。
另外,聊天服务器是独立于所有服务器的,每个区的所有游戏服务器都是使用对应于该区的聊天服务器。这样,可以专门针对聊天服务器的特性,对服务器的系统和数据库进行专门的优化
-副本&战场:
副本&战场(以下简称副本)我觉得也应该和聊天服务器相同,是个独立的服务器,不过他与普通游戏服务器不同,并没有保存其他的地图数据,仅仅保存了副本地图的数据。
至于如何实现跨服战场,我以为,应该是将需要的角色数据做拷贝到副本服务器中,并且锁定原本服务器中的数据(表或行),在退出战场时,用副本服务器的数据更新原来的数据。我们可以把战场看做数据库中的临时表,做了处理以后更新到需要保存的地方。
通过上述解释,也可以理解为什么在进入战场时需要加载画面了,加载画面并不仅仅是作为一个过渡画面,它还承载了加载客户端资源,与服务端通信进行处理;显示加载画面时,副本服务器应该是如上所说游戏服务器交换了角色数据。
大型副本与普通副本不同的地方,我觉得仅仅是重置时间和副本策略做了改变而已。
-地图
地图的定义是在客户端的资源中的,为防止用户篡改,BLZ对定义地图的资源文件和DBC进行使用了混淆命名以及检查校验;之所以这么认为,是因为中国WOW公测的时候,出现一些加速外挂,可以让角色直接穿越墙壁、地表等看起来不可能穿越的物体,这便验证了BLZ为了减轻服务器负担,直接在客户端进行了大部分的碰撞检测。
WOW的的实际地图结构和游戏中我们所见到的不一样,他是把一块大陆分成N个小块的地图数据,客户端仅仅需要加载玩家角色所在位置附近的所有地图块就可以了。其技术细节就不做详细分析了。
-东西大陆:
每个大陆都应该是一个独立的数据库,之所以出现加载画面,我认为是因为两个大陆的地形材质大不相同,客户端需要先释放出发大陆的所有资源,加载目的大陆的必要资源,同时转移角色的数据到目的大陆。
-角色:
游戏中的角色应该是被分离成数个表,包括玩家的属性,任务,包裹,邮箱,银行等。一些重要的,比如物品包裹、邮箱、银行,服务器会在很短(相对其他数据而言)的时间内将内存中的缓存数据写入提交到数据库中;而一些相较以上数据不是很重要的数据,则需要很长时间才会提交到数据库。这也解释了为什么服务器回档时,角色的位置和任务等都回档了,而物品却没有回档,这也造成了传说中的双手痛击。
-怪物:
世界中的怪物生成应该是使用了Prototype模式,那么保存怪物的数据其实之需要保存其会变化的值就即可。
-其他:
游戏中总是有一些事件发生,比如:暗月马戏团的来访,万圣节的活动,情人节的活动等等,这些东西应该都是具有伸缩性的,可以想象,为了方便BLZ自WOW的管理和扩展,在服务器或服务器群集管理中心中,应该有BLZ为自己和代理商提供的工具或者说脚本使用指南。至于WOW采用的脚本是什么,这个我就猜不到了,可能是Perl\Python\SH吧,反正不会是LUA。
-行为与技能:
为什么WOW玩起来感觉这么流畅,没有其他网络游戏看起来或感觉起来反应迟钝,WOW并没有每时每刻都与客户端进行通信;其主要工作原理是,客户端首先处理用户的输入,并执行相应的开始动画或处理,而实际显示结果要等待服务端处理并返回后才会显现出来,这就是为什么在掉线后,玩家还做 *** 作角色,但是却无法获得 *** 作结果。
技能和行为差不多,其实很多游戏中的限制都是在客户端进行的,这都是BLZ为了减轻服务端的负担、减少通信量而造成的。那么,我在这里大胆的猜测,只要分析出内存地址或相应代码,WOW是有很多地方可以被篡改的;因为据我所知,目前WOW的所有外挂都是通过暴力修改客户端的内存实现的,而非常见的修改网络封包,BLZ加密还是做的很不错的 :)。

基本上就分析了这么多了,我试图从自己的脑子里挖出更多的东西,可惜所了解的东西仍然太少,没办法,现这样吧。
----------------------------------------------
PS:大芒果单机版WOW采用的MySQL

以你单位情况为例
ORACLE 11G RAC 集群软件作用是实现双机节点的高可用性,以及实现节点之间的负载均衡。主要监控各个节点上数据库状态。
MC SERVER GUARD集群软件则是针对服务器 *** 作系统级别的集群监视。不知道这个软件有没有负载均衡的功能。
各个节点上 *** 作系统异常,则数据库很可能不正常。但是,各个节点上数据库异常,不见得 *** 作系统不正常。我个人觉得,数据库集群软件和服务器集群软件针对的对象层不同,不属于功能重复。
MC SERVER GUARD集群软件如果支持ORACLE数据库的集群功能和负载均衡的话,基本可以代替RAC,但是oracle集群应用最好还是用RAC比较好,是原厂配套的成熟高可用性解决方案。
个人看法,LZ最好详细咨询一下:
1、咨询ORACLE公司,询问一下HP小型机MC SERVER GUARD与RAC是否冲突是否功能重叠。
2、咨询HP公司,MC SERVER GUARD是否可以替代RAC,且实现数据库级别的负载均衡。
3、绕开集成商吧,都是挣钱不要命的二把刀。
注意:咨询ORACLE公司需要购买咨询服务,否则不予咨询。一般集成商都会买一个或几个服务账号,强烈要求他们拨电话,通了以后,你来亲自问ORACLE工程师。别听集成商忽悠。
最后结果,如果如HP公司所说不冲突,保护对象不一样,那就要强烈要求集成商重新安装,都要安装,并且配置调试通过。

CentOS与Redhat关系

RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码重新编译一次,形成一个可使用的二进制版本。由于Linux的源代码是GNU,所以从获得RedHat的源代码到编译成新的二进制,都是合法。只是RedHat是商标,所以必须在新的发行版里将RedHat的商标去掉。

RedHat对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”所以,CentOS可以得到RedHat的所有功能,甚至是更好的软件。但CentOS并不向用户提供商业支持,当然也不负上任何商业责任。

如果你要将你的RedHat转到CentOS上,因为你不希望为RedHat升级而付费。当然,你必须有丰富UNIX使用经验,因此,RedHat的商业技术支持对你来说并不重要。但如果你是单纯的业务型企业,那么还是建议你选购RedHat软件并购买相应服务。这样可以节省你的IT管理费用,并可得到专业服务。

一句话,选用CentOS还是RedHat,取决于你所在公司是否拥有相应的技术力量:

1、完全可以把CentOS理解为RedHatAS系列!它完全就是对RedHatAS进行改进后发布的,各种 *** 作、使用和RedHat没有区别

2、CentOS完全免费,不存在像RedHatAS系列那样需要序列号的问题

3、CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat那样需要花钱购买支持服务

4、CentOS修正了许多RedHatAS的BUG

5、CentOS版本说明:

CentOS40等同于RedHatAS4

CentOS41等同于RedHatAS4U1

CentOS42等同于RedHatAS4U2

CentOS43等同于RedHatAS4U3

CentOS44等同于RedHatAS4U4

RedHat

Redhat有两大Linux产品系列:免费和收费

1)免费的FedoraCore系列

主要用于桌面版本,提供了较多新特性的支持。

RedHat公司的产品中,有RedHatLinux(如Redhat8、9)和针对企业发行的版本RedHatEnterpriseLinux,都能够通过网络FTP免费的获得并使用,但是在2003年的时候,RedHatLinux停止了开发,这也是为什么没有Redhat10的原因,它的项目有FedoraProject这个项目所取代,并以FedoraCore这个名字发行并提供普通用户免费使用。FedoraCore这个Linux发行版更新很快,大约半年左右就有新的版本出来,目前的版本是FedoraCore6,这个FedoraCore试验的韵味比较浓厚,每次发行都有新的功能被加入到其中,得到的成功结果将被采用道RHEL的发布中。虽说这样,频繁的被改进更新的不安定产品对于企业来说并不是最好的选择,大多数企业还是会选择有偿的RHEL产品。

2)收费的Enterprise系列

这个系列分成:AS/ES/WS等分支。RedHatEnterpriseLinux:redhat的企业版本,简写RHEL。包括如下版本:

1、RedHatEnterpriseLinuxAS

RedHat企业LinuxAS(AdvancedServer)是企业Linux解决方案中最高端的产品,它专为企业的关键应用和数据中心而设计。RedHat企业LinuxAS是唯一支持IBMi系列,p系列和z系列/S-390系统的产品。在IntelX86平台上,RedHat企业LinuxAS可以支持2个以上CPU和大于8GB的内存。

典型的RedHat企业LinuxAS应用环境如下:

数据库和数据库应用软件;WEB和中间件;CRM,ERP,SCM

2、RedHatEnterpriseLinuxESRedHat企业LinuxES(EntryServer)

为IntelX86市场提供了一个从企业门户到企业中层应用的服务器 *** 作系统。它支持1-2CPU和小于8GB内存的系统。它提供了与RedHat企业LinuxAS同样的性能,区别仅在于它支持更小的系统和更低的成本。

典型的RedHat企业LinuxES应用环境如下:

公司WEB架构;网络边缘应用(DHCP,DNS,防火墙等);邮件和文件/打印服务;中小规模数据库和部门应用软件

3、RedHatEnterpriseLinuxWS

RedHat企业LinuxWS(Workstation)是RedHat企业LinuxAS和ES的桌面/客户端合作伙伴。RedHat企业LinuxWS支持1-2CPU的intel和AMD系统,是桌面应用的最佳环境。它包含各种常用的桌面应用软件(Office工具,邮件,即时信息,浏览器等),可以运行各种客户-服务器配置工具,软件开发工具和各种应用软件(例如EDA和Oil/Gas应用软件)。RedHat企业LinuxWs和服务器产品由同样的源代码编译而成,但它不提供网络服务功能(如DNS和DHCP),它只适合作客户端应用。

AS、ES、WS关系

AdvancedServer,缩写即AS。AS在标准Linux内核的基础上,做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。AS主要版本2x/3x/4x,也就是我们所说的AS3/AS4,每一个版本还有若干个升级,例如最早推出的AS4后,遇到了一些更新。此时就会发布AS4Update1,以后还会陆续有AS4Update2/Update3等出现简称AS4u1/AS4u2/AS4u3等。这和微软的发布形式也是非常类似的,微软的WindowsNT4从SP1出到SP6,Windows2000从SP1出到SP4等。AS这些Update版本所包含的主要程序包版本都有一定差别,最好不要混用,否则很容易出现问题。Prima和Plesk的安装包,对于各种发行版都有了针对性的设计在下载页面上,通常都会标识出来,支持哪些版本和哪些update的系统。

ES,是AS的精简版本。他与常见的AS系列的区别是,AS支持到4路以上CPU,而ES只能支持两路CPU。AS和ES在大多数程序包上并无区别,只在内核等少数软件包上有差异。AS和ES的售价差别比较大,通常ES用在随服务器一同购买的OEM版本中。例如购买DELL服务器,搭配的Linux会是ES系列。如果要搭配AS系列,则需要多花数千元。

WS,是ES的进一步简化版,主要针对企业内部的桌面办公市场,国内较少采用。

Redhat的FedoraCoreLinux和EnterpriseLinux,都需要遵循GNU协议,即需要发布自己的源代码。所以,对于免费的FedoraCoreLinux,从Redhat网站上可以直接下载ISO刻盘,还能下载到SRPM的ISO,即程序包源码光盘。对于收费的EnterpriseLinux系列,是一款商业产品,所以网站上不能下载到ISO文件,需要购买正式授权方可。由于EnterpriseLinux也需要遵循GNU协议,故必须发布源代码。所以在Redhat的网站上,可以获得AS/ES/WS系列的SRPM源码ISO文件。这些文件可以被自由的下载,修改代码,重新编译使用。

CentOS

CommunityENTerpriseOperatingSystem的项目诞生,它的缩写既是CentOS。CentOS社区将Redhat的网站上的所有源代码下载下来,进行重新编译。重新编译后,由于AS/ES/WS是商业产品,必须将所有Redhat的Logo和标识改成自己的CentOS标识。比如将AS4原版的SRPM源码编译后,就成为了CentOS40。AS4Update1的源码编译后,就成为了CentOS41。AS4Update2的源码编译后,就成为了CentOS42。同理,CentOS的3x/4x都对应着相应的版本。

所以,CentOS就是Redhat的AS/ES/WS的免费版本。使用CentOS,可以获得和AS/ES相同的性能和感受。CentOS除了提供标准的编号1~4或者1~5的若干张ISO以外,还提供了最小化1CD的Server光盘。用Server光盘安装好的系统,就是一个最小化的Linux内核加上常用的>

CentOS与REDHAT区别:

1GPL就是Linux内核所采用的软件许可证,GPL的特点是:你拿人家的代码修改用了,必须把修改后的代码公布。

2所有的Linux都是采用的GPL许可,GPL许可允许GPL软件卖钱,但必须公布源码,所以每个Linux发行版的代码都是全公开的,只是,使用这些代码的人必须也公开修改过的代码。

3Redhat的代码是公开的,但是他的二进制RPM包更新却不免费,这并不违反GPL许可。于是开始有人想到了建立CentOS项目。

4由于Redhat的源代码是公开的,所以CentOS项目的人拿来自己再编译,同样的代码,同样的编译器,编译出来的自然是同样的东西。只不过里面删除了Redhat的Logo以及相应信息,而核心的管理工具还是rpm,只是用一个免费的软件包管理器yum(yellowdogupdatemanager)替代了Redhat中的up2date,up2date更新是连接到Redhat的收费服务站点的,通过钱买来的服务代码通过认证。

5CentOS的使用者众多,因为世界范围内很多人想使用Redhat却有苦恼于Redhat的收费服务。现在CentOS在Linux发行版中排行前10,这个网页的第10个发行版本就是CentOS:TopTen

6从品质上来说,CentOS从理论上应该跟Redhat一样的,毕竟是同样的源码。

上面的6点足够说明CentOS了。

什么是FreeBSD:

FreeBSD是个完整的系统,所有ls、cd这样的小命令都是自己的项目组开发的,而Linux发行版本其实是下载一个Linux内核,下载GNU的Coreutils(包括了常用的核心小命令),自己定制的系统。你应该记得,前些天,我还自己手动编译了一套系统。FreeBSD是从44BSD演变过来的Unix-Like *** 作系统,并不是也使用Linux内核。

FreeBSD使用的软件许可证是BSDL,BSDL的特点是:你可以免费使用我的代码,基于我的代码修改后的代码你不必公开,使用我的代码出了问题你不要告我(原:don’tpayme,don’tsueme)。很多喜欢BSDL的人主要是因为他们认为只要代码能得到最大幅度的利用就是最好的,不象GPL,用了代码还要还。所以很多网络设备以及一些商业公司都赞助FreeBSD的开发,这是个完全免费的软件项目:org

什么是服务器
服务器是计算机的一种,它是网络上一种为客户端计算机提供各种服务的高性能的计算机,它在网络 *** 作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。
目前,按照体系架构来区分,服务器主要分为两类:ISC(精简指令集)架构服务器:这是使用RISC芯片并且主要采用UNIX *** 作系统的服务器,如Sun公司的SPARC、HP公司的PA-RISC、DEC的Alpha芯片、SGI公司的MIPS等。
IA架构服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构,使用Intel或与其兼容的处理器芯片的服务器,如联想的万全系列、HP的Netserver系列服务器等。
从当前的网络发展状况看,以“小、巧、稳”为特点的IA架构的PC服务器得到了更为广泛的应用。
服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。
服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。
服务器技术之EMP技术
目前服务器的技术热点主要有:IRISC与CISC技术、处理器技术、多处理器技术(AMP技术、SMP技术、MPP技术、COMA技术、集群技术和NUMA技术)、SCSI接口技术、智能I/O技术、容错技术、磁盘阵列技术、热插拔技术、双机热备份。
服务器在网络中承担传输和处理大量数据的任务,要具备高可伸缩性、高可靠性、高可用性和高可管理性。IA-64体系将带动服务器技术特性的提高,如高性能CPU、多处理器技术、总线和内存技术、容错技术、群集技术、硬件管理接口、均衡服务器平台技术等。
EMP(Emergency Management Port)技术
EMP(Emergency Management Port)技术也是一种远程管理技术,利用EMP技术可以在客户端通过电话线或电缆直接连接到服务器,来对服务器实施异地 *** 作,如关闭 *** 作系统、启动电源、关闭电源、捕捉服务器屏幕、配置服务器BIOS等 *** 作,是一种很好的实现快速服务和节省维护费用的技术手段。 应用ISC和EMP两种技术可以实现对服务器进行远程监控管理。
服务器技术之RAID冗余磁盘阵列技术
目前服务器的技术热点主要有:IRISC与CISC技术、处理器技术、多处理器技术(AMP技术、SMP技术、MPP技术、COMA技术、集群技术和NUMA技术)、SCSI接口技术、智能I/O技术、容错技术、磁盘阵列技术、热插拔技术、双机热备份。
服务器在网络中承担传输和处理大量数据的任务,要具备高可伸缩性、高可靠性、高可用性和高可管理性。IA-64体系将带动服务器技术特性的提高,如高性能CPU、多处理器技术、总线和内存技术、容错技术、群集技术、硬件管理接口、均衡服务器平台技术等。
RAID(Redundant Array of Independent Disks)冗余磁盘阵列技术
RAID技术是一种工业标准,各厂商对RAID级别的定义也不尽相同。目前对RAID级别的定义可以获得业界广泛认同的有4种,RAID 0、RAID 1、RAID 0+1和RAID 5。
RAID 0是无数据冗余的存储空间条带化,具有成本低、读写性能极高、存储空间利用率高等特点,适用于Video/Audio信号存储、临时文件的转储等对速度要求极其严格的特殊应用。但由于没有数据冗余,其安全性大大降低,构成阵列的任何一块硬盘的损坏都将带来灾难性的数据损失。所以,若在RAID 0中配置4块以上的硬盘,对于一般应用来说是不明智的。
RAID 1是两块硬盘数据完全镜像,安全性好,技术简单,管理方便,读写性能均好。但它无法扩展(单块硬盘容量),数据空间浪费大,严格意义上说,不应称之为"阵列"。
RAID 0+1综合了RAID 0和RAID 1的特点,独立磁盘配置成RAID 0,两套完整的RAID 0互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低,不能称之为经济高效的方案。
负载均衡技术概览
当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性 ;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。
对一个网络的负载均衡应用,可以从网络的不同层次入手,具体情况要看对网络瓶颈所在之处的具体分析,大体上不外乎从传输链路聚合、采用更高层网络交换技术和设置服务器集群策略三个角度实现。
■传输链路聚合
为了支持与日俱增的高带宽应用,越来越多的PC机使用更加快速的链路连入网络。而网络中的业务量分布是不平衡的,核心高、边缘低,关键部门高、一般部门低。伴随计算机处理能力的大幅度提高,人们对多工作组局域网的处理能力有了更高的要求。当企业内部对高带宽应用需求不断增大时(例如Web访问、文档传输及内部网连接),局域网核心部位的数据接口将产生瓶颈问题,瓶颈延长了客户应用请求的响应时间。并且局域网具有分散特性,网络本身并没有针对服务器的保护措施,一个无意的动作(像一脚踢掉网线的插头)就会让服务器与网络断开。
通常,解决瓶颈问题采用的对策是提高服务器链路的容量,使其超出目前的需求。例如可以由快速以太网升级到千兆以太网。对于大型企业来说,采用升级技术是一种长远的、有前景的解决方案。然而对于许多企业,当需求还没有大到非得花费大量的金钱和时间进行升级时,使用升级技术就显得大材小用了。在这种情况下,链路聚合技术为消除传输链路上的瓶颈与不安全因素提供了成本低廉的解决方案,
链路聚合技术,将多个线路的传输容量融合成一个单一的逻辑连接。当原有的线路满足不了需求,而单一线路的升级又太昂贵或难以实现时,就要采用多线路的解决方案了。目前有4种链路聚合技术可以将多条线路“捆绑”起来。同步IMUX系统工作在T1/E1的比特层,利用多个同步的DS1信道传输数据,来实现负载均衡。IMA是另外一种多线路的反向多路复用技术,工作在信元级,能够运行在使用ATM路由器的平台上。用路由器来实现多线路是一种流行的链路聚合技术,路由器可以根据已知的目的地址的缓冲(cache)大小,将分组分配给各个平行的链路,也可以采用循环分配的方法来向线路分发分组。多重链路PPP,又称MP或MLP,是应用于使用PPP封装数据链路的路由器负载平衡技术。MP可以将大的PPP数据包分解成小的数据段,再将其分发给平行的多个线路,还可以根据当前的链路利用率来动态地分配拨号线路。这样做尽管速度很慢,因为数据包分段和附加的缓冲都增加时延,但可以在低速的线路上运行得很好。
链路聚合系统增加了网络的复杂性,但也提高了网络的可靠性,使人们可以在服务器等关键LAN段的线路上采用冗余路由。对于IP系统,可以考虑采用VRRP(虚拟路由冗余协议)。VRRP可以生成一个虚拟缺省的网关地址,当主路由器无法接通时,备用路由器就会采用这个地址,使LAN通信得以继续。总之,当主要线路的性能必需提高而单条线路的升级又不可行时,可以采用链路聚合技术。
更高层交换
大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第2层/3层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功能,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。有的协议内部支持与负载均衡相关的功能,例如>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10596529.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存