oceanbase 存储能否用 SAS HDD企业盘。 SSD的话比较贵且没有SAS 企业盘稳定

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】V4.3.5
【问题描述】oceanbase 存储能否用 SAS HDD企业盘。 SSD的话比较贵且没有SAS 企业盘稳定
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据文档库中的信息,对于 OceanBase 数据库的存储介质选择,官方并没有明确限制必须使用 SSD 或者 SAS HDD。但是从性能和高可用性的角度出发,有以下几点建议:

  1. 性能方面:OceanBase 是一款高性能分布式关系型数据库,SSD 相较于 SAS HDD 在读写速度上有显著优势,能够更好地满足 OceanBase 对于高效数据读写的性能需求。虽然您提到 SSD 较为昂贵且认为 SAS HDD 更稳定,但从实际应用来看,SSD 的稳定性和耐用性也在不断提升,并且在随机读写性能上远超 HDD。

  2. 稳定性方面:现代企业级 SSD 已经具备了很高的可靠性和稳定性,特别是在针对企业级应用场景设计的产品中,如支持断电保护、磨损均衡等技术,可以有效保障数据的安全性和系统的稳定性。而 SAS HDD 尽管在某些情况下表现出良好的稳定性,但在面对大量随机小文件读写时可能会成为系统瓶颈,并且其平均故障间隔时间(MTBF)通常低于 SSD。

  3. 官方推荐:尽管没有找到直接说明不允许使用 SAS HDD 的文档依据,但基于 OceanBase 的设计理念和技术特点,强烈建议使用 SSD 作为存储介质以确保最佳性能体验。如果您确实出于成本考虑希望采用 SAS HDD,请务必进行充分测试以验证其是否能满足您的业务需求,并密切关注磁盘健康状态及性能表现。

综上所述,在生产环境中部署 OceanBase 数据库时,为了获得更好的性能和稳定性,推荐使用 SSD 而不是 SAS HDD。如果预算有限或对成本非常敏感,可以在保证充分测试的前提下尝试使用 SAS HDD,但需要注意监控磁盘性能与健康状况,确保不会影响到业务运行。

以上信息综合自对 OceanBase 社区版特性的理解以及分布式数据库的一般实践原则。具体到 V4.3.5 版本是否有特殊要求或其他注意事项,建议查阅该版本的具体安装部署指南或联系 OceanBase 技术支持获取更详细的指导。

检索到的文档如下:

  1. OceanBase 术语
  2. OceanBase AP 概述
  3. OceanBase 数据库概述
  4. 部署概述
  5. OceanBase AP 部署概述
  6. 生态集成概述
  7. OceanBase 概述
  8. 多租户架构概述

目前官方推荐还是使用ssd盘 正如小助手对比解释的那样


https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013498

那把日志盘设置到SSD,数据盘SAS 是不是性能还算行?

根据文档库中的信息,将日志盘设置为 SSD 而数据盘使用 SAS HDD 的方案是可行的,并且这种配置可以在一定程度上平衡性能与成本。以下是具体分析:

日志盘使用 SSD 的优势

  1. 事务日志(CLOG):事务日志对写入性能要求极高,因为每次事务提交都需要先记录到日志中以保证数据的一致性和持久性。SSD 提供了远高于 SAS HDD 的随机写入性能,能够显著减少日志写入延迟,从而提高整体事务处理能力。
  2. 系统日志(SysLog):虽然系统日志主要用于监控报警和诊断,但其频繁的日志记录操作同样受益于 SSD 更快的写入速度,有助于及时捕捉问题并保持较低的日志写入开销。

数据盘使用 SAS HDD 的考量

  1. 基线数据存储:如文档片段 2 所述,OceanBase 将基线数据保存在磁盘上的 SSTable 中,这部分数据主要涉及顺序读取操作。SAS HDD 在顺序读取方面表现尚可,特别是在大文件读取场景下,因此可以满足基线数据的读取需求。
  2. 增量数据转储:当内存中的 MemTable 达到一定规模时会触发增量数据落盘。尽管 SAS HDD 的随机写入性能不如 SSD,但对于 OceanBase 来说,增量数据落盘是一个相对低频的操作,不会对整体性能造成太大影响。

综合建议

  • 性能表现:采用 SSD 作为日志盘、SAS HDD 作为数据盘的混合配置可以在保证关键路径(如事务提交)高性能的同时,降低硬件采购成本。对于大多数应用场景而言,这样的组合应该能够提供令人满意的性能。
  • 稳定性与维护:需要注意的是,尽管 SAS HDD 在某些情况下表现出良好的稳定性,但在面对大量随机小文件读写时可能会成为系统瓶颈。因此,建议定期监控磁盘性能指标(如 IOPS、延迟等),确保不会因磁盘性能不足而影响业务运行。
  • 最佳实践:如果条件允许,推荐所有磁盘均采用 SSD,尤其是对于高并发、低延迟敏感的应用场景。但如果出于成本考虑选择了上述混合配置,请务必进行充分测试以验证其是否能满足您的业务需求。

综上所述,将日志盘设置为 SSD 而数据盘使用 SAS HDD 是一种合理的折衷方案,在生产环境中是可以接受的配置选择。不过,为了确保最佳性能和稳定性,建议根据实际业务负载情况进行详细评估和测试。

以上信息综合自对 OceanBase 社区版特性的理解以及分布式数据库的一般实践原则。具体到 V4.3.5 版本是否有特殊要求或其他注意事项,建议查阅该版本的具体安装部署指南或联系 OceanBase 技术支持获取更详细的指导。

详情请参考:

  1. OceanBase 数据库性能的影响因素
  2. 集群管理 FAQ
  3. 日志存储服务
  4. 日志稳定性
  5. 列存 FAQ
  6. 分布式事务
  7. 日志概述
  8. syslog_disk_size
  9. syslog_level

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

不推荐上生产环境,io等待高了,到时候会影响性能

日志 在SSD,数据在SAS HDD 也不行吗?

也可以。OB 本身不挑磁盘,不同磁盘带来的性能有点差别而已,只要性能满足业务需求就行。

如果不可避免的要使用机械盘,有个技巧,尽可能将多块机械盘直通到 OS,在 OS 里用 LVM 划分 两个 LV :一个给data,一个给clog 日志。每个 LV 都是条带卷。 这样 LV 的延时水平也可以做到很低。
基于云盘 部署 OB 就是用这个方法。 参考: OB 4.2 SQL 性能抖动诊断案例分享(二)

2 个赞

如果要用 正如楼下的老师说的 做条带化 一定上也能减少延迟

我的理解是 要用多个小盘(不做raid,直接小盘到OS,不考虑磁盘损坏?) 全部扩容到一个LVM盘(类似/或者home),然后多盘IO会比一个大盘或者RAID5后的盘 性能高?但是RAID5可以抗一定的风险吧?

不建议你使用raid5 虽然raid5能允许坏一块盘 RAID 5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。

那就是不管是SAS HDD 或者 SSD,都建议直通OS,建议小硬盘。然后OS内部扩容到某个LVM卷,一个data,一个log,是吗?

是的 如果磁盘比较足的情况下 可以raid1+0 这样更有利于磁盘保护和条带化

raid1+0 没明白。
如果做raid1 ,要2倍硬盘
raid0的话,到OS还是一个逻辑磁盘

归档库可以用,实时生产库必须SSD

你的意思是 日志可以用 SAS HDD,DATA 必须SSD? 怎么和我的感觉不太一样

只是建议这样使用 如果磁盘比较充足的话 这样磁盘的性能会有所增加

你说的raid1+0 是指raid10把?

是的