数据库管理-第113期 Oracle Exadata 04-硬件选择(20231020)

数据库管理-第113期 Oracle Exadata 04-硬件选择(2023010290)

本周没写文章,主要是因为到上海参加了Oracle CAB/PAB会议,这个放在后面再讲,本期讲一讲Exadata,尤其是存储节点的硬件选择及其对应的一些通用软件配套。

1 InfiniBand/RoCE

InfiniBand交换机是Exadata X8及之前一直使用的内部交换机,以X8为例,单路带宽为40Gb。相较于以太网交换机,InfiniBand的延迟具有交大的优势。

RoCE交换机则是X8M开始使用的内部交换机,目前X8M、X9M、X10M均为单路100Gb,为以太网交换机。相较于InfiniBand价格更加便宜,而且能提供更大的带宽。

2 RDMA

对应交换机硬件,Exadata在很早的版本就开始使用RDMA技术,即:

  • Remote(远程):数据在网络中的两个节点之间传输。
  • Direct(直接):不需要内核参与,传输的所有处理都卸载到NIC硬件中完成。
  • Memory(内存):数据直接在两个节点的应用程序的虚拟内存间传输;不需要额外的复制和缓存。
  • Access(访问) :访问操作有send/receive、read/write等。

毕竟Exadata使用的是存算分离架构,本身基础延迟会大于存算一体架构。使用RDMA还有以下一些好处,使得计算节点可以更加快速的从存储节点获取数据:

  • 内存零拷贝(Zero Copy):RDMA应用程序可以绕过内核网络栈直接进行数据传输,不需要再将数据从应用程序的用户态内存空间拷贝到内核网络栈内存空间。
  • 内核旁路(Kernel bypass):RDMA应用程序可以直接在用户态发起数据传输,不需要在内核态与用户态之间做上下文切换。
  • CPU减负(CPU offload):RDMA可以直接访问远程主机内存,不需要消耗远程主机中的任何CPU,这样远端主机的CPU可以专注自己的业务,避免其cache被干扰并充满大量被访问的内存内容。

3 PMEM/XRMEM

PMEM即非易失性内存(傲腾),XRMEM则是Exdata RDMA内存(DDR5)。其中PMEM使用于X8M和X9M,因Intel停止生产傲腾,因此X10M开始使用XRMEM。二者本质上是在Flash Card(即NVMe SSD)上再添加一层加速缓存,且二者均可直接接入RDMA,极大地降低了数据访问延迟。

4 Flash Card(NVMe SSD)

这里就不介绍啥是NVMe SSD了,毕竟现在新款的笔记本都是标配,最近的降价也是家用的常规产品了。Exadata也是很早就开始使用这一技术产品,使用PCIe接口极大的带宽在HDD(当然对于X10M之前的全闪存储是不存在的,X10M开始的全闪存储,有容量型Flash Card)之上加速缓存数据。在X9M之前标准存储节点使用的是4块PCIe 3.0 x4+x4的6.4TB(3.2TB+3.2TB) NVMe SSD,而X9M开始则是4块PCIe 4.0 x4+x4的6.4TB(3.2TB+3.2TB) NVMe SSD(Exadata单盘都是做了PCIe拆分的),正好我电脑上有PCIe 3.0和PCIe 4.0 x4的NVMe SSD,这里也做一个测试:

下面是一块PCIe 3.0普通SX8200的成绩:

下面是一块PCIe 4.0顶级旗舰980Pro的成绩:

首先从极限带宽来看,PCIe 4.0是PCIe 3.0的两倍,这里用家用级产品大概对比下X8M和X9M一个存储节点Flash Card 的极限带宽,X8M总计大概为3300MB/s×4×2=26400MB/s,X9M大概是2倍32800MB/s。试想一下如果使用传统FC-SAN的32Gb/s(≈4000MB/s),其实算上本身损耗,一块PCIe 3.0的Flash Card就会占满,即便是40Gb/s(≈5000MB/s)或100Gb/s(≈12500MB/s),光是X8M上的配置就已经可以远远超过一台存储节点的全部带宽,而Flash Card往上还有PMEM/XRMEM这两个的带宽可是接近内存的速度(可以参考数据库管理-第二十四期 数据库设计-硬件篇(20220610)中对内存的测试结果)。

这里再试想一下上百TB的全闪存储,以RAC集群为例,极端数据库读取的带宽肯定是远远大于传输层(FC/网络)带宽的,那么这种情况下瓶颈在传输,磁盘性能是无法充分利用的。

5 ESS起个头

为了解决存储节点磁盘能力远远大于网络能力的问题,Exadata使用Exadata Stroage Software(后面文章都将用ESS作为简称)来将存储节点转换为智能存储,即让存储参与数据库计算,仅将需要的数据通过网络传输至计算节点,配合RDMA,降低了延迟、网络IO、内存占用以及CPU损耗。可以说ESS才是Exadata最能打的部分,也是很多国产一体机纸面数据吊打Exadata但实际使用又干不过Exadata的主要原因。后面我将用若干期来讲ESS带来的一系列存储功能。

6 总结

老规矩,知道写了些啥。

相关推荐
尘浮生28 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
偶尔。53529 分钟前
什么是事务?事务有哪些特性?
数据库·oracle
安迁岚31 分钟前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
喵叔哟37 分钟前
16. 【.NET 8 实战--孢子记账--从单体到微服务】--汇率获取定时器
微服务·oracle·.net
xoxo-Rachel41 分钟前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql
JH30731 小时前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介1 小时前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人1 小时前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
武子康2 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot
代码吐槽菌3 小时前
基于SSM的毕业论文管理系统【附源码】
java·开发语言·数据库·后端·ssm