`
yuanlanjun
  • 浏览: 1188043 次
文章分类
社区版块
存档分类
最新评论

虚拟化环境下的数据库集群系统构建与性能分析

 
阅读更多

基于物理主机的数据库集群配置和管理存在配置复杂、灵活性差的问题。虚拟化技术结合集群系统管理使系统管理和资源构建更加灵活透明。本文提出一种基于Xen Server虚拟化平台的MySQL Cluster数据库集群系统配置部署方案,并对比MySQL 5.1单机版测试数据对系统性能进行分析。本文提出的方案不但利用虚拟化平台虚拟机快速复制功能有效降低数据库集群系统部署的复杂度,提高配置的灵活性,且与大并发和大数据量的处理能力相比MySQL 5.1单机版具有较高的性能优势。

引言

MySQL Cluster是MySQL适合于分布式计算环境的高性能、高可用性版本。自从2004年推出以来已经发展到了7. 0版本。起初是专门为电信产业定制的高可用数据库集群技术,目前,最新推出的MySQL Cluster 7. 0版本已经具备了数据分区与备份、内存数据库集群缓存和跨地域数据复制灾备等企业级数据库集群所需的完整功能,适用于对并发处理性能与可用性要求较高的应用系统。

MySQL Cluster采用NDB Cluster存储引擎,允许在Cluster中配置多个数据节点、存储引擎节点、内存数据库缓存与管理节点集群。利用MySQL无共享( Share Nothing)体系结构,系统能够使用廉价的硬件设备扩展当前系统的处理能力,而且对软硬件无特殊要求。此外,由于每个数据分区内可以配置多个灾备数据节点,因此可以解决单点故障问题。图1为NDB存储引整数据分区与备份逻辑架构。

NDB存储引擎数据分区与备份

图1 NDB存储引擎数据分区与备份

1虚拟化技术

现有的集群计算环境方式对于要求灵活配置运行的场景并不是非常适合,在很多情况下,只能由应用程序去适应相应的集群环境,而不是为特定的应用提供特殊配置的运行环境。由于各应用对计算环境有不同的要求,运行环境的差别给应用的迁移带来很大困难。

在这种情况下,运用虚拟机技术对物理机的硬件细节进行屏蔽,为其上的应用提供一个统一的执行平台。虚拟技术可以看成是对其下计算资源的一种抽象,这种抽象通过栖牲部分性能来降低计算环境的异构性。

同时,现有的集群环境还只停留在对应用运行的支持上,对于应用开发的不同需求支持力度不够。可以通过使用多计算系统资源虚拟化的方式,建立环境的动态构建机制,完成对资源环境的动态灵活配置。

因此,虚拟技术的应用对于提高网络计算资源的效率有很大帮助。具有高度一致性的虚拟计算环境对于提高计算资源的可维护性也有很多好处。虚拟化技术带来的同构环境大大降低了系统的复杂性,甚至可以将应用程序与其执行环境捆绑在一起,然后共同迁移。虚拟应用的概念就是将一个复杂系统中真正要用到的部分抽取出来与其上应用结合在一起形成一个可以独立执行的整体,从而大大提高资源利用的效率。

文献5中构造了一个由虚拟机组成的虚拟集群(Virtual Cluster),由于一台物理服务器上可以运行多个虚拟机,每个虚拟机可以加人虚拟集群并对应于一个应用。一台服务器实际上可以同时加人对应于不同应用的集群。系统可以根据各应用的优先级对在其上运行的各虚拟机进行动态的资源分配。

虚拟化技术与集群管理的结合,使资源的动态构建以及灵活透明的系统管理成为可能。使用虚拟化的方式能够针对不同的应用去实现,提供最好的适用于特定应用的环境。

2系统设计

2.1.应用场景分析

在典型电子商务应用(E-Commerce Applications)应用场景的MySQL Cluste:集群数据库系统中(如图5所示)通常包含三类集群节点,分别是:

(1)管理节点:这类节点的作用是管理MySQLCluster内的数据、SQL节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其它节点的配置,应在启动其它节点之前首先启动这类节点。

(2)数据节点:数据节点是保存、管理MySQLCluster内数据的核心节点。数据节点的数目同数据分区与备份的数目相关,是数据分区的倍数。例如,对于两个数据副本,每个副本有两个分区,那么就有4个数据节点。

(3)SQL节点:SQL节点部署MySQL服务器,为应用系统提供访问MySQL Cluster数据服务的节点。对于MySQL Cluster, SQL节点是使用NDB和In-noDB、MyISAM存储引擎的普通MySQL服务器。

 MySQL Cluster数据库集群典型应用场景

图2 MySQL Cluster数据库集群典型应用场景

在图2所示的MySQ Cluster数据库集群场景中,众多集群节点按职责和所提供功能的不同可划分为以下5个部分:

(1) Master SQL节点集群使用如InnoDB等适用于事务处理的数据存储引擎,为企业应用提供数据管理、事务处理功能。

(2)Slaver SQL节点集群使用如MyISAM等适用于数据查询检索的数据查询引擎,为企业应用提供高速数据访问服务。

(3)数据节点集群存储、管理实际业务数据,基于配置实现数据自动分区(Partition)和数据灾备功能。

(4)基于SQL节点搭建的内容管理系统使用InnoDB引擎复制功能向Master SQL节点集群导人业务数据。

(5)基于SQL节点搭建的商务智能系统使用MyISAM引擎的快速数据检索功能实现高效数据分析和报表数据生成。

2.2 系统设计

为了验证基于MySQL Cluster搭建数据库集群解决高可用和高并发性问题方面的可行性。提出以下数据库集群POC验证方案(如图3示)。该方案使用部署在两台物理机上的Xen Server Linux镜像,用MySQL Cluster数据库集群实现最小配置的数据分区、数据灾备、读写分离和数据查询的负载均衡。此方案核心由数据节点集群,SQL节点集群和负载均衡器三部分组成。

MySQL Cluster数据库集群POC架构

图3 MySQL Cluster数据库集群POC架构

2. 2.1数据节点集群方案

为实现基本的数据分区(Data Partition)和数据灾备功能,设计了由4个数据节点组成的数据节点集群。部署方案如图4所示,业务库完整数据分为两个分别存储了不同业务数据分区的数据分区组,每个组内各包含一个Master和Slaver节点。Master为当前使用节点,Slaver为Master节点的备份。测试过程中通过宕掉IP :10.4. 45.190的Linuc虚拟机醚封正单点故障对系统可用性的影响。此外,各个数据节点之上可配置任意大小内存数据缓存,可以提升数据查询性能。

数据节点集群

图4数据节点集群

2. 2. 2 SQL节点集群方案

SQL节点集群为业务系统提供访问MySQL Cluster数据服务的节点。SQL节点核心功能包括SQL语句解析执行、读写分离和事务处理。此集群方案(如图S所示)中包含了一个负责处理事务和数据增、删、改操作的Master节点和三个负责处理数据检索查询的Slaver节点构成。为了使IP;10. 4. X45. 190对应虚拟机宕掉后不影响系统运行,IP; 10. 4. 45. 190上部署了两个Slaver节点。三个Slaver通过MySQL Proxy实现负载均衡。

SQL节点集群

图5 SQL节点集群

2.2.3负载均衡器方案

在此方案中,负载均衡器用于均衡负责处理查询功能的Saver SQL节点之间的负载均衡问题。由于MySQL提供的负载均衡器MySQL Proxy在性能和稳定性上低于Amoeba,所以方案采用Amoeba实现负载均衡。方案中各个SQL节点对应-个独立的URL服务地址,由Amoeba实现负载均衡。为了不影响数据节点运行性能,Amoeba搭建在独立物理机IP:10.4.68.86上。

在使用过程中所有查询都发送到Amoeba服务器,之后经过Amoeba的负载均衡算法决定查询该发向哪个SQL节点执行。部署结构如图6所示。

使用Amoeba的负载均衡

图6使用Amoeba的负载均衡

3实验数据分析

3.1并发访问量递增测试

目的:通过测试在并发访问量不断增加的情况下数据查询性能走势验证此方案对比单机环境是否具有性能优势。

过程;创建l00个线程,每个线程独占一个数据库连接。在所有线程创建并获取数据库连接完毕后,顺序启动向jdbc : mysyl://10. 4. 68. 86 : 9307/test发送查询SQL语句。

结果:执行结果为从第一条线程启动到最后一条线程结束之间的执行时间,单位为毫秒。从图7可以看出MySQL Cluster并发处理能力远远高于单机MySQL。

并发测试结果对比

图7并发测试结果对比

分析MySQL Cluster速度较快的原因有以下三点:

(1) MySQL Cluster有两台物理机4 CPU的并行处理能力,且配有负载均衡器,资源利用率较高。

(2)NDB引擎的内存数据库缓存降低了硬盘IO访问时间。

(3)MySQL数据处理加人了并行化机制,进一步提高了多核物理机的资源利用率。

3. 2查询数据且递增测试

目的:测试单线程查询单表数据性能。

过程:通过不断增加单表数据量测试MySQLCluste:方案和MysQL 5.1单服务器方案的数据读取性能。

结果:分别对100一1000条和1万一132万条记录的查询进行了测试,得出图8、图9测试结果。从小数据量读数据性能上看MySQL Cluster并无优势,但在数据量增大到3万条以上时,MySQL 5. 1单服务器处理性能下降显著。

查询小数据量递增测试

图9查询大数据量递增测试

分析导致MySQL 5.1单服务器性能随数据量增加快速下降的原因:

(1) MySQL Cluster能并行从硬盘读取数据,而MySQL 5. 1单服务器则是单线程读。

(2) MySQL Cluster由于对数据进行了分区,双物理机同时检索数据速度较快。

4结束语

通过研究及以上对原型系统的测试和结果分析,可以看出,本方案通过虚拟化平台实现了一系列自动化的功能,屏蔽了一些技术难点,如:数据切分、数据一致性、高速数据缓存、数据灾备和单点故障问题等,且支持并行数据处理和内存数据库缓存。但仍存在对网络带宽要求较高,不能动态监视各节点运行状态和负载情况等缺点。由于方案采用产品默认配置验证,整体性能调优和部署方案优化尚有很多工作要做。


分享到:
评论

相关推荐

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    2.3.5配置服务器的图形化环境 2.4 RAC运行环境安装前检查 2.4.1服务器检查 2.4.2存储检查 2.4.3网络检查 2.5配置数据库服务器 2.5.1安装软件包 2.5.2修改系统参数 2.5.3配置域名解析服务 2.5.4配置hosts...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    数据库课程设计-实验报告管理系统(超详细)

    本着面向学校教学过程, 结合学校课程特点,兼顾科研需求,在虚拟化技术及集群技术框架下,构建教学实验软件的个体化应用及集群高性能计算应用环境,以达到基础性公共教学实验软件系统的基于校园网的普遍提供与使用...

    云计算Docker虚拟化技术视频教程

    02深入Docker的镜像、容器和仓库以及测试下的Docker 03深度解析Docker高级特性 04驾驭分布式Docker集群实战 05Docker案例实战演示与解析 06使用Docker进行测试动手实战 07在Docker进行服务器、编程语言、数据库开发...

    阿里巴巴运维大会.rar

    EMC_唐沙骊_EMC互联网行业解决方案 okbuy_李小红_好乐买自动化运维实践 阿里巴巴_林钰_网站存储经验谈 ...腾讯_马志强_虚拟化环境下 网络 朋务器 平台的协作经验 神州数码_Jason Pan_FutureCloudDatacenterV2

    Hadoop实战手册

    使用Mysql构建简单数据集市29#Mysql的两种引擎介绍29#创建一个数据表使用Hive cli 进行数据分析29#使用shell 编写Hsql 并使用HiveCli导出数据,使用Mysql命令加载到数据库中。29#使用crontab 新增每日运行任务定时器...

    Linux云计算运维-全集

    Ansible自动化运维平台 CI和CD代码管理平台 Docker容器实战部署 Kubernetes云计算实战 ...构建可视化数据分析系统-ELK 企业级监控系统-Zabbix 容器监控-Prometheus 数据安全之企业存储 虚拟化之KVM

    Linux运维工程师私人笔记,全部MD格式

    Ansible自动化运维平台 CI和CD代码管理平台 Docker容器实战部署 Kubernetes云计算实战 ...构建可视化数据分析系统-ELK 计算机网络基础 企业级监控系统-Zabbix 容器监控-Prometheus 数据安全之企业存储 虚拟化之KVM

    Linux云计算运维笔记

    Ansible自动化运维平台 CI和CD代码管理平台 Docker容器实战部署 Kubernetes云计算实战 ...构建可视化数据分析系统-ELK 计算机网络基础 企业级监控系统-Zabbix 容器监控-Prometheus 数据安全之企业存储 虚拟化之KVM

    人工智能产业分类目录.docx

    3 人工智能中间件 人工智能中间件是一种基础软件,位于AI应用与操作系统、数据库之间,主要用于解决数据传输、数据访问、应用调度、系统构建和系统集成、流程管理等问题,为系统与系统之间做连接转换。 4 函数库 支持...

    XX保险Nutanix企业云平台建设规划方案书

    过去的数年,随着虚拟化技术的应用和云计算模式的发展,信息化平台从最初的服务器堆砌模式转向了虚拟化资源池的方式,并尝试引入了云管系统实现了初步的私有云平台,但随着当下数字化转型的驱动,单一的虚拟化资源池...

    QCon深圳 2020年全球软件开发大会PPT合集(43份).zip

    万亿级文档数据库MongoDB集群性能优化实践 openLooKeng架构解析和性能优化实践 5G和云原生时代技术下半场 Flutter 大规模业务落地与架构优化实战 保障战略成功落地、推动技术持续发展&技术战略发展实践 边缘计算场景...

    大数据技术-题库.pdf

    利⽤分布式⽂件系统、数据仓库、关系数据库等实现对结构化、半结构化 和⾮结构化海量数据的存储和管理 B、 利⽤分布式并⾏编程模型和计算框架,结合机器学习和数据挖掘算法,实 现对海量数据的处理和分析 C、 构建...

    MF00685-.Net Core微服务分布式开发框架源码.zip

    注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 一个轻量级的完全可以落地的微服务/分布式开发框架,同时也适用于单体架构系统的开发。支持经典三层与DDD架构开发模式、集成了一系列主流稳定的...

    云计算的体系结构.docx

    如下图: 1,资源层 资源池层是指基础架构屋面的云计算服务,这些服务可以提供虚拟化的资源,从而隐藏物理资源的复杂性。 物理资源指的是物理设备,如服务器等。 服务器服务指的是操作系统的环境,如linux集群等。 ...

    网上会展的未来发展趋势

    建设规模为目前亚太地区最大、全球第二的广州国际会议展览中心选定了美国网捷网络的网络设备解决方案,并由IBM全球服务部提供整体的信息技术服务和咨询服务,首期工程成功构建了完整的信息网络系统,高性能BigIron ...

    数据基础设施:超融合与大数据.doc

    X86虚拟化架 构分很多层,从上到下依次是虚拟化层、服务器、网络和存储。数据从业务端产生以后 ,要经过上述四层的中转,I/O(输入/输出)路径非常长。 2009年,Nutanix成立,带来了全新的超融合架构,这是一个非常...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

Global site tag (gtag.js) - Google Analytics