作者:SmartX 系统工程师 吴科

近年来,超融合 IT 基础架构的先进理念和巨大价值已经逐步被用户认可和接受,越来越多用户开始评估和采购超融合产品。面对全新的架构,以及国内市场各种品牌,用户难免产生诸多困惑:

1. 产品的宣传材料写得都挺好,实际运行效果如何?超融合是否在我的实际业务中能真正发挥价值?
2.会不会开始使用挺好,但长期使用或者极端情况下会有各种问题出现?
3.这么多的品牌如何选?国外的产品这么昂贵,是否真的物有所值?国内这些基于开源的产品,到底有什么隐患?

针对以上问题,用户大多会考虑在产品评估阶段引入 POC 测试,用于验证产品的实际表现,并对各家产品进行系统对比,但应如何进行 POC 测试用例设计?本系列文章由 SmartX 行业资深方案工程师根据大量用户实际需求整理,力求为用户提供一份系统实用的 POC 要点参考。

超融合产品POC重点

通过超融合专业文章大家可以了解到,超融合软件架构主要分为三大组件:分布式块存储、虚拟化、系统运维管理。而在这三大组件中,最重要的组件莫过于分布式块存储。其主要原因包括:

1.在超融合产品中,虚拟化和服务器都已经属于比较成熟的技术,而分布式块存储是近几年才通过超融合架构被用户所逐渐采用,需要重点验证;
2.分布式块存储不仅仅是提供存储空间,相较于虚拟化和服务器,其出现故障,带来的影响会更大,直接影响业务连续性、数据可靠性和系统性能等多方面核心指标;
3.分布式存储开发门槛高,是检验产品和厂商技术实例的试金石;
4.分布式块存储软件基于 x86 商用服务器构建,相较于使用专有硬件的传统集中式存储,对软件可靠性、容错能力、性能以及数据保护能力方面提出了更高的产品设计和实现要求。

所以,分布式存储组件是 POC 测试验证的重点,主要包括以下几个方面:

  1. 性能相关
  2. 可靠性相关
  3. 数据保护能力相关
  4. 基础功能相关
  5. 兼容性相关

本次内容,主要围绕可靠性相关 POC 测试内容以及需要关注点。

超融合产品POC要点 – 可靠性及数据保护

POC 中的可靠性测试主要模拟相关的故障场景,以测试超融合软件在不同故障场景下的可靠性表现。基于 x86 硬件架构的软件产品在可靠性设计中有一个前提:硬件是不可靠的,即在服务器任何部件故障或网络故障的情况下,分布式存储系统必须保证存储服务的可用性。所以,在可靠性测试中,应尽可能多地去模拟故障场景,在不同故障场景下,验证系统的可靠性。

关于超融合系统可靠性的测试主要分以下场景

  1. 磁盘故障
  2. 网卡故障
  3. 节点故障
  4. SCVM 故障(VMware环境下)
  5. 机架故障
  6. 人为误操作

可靠性测试的关键指标有:

  1. 故障发生后能否检测到
  2. 故障发生后能否自动修复
  3. 数据恢复过程中对整个集群的性能影响
  4. 数据恢复量
  5. 数据恢复速度
  6. 数据恢复触发条件

下面根据不同的故障场景分别做可靠性验证:

磁盘故障的模拟和可靠性验证

一、HDD 相关故障类型及可靠性验证:

1.显性的 HDD 故障:当 HDD 由于寿命到期等显著的电气特性问题引起磁盘 IO 错误,可以通过 smartctl 等磁盘检测工具检测到。在设备带外管理中也会有相应的告警,这种故障场景比较容易模拟,在超融合集群中创建一定数量的 VM ,实现数据在 HDD 硬盘上存放,在 VM 中运行业务(可通过 FIO 或者长 ping 进行模拟)的同时,直接将 HDD 硬盘拔出进行超融合软件对显性 HDD 故障的处理,确认 VM 中业务是否有中断,集群是否触发数据恢复,恢复的数据量是否仅为写入的数据量而非全盘数据。此外,超融合系统一般都支持 HDD 硬盘的热拔插,拔出后,可以进一步验证拔出的此 HDD 硬盘插入其他超融合节点是否可以被识别、挂载并纳入存储空间。

2.隐性的 HDD 故障:与显性的 HDD 故障不同,在隐性故障下,HDD 未出现显著的电气特性问题,无法通过 smartctl 等磁盘检测工具检测到磁盘故障,但由于固件缺陷或接近寿命,在实际 IO 操作中,出现高频率的 IO error,这种隐性的 HDD 故障对超融合系统正常运行存在比较大的隐患。这种故障场景可以在进行正常 IO 访问过程中,通过磁盘故障注入工具进行模拟,验证超融合系统是否可以及时识别这种隐性的 HDD 故障以及恢复数据量等其他关键指标。

3. HDD 磁盘比特反转导致的静态数据损坏:因电磁辐射或磁头故障导致 HDD 硬盘上的某些 bit 反转导致数据不可用,比特反转只影响部分 bit 位,不会导致整块 HDD 硬盘不可用。这种故障出现的概率不高,但一旦出现,如果超融合软件层面没有检测机制,极容易带来副本之间数据不一致,以及数据不可用的风险。这种故障场景可以通过 FIO 测试工具进行模拟,通过 bit 错误注入,验证超融合平台是否可以通过 CheckSUM 机制检测到以上故障,并通过数据恢复的机制实现副本之间的数据一致性。

二、 SSD 故障下的可靠性验证:

SSD 由于温度太高、意外断电等问题导致故障不可用时,SSD 内的数据会离线,节点上的部分副本数据开始数据恢复,部分业务虚拟机由集群的其他副本提供支撑(双副本和三副本),业务不中断,集群自动感知故障,并产生数据恢复,用来保证集群的可靠性。

这种故障场景可以通过直接拔掉正在运行的 SSD 进行模拟,测试中需要验证 SSD 故障是否是单点故障;验证数据恢复量与 SSD 硬盘容量之间的关系( 某些超融合系统有磁盘组概念,单块 SSD 故障会引起整个磁盘组不可用,数据恢复量远超 SSD 写入数据)。

此外,超融合系统一般都支持 SSD 硬盘的热拔插,拔出后,可以进一步验证拔出的此 SSD 硬盘插入其他超融合节点是否可以被识别、挂载并纳入缓存空间。

三、网卡故障的模拟和可靠性验证:

1.管理业务网卡故障,无法通过该节点管理超融合集群
2.业务网卡故障,业务虚拟机无法通过网络正常提供服务
3.存储网卡故障,节点的数据离线,业务虚拟机无法在该节点正常运行

网卡故障可以通过拔掉网线、关闭任一交换机进行模拟。超融合系统通过多网卡绑定的方式保证集群网络的冗余。超融合系统支持的网卡绑定模式有 active-backup、balance-slb 和 balance-tcp,针对不同的绑定模式,需要交换机做对应的设置,配合交换机的使用。可以在绑定的 N 块网卡中至多 N-1 块故障时,业务不会中断,当原网卡恢复正常后,系统会自动关联网卡,并将网卡加入到集群中。

四、节点故障的模拟和可靠性验证

当节点由于硬件问题、软件 BUG 导致断电、关机、重启等故障时,节点前置面板告警灯会亮,带外管理也会有相应的告警提示,该节点上运行的业务虚拟机将暂时无法提供服务,同时节点上的副本数据离线。其他正常节点上的业务虚拟机业务不中断,故障节点上的业务虚拟机开启高可用后会自动迁移到其他正常节点,集群自动感知故障,并产生数据恢复,用来保证集群的可靠性。

这种故障通过对节点直接断电进行模拟,在超融合集群各个节点上均创建一定数量的业务虚拟机,在业务虚拟机中运行业务(可通过 FIO 进行模拟),通过以下指标观察超融合平台的健壮性。

1.节点失效到触发数据恢复需要的时间(考虑系统是否足够敏感)
2.节点失效到虚拟机 HA 到其他节点需要的时间(考虑系统是否足够敏感)
3.节点长时间失效,数据恢复量(模拟需要长时间修复机器宕机问题)
4.节点短时间重新上线,数据恢复量(模拟重启解决机器宕机问题)
5.恢复速度(节点数量是否影响恢复速度)
6.业务虚拟机的性能(节点故障是否对整个集群的虚拟机都有影响)
7.关闭业务虚拟机运行的业务(考虑恢复速度是否感知业务压力自动调速)

五、SCVM 故障的模拟和可靠性验证

虚拟化集群使用 VMware 平台时,由于 SCVM 误关机、意外宕机等无法提供服务,该节点上运行的业务虚拟机处于计算资源可用(ESXi 主机正常),存储资源不可用(分布式存储控制虚拟机不正常)的状态。这种故障如果没有好的处理机制,那么在故障发生时容易造成业务不可访问的灾难。

这种故障可以通过对 SCVM 直接关机进行模拟,故障发生时会有短暂的 IO 卡死,该节点会通过 IO 重路由功能连接到正常节点上 SCVM 的存储网络上,重新建立一条新的分布式存储数据链路。在建立的过程中,业务虚拟机会有短暂的 IO 卡死,该功能是链路的重新连接,虚拟机业务不会中断,因此也不会触发 VMware 平台的 HA。当 SCVM 恢复后,集群会自动感知,并产生数据恢复,同时集群也会检测旧数据是否可用,来减少数据恢复量。

六、机架故障的模拟和可靠性验证

超融合集群放置在多个机柜上,机架因供电问题导致一个机架的所有节点全部离线时,其他机架供电正常,该故障发生时,如果超融合系统没有对应的可靠性机制,可能会由于业务虚拟机的所有副本都在同一机架的节点上,导致数据离线,业务无法正常运行。

这种故障通过对某一机架断电进行模拟,超融合系统配置 “机架感知” 功能后,根据机房物理拓扑结构,将副本分配在不同的机架、机箱、节点上,有效减少甚至避免物理硬件(电源、交换机等)故障导致的数据丢失。正常节点的业务虚拟机正常运行,故障节点的虚拟机在资源足够时迁移到正常节点上。

七、误操作的模拟和可靠性验证

业务虚拟机维护人员在日常工作中,误删除虚拟机的某个文件,甚至删除业务虚拟机,想要找回数据时,对于分布式存储几乎不可能完成,当事情发生时,根据业务虚拟机的重要程度,会有不同程度的损失,甚至会给公司造成重大损失。

该故障可通过手动删除业务虚拟机中的文件和删除业务虚拟机两种操作进行模拟。使用超融合的定时快照功能,根据不同的快照对象(虚拟机、iSCSI LUN、NFS File 和虚拟机的磁盘),选择不通的快照时间(按月、周、天、小时),保留多个快照组(最多 16 组)。在误操作发生后,可以通过重建事先做好快照来恢复数据。

在超融合系统中验证快照功能时,通过以下指标观察快照是否实用:

1.创建快照速度(考察快照的实现机制)
2.虚拟机做多组快照(考察快照保留的最大快照组)
3.创建和删除快照,查看集群性能(考察快照对集群性能的影响)
4.对多个虚拟机做快照,记录时间(考察做快照与虚拟机大小的关系)
5.删除中间快照和删除虚拟机,其他快照可用(考察快照之间是否依赖)
6.对多个虚拟机做快照回滚和重建,记录时间(考察快照与虚拟机大小的关系)

对业务虚拟机做快照时只复制元数据信息,而不是对虚拟机做一个完整的快照,既节省空间使用率,同时快照可以秒级和快速恢复。使用定时快照的功能,根据重要程度,制定不同的快照计划,同时定期清理无用快照,在快照功能页批量操作快照,可以为您减少误操作造成的损失。