网站首页 > 技术文章 正文
本文内容非商业用途可无需授权转载,请务必注明作者、微博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
- 上一篇: Oracle dba工作笔记
- 下一篇: 查询表修改记录
猜你喜欢
- 2025-05-24 oracle创建表空间、用户及赋予、dba授权,最后删除
- 2025-05-24 查询表修改记录
- 2025-05-24 Oracle dba工作笔记
- 2025-05-24 查看、修改Oracle字符集
- 2025-05-24 oracle高版本迁移数据到低版本
- 2025-05-24 Oracle数据库字符集概述及修改方式
- 2025-05-24 搭建Oracle数据库服务器
- 2025-05-24 oracle中利用sqluldr2导出的详细过程
- 2025-05-24 Oracle和MySQL的数据导入,差别为什么这么大
- 2025-05-24 ORACLE 体系 - 14
- 06-22Python开发工程师必会的3个设计模式(工厂、单例、适配器)
- 06-22创建型设计模式——工厂模式和抽象工厂模式
- 06-221. 工厂模式详解
- 06-22工厂模式详解
- 06-22设计模式问题:说一说简单工厂模式?
- 06-22深入设计模式:工厂方法
- 06-22C++设计模式——简单工厂模式
- 06-22什么是工厂模式?工厂模式有哪些类型?如何使用它们?
- 最近发表
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- think in java (14)
- javascript权威指南 (19)
- nfs (25)
- componentart (17)
- yii框架 (14)
- springbatch (28)
- oracle数据库备份 (25)
- iptables (21)
- 自动化单元测试 (18)
- mvc模式 (13)
- python编写软件 (14)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- dfn (14)
- http error 503 (21)
- pop3服务器 (18)
- 图表组件 (17)