金融生产存储亚健康治理:升级亚健康 3.0 ,应对万盘规模的挑战

随着集群规模的不断扩大,硬盘数量指数级上升,信创 CPU 和操作系统、硬盘多年老化、物理搬迁等多种复杂因素叠加,为企业的存储亚健康管理增加了新的挑战。


在亚健康 2.0 的基础上,星辰天合在 XSKY SDS V6.2 实现了亚健康 3.0,并推出了亚健康 3.0 工具来实现新集群和老集群同时应对亚健康问题。



 问题和挑战


亚健康,又称 Fail slow,描述的是硬件虽然仍能正常运行,但性能大幅下降的一种状态。无论是硬盘、网卡、CPU、内存,这些硬件部件都可能陷入亚健康状态。当这些硬件处于这种状态时,这些硬件仍然能继续运行(不会停止工作),但其性能远不如正常情况。如果存储系统没有有效监控和容错机制,则会导致存储系统响应主机的时延增加、IOPS 和带宽降低,极端情况下甚至可能导致无法响应主机,从而打断主机业务

在星辰天合的产品理念中,我们需要确保存储系统的可靠性和高可用,同时也强调软硬解藕设计的灵活性。因此,我们持续努力提升产品在硬件亚健康方面的处理能力。在 XSKY SDS V5 版本里就推出了 亚健康 2.0,它能自动检测并隔离亚健康状态的存储盘。但随着集群规模的不断扩大,硬盘数量指数级上升,我们又一步发现了更多亚健康的优化空间,以确保客户业务连续性

  • 亚健康的场景本身非常复杂,需要针对不同的场景有不同的处理方案,因此我们需要一个足够灵活的亚健康处理框架。例如在某些 RAID 卡固件和版本里,如果一个硬盘发生高延迟且 IO 长期得不到处理,可能会导致 RAID 卡固件重置,进而影响该 RAID 卡下所有硬盘的 IO 处理,最终导致业务性能下降。在这种场景下,我们需要在第一时间内识别并处理首个出现亚健康的硬盘,避免波及系统中的其他硬盘。

  • 亚健康 2.0 是 XSKY SDS 内置能力,这意味着要应对新增的亚健康情况,必须升级整个存储集群版本,这种方式对于给客户带来了诸多不便,尤其是对于生产环境的存储集群,一方面亚健康问题需要不断更新和识别,另一方面存储集群的升级变更流程复杂。因此,我们迫切需要一种更敏捷的方式来推动亚健康新增能力的落地。

为了应对这些挑战,在亚健康 2.0 的基础上,XSKY SDS V6.2 实现了亚健康 3.0,并推出了亚健康 3.0 工具来实现新集群和老集群同时应对亚健康问题



 亚健康能力的版本迭代


我们先回顾星辰天合亚健康检测和隔离功能的历史,从亚健康 1.0 发布以来,逐渐升级功能,在此次发布亚健康 3.0 之后,将会在 2024 年发布亚健康 4.0 版本。

f11a00bc3bbdcbab35719da37ca2330c.jpeg

亚健康能力的版本迭代路线图



亚健康 3.0 算法原理


亚健康 3.0 在继承了 2.0 版本的成功经验的基础上,进一步完善了其不足之处。特别是在面对新硬件引入过程产生新的亚健康问题,其核心设计理念是将亚健康处理跟数据 IO 路径进行分离,从而实现外部检测与全局决策的能力。亚健康 3.0 模块负责亚健康场景的识别,但其本身运行和升级可以独立于存储系统本身。

针对于亚健康检测的复杂性和灵活多变的需求,我们的架构设计具备以下特点:

  1. 收集硬件关键指标,并对指标进行数学统计和处理,同时设有全局仲裁中心;

  2. 检测算法具备自适应性,能够自适应各种不同场景,同时准确性和灵敏度可调整;

  3. 隔离策略首先保证数据安全,其次再保证集群的整体性能;

  4. 我们的设计支持独立部署,兼容老版本集群。算法库采用可插拔方式,隔离策略要求可配置,保障业务连续性。

下面是亚健康 3.0 的软件架构:

745dd66ad528235b10060a2e436472d8.jpeg

亚健康 3.0 的软件架构



金融万盘规模案例


某金融客户在不同时间里在不同业务场景里部署了大规模 XSKY SDS 集群,期间不断扩容新的硬件。至今,其总硬盘数已超过 10000 块,其中很多硬盘已经持续运行了超过 4 年时间。由于硬盘本身的老化和正常的磨损,亚健康导致的系统性能波动偶尔发生。虽然可以通过升级存储集群版本来解决这些问题,但是由于严格的生产运维要求,对存储集群进行批量的升级动作太大,实施成本较高。因此,该客户采用了亚健康 3.0 工具的独立部署来解决这个问题。在该客户部署亚健康 3.0 工具的首个月中,成功识别出 21 块高风险的亚健康硬盘,且没有出现任何因亚健康检测和隔离导致的集群性能问题

cce50a493bf182d8a6386551b919d66b.jpeg

磁盘不能处理任何 IO,读写延时为 0,磁盘利用率达到 99%


在部署一个月内发现的故障硬盘是 21 块,月故障率是 0.21%,推算年化故障率为 2.5%。根据国内外的统计数据,HDD 的年化故障率根据使用的年限、品牌及型号的不同通常分布在 1%-5% 之间,因此 2.5% 的故障率属于在正常范围内。亚健康 3.0 工具从最初支持 SATA SSD、HDD,到后续支持信创 CPU 节点、国产化操作系统、NVME SSD,以及针对不同规格的 RAID 卡等等,几乎完整覆盖了当前各种存储介质和不同运行环境下的情况。



总结


亚健康 3.0 提供了先进的可靠性监测功能,引入创新的数学模型和统计框架,深入分析导致系统性能降级的部件级故障和周边系统故障,不仅能够实时监测网络和硬盘的亚健康状态,还能对故障部分进行主动隔离,从而提高系统的健壮性。

同时为了有效解决一些在网存储集群的亚健康问题,我们通过灵活的设计,将亚健康能力的升级完全独立于存储集群,这使得亚健康工具拥有独立持续迭代的能力


大规模存储盘的潜在风险

• RAID 卡和 SAS 卡固件问题

• HDD 慢盘和 SSD 性能抖动


痛点

• 业务连续性降级

○ 当硬盘进入亚健康状态后,业务响应时延急剧增加,极端情况下业务被 hung 住

• 运维管理困难

○ 维护操作繁琐

○ 缺乏故障定位工具

○ 换盘操作不够便捷

○ 导致业务受影响时间过长,运维成本高


产品优势

• 支持独立部署和升级,对存储集群无影响

• 精准判断+主动有效隔离,系统能够自愈,使得业务影响降低 98%

• 发生亚健康告警后,支持图形化的硬盘点灯和换盘操作


收益

• 无需升级旧存储集群就可以拥有亚健康盘治理能力,降低操作复杂度

• 亚健康故障对于业务影响降低 98%,保障业务连续性

• 大幅提升运维管理效率,提供硬盘亚健康的精准判断和主动有效隔离,大幅降低故障定位及解决难度,运维效率大幅提升。



未来展望


除了对于硬件亚健康实现精准判断和有效隔离外,我们已经开始规划亚健康 4.0 ,这一新版本不仅将覆盖硬件单体部件,还将扩展到全业务场景的服务和性能亚健康的检测和告警。

同时,我们还会对各大主流 SSD 厂商和型号的自定义 SMART 信息进行深入分析,皆在进一步提高预警能力,保证业务连续性和提高运维管理效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/145156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git之merge和rebase的区别

准备 创建仓库 test-01文件 test-02文件 创建test01分支和test02分支 这里我们使用idea打开源代码 test02分支同操作 大致操作 test01分支对文件test01文件操作: 1.添加内容:test01第一次修改1 2.git commit 3.添加内容: test01第二次…

基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

picoctf_2018_got_shell

picoctf_2018_got_shell Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)32位,只开了NX int __cdecl __noreturn main(int argc, const char **argv, const char **envp) {_DWOR…

蓝桥杯打卡Day15天

文章目录 买不到的数目错误票据 一、买不到的数目OJ链接 本题思路:引理:给定a,b,若dgcd(a,b)>1 ,则一定不能凑出最大数。结论:如果 a,b均是正整数且互质,那么由 axby,x≥0,y≥0 不能凑出的最大数是 ab−a−b。 证…

什么是Spring Bean?作用域有哪些

Spring Bean详解:作用域与示例 Spring框架是一个强大的Java开发框架,它提供了大量的功能和组件来简化企业级应用程序的开发。其中,Spring Bean是Spring框架中的一个核心概念,它扮演着重要的角色,用于管理和组织应用程…

FreeRTOS(以STM32F1系列为例子)

目录 任务管理任务函数任务控制块顶层任务状态创建任务xTaskCreatexTaskCreateStaticxTaskCreateRestricted 任务优先级和心跳设置心跳设置优先级概述vTaskPrioritySetuxTaskPriorityGet 非运行态扩充阻塞态vTaskDelay挂起状态vTaskSuspend就绪状态完整的状态转换图延迟函数vTa…

redis-设置从节点

节点结构 节点配置文件 主节点 不变 6380节点 port 6380 slaveof 127.0.0.1 63796381节点 port 6381 slaveof 127.0.0.1 6380启动 指定配置文件的方式启动 D:\jiqun\redis\Redis-6380>redis-server.exe redis.windows.conf启动时,会触发同步数据命令 主节点…

在Qt中,怎么获取到在mainwindow.ui文件中添加的控件

2023年9月30日,周六晚上 假设我在mainwindow.ui中添加了一个名为textEdit的QTextEdit对象 在mainwindow.cpp中,可以通过ui对象来获取到这个控件

Spring MVC 中的国际化和本地化

Spring MVC 中的国际化和本地化 国际化(Internationalization,简称i18n)和本地化(Localization,简称l10n)是构建多语言应用程序的重要概念。Spring MVC提供了丰富的支持,使开发人员能够轻松地处…

(三) gitblit管理员手册

(一)gitblit安装教程 (二) gitblit用户使用教程 (三) gitblit管理员手册 目录 权限管理创建仓库时创建用户普通用户 管理员用户访问限制和访问权限仓库创建权限分配 Teams普通组管理员组 参考资料 权限管理 创建仓库时 选择指定的人员查看,克隆,推送 不允许fork 对应Anonymo…

idea Springboot 高校科研资源共享系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 高校科研资源共享系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发), 系统具有完整的源代码和数据…

Lua学习笔记:require非.lua拓展名的文件

前言 本篇在讲什么 Lua的require相关的内容 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠…

基于vue+Element Table Popover 弹出框内置表格的封装

文章目录 项目场景:实现效果认识组件代码效果分析 封装:代码封装思路页面中使用 项目场景: 在选择数据的时候需要在已选择的数据中对比选择,具体就是点击一个按钮,弹出一个小的弹出框,但不像对话框那样还需…

【RocketMQ】基本使用:Java操作RocketMQ(rocketmq-client)

【RocketMQ】基本使用&#xff1a;Java操作RocketMQ&#xff08;rocketmq-client&#xff09; 1.引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.3.2</version>…

C++ AB组辅导课

C AB组辅导课 蓝桥杯C AB组辅导课 第一讲 递归与递推 Acwing1、整数划分(递归)2、acwing92. 递归实现指数型枚举10凑算式(全排列)11李白打酒(全排列)12、棋牌总数(递归)13、剪邮票(递归)14、1050. 鸣人的影分身 (递归或动态规划(记忆化搜索))15、方格分割 &#xff08;dfs思维&…

【软件评测】Apowersoft 傲软抠图AI智能换背景工具软件

现如今的数字图像处理已经成为人们生活中不可或缺的一部分&#xff0c;而图像抠图作为其中的重要环节&#xff0c;更是被广泛应用于设计、摄影、广告等领域。为了满足用户的需求&#xff0c;Apowersoft推出了一款傲软抠图AI智能换背景工具&#xff0c;宣称能够自动抠图并智能替…

应用架构的演进:亚马逊的微服务实践

当你在亚马逊上购物时,或许不会想到,你看到的这个购物网站,其背后技术架构经历了什么样的变迁与升级。 还记得上世纪 90 年代,那个只卖书的网上书店吗?那时的亚马逊,不过是一个架构简单的网站,所有的功能都堆积在一个庞大的软件堡垒里。随着更多业务的增加、更新和迭代,这个软…

【数据结构篇】堆

文章目录 堆前言基本介绍认识堆堆的特点堆的分类堆的操作堆的常见应用 堆的实现JDK 自带的堆手动实现堆 堆 前言 本文主要是对堆的一个简单介绍&#xff0c;如果你是刚学数据结构的话&#xff0c;十分推荐看这篇文章&#xff0c;通过本文你将对堆这个数据结构有一个大致的了解…

Flink之Watermark生成策略

在Flink1.12以后,watermark默认是按固定频率周期性的产生. 在Flink1.12版本以前是有两种生成策略的: AssignerWithPeriodicWatermarks周期性生成watermarkAssignerWithPunctuatedWatermarks[已过时] 按照指定标记性事件生成watermark 新版本API内置的watermark策略 单调递增的…

(vue3)create-vue 组合式APIsetup、ref、watch,通信

优势&#xff1a; 更易维护&#xff1a;组合式api&#xff0c;更好的TS支持 之前是选项式api&#xff0c;现在是组合式&#xff0c;把同功能的api集合式管理 复用功能封装成一整个函数 更快的速度 更小的体积 更优的数据响应式&#xff1a;Proxy create-vue 新的脚手架工…