我们知道软件定义存储SDS有很多优势,比如:
- 软硬件分离,无硬件厂商锁定。
- 高扩展性,在线按需扩容,无需中断业务。
- 标准控制API接口,秒级操作,无缝对接其他系统。
- 标准数据访问接口,支持块、文件、对象存储等。
- 性能和容量可配置,满足当前和未来场景的需求。
除此之外,SDS还可以灵活定义可靠性、可用性,因此SDS特别抗造。
我们先了解可靠性和可用性的含义,再对故障进行分类,最后对比各种抗造技术,方便大家在做SDS选型和架构设计时进行“软件定义”。
2可靠性与可用性
可靠性(durability):表示数据是否丢失。比如硬盘发生介质故障,导致硬盘里面的数据丢失。
可用性(availability):表示数据是否可以访问。比如因为服务器掉电原因,导致暂时不能访问服务器硬盘中的数据。
3故障分类
总体分类为:硬件、软件、天灾、人祸。具体分类如下表所示。
其中硬盘发生故障非常频繁,下面云备份服务商blackblaze的硬盘年平均故障率统计,一共统计了82516块硬盘在2013年~2017年间的故障率。
在实际经验中,我们也会经常碰到服务器、机柜、交换机、站点的故障。那么多故障,我们需要不同的技术来应对,下面我们来看不同技术的优缺点。
4抗造技术
4.1 单机RAID
一般服务器上都会自带RAID卡,支持RAID1、10、5、6等。RAID技术通过数据冗余保证在1~N块硬盘故障时,数据不丢失,并且同时可以访问到数据。
比如RAID5支持同时坏1块硬盘,RAID6支持同时坏2块硬盘。
但是RAID的缺点是:
●仅支持单机。假如服务器宕机,RAID技术也无力回天。
●数据恢复速度慢,受限于单个硬盘的写速度,导致RAID组要恢复健康状态需要10个小时以上,特别在越来越大的硬盘容量的情况下。在数据恢复过程中,容易发生二次故障,导致数据丢失。
● RAID组所包含的硬盘数量太少,不能并行发挥所有硬盘的性能。
●需要单独的Spare热备盘,平时会造成资源浪费。
4.2 多机网络多副本
因为单机RAID的缺点,随着万兆以太网的普及,多机网络多副本技术随之产生,广泛被各种分布式存储软件使用。
多机网络多副本的优点是恢复速度快,并行发挥所有硬盘的性能,另外当单台服务器宕机了,不影响数据的可用性和可靠性,其他服务器继续提供服务。缺点是存储容量利用率低,可用容量和裸容量比例是1:3。
4.3 多机网络EC纠删码
为了解决多副本的存储容量利用率低的问题,大家开发了网络EC纠删码,也被广泛应用在分布式存储上,比如HDFS的EC纠删码。
它优点是可用容量和裸容量比例是1:1.3~1.5,大文件写吞吐量高,缺点是写操作延迟高。
4.4 机架柜列故障域隔离
SDS还可以定义数据分布策略,这样可以防止机架柜列掉电造成的影响。
假如多副本分布在不同的机架上,则任一机架掉电,不影响数据可靠性和可用性。
假如多副本分布在不同的柜列上,则任一柜列掉电,不影响数据可靠性和可用性。
4.5 网络冗余
SDS通过网口链路聚合和交换机堆叠技术,提供网络冗余度,避免单个网口和交换机的故障造成数据不可访问的影响,提高数据可用性。
4.6 多站点多副本
为了满足存储系统两地三中心、多站点多活的需求,目前部分SDS产品的对象存储服务支持多站点多副本技术,数据三个副本同时存储在三个站点上,可以多站点同时访问,支持多活技术。当任意一个站点发生故障时,不影响其他站点的数据访问和写入。
4.7 多站点EC纠删码
多站点EC纠删码技术可以提高存储容量利用率,支持在1个站点故障的情况下,数据能够正常访问和读写,适用于冷数据和归档场景。
4.8 Cloud Sync(云备份)
不是所有场景都有条件建设多站点,因此SDS的Cloud Sync(云备份)功能应运而生,可以把数据异步复制到公有云和异地私有云上,避免额外建设,降低成本。当本地存储集群发生故障时,数据可以快速恢复和访问。
具体应用场景如下所示:
4.9 智能故障自愈
SDS可以采用先进的数据分布算法,在出现硬盘故障和服务器故障时可以进行数据迁移和重平衡,故障硬盘会被踢出存储集群,不再工作。数据迁移完成后,SDS存储集群恢复正常,无须人工干预。因当出现硬盘故障时,可以不用处理,后期再批量更换硬盘,减少运维成本。
4.10 对象存储超时删除
对于特定场景,数据保存一定周期之后需要删除,以便释放空间,SDS的对象存储服务具有超时删除功能。下图是10天后删除数据的设置。
4.11 监控告警平台
通过监控告警平台,可以把不同级别的告警信息通过邮件和短信发送给管理员,让管理员快速知晓存储集群的健康状态,并采取适当的行动。
5 技术对比
下表对比了不同技术的抗造指标,我们要根据实际场景进行选择和组合,权衡数据可靠性和成本。