企业级存储使用的SSD磁盘的健康度问题探讨

news2024/10/7 12:28:46

写在前面,我的主要工作是销售企业级存储系统的备品备件和提供一些额外的增值服务。谈到销售备件,很重要的就是备件质量了。现在SSD磁盘使用越来越广泛,对于SSD磁盘的健康度就是甲方爷爷们非常关心的一个问题。本文就是想梳理一下企业级SSD固态磁盘的健康度如何评测,估计会写成一个系列文章,本文是第一篇梳理一下基本概念和所有企业级SSD固态磁盘的基本原理和健康health 衡量指标,以后有机会会对我们focus的几个重要存储产品-DELL,EMC和NetApp,从存储OS的角度来看如何检查健康度。

科普为主,如果有理解不对的地方欢迎拍砖,加vx StorageExpert。非常底层专业的半导体技术不在我们cover范围之内,当然我也不懂。

基本概念

开始基本概念,这个对于熟悉Hard disk的传统工程师们很重要,HDD和SSD是完全不同的东西,不要使用一样的健康衡量指标。多说一句,有个国内巨大的第三方公司的采购要求就是所有磁盘的健康度都必须是100%,这就是瞎扯,根本不懂。

目前的主流SSD技术是NAND颗粒,还有NOR颗粒,用的比较少了,主要就是NAND,这个符合市场需求呀,存储密度高,擦写速度快,最重要的是成本低。

HDD磁盘存放数据的原理很简单,0和1就是通过有磁性和没有磁性来区分的。但SSD就不是这个原理了,它是通过晶体管来存放0和1的,简单理解,没有电子的时候就是1,有电子的时候就是0,与机械硬盘不同,浮栅晶体管写操作只能将“1”改写成“0”,不能将“0”改为“1”。如果想将“0”改为“1”,需要采取另外一个称为“擦写”的操作。

对于写操作,是将电子拉入晶体管的浮栅极,状态就变成了“0”。对于擦写操作则是将浮栅极中的电子拉出,这就是将其状态变成了“1”。重要概念来了,这里需要注意的是擦写操作会损伤隧道氧化层,如果隧道氧化层被完全损毁,那就失去了隔离电子的能力,这样这个晶体管就坏了。这就是为什么SSD的闪存颗粒有擦写次数限制的原因。

第二个重要概念,NAND的家族中,有不同的颗粒说法:

  • SLC - Single level cell
  • MLC - Multi level cell
  • TLC - Triple level cell
  • QLC - Quad level cell

看名字就大概知道含义了,这个1234就是一个单元可以存储1个/2个/3个/4个bit数据,简单理解就是在一个晶体管中可以存储更多的数据了。由于MLC、TLC和QLC需要严格控制电子数量,其写入动作就要繁琐很多,对应着写入速度就会变慢。同时,氧化层的寿命也会有差异,就是密度越高的寿命越短了,好处也是大大的,就是单位容量增加了,SSD容量更大了,当然单位成本就更便宜了。

下面的图可以简单清晰看到几种不同颗粒存放数据的差异。

还有一个一个问题就是,存储容量确实变大了,但是由于每个单元存储的数据变多,其擦写频率就变高了,速度也会下降,擦写对介电层的破坏是不可逆的,寿命自然就短了,但是无奈MLC以上的颗粒存储数据密度更高,单位价格就便宜便宜,所以还是有很大市场的。现在存储系统上的类似于960G,1.92T,3.84T,7.68T..... 最大好像有30T还是60T的磁盘,类似这样容量的都是TLC或者QLC去了,寿命变短了。

健康度衡量指标

在简单说明了SSD磁盘的原理以后,我们下面来到主题,如何衡量一个SSD磁盘的健康度呢?Health rate。

耐久性 - endurance:这个是SSD磁盘最重要一个衡量指标。耐久性的单位是P/E(Program/Erase)周期,也就是编程/擦写周期。由于每次擦写都会损伤浮栅晶体管的氧化层,这个指标描述了可以安全擦写的次数。下面的表是我找到的一个专业描述不同颗粒的P/E。

对比可以看出,SLC可以擦写5万到10万次,而TLC只可以安全擦写大概1千次。这个是对SSD寿命非常非常重要的一个指标。

TBWTotal Bytes Written,总写入量):灰常重要,用于衡量 SSD 可以写入多少数据。TBW是SSD的容量与P/E周期数的乘积,然后除以一个写放大因素。对于前面的乘积是很容易理解的,相当于每个单元都被擦写到极限次数了。举例来说,如果一个TLC的SSD的容量为960GB,P/E为1000,那么理论上来说可以反复写入960TB的数据。但是我们知道SSD的写数据是有最小粒度限制的,比如4KB或者8KB。所以,即使你写入1个字节的数据,那也要写4KB或者8KB的一个页。鉴于上述原因,在TBW的公式里面有有个写放大因素的系数在这里。

DWPDDrive Writes Per Day,每日驱动器写入):这是一个衡量 SSD 每天可以写入多少数据的指标。他表示在设备保修期内,每天可以写入SSD总容量的多少倍。举个例子,如果一个400GB的SSD,如果DWPD是 3,每天可以写入1200GB的数据。但是如果此SSD设备的DWPD是10的话,那么每天可以写入4TB的数据。在EMC的存储磁盘上,这个DWPD有清晰的说明,经常可以看到有3WPD,1WPD,还有 1/2WPD的盘。EMC都是按照5年来计算的。根据这些可以反着计算出磁盘的总写入量。

下面是EMC存储磁盘的对应关系:

  • 1/2 pwd   这个也叫做 sas flash 4, 也有是DWPD 的说法,7.68T和15T的SSD就是这种类型
  • 1 WPD → New SAS Flash 4
  • 3 WPD → SAS Flash 3 (TLC LE drives)   这个主要是 400/800/1.6T和3.2T
  • 10 WPD → SAS Flash 2
  • 25 WPD → SAS Flash

假设一个磁盘是 3WPD的400G SSD磁盘,使用5年,理论上总写入量TBW就应该是 400G*3*365*5=2190T

其他相关术语

SMARTSelf-Monitoring, Analysis and Reporting Technology:这个无论是HDD,还是SSD都有的。这是一个硬盘健康状态监控机制,可以提供 SSD 的各种健康状态信息,包括上述的 TBW 和 PE Cycles,以及其他如通电时间、加电次数、温度、错误率等信息。我知道在HDD,很多人是可以把这个SMART信息给清除掉,这样你要的健康度都是100%了。SSD能改的我知道应该不多。

Wear Leveling(磨损均衡):由于SSD的存储单元有擦写次数的限制,SSD控制器的算法会尽量保证闪存芯片的存储单元之间均匀分配写入操作,以最大限度地延长SSD的寿命。对于存储系统来说也有磨损均衡的说明,比如一个有100块SSD的存储系统,通常也有算法保证这100块SSD的数据写入是均衡的。在存储系统中,这个存储的操作系统会处理磨损均衡的问题。当然也有一些bug会导致某些磁盘磨损更快,我知道EMC的Unity某些SSD磁盘就有这个问题,很快就到了EOL的时间,这个通过升级磁盘的firmware是可以解决的。

Garbage Collection(垃圾回收):前面介绍过,SSD的空间不能直接覆盖写,必须擦除后才能重新写数据,这就是垃圾回收的问题。

最后,到底怎么看SSD的健康度呢?有了上述这些概念,再去使用类似硬盘哨兵Harddisk Sential 这样的软件去理解health rate了。当然你也可以通过SMART指标去自己计算。

写到最后,每个存储系统都根据自己使用的磁盘的P/E,会有一套自己的健康度计算方式,和这个hard Disk Sentinel 软件出来的结果会有所不同,但不会产生趋势性的差异,就是Hard Disk Sentinel中的健康度是95%,而到了存储系统里面确变成了5%,这个是不可能的,永远不可能的。

不同厂商的SSD磁盘在SMART中的内容是不同的,但大体是差不多的,很多可以看到一个Endurance的项目,就是持久度的值,这个是很多非专业存储软件定义的健康度。

后面会针对不同的EMC,NetApp和DELL存储产品,单独来写些东西给大家,怎么去看SSD的健康度和剩余寿命等。

好了,有问题加vx  StorageExpert吧。

  

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

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

相关文章

再论 如何通过一个项目征服Java

前面说过,我准备用几个月的时间,将Java体系认真的梳理一遍,不一定做的很好,但是每次都努力去做。 为什么我觉得需要加紧做这个呢?Java早已经不是高大上的稀世珍品了,程序员也不再是高科技工作者&#xff0…

操作系统-操作系统引导(磁盘 操作系统引导过程)

文章目录 总览一个刚买来的磁盘(硬盘)往磁盘安装操作系统后操作系统引导过程例:windows操作系统的初始化程序 总览 一个刚买来的磁盘(硬盘) 此时空空如也 往磁盘安装操作系统后 操作系统在C盘 主引导记录不属于某…

JVM工作原理与实战(二十二):方法区的垃圾回收

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、Java的内存管理和自动垃圾回收 二、方法区的垃圾回收 1.回收条件 2.手动触发垃圾回收 3.方法区的垃圾回收案例 总结 前言 JVM作为Java程序的运行环境,其负责解释和…

beego项目部署与热更新

1.开发自己的第一个项目 这里我引用的是在线聊天室,参考源码是https://github.com/beego/samples/tree/master/WebIM 在源码的基础上重新开发,整理项目发布到了liu289747235/WebIM 推荐下载源码:https://gitee.com/myselfyou/web-im 在线…

如何卸载旧版docker

环境: Docker1.13 centos7.6 问题描述: 如何卸载旧版docker 解决方案: 1.停止Docker服务。使用以下命令停止Docker服务: sudo service docker stop2.卸载Docker软件包。根据您的Linux发行版,使用适当的包管理器来…

ClickHouse/Doris vs Elasticsearch谁更胜一筹?

前言 我之前在ClickHouse vs Doris 读写性能比较 一文中,初步做了一下ClickHouse和Doris的读写性能比较,但由于数据样本比较小,且未发挥出所有硬件资源的性能,因此进行了第二轮压测。 本轮压测与上一轮的区别在于: 新加入了Ela…

用Python实现Excel中的Vlookup功能

目录 一、引言 二、准备工作 三、实现Vlookup功能 1、导入pandas库 2、准备数据 3、实现Vlookup功能 4、处理结果 5、保存结果 四、完整代码示例 五、注意事项 六、总结 一、引言 在Excel中,Vlookup是一个非常实用的函数,它可以帮助我们在表…

有什么提高编程能力的书籍推荐吗?

数据密集型应用系统设计 原文完整版PDF:https://pan.quark.cn/s/d5a34151fee9 这本书的作者是少有的从工业界干到学术界的牛人,知识面广得惊人,也善于举一反三,知识之间互相关联,比如有个地方把读路径比作programming …

Docker进阶篇-安装MySQL主从复制

一、MySQL主服务器 1、新建主服务器容器实例3307 docker run -p 3307:3306 \--name mysql-master \--privilegedtrue \-v /mydata/mysql-master/log:/var/log/mysql \-v /mydata/mysql-master/data:/var/lib/mysql \-v /mydata/mysql-master/conf:/etc/mysql \-e MYSQL_ROOT_…

ctfshow-反序列化(web271-web276)

目录 web271 web272-273 web274 web275 web276 为什么不用分析具体为什么能成功 ,后面会有几个专题 会对php框架进行更深入的了解 这里面会专门的研究 为什么能够实现RCE 前面作为初步的熟悉 首先知道一下他的框架 知道框架的风格 知道啥版本可以用什么来打 首先先不用太研…

2024美赛数学建模思路 - 案例:感知机原理剖析及实现

文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法,其…

leetcode:每日温度---单调栈

题目: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例&…

139:leafle加载here地图(v3软件多种形式)

第139个 点击查看专栏目录 本示例介绍如何在vue+leaflet中添加HERE地图(v3版本的软件),并且含多种的表现形式。包括地图类型,文字标记的设置、语言的选择、PPI的设定。 v3版本和v2版本有很大的区别,关键是引用方法上,请参考文章尾部的API链接。 直接复制下面的 vue+leaf…

2.1.4-相关性分析

跳转到根目录:知行合一:投资篇 已完成: 1、投资&技术   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas   1.2 金融数据处理   1.3 金融数据可视化 2、投资方法论   2.1.1 预期年化收益率   2.1.2 一个关于yaxb的…

【redis13】集群前奏:sentinel模式

1.哨兵sentinel引入背景 我们现在来思考一个问题:如何实现服务的高可用。我们首先想到至少要满足两个要求:1.服务端能够实现主从自动切换;2.对于客户端来说,如果发生了主从切换,则能够自动连接到最新的master节点。 我…

第04章_IDEA的安装与使用(上)(认识,卸载与安装,JDK相关设置,详细设置,工程与模块管理,代码模板的使用)

文章目录 第04章_IDEA的安装与使用(上)本章专题与脉络1. 认识IntelliJ IDEA1.1 JetBrains 公司介绍1.2 IntelliJ IDEA 介绍1.3 IDEA的主要优势:(vs Eclipse)1.4 IDEA 的下载 2. 卸载与安装2.1 卸载过程2.2 安装前的准备2.3 安装过程2.4 注册2…

Django REST Framework入门之序列化器

文章目录 一、概述二、安装三、序列化与反序列化介绍四、之前常用三种序列化方式jsonDjango内置Serializers模块Django内置JsonResponse模块 五、DRF序列化器序列化器工作流程序列化(读数据)反序列化(写数据) 序列化器常用方法与属…

使用 Node 创建 Web 服务器

Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务器或客户端功能必须调用 http 模块,代码如下: var http require(http); 以下是演示一个最基本的 HTTP 服务器架构(使用 8080 端口)&#x…

acwing讲解篇之94. 递归实现排列型枚举

文章目录 题目描述题解思路题解代码 题目描述 题解思路 定义递归深度deep,数字使用情况used,选择的数字顺序path 进行递归 终止条件为递归深度达到n层时,打印path,然后返回 深度加一 遍历未使用的数字,选择数字&am…

web架构师编辑器内容-编辑器组件图层面板功能开发-锁定隐藏、键盘事件功能的开发

我们这一部分主要是对最右侧图层面板功能进行剖析,完成对应的功能的开发: 每个图层都对应编辑器上面的元素,有多少个元素就对应多少个图层,主要的功能如下: 锁定功能:点击锁定,在编辑器中没法编辑对应的组…