Exadata是Oracle的推出的软硬件整合一体机产品,初始目的是用于解决超大型数据库所存在的普遍性性能瓶颈,也就是磁盘存储系统向数据库服务器传输大量的数据,Exadata相当于Oracle通过硬件和软件的组合拳有效的解决了存在于存储层和数据库层之间的瓶颈,随着其发展和推广后来开始支持OLTP或者混合型的应用场景,自从2008年首次发布以来,Exadata已经经历了好几次重大变革,目前最新的产品是2015年1月才发布的OracleExadataX5系列,Oracle每12-15个月就会发布新一代的集成系统产品,这次发布X5已经是Exadata的第六代数据库一体机产品。
当考虑Exadata的时候,如果从思想上将整个系统硬件层划分为两个部分会更好理解,即存储层和数据库层。我们知道Oracle早前收购了服务器硬件巨头SUN公司,因此其硬件层就可以理解为SUN服务器,无论是存储层还是数据库层,其本质都是由多个SUN服务器组成,两层之间通过用Infiniband交换机网络来连接,Infiniband提供了低延迟、高带宽的光钎通信链路,也提供了链路上的冗余和联结(bonding)。
另外每个存储服务器上都配备了闪存存储,这些存储通常是配置用做缓存的,Oracle称之为Exadata智能闪存(ESFC),磁盘方面,Oracle提供了两种选择 高容量或者高性能。高容量提供单盘2TB\7200RPM磁盘,而高性能提供单盘600GB/15000RPM的SAS磁盘。注意Oracle不允许混活使用这两种磁盘类型。不过一般情况下,因为有前面提到的闪存,对于大多数读的系统,高容量就足够了。
除了以上硬件组成,每个硬件组成部分上会对应相应的软件,其中Exadata数据服务器上的软件构成主要有:
(1) 数据库软件(11gr2版本)和操作系统,目前都是用的oracle linux操作系统。
(2) ASM:卷管理和冗余(2元镜像/3元镜像),所以说Exadata的存储服务器不需要任何存储保护的功能,仅仅是用内置盘提供容量而已。在传统主机+存储的方式下,不需要ASM的冗余功能,也就是说及时是不是RAC也必须使用ASM。
(3) RAC(可选):DB服务器节点的横向扩展
(4) iDB:把SQL访问请求发送给存储服务器,返回所要求的数据(跟传统数据库相比的重大区别:返回的是经过筛选的数据,而不是裸的data blocks)。当然iDB可以选择则返回裸数据块给SGA,其使用的是RDS协议。
这里我们要强调,数据库服务器上的操作系统无法直接看到存储设备,正因为如此,才没有用来打开数据文件、读取数据块、或者执行其他常规功能的系统调用,这也意味着用标准操作系统命令如iostat,对数据库服务器监控是没有用的,因为运行着的进程并不会对数据文件进行IO调用。
Exadata存储服务器上的软件组成主要有:
(1) cell services(cellsrv):多线程IO服务程序,也叫存储服务器软件。
(2) management server(MS):基于jave的,在cellsrv和cellcli之间的接口程序。
(3) restart server(RS):用于监控和重启服务
(4) OSWatch:历史数据收集vmstat和netstat
其中ASM是个关键组件,它是横跨在数据库和存储两层之间的映射。
Exadata的配置一般分为1/4机架;半配机架;全配机架这3个主要配置,它们的主要区别就在数据库服务器和存储服务器的机器数量的不同,比如(供参考,以实际为准)
如果你购买1套1/4配置的Exadata,那么你将会得到一个机架,这个机架上包含两台数据库服务器、3个Exadata存储服务器和两台InfiniBand交换机。
如果你购买1套半配置的Exadata,那么你将会得到一个机架,这个机架上包含四台数据库服务器、7个Exadata存储服务器和三台InfiniBand交换机。
如果你购买1套全配置的Exadata,那么你将会得到一个机架,这个机架上包含八台台数据库服务器、14个Exadata存储服务器和三台InfiniBand交换机。
Exadata是硬件和软件紧密结合的产品组合,有关硬件本身其实没有什么神奇的地方,大多数的性能优势来自于整合的组件以及在存储层上实现的软件。其中(Offloading)卸载概念,这是Exadata之所以显著区别于其他运行Oracle数据库的平台的最大亮点。
卸载(Offloading)是Exadata的独门武器,正是它让Exadata不同于其他任何一种运行Oracle的平台。卸载指的是将处理能力从数据库服务器转移到存储层,它也正式Exadata的主要卖点,它不仅转移了CPU的使用,更主要的好处是减少了那些必须要返回给数据库服务器的数据量,而这正式大多数大型数据库的主要瓶颈所在。
我们在一些对Exadata的介绍文档中常常看到智能扫描(Smart Scan)这个名词,卸载在某些方面可以等同于智能扫描,但是其实用卸载是更好的描述,因为它指出了一部分传统上由数据库处理的SQL流程现在可以出数据库层‘卸载’到存储层。它甚至可以被用于在那些与SQL处理并无关系的优化上,比如备份和恢复,卸载主要是为了解决三个问题:
l 减少磁盘系统和数据库服务器之间的数据传输量
l 减少数据库服务器上的CPU占用
l 减少存储层磁盘的读取时间
其中第一点就是所谓的智能扫描,减少数据量是它的主要目标,因此它的优化远超过其他两点。Exadata依靠软硬件两方面提供了令人瞩目的超越非Exadata平台的性能提升,不过相比而言,软件方面带来的性能提升让硬件带来的好处相形见拙。因此网上看到有关搭建一个‘大众版的Exadata’的主题,这种只能克隆Exadata的硬件部分,软件模块是无法复制的。
要想知道更多相关知识,可以看下《深入理解Oracle Exadata》这本书,其详细地说明了该系统是如何把服务器、存储和数据库软件技术整合在一起,以成为一个适合事务处理和数据仓库应用的系统!