网站首页 > 技术文章 正文
本文内容非商业用途可无需授权转载,请务必注明作者、微博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
猜你喜欢
- 2024-11-14 postgresql12的同步流复制搭建及主库hang问题处理和分析
- 2024-11-14 PostgreSQL主从复制-逻辑复制 数据库 主从复制
- 2024-11-14 从 MySQL 到 ClickHouse 实时复制与实现
- 2024-11-14 Oracle APEX 富文本框直接拷贝粘贴图片
- 2024-11-14 Oracle向指定表批量复制另一个表的数据
你 发表评论:
欢迎- 612℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)