Exadata一开始是以一个存储系统形式诞生的,叫做SAGE(Storage Appliance for Grid Environ ments,网格环境存储设备)
Exadata原本设计用来解决超大型数据库所存在的普遍性能瓶颈(也就是无法在可接受的时间范围内从磁盘存储系统向数据库服务器传输足够大的数据)
Oracle Exadata解决超大型数据库性能问题的两个主要方式:
- 让传输管道更大(Infin iband)
- 减少需要传输的数据量(Smart Scan)
在了解Exadata的其它方面之前,最应该先了解的是存储节点卸载(offload)处理,所有其它的技术都只是为了支持存储节点的卸载处理。
存储节点卸载处理(Cell Offload Processing):该工作由存储服务器完成,否则就必须在数据库服务器上执行
- 智能扫描(Smart Scan)
- 混合列式存储压缩(hybrid columnar compression)
- 数据文件初始化
- RMAN offload
智能扫描(Smart Scan):这是存储节点卸载处理中与提高数据仓库/商业智能查询性能最有关的操作
- 数据文件的初始化
- 字段投影
- 存储索引消减
- HCC解压缩
全表扫描或者全索引快速扫描(Full Scan or Index Fast Scan):为了触发智能扫描,查询优化器选择的必要的访问方式
Exadata的组件(整体架构)
可以将Exadata划分为两部分,即存储层和数据库层,两层使用infiniband网络来连接
infiniband:提供低延时、高宽带的管钱通信链路,也提供链路上的冗余和联结(bonding)
数据库层:多个sun服务器组成,运行Oracle 11g R2软件,RAC不是必须的,当通常会配置成一个或者多个RAC集群,使用ASM来管理存储(ASM是必须的)
存储层:也是多个sun服务器构成,每个存储服务器12块磁盘,运行Oracle存储服务器软件(cellsrv)
数据库层与存储层使用infiniband网络连接,使用iDB协议进行通信
iDB协议:iDB用来将请求和请求的元数据(比如查询谓词where)传到存储服务器软件cellsrv中,通过cellsrv软件在存储中进行智能扫描到需要的数据,然后将最终的结果返回给数据库层,所以将大大减少传输到数据库层的数据量
当不能进行智能扫描时,cellsrv会返回整个Oracle数据块
iDB使用的是RDS协议,这是一种低延时的协议,跳过了内核调用
Exadata历史
V0:SAGE(网格环境存储设备)--HP的硬件和Oracle软件
V1:2008年第一款正式Exadata--HP的硬件和Oracle软件---主要为数据仓库平台
V2:2009年,4核,Sun的硬件,Oracle的软件(Oracle此时已经尝试收购Sun公司),采用大容量固态存储
X2:X2-2:升级到8台双CPU服务器,6核。 X2-8:8*8核CPU,1T内存,定位为大型OLTP系统
Exadata可选的配置(X2-2)
- 四分之一机柜:2个数据库服务器,3个存储服务器
- 半机柜:4个数据库服务器,7个存储服务器
- 全机柜:8个数据库服务器,14个存储服务器
Exadata可选配置(X2-8)
- 2个大型数据库服务器,14个存储服务器
半机柜和全机柜配置可以连接到额外的机柜(多机柜配置模式)最多可连接8个机柜,这种配置需要额外的infiniband交换机,称作‘spine switch’(用来连接额外的机柜)
Exadata硬件(机柜为42U)
- 最底下为连接多个机柜的spine switch交换机
- 上下为对称的存储服务器
- 中间两个对称的为数据库服务器
- 机柜正中间为一台以太网交换机(思科),两台infiniband交换机
其中的以太网交换机是整套设备中唯一能允许客户自行替换的设备
Exadata的操作系统
- 基于Intel芯片的Sun服务器
- Oracle Linux 操作系统(可安装solaris操作系统,但一般很少见)
- Oracle不允许在系统上安装任何其他的软件
Infiniband(Exadata中最重要的硬件组件之一)
用来在数据库层与存储层进行数据传输和通信,
可以在RAC环境下作为数据库节点间的互联(interconnect)网络
课用来连接外部系统,如备份系统
磁盘(两种可选)
- 高容量(high-capacity):单盘2TB 7200RPM
- 高性能(high-performance):单盘600G 15000RPM的SAS盘
Oracle不允许混合这两种磁盘使用
11g R2发行版数据库内默认已经有对于Exadata的代码,可以检测到软件是不是再访问Exadata存储,这种感知能力可以让数据库在访问Exadata存储时使用到为Exadata设计的特有优化手段。
存储层对于数据库层是是不可见的,需要ASM存储管理。ASM可提供普通冗余(两份copy),高度冗余(三份copy)
Exadata存储服务器上没有任何形式的硬件或者软件实现的RAID来保护数据,镜像保护功能完全通过ASM来提供
功能运输(function shipping):iDB将正在执行的SQL语句信息传到存储节点上,存储节点将计算过的数据而并非数据块直接返回给请求的进程。iDB可以返回给数据块服务器的数据仅仅限制在那些满足查询的行和列,这种模式仅仅在执行全表扫描的时候才可用
Exadata软件架构
上半部分是标准的Oracle 11g架构,显示了缓冲区和共享池的全局区(SGA),也显示了一些主要的进程
下半部分显示一台存储服务器的组件,只有一个进程cellsrv来处理与数据库服务器之间的通信,还拥有一些少数的辅助进程和监控环境
cellsrv使用init.ora以及alert.log文件,以及ADR(自动诊断信息库)
概念总结
Exadata的硬件本身没有什么神奇的地方,大多数的性能优势来自于整合的组件以及在存储层上实现的软件。