俄罗斯分布式存储。 运作方式



今年春天,Reydiks团队准备并发布了该软件的第一版,该软件用于创建在基于Elbrus-4C微处理器的Elbrus-4.4服务器平台上运行的分布式块存储系统。

这种共生的作用肉眼可见-基于家用熨斗和家用操作系统的存储系统的组装正在成为国内市场的一种有吸引力的产品,特别是对于那些专注于进口替代的客户而言。

但是,开发的操作系统的潜力不仅限于俄罗斯服务器平台。 目前,正在测试和测试与市场上广泛分布的标准x86-64服务器的兼容性。 此外,该产品已“完成”到所需的功能,这将使其能够在俄罗斯市场之外实施。

下面,我们将对软件解决方案(称为RAIDIX RAIN)的安排方式进行简短的讨论,该解决方案允许将本地服务器媒体组合到具有集中管理以及水平和垂直扩展功能的单个容错存储群集中。

分布式存储功能


以单个硬件-软件复合体的形式制成的传统存储系统存在一个与扩展有关的常见问题:系统性能取决于控制器,其数量有限,通过在扩展架上增加托架来扩展容量不会提高生产率。

使用这种方法,存储系统的整体性能将下降,因为随着容量的增加,以前数量的控制器需要处理更多的访问操作以增加数据量。

与传统解决方案相比,RAIDIX RAIN支持水平块缩放,增加系统的节点(服务器块)不仅会线性增加容量,还会导致系统性能线性增加。 这是可能的,因为每个RAIDIX RAIN节点不仅包括介质,而且还包括用于I / O和数据处理的计算资源。

应用场景


RAIDIX RAIN涉及分布式块存储的所有主要应用场景的实现:云存储基础架构,高负载数据库和大数据分析存储。 RAIDIX RAIN还可以与具有足够高数据量和客户端相应财务能力的传统存储系统竞争。

公有云和私有云


该解决方案提供了部署云基础架构所需的灵活可伸缩性:每个节点添加到系统后,性能,吞吐量和存储容量都会增加。

资料库


全闪存配置中的RAIDIX RAIN集群是为高负载数据库提供服务的有效解决方案。 该解决方案将成为Oracle RAC的Oracle Exadata产品的负担得起的替代产品。

大数据分析


与其他软件一起,可以使用解决方案来执行大数据分析。 与HDFS群集相比,RAIDIX RAIN提供了更高级别的性能,并且易于维护。

解决方案架构


RAIDIX RAIN支持2种部署选项:专用(外部或融合)和超融合(HCI,超融合基础架构)。

专用部署选项


在选定的版本中,RAIDIX RAIN集群是经典的软件存储。 该解决方案部署在所需数量的专用服务器节点上(至少3个,实际上从上面是无限个),其资源完全用于存储任务。

1.专用部署选项

RAIDIX RAIN软件直接安装在裸机上。 使用RAIN来存储信息的应用程序,服务,计算资源托管在外部主机上,并通过存储网络(经典数据中心体系结构)连接到该主机。

超融合部署选项


超融合选项涉及在一组节点上联合放置数据中心的计算能力(管理程序和生产VM)和数据中心的存储资源(软件存储),主要是针对虚拟基础架构。 通过这种方法,RAIN软件以虚拟机的形式安装在基础结构(HCI)的每个主机(节点)上。

2.超融合部署选项

RAIN群集节点之间以及与存储资源(服务器,应用程序)的最终用户之间的交互是通过iSCSI(IP,IPoIB),iSER(RoCE,RDMA)或NVMeOF协议进行的。

超融合部署选项具有以下优点:

  • 整合计算和存储资源(无需实施和维护专用的外部存储)。
  • 计算资源和存储资源的联合水平块缩放。
  • 易于实施和维护。
  • 集中管理。
  • 节省机架安装容量和功耗。

就使用的介质而言,RAIDIX RAIN支持3种配置:

  • 全闪存-群集节点仅提供闪存介质(NVMe,SSD);
  • HDD-群集节点仅提供HDD载波;
  • 混合-HDD和SSD上两个独立的存储级别。


生产弹性


RAIDIX RAIN的核心价值是性能,容错能力和有效利用存储容量之间的最佳平衡。

作为客户端IT基础架构的一部分,RAIDIX RAIN也很吸引人,因为我们在输出处具有“诚实”的块访问,这使该解决方案与大多数市场同类产品区分开来。

当前,大多数竞争产品仅在使用镜像时才显示高性能。 同时,有用的存储容量减少了2倍或更多:单个数据复制(镜像)-50%冗余,双数据复制(双镜像)-66.6%冗余。

在分布式存储系统中使用存储优化技术(例如EC(擦除编码-无噪声编码),重复数据删除和压缩)会导致存储性能显着下降,这对于延迟敏感的应用程序是不可接受的。

因此,在实践中,通常迫使此类解决方案在不使用这些技术的情况下运行,或者仅将其包括在“冷”数据中。

故障转移要求


最初,RAIDIX RAIN的设计具有一套明确的系统弹性和可用性初始要求:

  • 群集必须在至少两个节点发生故障的情况下幸免,节点数严格大于4。对于三个和四个,保证一个节点发生故障。
  • 如果一个节点中至少有5个磁盘,则该节点必须在每个节点中至少有两个磁盘发生故障时幸免。
  • 典型群集(来自16个节点)上的驱动器的冗余级别不应超过30%
  • 数据可用性级别必须至少为99.999%

这极大地影响了现有的产品架构。

分布式存储中的擦除编码功能


RAIDIX RAIN的主要容错方法是使用独特的Erasure Coding技术。 以其旗舰产品而闻名的EC公司也用于分布式存储中,其性能可与镜像配置媲美。 这适用于随机负载和顺序负载。 同时,确保了预定级别的容错能力,并且显着提高了可用容量,并且开销仅占原始存储容量的30%。

需要在顺序操作上单独提及高性能EC RAIDIX,尤其是在使用大容量SATA磁盘时。

通常,RAIDIX RAIN提供3种纠错编码选项:

  • 对于3个节点,RAID 1的使用是最佳的;
  • 对于4个节点,最佳使用RAID 5;
  • 对于5到20个节点的存储子集群,最佳方法是使用网络RAID 6。


3.纠错编码的选项

所有选项均假设数据在群集的所有节点上均匀分布,并增加了校验和(或校正码)形式的冗余。 这使我们可以与标准RAID阵列(RAID-6)中使用的Reed-Solomon代码进行比较,并允许最多2个载具进行故障转移。 网络RAID-6的工作原理类似于基于磁盘的RAID-6,但是它在群集的节点之间分配数据,并允许2个节点的故障转移。

在RAID 6中,当1-2个载波在一个节点内发生故障时,无需使用分布式校验和就可以在本地还原它们,从而最大程度地减少了要恢复的数据量,网络负载和整个系统的性能。

失败域


RAIN支持故障域或可用性域的概念。 这样,您不仅可以计算单个节点的故障,还可以计算整个服务器机架或存储篮的故障,这些服务器机架或存储篮在逻辑上被分组为故障域。 通过分配数据以确保其容错能力不在单个节点级别而是在域级别得以实现,这将使分组在其中的所有节点(例如,整个服务器机架)的故障得以幸免。 在这种方法中,群集分为独立的子组(子群集)。 一个子组中的节点数不超过20,这提供了对容错和可用性的要求。 此外,子组的数量不受限制。

4.故障域

任何故障(磁盘,节点或网络)的故障都会自动执行,而不会停止系统。

此外,所有RAIDIX RAIN群集设备都通过连接到不间断电源(UPS)来防止电源故障。 连接到同一UPS的设备称为电源故障组。

特征和功能


考虑RAIDIX RAIN的主要功能。
表1. RAIDIX RAIN的基本功能
运作特点价值
支持的节点类型基于Elbrus-4C处理器的家用服务器平台
标准x86-64服务器(透视图)
支持的媒体类型SATA和SAS HDD,SATA和SAS SSD,NVMe
最大储存容量16 EB
最大集群大小1,024节
基本功能热卷扩展
将节点热添加到集群
集群再平衡
无停机的故障转移
弹性技术节点,媒体,网络故障。
擦除编码,分布在群集节点上:网络RAID 0/1/5/6。
本地主机载体级别的校正代码(本地RAID 6)
失败域

作为RAIDIX RAIN的重要功能功能,值得注意的是,诸如初始化,重建和重新分配(缩放)之类的服务在后台进行,可以将它们设置为优先级参数

优先级设置允许用户独立调整系统中的负载,从而加快或减慢这些服务的工作。 例如,优先级0表示服务仅在客户端应用程序没有负载时起作用。

缩放选项


扩展RAIDIX RAIN集群的过程尽可能简单和自动化,系统会在后台过程中独立考虑到新节点的容量来重新分配数据,负载将变得均衡且均匀,整体性能和存储容量将成比例增加。 水平扩展过程通过了“热”而没有停机,不需要停止应用程序和服务。

5.缩放过程示意图

架构灵活性


RAIDIX RAIN是一种软件产品,不限于特定的硬件平台-其概念表明可以在任何兼容的服务器硬件上进行安装。

根据客户的基础架构和应用程序的具体情况,每个客户都可以选择最佳的部署选项:专用或超融合。

对各种类型媒体的支持使您可以根据预算和要基于RAIDIX RAIN构建的任务进行构建:
1.分布式全闪存存储,具有前所未有的高性能和低延迟保证;
2.满足大多数基本负载类型的经济型混合动力系统。

绩效指标


最后,我们将显示一些数据,这些数据是在6节点NVMe群集的配置上测试RAIDIX RAIN的结果。 再一次,我们注意到在这样的组装中(使用x86-64服务器),该产品仍在最终确定中,这些数字不是最终的。

测试环境


  • 2盘NVMe HGST SN100上的6节
  • IB卡Mellanox MT27700系列[ConnectX-4]
  • Linux内核4.11.6-1.el7.elrepo.x86_64
  • MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.4-x86_64
  • 本地突袭-突袭0
  • 外部突袭-突袭6
  • 测试FIO 3.1的基准


UPD:以4K块顺序执行加载,顺序为1M,队列深度为32。在群集的所有节点上同时启动了加载,该表显示了总结果。 延迟不超过1毫秒(99.9个百分点)。

表2.测试结果
负载类型价值
随机读取100%4,098,000 IOps
随机写入100%517,000 IOps
顺序读取100%33.8 GB /秒
顺序写入100%12 GB /秒
随机读取70%/随机写入30%1,000,000 IOps / 530,000 IOps
随机读取50%/随机写入50%530,000 IOps / 530,000 IOps
随机读取30%/随机写入70%187,000 IOps / 438,000 IOps

Source: https://habr.com/ru/post/zh-CN415961/


All Articles