金融生产存储亚健康治理:升级亚健康 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.xdnf.cn/news/145582.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

渗透测试之打点

请遵守中华人民共和国网络安全法 打点的目的是获取一个服务器的控制权限 1. 企业架构收集 (1)官网 (2)网站或下属的子网站,依次往下 天眼查 企查查 2. ICP 备案查询 ICP/IP地址/域名信息备案管理系统 使用网站…

ElasticSearch 10000条查询数量限制

一、前言 我们将库存快照数据导入ES后发现要分页查询10000条以后的记录会报错,这是因为ES通过index.max_result_window这个参数控制能够获取数据总数fromsize最大值,默认限制是10000条,因为ES考虑到数据要从其它节点上报到协调节点如果搜索请…

APACHE NIFI学习之—UpdateAttribute

UpdateAttribute 描述: 通过设置属性表达式来更新属性,也可以基于属性正则匹配来删除属性 标签: attributes, modification, update, delete, Attribute Expression Language, state, 属性, 修改, 更新, 删除, 表达式 参数: 如下列表中,必填参数则…

Leetcode 剑指 Offer II 046. 二叉树的右视图

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个二叉树的 根节点 root,请找出该二叉树的 最底…

react create-react-app v5 从零搭建项目

前言: 好久没用 create-react-app做项目了,这次为了个h5项目,就几个页面,决定自己搭建一个(ps:mmp 好久没用,搭建的时候遇到一堆问题)。 我之前都是使用 umi 。后台管理系统的项目 使用 antd-…

【C++】C++11------线程库

目录 线程库接口线程接口使用lock_guard与unique_lockmutex(互斥锁)lock_guardunique_lock 原子性操作库条件变量(condition_variable) 线程库接口 在C11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口&#x…

使用Python进行App用户细分

App用户细分是根据用户与App的互动方式对用户进行分组的任务。它有助于找到保留用户,找到营销活动的用户群,并解决许多其他需要基于相似特征搜索用户的业务问题。这篇文章中,将带你完成使用Python进行机器学习的App用户细分任务。 App用户细…

图片分割处理(以玉米颗粒的图片分割为例)

问题: 为完成玉米颗粒分类任务,现需要处理训练图片,将以下图片中的玉米颗粒进行分割: 目标: 操作步骤(完整代码附在最后,该部分为解释说明) 一、提取通道并进行二值化 # 提取蓝…

解决Nacos配置刷新问题: 如何启用配置刷新功能以及与`@RefreshScope`注解的关联问题

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

三、2023.9.29.C++面向对象.3

文章目录 33、简述一下什么是面向对象?34、简述一下面向对象的三大特征?35、简述一下 C 的重载和重写,以及它们的区别?36、说说 C 的重载和重写是如何实现的?37、说说构造函数有几种,分别什么作用?38、只定…

SpringBoot+MinIO8.0开箱即用的启动器

一、代码拉取及安装 1.码云地址 https://gitee.com/qiangesoft/rdp-starter/tree/master/rdp-starter-minio 2.本地安装 二、代码接入 存储路径规则可配置桶访问权限可配置可配置初始生成多个桶 1.引入依赖 <dependency><groupId>com.qiangesoft.rdp</gro…

会议AISTATS(Artificial Intelligence and Statistics) Latex模板参考文献引用问题

前言 在看AISTATS2024模板的时候&#xff0c;发现模板里面根本没有教怎么引用&#xff0c;要被气死了。 如下&#xff0c;引用(Cheesman, 1985)的时候&#xff0c;模板是自己手打上去的&#xff1f;而且模板提供的那三个引用&#xff0c;根本也没有Cheesman这个人&#xff0c…

Mybatis 二级缓存(使用Ehcache作为二级缓存)

上一篇我们介绍了mybatis中二级缓存的使用&#xff0c;本篇我们在此基础上介绍Mybatis中如何使用Ehcache作为二级缓存。 如果您对mybatis中二级缓存的使用不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考&#xff1a; Mybatis 二级缓存https://blog.c…

Fake Maxpooling 二维滑动窗口

先对每一行求一遍滑动窗口&#xff0c;列数变为(列数-k1) 再对每一列求一遍滑动窗口&#xff0c;行数变为(行数-k1) 剩下的就是每一个窗口里的最大值啦 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing nam…

AIGC 绘画Stable Diffusion工具的安装与使用

我们先让ChatGPT来帮我们回答一下,什么是Stable Diffusion Stable Diffusion 是一种基于概率模型的图像生成技术。它通过对图像空间中每个像素的颜色值进行推断,从而生成具有高度真实感和细节的图像。 Stable Diffusion 使用一种称为扩散过程的方法来生成图像。在生成过程中…

测试用例的编写(面试常问)

作者&#xff1a;爱塔居 专栏&#xff1a;软件测试 作者简介&#xff1a;不断总结&#xff0c;才能变得更好~踩过的坑&#xff0c;不能再踩~ 文章简介&#xff1a;常见的几个测试用例。 一、淘宝购物车 二、登录页面 三、三角形测试用例 abc结果346普通三角形333等边三角形334…

【计算机网络笔记五】应用层(二)HTTP报文

HTTP 报文格式 HTTP 协议的请求报文和响应报文的结构基本相同&#xff0c;由四部分组成&#xff1a; ① 起始行&#xff08;start line&#xff09;&#xff1a;描述请求或响应的基本信息&#xff1b;② 头部字段集合&#xff08;header&#xff09;&#xff1a;使用 key-valu…

[JAVAee]MyBatis

目录 MyBatis简介 MyBatis的准备工作 框架的添加 连接数据库字符串的配置 MyBatis中XML路径的配置 ​编辑 MyBatis的使用 各层的实现 进行数据库操作 增加操作 拓展 修改操作 删除操作 查询操作 结果映射 单表查询 多表查询 like模糊查询 动态SQL / MyBa…

第7讲:VBA中利用FIND的代码实现单值查找实例

【分享成果&#xff0c;随喜正能量】心真如&#xff0c;随缘生起一切法&#xff0c;一切法还归于真如。《大乘起信论》讲心真如门就是体&#xff0c;心生灭门就是相用&#xff0c;心生灭、心真如都从一心而起&#xff0c;离开心别无二法。我们想从心真如门修行不易进入&#xf…

基于PHP+MySQL的家教平台

摘要 设计和实现基于PHP的家教平台是一个复杂而令人兴奋的任务。这个项目旨在为学生、家长和教师提供一个便捷的在线学习和教授平台。本文摘要将概述这个项目的关键方面&#xff0c;包括用户管理、课程管理、支付处理、评价系统、通知系统和安全性。首先&#xff0c;我们将建立…