2011年(93)
分类:
2011-08-16 15:12:34
随着企业业务的发展,大型数据仓库越来越多,其规模也在迅速扩大,平均每两年规模增大3倍。大型数据仓库要求以最高的磁盘读取速度扫描几十、几百或几千个磁盘,所以企业常常发现数据仓库越大,运行速度就越慢。
Exadata数据库机,也叫“数据库云”,正是从缓解类似难题入手,通过高度的数据压缩比和海量数据的Flash Cache缓存等技术,满足高端用户一直面对的数据量持续增长的IO压力和压力。此前 的CEO Larry Ellison曾宣称,数据库机是Oracle近30年历史上最重要的产品。
使用英特尔至强处理器的Oracle Exadata数据库机
下面我们将以Oracle Exadata数据库机为例,从性能、可用性、可扩展性、投资成本等多角度来分析x86平台对于数据仓库、OLTP、数据库混合负载等企业级关键业务应用的价值所在。
打破数据库应用I/O瓶颈
我们知道,从内到外的数据传输过程要经过“CPU—缓存—内存—内部—外部存储”等环节。对于传统数据仓库应用来说,大量数据需要从存储系统读取到服务器内存,是其最大的瓶颈所在。为了打破这一瓶颈,“减少数据传输量、增加I/O通道、提高I/O带宽”是通常需要考虑的方法,Oracle Exadata正是从这三个方面着手解决问题。
首先我们来看一下,Oracle Exadata是一台什么样的机器。
据了解,Oracle Exadata数据库机(数据库云服务器)主要针对在线事务处理 (OLTP)、数据仓库 (DW) 和混合工作负载整合在内的所有数据库应用环境,把数据库服务器、存储服务器、InfiniBand机、以太网机、KVM、电源等模块在出厂时就在机柜中配置好,并经过严格。用户拿到机器之后即可使用Oracle数据库11g、存储管理等软件,不必再重新进行服务器、存储的配置。以一个机柜的满配置来看,Oracle数据库机拥有8台基于英特尔至强7500的数据库服务器和14台存储服务器,总存储容量可以达到100TB,IOPS可以达到每秒100万次I/O操作。根据企业业务量的规模不同,可以从1/4机柜扩展到8个整机柜,最大可以管理到多个PB级数据库。下图显示的是每二版Exadata系统的架构:
针对上面提到的I/O瓶颈问题,Oracle Exadata将应用进行分隔运行,让计算和内存密集型的数据处理类应用在数据库服务器上执行,而让I/O密集型的搜索类应用直接在存储服务器上执行。在这一理念指导下,Oracle在存储服务器上,通过智能扫描SmartScan、混合型列压缩技术、自动透明的存储索引、数据挖掘模型评价等技术,在存储端就实现数据密集型的处理,从而可以将发送到数据库服务器的数据量减少10倍。而传统的做法是,全部的数据库只能存在于数据库主机,来源于存储端的数据大部分会被数据库主机所丢弃,而这些大量的废弃数据会占用宝贵的数据库主机资源,如I/O、CPU、内存等,进而严重影响其它任务的执行,处理变得缓慢。
针对上面提到的I/O瓶颈问题,Oracle Exadata将应用进行分隔运行,让计算和内存密集型的数据处理类应用在数据库服务器上执行,而让I/O密集型的搜索类应用直接在存储服务器上执行。在这一理念指导下,Oracle在存储服务器上,通过智能扫描SmartScan、混合型列压缩技术、自动透明的存储索引、数据挖掘模型评价等技术,在存储端就实现数据密集型的处理,从而可以将发送到数据库服务器的数据量减少10倍。而传统的做法是,全部的数据库只能存在于数据库主机,来源于存储端的数据大部分会被数据库主机所丢弃,而这些大量的废弃数据会占用宝贵的数据库主机资源,如I/O、CPU、内存等,进而严重影响其它任务的执行,处理变得缓慢。
Smart Scan技术让搜索在存储端进行
另外,Oracle Exadata通过模块化设计,在通过增加存储单元时,提高整机的数据吞吐量;并采用每秒40Gb的InfiniBand做系统内部互连,其带宽比传统的光纤通道要快10倍。正是通过一系列技术创新,Exadata系统化地解决了数据库应用中让人头疼的存储I/O瓶颈问题。
PK传统SMP小型机
以往,针对大规模的数据库类应用需求,一些用户通过基于SMP架构的小型机来满足。这些小型机可以支持多颗CPU,实现从2路到4路、8路、16路,直至256路的纵向扩展(Scale-up),即在一个机箱里增加更多的CPU、内存和I/O等资源。
从SMP的系统架构来看,其最大的优势在于共享内存,对内存统一编址。但也正是这一点为SMP的发展带来很大障碍,因为共享内存资源必然引起资源冲突。换言之,要保持SMP系统从2路到256路的线性或接近于线性增长,其SMP架构下的系统总线、高速总线等同样需要线性增长,但技术实现难度很大,也会导致设计和制造成本不断攀升。
总的来看,目前大型SMP系统主要存在四个瓶颈:首先是价格昂贵,单一系统动辄数万美元乃至数十万美元,如果用双机方案,成本就得翻倍;其二是系统扩展性较差,单一系统最多256颗CPU,而模向扩展又受制于高昂的投资成本;其三是存在技术瓶颈,单独依靠SMP难以提高计算机整体性能,尤其是越来越重的I/O需求;其四是系统兼容性差,每种系统自成体系,与其他厂家的产品难以兼容。
因此,对于要求更加苛刻的环境,比如大企业不间断运行、负载很重的大型数据库,相对于传统SMP小型机,许多厂商和用户都开始青睐更加灵活高效的x86服务器集群系统(Scale-out,横向扩展),如Oracle Exadata数据库机,因为集群技术允许使用低成本的服务器来构造具有高可伸缩性和高可用性的高性能系统。
下面我们就来比较一下Oracle Exadata与传统SMP小型机的具体差异:
在性能方面,通过一系列智能存储技术,Oracle的数据库机可以大大提高数据处理的性能,其大型OLAP及OLTP业务处理性能是传统解决方案的几十倍至数百倍。
在可扩展性方面,通过将纵向扩展和横向扩展两种方式相结合,Oracle数据库机可以更加灵活地满足业务发展的需求。通过导线和外部InfiniBand交换机可以扩展至更多机柜,达到数百个存储服务器、数PB容量数据库。
在成本上,通过采用基于英特尔至强的x86服务器和存储系统等通用组件,使得Oracle数据库机的总拥有成本大大降低。跟使用SMP小型机和专有存储阵列的方案相比,其硬件成本只有1/6,总体成本不到小机的一半。
在易用性上,传统SMP小型机在部署起来比较麻烦,需要针对服务器、存储、操作系统和数据库需要分别进行配置,费时费力。而Exadata是软硬一体化的产品,包含了操作系统、数据库和服务器、存储等,因此部署极为简单,号称即插即用。
需要特别强调的是高可用性。从至强7500开始,X86系统的RAS特性已经提高到了一个全新的水平,这些技术多达22条,集中解决三个方面的问题:一是数据保护,可以诊断哪些数据出错,利用CRC、ECC校验来纠正错误,如果不能纠正,可以把这些坏的数据进行隔离,以保证不影响其他数据,避免系统的重启和宕机。二是高可用设计,包括QPI Link之间的互备和热切换,内存和CPU的热切换、故障预警机制等等,以保证系统的高可用。三是降低系统计划内的宕机时间,包括系统分区管理技术、CPU和内存的热添加和热移除等。
此外,Oracle数据库机还通过冗余电源、冗余交换机、数据库文件镜像、数据库集群、备份等多种技术,来提高系统的整体可用性。
小结:技术与应用的双重驱动
Oracle数据库机的出现,在一定程度上反映了这样一个道理:IT产业的发展离不开技术与应用的双重驱动力。在不同阶段,这两个驱动力的作用可能不太一样,但只有相互结合,才能更好、更快地促进产业发展。数据库机正是如此,一方面,数据仓库、商业智能、大型ERP等应用需要有更好的技术来应对海量数据的挑战,另一方面,x86服务器、智能存储、数据库软件等技术层面的进步也使得今天业界有能力来更高效地应对这些挑战。据了解, Oracle Exadata的客户已经涵盖金融服务、保险、电信及制造业等领域,包括深圳联合金融服务集团有限公司、海尔、中冶,中国人寿(601628,股吧)、青岛市社保、新疆电信、北京移动、辽宁移动、中远集运等。
随着云计算的发展,Oracle的数据库机也在向云方向转变,于是我们最近听到了一个新的名字:Oracle数据库云服务器。在Oracle看来,除了IaaS、PaaS、SaaS之外,数据库也是一种服务,即DB as a Service(DBaaS)。因为只有把数据变成有用的信息,通过数据挖掘、商业智能系统显现出来,变成企业的决策与行动,数据才能真正转化成企业的核心竞争力。因此,我们有理由相信,Oracle的数据库云服务器还只是一个开端,云时代才刚刚开始。