Exadata的软件分别位于数据库服务器和存储服务器上。在数据库服务器上运行着标准的oracle数据库组件,在存储服务器上运行着oracle磁盘管理软件。在这两层中的组件通过iDB协议通信。
其软件体系结构入下图所示:

数据库服务器软件
操作系统
计算节点上运行着Oracle Enterprise Linux操作系统或者Solaris操作系统,用户可以根据自己需求选择安装。
数据库服务器软件
在操作系统上运行着Oracle GI(Grid Infrustructure)和Oracle database 11gR2及更高版本的软件。这套软件跟运行在其它平台上的软件并无差异,也不是什么特殊的版本。唯一不同的,在Exadata上ASM使用libcell通过infiniband网络来访问存储节点上的数据。libcell是一个跟Oracle Kernel相关联的库,通过iDB协议请求数据,允许Oracle内核直接通过网络与存储层通信。
在Exadata上,存储的管理全部都是通过ASM来实现完成的。做为GI的一部分,它为Exadata存储提供了文件系统和卷管理功能。ASM通过镜像数据块对存储提供冗余性,可以使用普通冗余(两份copy)或者高度冗余(3份copy)。ASM冗余性允许在多个存储节点间镜像数据,因此即使某个存储节点完全损坏,也不会影响数据库的正常运行。
谈到ASM,也就顺便提一下Exadata中存储硬盘的划分。每块存储服务器上磁盘都被自动划分为一个LUN,每块物理硬盘称为一个Cell Disk,每个Cell Disk可以划分为一个或者多个Grid Disk,每个Grid Disk对应一个ASM磁盘。具体划分如下图所示:


此外,在Exadata数据库服务器的每个节点还默认安装了OSWatcher。用于数据数据库节点系统资源的收集,以便因为系统资源的产生的问题的诊断。
存储服务器软件
操作系统
Exadata的存储服务器的每个存储节点上运行着Oracle Enterprise Linux 5.0以上版本的操作系统。
存储节点软件进程
在每个存储节点软件中包括以下软件进程:
Cell Server(CELLSRV)是运行在存储节点上的主要进程。用于处理从计算节点上发送过来的I/O请求。cellsrv 针对简单的块请求和智能扫描(Smart Scan)提供服务。
Management Server(MS)提供单个存储节点的日常管理维护和配置。
Restart Server(RS)是保障、监控存储节点和MS进程,在必要时重启它们。
每个存储服务器中的存储节点都是单独由Cell Control Command-Line Interface (CellCLI)进行管理的。CellCLI提供了命令行接口对存储节点进行管理。比如:存储节点的初始化配置,cell disk和grid disk的创建,以及性能监控等功能。
和传统存储一样,exadata的存储服务器可以供多个数据库使用,但是如何来控制一个数据库使用的I/O呢?在Exadata上可以定制IORM(IO Resource Management)与 数据库节点的DBRM 协同工作来计量各种数据库和客户组在发送 I/O 时所用 I/O 带宽,方便地将存储服务器中的IO资源分配给不同的数据库使用来解决了同一存储不同数据库的IO需求冲突。
另外,在存储服务器的每个节点也默认安装了OSWatcher。用于数据数据库节点系统资源的收集,以便因为系统资源的产生的问题的诊断。