前言:铁力士分布式存储是道熵(南京)出品的新一代阵列性分布式存储系统。与分布式系统中常见的三副本或EC纠删码不同,铁力士采用双重RAID架构,每个存储节点构成一个小RAID磁盘阵列,通过分布式副本技术将这些小阵列交织成一个高扩展、高可靠、高性能的阵列型分布式存储系统,提供FC、iSCSI/iSER、Samba、NFS、Openstack、POSIX、S3、Hadoop HDFS等存储协议与接口。铁力士在IT基础架构云化、Openstack私有云平台、医疗HIS与PACS系统、媒资视频编辑、大数据分析、以及SAN/NAS传统存储替换等领域得到广泛应用并受到热烈推崇,其背后又有怎样强大的技术驱动力呢?本文我们就探讨一下
分布式存储面临的挑战
存储系统可分为集中式存储与分布式存储。集中式存储包含传统SAN和NAS磁盘阵列,采用RAID控制器架构。分布式存储以HDFS、Ceph、vSAN为代表,采用网络副本或网络纠删码方式实现数据冗余保护。与集中式存储相比,分布式存储具有在性能与容量两个维度都可以弹性扩展的优势,非常适合数据中心云化、大数据分析、以及海量非结构化数据等应用场景的需求,但由于分布式系统本身的技术特点,导致分布式存储的稳定性与高可用性等方面不及集中式存储。
分布式存储面临的大挑战,在于当网络出现故障时,可能导致整个存储系统出现稳定性问题,甚至业务中断、数据丢失的状况。其背后的理论基础在于计算机分布式系统中著名的CAP定理:在一个分布式系统中,最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项,不能同时满足这三项。
其中,一致性Consistency指"all nodes see the same data at the same time",即更新操作成功后,所有节点在同一时间的数据完全一致。分布式存储常见采用网络副本或网络纠删码实现数据保护,而数据一致性是实现网络数据保护的必要条件。
可用性Availability指"reads and writes always succeed",即服务一直可用且能够正常响应。衡量一个系统可用性,可以通过停机时间来计算的。描述一个系统的可用性时,比如某某系统可用性可以达到5个9,意思就是说该系统的可用水平是99.999%,即全年停机时间不超过(1-0.99999)*365*24*60 = 5.256min,这是一个极高的要求。
分区容错性指"the system continues to operate despite arbitrary message loss or failure of part of the system",即分布式系统在遇到网络(分区)故障的时候,仍然能够对外提供满足一致性和可用性的服务。
在分布式存储系统中,网络故障是不可避免的,同时,因为业务连续性要求,系统高可用性必须满足较高指标。这样,根据CAP定理,采用网络副本或网络纠删码的第一代分布式存储系统,无法完全避免数据非一致性问题隐患,在伴随硬件损坏的情况,就比较容易出现稳定性问题,甚至数据丢失的状况。这是在实际生产环境中,专业人员普遍观察到第一代的分布式存储在稳定性方面远不如传统磁盘阵列的最核心原因。
双重RAID架构
铁力士分布式存储是道熵信息推出的新一代分布式存储系统,采用双重RAID架构,旨在解决上一代分布式存储系统中潜在的稳定性与数据安全隐患。根据CAP定理我们知道,单纯依靠网络数据冗余,无论是网络副本还是网络纠删码技术,在网络出现故障时,或者业务被迫中断,或者数据的一致性无法得到保障,即高可用性与数据一致性无法同时兼顾。为解决这一弊病,铁力士分布式存储在网络数据保护基础之下,吸收了传统磁盘阵列的特点,通过Log-structured RAID虚拟化技术,将每个存储节点构成一个小RAID磁盘阵列,通过分布式副本技术将这些小阵列交织成一个高扩展、高可靠、高性能的阵列型分布式存储系统。这样,即使出现网络分区故障,导致网络非一致性现象,仍然可以依靠节点内RAID数据保护,从而保证数据安全无忧与业务高可用。
由此可见,双重RAID是目前分布式存储领域更可靠、更安全的分布式存储系统。
自动化运维
存储系统的持续稳定运行,是IT基础架构能够保障高可用服务的前提条件,其重要性不言而喻。分布式存储系统需要部署在很多的机器上,涉及数十种硬件模块,以及操作系统,软件包,各种Firmware,网络,文件系统等多个方面,需要很好的自动化与智能化运维才能保证顺利运营。比如像Google、Amazon等大型云计算公司就维持了庞大的Site Reliability Engineer(SRE)运维团队来保证业务连续性,其高昂的人力成本,是大部分企业难以承受。
随着人工智能(AI)的兴起,存储业界尝试依靠人工智能进行自动化运维,即AIOps,希望通过AI技术实现存储自治,来降低存储使用的复杂性,简化运维。然而,值得指出的是,国内某存储大厂推出智能管理软件,宣称能够提前两周识别风险磁盘,精准到天预测SSD使用寿命,这里存在过度宣传的嫌疑。事实上,硬盘、主板、电源、内存、CPU等电子元器件的故障具有强烈的不可预测性,无法通过AI来精确预测硬件故障的发生。
实现自动化运维、降低对运维人员的依赖的关键,在于分布式存储软件是否充分考虑了分布式存储对于自动化运维的需求。下面我们从三个方面来阐述铁力士分布式存储在支持自动化运维方面所具备的技术特点。
一、可观测性
任何电子硬件故障的发生,都具有突发性和不可预测性。虽然我们无法准确预测故障发生的时间和方式,但可以通过存储管理软件,实现存储系统的全方位可观测性。铁力士分布式存储采用Prometheus实现基于时间序列的数值数据的监控解决方案,可监控存储系统中数千个性能及健康指标,并通过Grafana可视化工具创建直观的监控曲线,同时还支持用户自定义想要监控的参数和系统状态。
此外,铁力士支持在每个存储节点上建立统一管理的虚拟存储池,在其上构建多个虚拟卷(vOSD)参与构建分布式系统,不仅可有效实现硬件故障隔离,同时通过数据校验码来增强硬件故障的可观测性。具体而言,虚拟存储池给每个数据块生成一个校验码,每次读数据时会使用该校验码检查数据是否与校验码相匹配。如果不匹配,则表明磁盘或相关硬件出现了故障。可见,虚拟存储池的校验码可在第一时间发现并帮助定位硬件故障。
二、自愈能力
铁力士分布式存储具备超强的故障自愈能力。铁力士可通过网络副本或网络纠删码的方式实现数据自动修复,在扩(缩)容时可对集群中的数据实现自动再平衡。
此外,铁力士还具备独特的本地数据修复功能,即利用节点内的RAID功能对故障磁盘进行数据重构。本地数据修复无需占用存储系统的网络资源,对用户的业务影响可降到最低,因此具有更强的稳定性和自愈能力。
三、容错能力
铁力士分布式存储采用双重RAID架构,具备比三副本更强的故障容错能力。以拔盘来模拟硬盘故障,在三副本分布式系统中,每个节点拔出一个磁盘,当拔出第三个磁盘时,系统出现数据无法恢复、业务被迫中断的状况;而在双重RAID架构中,每个节点均可拔出一个磁盘,以10节点分布式存储系统为例,就算拔出10个磁盘,数据仍然安全,业务仍可保持连续。
总结
铁力士分布式存储采用双重RAID架构,可有效应对分布式系统中,因网络分区故障而可能出现的数据非一致性弊病,是目前分布式存储领域更可靠、更安全的分布式存储系统。同时,铁力士在分布式系统的可观测性、自愈能力、以及容错能力等三个方面显著优于其他分布式存储系统,不仅提升了存储系统的自动化运维水平,而且有效降低了存储管理复杂度与运维难度。