基于linux的mysql承载高负载访问架构的设计Word文档下载推荐.docx
- 文档编号:22340455
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:56
- 大小:633.69KB
基于linux的mysql承载高负载访问架构的设计Word文档下载推荐.docx
《基于linux的mysql承载高负载访问架构的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于linux的mysql承载高负载访问架构的设计Word文档下载推荐.docx(56页珍藏版)》请在冰豆网上搜索。
为了构建一个高可用,高稳定性,靠扩展的MYSQL集群应用系统MYSQL+Heartbeat+LVS的方案,针对高数据访问量的应用特征来部署一个适应企业数据访问的MYSQL集群系统架构。
系统设计的模型在实验机上已经基本实现,达到预期的效果,可以有效的进行故障的透明切换,负载均衡以及数据同步和数据的读写分离,但是不足的是由于实验环境的限制,有些数据并不是真正数据库中的数据,并且数据的同步还不能达到真正的实时等。
关键词:
MYSQL集群;
LVS;
Heartbeat;
高可用性
Abstract
WiththerapiddevelopmentoftheInternetande-commerce,peoplehavehigherandhigherdemandsonthedatabasesystemaboutavailability,stability,security,andscalability.Whereasthepreviousdatabasetechnologyalsocannotreachthehighavailability,stabilityandbyextensionrequestduetothescalabilitylimitationsofeachofitsserverskindsofreasons.
Aimingtosolvethecurrentsituationwillbediscussedmassivedataarchitectureaccess.Clustersusedforapplicationscharacterizedbyhigh-traffic,high-availabilitydesignandimplementationofadatabaseclustermodel,themodelusingvirtualipofHeartbeattechnologytoprovideasingleserviceoutsidemirrors,usingLVSloadbalancingsoftwareachievehotstandbytofurtherimprovesystemavailability.ApplicatingMYSQLseparationtechnologymakesreadandwritedatatotheappropriateloaddistributionfromthemainlibrarytoreducethepressureofMYSQLdatabase,inaddition,thetechnologyofMYSQLondataconsistencytheisReplication,themainlibrarywillbeupdatedonareal-timetoeachnodeintheclustersothateachdatabasetoensuredataconsistency.Inordertobuildahigh-availability,highstability,byextensionMYSQLclusterapplications,usingMYSQL+Heartbeat+LVSsolutionforapplications.Characterizedbyhigh-volumedataaccessMYSQLadapttodeployaclusteredsystemarchitectureenterprisedataaccess.
Systemdesignmodelhasbeenlargelyachievedonthetestmachine,andhadachieveddesiredeffect,Itcaneffectivelytransparentfailover,loadbalancing,datasynchronizationandseparationofreadandwritedata,butitisinsufficientduetolimitationsoftheexperimentalenvironment,someofthedataisnotrealdatainthedatabase,andthedatasynchronizationcannotachieverealReal-timeandsoon.
Keywords:
MYSQLcluster;
LVS;
Heartbeat;
highlyavailable
第一章绪论
MYSQL以其开源,良好性能和与Linux系统的优秀匹配而越来越多的受到开发者和商业公司的青睐,用于构建数据库集群的MYSQLCluster是Oracle针对分布式计算环境提供的MYSQL数据库集群,特点主要是保持了开源的特点并且做到高可用和高冗余。
1.1MYSQL集群的背景
随着网络技术的发展,互联网的应用也越来越广泛,也正因为如此,当代人们的生活从吃穿到用都离不开互联网,电子商务网站,社交网站,电子新闻,网络游戏,各种新时代事物表明互联网无处不在,而这些的实现主要是通过大量的数据储存,其主要特点就是海量的数据访问,并且其需要数据的及时响应和准确性,如果数据访问或存储出现故障则会造成用户的极大损失。
作为企业核心的数据,其作为存储的数据库也就成为企业备受关注的一部分而如何实现数据的高可用,高负载,可扩展性也成为企业重视的一个重点,因为如果采用单一服务器,在高数据量访问的情况下,万一发生系统故障,将会影响整个系统服务,另外,单一的服务器无论从CPU的处理能力还是网络的的物理带宽都是不能满足海量数据的要求,并且企业数据记录的都是企业的重要信息,一旦出现问题将会造成巨大的影响,特别是企业核心数据关系的是企业未来的发展,而单服务器根本无法保证数据存储的安全以及稳定,而且由于服务器崩溃锁带来的损失是难以估量的,因此对于数据库系统的可靠性以及安全性的要求非常高,并且为了将数据库服务器崩溃所造成的损失降到最低,或者在发生故障的时候能够实现快速的回复,也需要适当的增加服务器的数量,在电子商务等各种互联网产物应用系统需具备的高性能,高可靠性,可扩展性等需求下,数据库集群也就应运而生了。
因为相比与之前单一的mysql数据库,其性能存在着明显的优势,如表1.1所示:
表1.1数据库集群与单一的数据库优势对比
分类标准
分类
功能和结构
高可用性集群
负载均衡性集群
高可用计算集群
工作层面
数据库服务器集群
应用服务器集群
交换机集群
集群粒度
基于I/O
基于数据库
基于数据库实例
在当代的互联网中,数据存储是一个热门的话题,如何才能将数据更好,更稳定,更安全的存储成为企业的重点,而与传统的MYSQL服务器相比,MYSQL集群有很多的特性,其最大的好处可以解决MYSQL单一数据库的一个单点故障的问题,可以在其中一个MYSQL数据库节点出现故障的情况下,自动的将资源切换到另外一个备用的节点,并且该操作对于客户是透明的,也就是不会对用户访问造成影响,另外一个方面是,MYSQL集群可以实现分布式的节点存储,这个可以节省一定的存储资源,同时也可以使得资源能够更好的集中管理,因此,MYSQL集群现在在企业的数据存储中占据着举足轻重的地位。
本文主要针对当前各种互联网产物中海量的数据访问进行了MYSQL集群方案的选取,主要需要实现的是MYSQL数据库的单点故障的避免,另外为了海量数据更好的进行读写操作,需要对数据读写进行一个分离,MYSQL集群底层使用的单个数据库为了避免出现数据库故障导致数据丢失,采用MYSQL-Slave的Replication,即mysql主从复制,将master-mysql的数据以同样的形式同时存在与slave-mysql节点上,同时后端的master-slave使用lvs对其实现一个负载均衡,防止数据访问量过大导致主数据库节点出现故障。
1.2国内外的研究现状
随着国内外数据库集群技术的不断发展,数据库集群在一定的时间内已经取得了比较大的进步和发展,尤其是在最近互联网飞速发展的几年内,数据库集群技术也随着不断的迅速发展起来,例如Narayanan的Grid.DB集群中间件能实现在网络环境中很好的支持数据子集的提取以及数据的传输[1],另外由ZTHZurich机构开发的PowerDB能为大量的用户很好的提供统一的数据视图[5],能在保持数据原子性和可串行性前提下,实现把复杂的数据请求转变成大量的小事务的请求,并且能很好的协调集群去完成这些小事务,同国外的集群技术相比,国内的mysql集群技术研究相对起步晚一点,但是伴随着中国现今互联网用户的爆炸式增长,集群技术的进一步研究也同样取得了很好的发展,尤其是国防科大的某博士为linux设计了LVS方案来部署服务器集群架构[9],使得linux服务器在集群部署方面取得了极大的发展,同时也为搭建开源数据库集群树立了良好的实践范例,另外,目前商业领域大部分使用的还是一些能支持数据库集群的商用化数据库系统,如IBM使用的DB2使用的UDB,即UniversalDatabase,另外就是Microsoft的SQLServer使用的MSCS,即MicrosoftClusterServer[6],以及Oracle公司使用的Oracle9iRAC[10],即RealApplicationCluster。
但是大部分的国外产商在集群技术上采用了封锁的策略,从而导致采用商用数据库集群方案的用户在对数据库集群系统需要付出了很高的后期维护成本。
相对于其他的数据库,Mysql数据库主要以其开源的特点,以及良好的性能和能与linux服务器系统进行优秀匹配,因此越来越多的受到大部分开发者以及企业公司的青睐。
Mysql数据库相比于其他数据库的区别如表1.2所示:
数据库系统
oracle
Sqlserver
mysql
DB2
是否免费
收费
免费
存储过程
支持
视图
事务处理
强
弱
中
触发器
安全
数据类型
多
表1.2Mysql数据库与其他数据库的区别
对于构建数据库集群的MYSQLCluster,其主要是oracle针对数据分布式的计算环境提供的一种mysql数据库集群方案,其主要是保持了开源的各种特点并且能够很好的做到高可用以及高冗余,在mysqlcluster架构中,一个数据库集群中能够运行多个mysql数据库,对于这种技术架构国内做的比较完美的主要是淘宝,其使用分布式的mysql集群在应付海量用户访问的方面积累了大量的实际经验,由于mysql集群技术的发展历程还比较短,而且在商业领域的应用方面也还不够成熟,因此在构建集群应用中还有有很多值得研究的地方。
综上所述,目前对基于mysql集群技术方案的研究还有很多方面的研究热点以及难点问题,因此可以说这还是一个很值得去努力探索的技术领域。
1.3MYSQL集群课题的提出
随着计算机应用的不断普及,数据库已成为了构建电子商务的最关键服务之一。
虽然集群技术已经很好的解决了提高访问量的问题,但是数据库却成为网站的一个瓶颈,为了避免数据出现一致性,大部分网站采用单一数据库服务器为所有网页服务提供数据,当访问量提高时,单个的数据库服务器不堪重负,即使按照过去的最优配置建设的服务器系统也可能无法承担这种访问量的爆炸性的增长,因此需要去创建具有良好的可扩展性以及卓越性能价格比的网络数据库服务器,用来满足不断增长的访问量和数据流量需求。
上述需求的实现需使用特定的连接方式,将价格相对来说较低的硬件设备结合起来,同时也能够提供性能相当的任务处理能力,这就是需要实现的mysql数据库集群课题。
采用linux系统一方面可以提高用户工作站运行的可靠性以及稳定性,从而获得高可用性的服务器。
并且在Linux系统下的双机互备份工作方式的MySQL数据库集群方案可以实现高可用性集群服务器。
两个相对独立的应用服务在两台机器上同时运行,并且彼此互为备份机,当某一台服务器出现故障货宕机时,另一台服务器可在短时间内将故障服务器的应用服务接管过来,从而保证应用的持续性。
1.4论文的内容和结构
本文共分六章,内容安排如下:
第1章:
绪论部分,介绍本课题的背景以及集群技术在国内外发展情况,其中主要内容包括课题在互联网中的应用,以及在当今互联网时代扮演重要角色,并且通过将其与传统的单一的MYSQL服务器进行对比,通过比较其主要优缺点,说明MYSQL集群在当今的的海量数据访问的情况下已成为必要的趋势;
另外还介绍了MYSQL集群的原理,以及其能弥补的单一MYSQL服务器的一些不足,如能够很好的避免单节点故障以及数据的高冗余等等。
第2章:
数据库集群平台要求以及相关技术,因为MYSQL集群在一定程度上实现了数据存储的负载均衡,即其可以对读写进行分离,从而减少数据库服务器的负载,该章节主要对本文使用的MYSQL集群方案中需要的硬件和软件平台进行定义,另外还对应用中的一些技术进行相应的介绍,以及其实现的功能将整个MYSQL集群的方案进行了一定的拆开分析。
第三章:
集群架构的系统设计,本章主要就mysql集群中的概念设计,逻辑设计以及物理设计过程进行了分析以及解读。
第4章:
集群代码的实现以及相关实验,该章节是本论文的核心部分,主要内容是mysql集群架构中应用技术的实现以及相关的配置代码验证。
第5章:
论文总结以及展望,该章节是本论文的最后一章节,主要是就本论文进行总结分析,其中包括实验的测试过程和结果分析,以及设计中出现的问题和对本设计的总结和看法,给出本文所取得的成果,指出本文存在的不足以及下一步需要努力的方向。
第二章集群平台及相关技术
本课题针对linux平台,采用的集群方案是Mysql+LVS+Heartbeat技术,以及保持数据一致性的mysql主从复制,应用主主复制避免mysql单节点故障,采用数据读写分离减少数据库的压力等,对于课题所用到技术,本章进行了以下的介绍。
2.1MYSQL集群实现平台
实现集群的平台环境以及硬件环境主要有以下几个方面。
2.1.1集群硬件平台
(1)系统版本:
RedHatEnterpriseLinuxServerrelease5.8(Tikanga);
(2)内核版本:
2.6.18-308.el5(mockbuild@x86-)(gcc
version4.1.220080704(RedHat4.1.2-50))
(3)主机ip及功能分配如表2.1所示:
表2.1ip地址分配情况
主机名
IP地址分配
主机用途
M-mysql1
172.24.56.4
Heartbeat+mysql主库1
M-mysql2
172.24.56.5
Heartbeat+mysql主库2
S-mysql1
172.24.56.6
Mysql从库1
S-mysql2
172.24.56.7
Mysql从库2
LVS1
172.24.56.8
LVS+Heaerbeat主机1
LVS2
172.24.56.9
LVS+Heaerbeat主机2
VIP1
172.24.56.10
Heartbeat心跳服务的虚拟ip
VIP2
172.24.56.11
LVS负载均衡的虚拟ip
2.1.2集群软件平台需求
(1)mysql软件版本:
mysql-5.6.13.tar.gz
(2)Hearbeat软件版本:
Heartbeat-3-0-STABLE-3.0.4.tar.bz2
(3)LVS软件版本:
ipvsadm-1.24.tar.gz
(4)Yum仓库源:
Redhat5.8镜像文件的挂载:
mount/dev/cdrom/mnt
/dev/sr0on/mnttypeiso9660(ro)
Yum仓库的配置:
(其他机器yum源同该机器一致)
[root@S-mysql2~]#vim/etc/yum.repos.d/my.repo
[Server]
name=Server
baseurl=file:
///mnt/Server
enable=1
nogpgcheck=1
[VT]
name=VT
///mnt/VT
[cc]
name=cc
///mnt/Cluster
[cs]
name=cs
///mnt/ClusterStorage
2.2MYSQL集群的相关技术
在本课题实现MYSQL集群架构的过程中使用的主要技术有下面几种,并对应用的几种主要技术进行了相应的阐述。
2.2.1负载均衡技术的原理和算法
随着当代Internet规模的不断增长,以及客户希望能够获得7天24小时的不间断的系统高可用性及较快的系统反应时间的需求,但是现在很多访问的网站点都会存在“Servertoobusy”以及各种频繁出现的系统故障。
另外,随着网络的各种核心部分业务量的提高,以及访问量和数据流量的快速增长,其对服务器处理的能力以及计算数据的强度要求也相应的增大,因此让单一架构的数据库设备在一定程度上根本承担不了这样高的压力,在这样情况下,若丢弃现在的不适合当前业务的设备而去实现大量系统硬件升级,这样一方面不仅会导致已有服务器资源的大量浪费,同时当面临公司业务量提升时,又将会导致一次企业硬件完成升级的大量成本的投入,甚至投入性能更好的设备也无法满足当前的业务量或者访问量的需求,所以也正因为业务需求的不断提高,也就出现了现在的负载均衡技术,而在MYSQL集群中,想实现高可用高负载,可扩展性当然就少不了负载均衡技术的应用了。
负载均衡是建立在现有网络架构之上,它主要是提供了一种廉价并且有效的方法来扩展网络设备的各种性能和服务器的带宽,同时增加网络的吞吐量,并且还能加强网络数据的处理能力,进而提高网络的灵活性和可用性。
其工作的层面结构如图2.1所示:
图2.1负载均衡功能结构
负载均衡主要有俩方面的含义,首先,实现负载均衡的服务器将用户的大量并发访问或者数据流量通过本身的配置分担到后端的多台节点设备上分别进行处理,这样不仅可以减少用户的等待响应时间,而且还可以降低服务器的压力,而且这样的话对于后端的realserver的硬件配置要求也不会很高,,其次,单个重负载的运算操作分担到后端的多台节点设备上就能进行并行处理,每一个节点设备处理完自己的计算结束之后,将结果进行汇总,返回给用户,这样系统的处理能力也会得到大幅度的提高。
在当代互联网时代,用户访问需求的提高以及企业业务的需要,负载均衡技术已经被广泛的应用,而其相关的技术主要有以下几种,并且每种技术应用的场景也有些许的差异,主要的技术原理及区别如表2.2所示。
表2.2负载均衡技术的比较和区别
名称
比较
DNS负载均衡
代理服务器负载均衡
地址转换网关负载均衡
NAT负载均衡
反向代理负载均衡
主要原理和区别
在DNS中为多个地址配置同一名字,因而查询该名字的客户机将得到一个地址,使不同客户访问不同的server
使用代理服务器将请求转发给内部服务器,使用该技术可提升静态网页的访问速度
将外网ip地址映射为多个内部IP地址,对每次tcp连接请求动态使用其中一个内部地址
将一个IP地址转换为另一IP地址,一般用于未经注册的内部地址与合法的已注册的IP地址间进行转换
以代理服务器来接受internet上的连接请求,将请求转发给内部网络上的服务器,并将结果返回给internet上的客户端
在国内当前迅速发展的互联网环境中,很多场所都应用到了负载均衡这个功首先应该是网吧,因为网吧内大家对网速的要求比较高,所以对宽带的要求就比较高了,而由于国内ISP混乱的情况,有些网吧也会应用到多线路接入的方式,所以负载均衡方案对于网吧来说是很实用的功能,其次是企业以及小区运营商,因为企业也会有这样的需求,有些企业对网络的要求也是非常高的,另外,甚至有些企业没有了网络连办公都实现不了,剩下的就是一些小区运营商了,小区运营商也有很多使用的是多线路接入的方法,这样的话负载均衡也就很适合了。
随着负载均衡技术在各个领域的不断应用,如何更好的设计平衡算法也就直接决定了集群在负载均衡上的性能表现,如果设计不好的算法,将会导致集群的负载功能失衡,一般的平衡算法主要关键任务是决定如何选择下一个集群节点,然后将新的用户请求转发给它。
因此在考察负载均衡算法的同时,也要注意算法本身的适用面,并在集群部署的时候根据自身的需求进行综合考虑,把不同的算法和技术结合起来,才能更好的满足企业的需求。
另外,在负载均衡技术中主要用到的算法有如表2.3所示的几种:
表2.3负载均衡技术算法的种类及比较
名称
轮转法
散列法
最少连接数
最低缺失法
最快响应法
加权法
算法应用场景
将新的请求发给节点队列中的下一个节点,如此连续,周而复始,每个集群节点都被轮流选择
也称哈希法,通过单射不可逆的hash函数,按照某种规则将网络请求发往集群节点
平衡器记录目前所有活跃连接,把下一个新的请求发给当前含有最少连接数的节点
平衡器长期记录到各节点的请求情况,把下个请求发给历史上处理请求最少的节点
平衡器记录自身到每个集群节点的网络相应时间,并将下一个到达的连接请求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 linux mysql 承载 负载 访问 架构 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)