百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

平民全闪存跑车:Oracle数据库存储“山寨”大法

ccwgpt 2024-11-26 01:08 74 浏览 0 评论

本文内容非商业用途可无需授权转载,请务必注明作者、微博ID:唐僧_huangliang,以便更好地与读者互动。

在《不靠写缓存:更多百万IOPS的双节点存储软件》一文中,我给大家介绍了微软SOFS(Storage Spaces)共享SSD/磁盘的高可用文件存储方案。本文继续讨论几款IOPS达到百万水平、轻量级的块存储软件方案。

1、依赖Oracle ASM存储管理器(镜像保护)

上图中的英文字样“Exadata”我想大家都不陌生。从某种意义上说,Oracle Exadata是将Cell存储节点中的SSD/HDD通过IB网络暴露给前端数据库服务器,由ASM来统一管理。

这时可以选择Normal单冗余(双副本)和High双重冗余(三副本)两种保护策略,而正是由于ASM的强大,催生了不少“山寨”Exadata的产品。

国内的先不提了,上图是一家国外公司FlashGrid专门针对Oracle RAC和ASM集群推出的“Open Storage Software”,从上图来看好像是用戴尔服务器加上NVMe SSD组成的超融合方案。

根据这个架构,3节点集群中的所有SSD均通过iSCSI/iSER target暴露给每台主机,然后应该是用ASM组成3路镜像。关于Read-Local技术就是优先读本地,比如在Node 1上读取SSD 1的数据就不会绕道另两个节点了。

记得一位朋友曾经对我说过ASM Mirror的一个问题:RAC集群的仲裁盘放哪里,能否在一些故障时满足投票规则?上面的方案每个主机自身都有单点,即使非超融合的双机双柜也要考虑这个问题。对此有一种解决办法是把仲裁盘放在外部NFS上。

在不久前的闪存峰会上,达沃时代CTO雷迎春博士曾经表示:“超融合的HA要考虑计算节点和存储两个部分,因此比普通的ServerSAN要复杂”。

上面是FlashGrid的2节点Normal冗余方案,我们看到除了数据Failure Group里的SSD互相配对之外,Quorum(仲裁盘)Failure Group在NFS上占用了100MB文件存储空间。

在3节点的High冗余配置中,FlashGrid将Quorum Failure Group的数量增加到2个。

从测试数字来看,当每个节点4个Intel SSD DC P3700时,2 / 3节点的8KB读IOPS分别超过160万和240万IOPS。可见本地读对性能发挥还是很有帮助的。

据我了解,类似FlashGrid的方案还有不少,比如国内的沃趣(前年我写的《IDF14:全闪存VSAN、缓存Hadoop和高可用》一文中有提及)、云和恩墨zData、宝存的Oracle数据库一体机等。与OracleExadata相比他们解决了基本存储管理,都不再需要传统共享阵列,但是不具备SmartScan这样的高级软件特性。

相对于传统存储,使用这类一体机的硬件性价比更好,同时对方案提供商的服务能力要求更高,或者用户DBA较强敢于自己搞定ASM。外加仲裁/表决盘的实现机制,感觉多少还有些不够完美,那么受否有各方面比较均衡或者说折中一些的产品呢?

2、SanDisk ION/Dell DAAD系统(同步复制高可用)

如图,上半部分的4个RAC数据库节点、私有网络和公共网络配置都属于常规,下面的存储连接使用FC SAN光纤通道存储网络,数据放在Dell AccelerationAppliances for Databases(DAAD)上。

DAAD分为Standalone和HA两种版本,前者使用基于主机的镜像,而后者则是自身具备HA特性。本文讨论的主要是表格中右边那种。

DAAD(HA)在硬件上就是2台戴尔服务器加上PCIe闪存,并通过双路40-56Gb/s的以太网或者InfiniBand互连,其核心软件是SanDisk ION Accelerator。关于ION的身世,四年前我曾经撰文一篇《Fusion-io软件定义存储:全闪存阵列DIY时代?》(有兴趣的读者可以访问http://storage.chinabyte.com/18/12398018.shtml),后来Fusion-io被SanDisk收购,SanDisk又被WD-HGST收购。

之所以我们将ION称为轻量级存储软件,因为它的实现原理比较简单。根据这个架构图,每个ioDrive PCIe闪存卡被切成两半,通过高速网络在两个DAAD节点之间同步复制(互备)。整个HA对中的8块闪存卡最终由每节点各自导出4个存储卷。

与Oracle ASM从数据库端实现数据的多份写入不同,ION/DAAD的闪存保护和高可用都是自身完成,不改变用户对传统存储的使用习惯。它的另一个优势是支持多种存储网络,Target类型比较丰富,除了16Gb FC之外,还有40Gb iSCSI和56Gb InfiniBand(SRP)。

从当年的DAAD 1.0到现在DAAD 2.0的性能提升比较大,我理解一方面是因为闪存卡升级,此外软件优化可能也有。值得注意的是6.4TB的性能不如3.2TB,看来容量也不总是越大越好。

190万IOPS的数字比前面FlashGrid的2节点要高,不过值得注意的是这里是4KB随机读而前面为8KB,此外DAAD采用数据库/存储节点分离式部署而不是超融合。

我们知道闪存的写性能总是比读差不少,记得我们在《SPC-1 IOPS被刷到500万,说不是因为内存你信吗?》一文开头曾经交待过,MemblazeFlashRAID使用8个PBlaze NVMe SSD做本地RAID 5随机写测得IOPS在35-40万。ION/DAAD有节点间同步数据的开销,混合读写IOPS表现为66万,超过一般的中端存储阵列不成问题。

3、管理界面决定易用性、DRBD的进展

上图是DAAD的管理界面,比较简单的风格,可以看到ioDrive闪存卡位于哪些PCIe插槽及其状态,还有性能监控等。

记得当年同行专家曾告诉我ION是基于DRBD开源项目研发的。我想除了性能调优之外,另外一个增值点就是GUI管理体验。如上图,左边的菜单包括卷、存储池、Initiator、Target、Fusion ioMemory闪存卡、主机和集群;右边是展开的Initiator界面,其中可以添加/编辑HBA卡的WWN,管理主机组等。

由上述功能,我们可以把基于ION软件的DAAD称为一个轻量级的全闪存阵列,Oracle的仲裁盘也可以放在上面。而像快照、远程复制等传统阵列的高级软件功能它是不具备的,数据库用户可以考虑采用Oracle Data Guard这样的数据库级别的复制保护技术。

既然提到了DRBD(Distributed Replicated Block Device),我们也简单出示一下其原理,从上图来看并不算复杂。

目前最新的版本是DRBD9,有朋友说支持分布式了,按照这个示意图我觉得更像一对多复制(一主多从)吧?

如果您对DRBD等比较熟悉,也许可以尝试下搭建自己的同步复制+HA块存储设备,每人的效果可会有些差异。SanDiskION/戴尔DAAD则是专门针对数据库定制的目标高性能、包含支持服务的全闪存系统商业产品。

注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)

尊重知识,转载时请保留全文。感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage

原文地址:http://mp.weixin.qq.com/s?__biz=MzAwODExNjI3NA==&mid=2649774404&idx=1&sn=39016f6d018b45a9880350fa567bf26c#rd

相关推荐

一个基于.Net Core遵循Clean Architecture原则开源架构

今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...

AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%

写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...

OneCode低代码平台的事件驱动设计:架构解析与实践

引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...

国内大厂AI插件评测:根据UI图生成Vue前端代码

在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...

AI+低代码技术揭秘(二):核心架构

本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...

GitDiagram用AI把代码库变成可视化架构图

这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...

30天自制操作系统:第六天:代码架构整理与中断处理

1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...

AI写代码越帮越忙?2025年研究揭露惊人真相

近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...

一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具

一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...

5分钟掌握 c# 网络通讯架构及代码示例

以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...

从复杂到优雅:用建造者和责任链重塑代码架构

引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...

低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈

专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...

框架设计并不是简单粗暴地写代码,而是要先弄清逻辑

3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...

大佬用 Avalonia 框架开发的 C# 代码 IDE

AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...

轻量级框架Lagent 仅需20行代码即可构建自己的智能代理

站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...

取消回复欢迎 发表评论: