Chinaunix首页 | 论坛 | 博客
  • 博客访问: 426414
  • 博文数量: 137
  • 博客积分: 5190
  • 博客等级: 大校
  • 技术积分: 997
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 16:19
文章存档

2011年(17)

2010年(120)

我的朋友

分类: Mysql/postgreSQL

2010-02-21 19:41:15

用Nehalem、SSD和Solaris 打造完美数据库平台

2010-01-05 13:44:13 来源:中国站长站综合 【 】

基于IT产业不断涌现的各种崭新技术,以及阿里巴巴电子商务业务的不断快速发展,阿里巴巴和英特尔合作对于互联网应用中数据库的新型应用平台展开探讨和研究,开拓了全新的数据库平台,并最终成功部署到阿里巴巴电子商务平台应用环境中,展现了高科技推动互联网生产力的典型驱动力。

本文从架构角度分析几种新技术(Nehalem, Solaris, SSD)的特点,并能够把它们有机的结合起来,充分发挥各自的潜力,相互配合,统一到一个高效的组合中。同时,基于一些测试数据和真实的实际运营的情况,给出较令人信服的论据。最后,本文对将来的发展做进一步展望。

背景介绍

数据库系统的发展,特别是高端数据库,一直是小型机的天下。基于PC服务器解决方案成本低,但往往被认为单台系统性能不能满足大规模系统的要求,更主要的是系统的稳定性和可靠性常常为人诟病。

人脉通是阿里巴巴今年推出的电子商务领域的SNS平台,背靠阿里巴巴强大的交易平台和丰富的用户数目,其对性能的要求在规划时期就被明确地提了出来。同时,基于成本和可扩展性的考虑,阿里巴巴也打算尝试新的数据库平台系统架构,而不是单一的使用小型机。

阿里巴巴数据库平台的特点和业务

数据库系统是典型的IO密集型应用系统,其系统压力瓶颈最容易出现在IO操作方面。对于 Oracle 数据库,由于其优异的实现机制的设计,shared pool 的高效实现,大大降低了解析 SQL 语句所需要的资源。同时,对即使像 MySQL 这样没有 shared pool 机制的数据库,只要访问的数据稍微离散一些,性能瓶颈很快就会出现在 IO 操作上面了。当然,如果系统的访问集中在相对静止的少部分数据的话,瓶颈可能还是会出现在CPU以及其与内存的交互方面,但是这样的系统已经很稀少了。

随着 Web2.0 的流行,互联网信息量的增长简直可以用爆炸式来形容。而 此类Web2.0 类型的应用,由于用户交互性非常高,正是典型的高并发高离散的实时性数据请求类应用,自然就会给数据库带来直线上升的压力。

对于阿里巴巴这样的典型电子商务类型的网站应用,其实质可以被认为是较早涉及Web2.0的应用,也是非常典型的OLTP数据库应用。其最显著的特点就是每个事务处理单元都比较小,即每个事务请求涉及的数据量都很小,但是并发量非常高,而且要求响应时间要非常短。对应到数据库就是会产生大量的离散IO操作,这对于传统的机械硬盘来说无疑是非常致命的,因为硬盘的机械原理决定了离散的小IO请求会让大部分服务时间花在磁头寻道上面。所以,对于高并发的 OLTP 数据库系统,为了解决苛刻的 IOPS 量,不得不使用大量的机械硬盘,通过 RAID 技术将数据进行 strip 处理,来提高存储系统的并发 IO 处理能力,进而提高整个存储系统的 IOPS 能力,以满足前端应用对每次请求的响应时间要求。

另一方面,当传统大规模数据库的IO请求由昂贵的机械硬盘存储设备来满足的时候,处理器的压力也进而增加。现有的解决方案往往是寻求大型的服务器系统,包括多路的小型机等来满足。这样的方案也许能解决一时的需求,但在系统的可扩展性,针对阿里巴巴不断增长的业务数据需求来说,总是会达到瓶颈而无法顺利的满足要求。

最后,对数据库系统,特别是阿里巴巴这样的电子商务类系统,数据的安全性、一致性和可靠性是最重要的。现有的一些方案比如PC服务器配合Linux的方案,在操作系统本身以及文件系统上,确实在这方面要比小型机系统都要逊色。

阿里巴巴人脉通数据库体系架构

综合考虑以上因素,在阿里巴巴规划新的开放平台人脉通系统的时候,恰逢一些新技术的出现和成熟,我们为其推出了全新的体系架构:使用英特尔高性能SSD作为IO存储设备,运行在英特尔全新一代Nehalem服务器平台上,同时采用高可靠的Solaris作为操作系统。下面分别对这个数据库系统的体系结构,使用的新技术以及其和阿里巴巴数据库系统的结合分别进行介绍。

体系架构介绍

新的体系架构完全基于开放式的PC Server硬件,使用英特尔最新推出的基于Nehalem平台的服务器,配备高性能的SSD磁盘作为存储设备。从软件上看,新架构选择了Solaris作为操作系统,而MySQL则作为最终的数据库软件。同时为了解决数据的高可用和可扩展性两大难题,使用了阿里巴巴自主研发的数据库中间代理层软件(Cobar),使得基于新架构的数据库平台达到了非常理想的状态。
人脉通系统的基本架构如下图所示:

图表 1 阿里巴巴人脉通架构

Cobar 通过数据的切分来解决数据库的扩展问题,不仅支持通过表名来进行垂直切分,还可以通过指定的“key”通过某种特定算法将同一个表中的数据水平切分到多个 MySQL 中,通过垂直和水平拆分,让数据库系统具有了几乎无限的扩展性。

在高可用性方面,Cobar通过两种方式来实现了高可用需求。第一种方式是和MySQL 的 Replication 相结合,同时管理 Master 和 Slave 的连接,当现有 Master 不可用的时候,自动将所有写请求路由到原 Slave 上,在应用端几乎感受不到切换过程带来的任何异常。第二种方式则完全由 Cobar 自行实现,通过实时(或者异步)的将数据写入2个或者更多的数据库中,而且还支持同时写MySQL和Oracle数据库。在任何一个数据库出现异常的情况下,系统仍然可以继续提供完整的服务。

架构中新技术元素分析

英特尔Nehalem平台。Nehalem处理器是英特尔公司2009年初推出的新一代处理器,基于45纳米改进的High-K技术,采用了全新的内存控制器嵌入和QPI互联的架构,增强的酷睿架构和动态智能能耗管理技术,其它还有一些平台技术比如PCIE 2.0,虚拟化IO支持的增强等。基于英特尔Nehalem处理器的服务器能达到高达60%的整形性能、超过100%的浮点性能以及超过200%的内存带宽性能提升。Nehalem 5500系列至强处理器的革命性,集中体现在了三个方面:

智能高性能,可顺应不断变化的业务和应用要求自动优化性能。

自动化高能效,可按比例调整工作负载的能耗使用情况,实现最佳的性能功耗比,并减少运营成本。

灵活强大的虚拟化支持:可在虚拟化环境中提供一流的性能和可管理性,提高IT基础设施的效率和利用率,降低总体拥有成本。

 图表 2 英特尔Nehalem系统架构

同时,在数据库事务处理方面,Nehalem平台体现了强大的实力,最新的TPC-C评测结果创造了新的纪录(见图),表明了Nehalem在这方面无可比拟的进步。

 

表 3 Nehalem的TPCC性能

英特尔SSD固态磁盘。I/O存储速度技术的发展一直落后于英特尔处理器的速度进步,伴随着摩尔定律的更迭,英特尔处理器在过去十几年性能得到了近百倍的提升,而传统硬盘的访问速度不过在1倍之内。两者之间不协调发展阻碍了某些应用,特别是需要大量数据访问应用对处理器的应用。英特尔在2008年适时推出基于Flash NAND技术的固态磁盘,内部10通道提供NATIVE的SATA访问接口。对传统硬盘最高能达到近百倍的IOPS提升。英特尔SSD改变的是I/O性能,提供了大量服务器架构革新的机会。

 

图表 4 英特尔高性能SSD固态磁盘

SSD可以非常完美地提供应用中对I/O的访问需求,提供了充分利用系统处理器的机会。结合Nehalem处理器,两者的配合使用,可以达到对类似数据库应用的比较充分的平衡高效解决方案。

Solaris操作系统。免费、开放的Solaris操作系统是一个历史证明、业界领先的、可用于关键业务的操作系统,并能帮助客户节约时间和运营成本,它拥有很多其他操作系统所没有的,激动人心的技术特点来帮助提高系统的性能,可靠性,安全性和可管理性,这些重要的技术特点包括ZFS文件系统、DTrace动态跟踪技术、预测性自愈(Predictive Self Healing)以及用来提高系统利用率的Solaris容器。Intel和Sun公司从2007年开始建立了长期的合作关系,来自两个公司的工程师共同对x86平台上的Solaris操作系统进行了大量的性能优化,从而保证Solaris在x86平台上具有最优的性能表现。2009年5月才发布的Solaris 10 Update 7就对Intel最新发布的Nehalem平台进行了大量有针对性的优化工作,从而可以充分发挥出Nehalem平台的强大性能。

高性能

通过优化的调度器和内存分配优化(Memory Placement Optimization),Solaris操作系统可以充分发挥Intel的QPI(QuickPath Interconnect)技术的能力,从而在非内存访问一致性(NUMA)系统中给应用带来巨大的性能提升。Solaris操作系统还拥有一个杰出的线程模型,使得不管对于客户应用还是业界标准的测试程序,它都能提供超越其竞争对手的性能。尤其是对于Nehalem平台,优化过的Solaris操作系统能够充分发挥出该平台上多核和超线程的技术优势。

阅读(431) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~