当前位置: 首页 > news >正文

华为解决固态硬盘致命弱点:延长30~50%的SSD寿命

如今的SSD容量越做越大,企业级SSD容量已达30TB、60TB的、甚至120TB。但SSD寿命一直是“致命伤”,越大容量的盘,出现故障后,丢失的数据就越多。

近日, 华为数据存储发文,揭开华为全闪分布式存储让SSD大盘更“长寿”的秘诀。

首先,为什么SSD会有寿命问题?

SSD闪存实际是由半导体元件、NAND Flash颗粒组成。通过对盘上颗粒不断的擦和写,来完成对数据的增、删、改、查。

这个过程中,颗粒捕获电子的能力会逐渐减弱,当减弱到一定程度后、也就是超过颗粒最大擦写次数,便可能出现“电子逃逸”现象,也就是硬盘写穿、数据错误、寿命耗尽。

盘上全部颗粒可支持的总擦写次数 和 使用期间用户写入的数据量。只要后者小于前者,那么就能保证寿命无忧!

因此,下面这个公式就能一目了然:

两大绝招!华为将SSD寿命提升一个量级:延长30-50%

所以,想延长SSD寿命,就要减少“写放大”。

为了降低分母,就要减少罪魁祸首——“写放大”。写放大的意思是,比如,在写入16KB的业务数据时,呈现到盘上却变成写入64KB物理数据量,被放大了,消耗了数倍的擦写次数,加速颗粒老化。“写放大”的源头来自于以下三点:

后台垃圾回收

SSD是无法覆盖写的,要想修改数据必须擦除颗粒、重新写入,Block就是擦除的最小单元。当少量数据修改时, SSD就会将原Block上的全部有效数据读取后,写入新的Block位置,再擦除原Block。

这个过程,就像整理房间一样,要先把老房间的东西全部搬出来,再放到新房间里重新布置。换句话说,少量的数据更新,会引发更大面积颗粒的擦写。

小I/O补齐

SSD可读写的最小单元是Page(一般是512个byte)。在用户层面写入数据时,当用户写入的I/O大小不足一个Page容量,为了能管理它,就需要额外寻找另一份数据,来和原数据拼凑成一整个Page的大小,再写入到颗粒中。“这个不够、别的来凑”,这用来凑齐的无效数据,就会造成写放大。

元数据变化

在SSD上,元数据是描述数据的索引,一般紧密地存放在一些Block区域。当用户在频繁修改数据时,对应的每份元数据也必须跟着被修改、重定向,造成多次读写、擦写,牵一发而动全身。

华为OceanStor Pacific分布式存储采用了一个创新的机制——小I/O聚合,将小I/O在写盘前聚合在保电内存中,只有达到一定粒度后才会写入SSD,消除了小I/O补齐导致的写放大。

这对元数据变化也非常友好。聚合后的小I/O更容易被集中修改,极大减少元数据被频繁擦写的概率。

同时,华为还采用了业界独创的多流技术,即智能识别数据的冷热程度并优化数据布局,减少不必要的重复擦写和数据搬移。

除了分母,也要增大分子。华为是采用额外的编码纠错技术,在达到颗粒的标称擦写次数后,对数据持续校验或修正,彻底避免数据错误、业务出错,变相地增大了颗粒的总擦写次数。

华为开发了一套更加强大的组合拳——LDPC(Low Density Parity Check)算法与SmartFSP 3.0算法,一方面对Flash介质进行监测,寻找更精确的读取电位,另一方面保证高性能的校验纠错性能,提供更加精准的盘内冗余纠错精度。

一个纠得正,一个查得准,二者配合,华为就将SSD数据的误码率从10-17降低至10-18,整整降低一个数量级,延长30~50%的SSD寿命

两大绝招!华为将SSD寿命提升一个量级:延长30-50%

相关文章:

华为解决固态硬盘致命弱点:延长30~50%的SSD寿命

如今的SSD容量越做越大,企业级SSD容量已达30TB、60TB的、甚至120TB。但SSD寿命一直是“致命伤”,越大容量的盘,出现故障后,丢失的数据就越多。 近日, 华为数据存储发文,揭开华为全闪分布式存储让SSD大盘更“…...

登录验证码高扩展性设计方案

登录验证码高扩展性建设方案 本文分享了一种登录验证码高扩展性的建设方案,通过工厂模式策略模式,增强了验证码服务中验证码生成器、验证码存储器、验证码图片生成器的扩展性,实现了服务组件的多样化,降低了维护成本 登录验证码高…...

Spring MVC数据绑定和响应——数据回写(一)普通字符串的回写

接下来通过HttpServletResponse输出数据的案例,演示普通字符串的回写,案例具体实现步骤如下。 1、创建一个数据回写类DataController,在DataController类中定义showDataByResponse()方法,用于测试在Spring MVC中普通字符串的回写…...

怎样才能更好地保护个人账号的安全

怎样才能更好地保护个人账号的安全 保护个人账号安全是网络安全的重要组成部分,以下是一些有效的措施来增强账号的安全性: 1. 使用强密码 复杂性:创建包含大小写字母、数字和特殊字符的密码。长度:密码至少应有12个字符长。唯一…...

react native优质开源项目

React Native 是一个非常流行的用于构建跨平台移动应用程序的框架,开源社区贡献了许多优质的项目和库。以下是一些备受认可的 React Native 开源项目,适合用来学习和参考: ### 1. **React Native Elements** [React Native Elements](https:…...

速盾:海外cdn有哪些优缺点呢?

海外 CDN(内容分发网络)是一种通过在全球多个节点上分布内容来加速网站访问速度的服务。它通过将网站的静态内容缓存到全球各地的服务器上,使用户可以从最近的服务器获取内容,从而提高网站的响应速度和用户体验。然而,…...

Unity Shader 软粒子

Unity Shader 软粒子 前言项目Shader连连看项目渲染管线设置 鸣谢 前言 当场景有点单调的时候,就需要一些粒子点缀,此时软粒子就可以发挥作用了。 使用软粒子与未使用软粒子对比图 项目 Shader连连看 这里插播一点,可以用Vertex Color与…...

nextTick的应用和原理理解

一.代码的理解 <template><div id"app"><div></div><button click"fn" ref"box"> {{ name }}</button></div> </template><script> export default {data: function () {return {n…...

.Net Core 微服务之Consul

目录 一、微服务架构 vs 单体架构 1. 单体架构介绍 2. 微服务架构介绍 3. 微服务架构 vs 单体架构的区别 4. 适用场景和选择 4.1 微服务架构的适用场景和选择 复杂度和规模需求高的应用程序: 技术栈的灵活性需求: 快速迭代和持续交付: 高可用性和容错性的要求: 4…...

速盾:cdn流量调度

CDN&#xff08;Content Delivery Network&#xff09;是指内容分发网络&#xff0c;它是一种通过部署在不同地理位置的服务器来传递互联网内容的技术。CDN的主要目标是通过将内容放置在离用户最近的服务器上&#xff0c;来提高用户访问网站的响应速度和性能。 CDN的流量调度是…...

Windows批处理入门:快速掌握批处理脚本的基本技巧

一、前言 在Windows操作系统中&#xff0c;批处理文件&#xff08;Batch File&#xff09;是一种非常实用的工具&#xff0c;它允许用户通过简单的命令行脚本来自动化各种任务。无论是系统管理员、开发人员&#xff0c;还是普通用户&#xff0c;掌握批处理文件的基本知识都能极…...

【C++之unordered_set和unordered_map的模拟实现】

C学习笔记---025 C之unordered_set和unordered_map的模拟实现1、unordered_set的模拟实现2、unordered_map的模拟实现 C之unordered_set和unordered_map的模拟实现 前言&#xff1a; 前面篇章学习了C对unordered_set和unordered_map的认识和应用&#xff0c;接下来继续学习&am…...

服务器使用别人的conda

很多台机器都共用一个conda时候&#xff0c;可以在conda的bin目录下运行./conda init来使得该环境机器用这个conda作为默认的conda。 但是有个环境报错&#xff1a; -bash: ./conda: /apdcephfs_cq8/share_1367250/jaimeji/anaconda/jaime_conda/bin/python: bad interpreter:…...

农村程序员陈随易2024年中总结

今天是 2024年7月1日&#xff0c;时间如白驹过隙&#xff0c;今年已去其一半。 总结一下今年上半年的情况&#xff0c;给大家提供一些参考和建议。 希望大家关注一下公众号 陈随易&#xff0c;有些内容只在公众号发表。 先看看我的年初计划&#xff0c;这个在今年年初的时候&…...

Spring Boot中的日志管理最佳实践

Spring Boot中的日志管理最佳实践 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨一下在Spring Boot应用中如何有效管理日志&#xff0c;确保系统…...

python基础语法 004-2流程控制- for遍历

1 遍历 1.1 什么是遍历&#xff1f; 可以遍历的元素&#xff1a;字符串、列表、元组、字典、集合字符串是可以进行for 循环。&#xff08;容器对象&#xff0c;序列&#xff09;可迭代对象iterable 例子&#xff1a; 1 &#xff09;、for遍历字符串&#xff1a; name xiao…...

【高考志愿】医学

目录 一、明确职业定位与兴趣 二、选择大学与专业 三、考虑身体条件 四、了解录取规则 五、考虑选科与成绩 六、注意志愿填报策略 七、关注就业前景 八、资深医生的建议 高考志愿填报学医时&#xff0c;考生需要综合考虑多个因素&#xff0c;确保自己能够做出明智的选择…...

音视频开发31 FFmpeg 编码- avcodec_find_encoder和avcodec_find_encoder_by_name

avcodec_find_encoder /** * Find a registered encoder with a matching codec ID. * * param id AVCodecID of the requested encoder * return An encoder if one was found, NULL otherwise. */ AVCodec *avcodec_find_encoder(enum AVCodecID id); 那么这个 AVCodec…...

大模型压缩:基于贝叶斯优化的自适应低秩分解

1.方法 1.1 基于特征的高维空间低秩分解 PCA已经是老朋友了&#xff0c;每次一说主成分都会出现PCA。这篇文章1利用预训练数据的子集作为校准数据集 D c a l { x i } i 1 n \mathcal{D}_{cal}\{x_{i}\}_{i1}^{n} Dcal​{xi​}i1n​&#xff0c;首先用校准数据集的样本协方差…...

【Python函数编程实战】:从基础到进阶,打造代码复用利器

文章目录 &#x1f68b;前言&#x1f680;一、认识函数&#x1f308;二、函数定义❤️三、函数调用⭐四、实参与形参&#x1f4a5;1. 形式参数&#x1f6b2;2. 实际参数&#x1f525;1. 位置参数☔2. 关键字参数&#x1f3ac;3. 默认参数&#x1f525;4. 可变数量参数(不定长参…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...