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

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

相关文章

【C++入门到精通】C++入门 —— set multiset (STL)

阅读导航 前言一、set简介二、std::set1. std::set简介2. std::set的使用- 基本使用- std::set的模板参数列表- std::set的构造函数- std::set的迭代器- std::set容量与元素访问函数 3. set的所有函数(表) 三、std::multiset1. std::multiset简介 四、st…

嵌入式学习笔记(35)外部中断

6.9.1什么是外部中断 (1)内部中断就是指中断源来自于SoC内部(一般是内部外设),譬如串口、定时器等部件产生的中断;外部中断是SoC外部的设备,通过外部中断对应的GPIO引脚产生的中断。 (2)按键在SoC中就使用了外部中断…

【每日一题】1498. 满足条件的子序列数目

1498. 满足条件的子序列数目 - 力扣(LeetCode) 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大,请将结果对 109 7 取余后…

stm32无人机-飞行力学原理

惯性导航,是一种无源导航,不需要向外部辐射或接收信号源,就能自主进行确定自己在什么地方的一种导航方法。 惯性导航主要由惯性器件计算实现,惯性器件包括陀螺仪和加速度计。一般来说,惯性器件与导航物体固连&#xf…

CTFSHOW SSTI

目录 web361 【无过滤】 subprocess.Popen os._wrap_close url_for lipsum cycler web362 【过滤数字】 第一个通过 计算长度来实现 第二个使用脚本输出另一个数字来绕过 使用没有数字的payload web363 【过滤引号】 使用getitem 自定义变量 web364 【过…

数据集笔记:OpenCelliD(手机基站开放数据库)

下载数据的方式可见:【数据获取】全球最大手机基站开源数据库 1 读取数据 import pandas as pdpd.read_csv(C:/Users/16000/Downloads/454.csv/454.csv,headerNone,names[Radio,MCC,MNC,LAC/TAC/NID,CID,Longitude,Latitude,Range,Samples,Changeable1,Changeable…

设计模式6、适配器模式 Adapter

解释说明:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作 目标接口(Target):当前系统所期待的接口,它可以是抽象类或接口 适配者(Adaptee)&#xff1a…

AIGC(生成式AI)试用 7 -- 桌面小程序

生成式AI,别人用来写作,我先用来写个桌面小程序。 桌面小程序:计算器 需求 Python开发图形界面,标题:计算器 - * / 基本运算计算范围:-999999999 ~ 999999999** 乘方计算(例,2*…

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略 导读:2023年9月25日,Colossal-AI团队推出了开源模型Colossal-LLaMA-2-7B-base。Colossal-LLaMA-2项目的技术细节,主要核心要点总结如下: >> 数据处…

分布式事务-TCC异常-幂等性

1、幂等性问题: 二阶段提交时,如果二阶段执行成功通知TC时出现网路或其他问题中断,那么TC没有收到执行成功的通知,TC内部有定时器不断的重试二阶段方法,导致接口出现幂等性问题。 2、解决方法 和空回滚问题一样也是…

Kotlin只截取Float小数点后数值DecimalFormat

Kotlin只截取Float小数点后数值DecimalFormat import java.text.DecimalFormatfun main(args: Array<String>) {val pi 3.141516Fvar p pi - pi.toInt()println(p)val decimalFormat DecimalFormat("00.0000")val format decimalFormat.format(p)println(…

UE5屏幕适配

一、本程序设计发布在手机上&#xff0c;首先确定屏幕的设计分辨率&#xff0c;这里我们选择iphone6s&#xff0c;750x1334。 二、设置DPI Scale为1.0的比例&#xff0c;点击齿轮标志 因为我们这个程序是手机竖屏使用的&#xff0c;所以DPI Scale Rule选择Shortest Side&#…

c语言常用语法,长时间不用容易忘。

关键字 auto 声明自动变量const 定义常量&#xff0c;如果一个变量被 const 修饰&#xff0c;那么它的值就不能再被改变extern 声明变量或函数是在其它文件或本文件的其他位置定义register 声明寄存器变量signed 声明有符号类型变量或函数static 声明静态变量&#xff0c;修饰…

APA技术架构与说明

1.自动泊车的硬件架构 2.APA自动泊车辅助系统 1&#xff09;APA主要包括以下典型功能 &#xff08;1&#xff09;泊车入库&#xff1a;利用超声波雷达或环视摄像头实现车位识别&#xff0c;并计算出合适行驶轨迹&#xff0c;对车辆进行横向/纵向控制使车辆驶入车位&#xff1…

在MyBatisPlus中添加分页插件

开发过程中&#xff0c;数据量大的时候&#xff0c;查询效率会有所下降&#xff0c;这时&#xff0c;我们往往会使用分页。 具体操作入下&#xff1a; 1、添加分页插件&#xff1a; package com.zhang.config;import com.baomidou.mybatisplus.extension.plugins.Pagination…

基于微信小程序的停车场预约收费小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

CCF CSP认证历年题目自练 Day15

CCF CSP认证历年题目自练 Day15 题目一 试题编号&#xff1a; 201709-1 试题名称&#xff1a; 打酱油 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述   小明带着N元钱去买酱油。酱油10块钱一瓶&#xff0c;商家进行促销&#xf…

【运维日常】华为云专线实现idc通过nat出网

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

04、EL和JSTL核心技术

目录 1 EL表达式&#xff08;熟悉&#xff09; 1.1 基本概念 1.2 主要功能 1.3 访问内置对象的数据 1.3.1访问方式 1.3.2 执行流程 1.4 访问请求参数的数据 1.5 访问Bean对象的属性 1.5.1 访问方式 1.5.2 主要区别 1.6 访问集合中的数据 1.7 常用的内置对象 …

JVM111

JVM1 字节码与多语言混合编程 字节码 我们平时说的java字节码&#xff0c; 指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为:jvm字节码。不同的编译器&#xff0c;可以编译出相同的字节码文件&#xff0c;字节码文件…