什么是SMR硬盘?

知识铺垫:SMR与CMR

该部分主要参考知乎 https://zhuanlan.zhihu.com/p/393369645

SMR与CMR都属于HDD,即机械硬盘,机械硬盘之所以叫机械硬盘,就是因为它内部完全由机械结构制成。一块机械硬盘由磁盘面、马达和磁头构成,通常情况下这些结构都被密封在一个铁盒子里,防止其内部结构与外界接触。

7bdbd58e0626d0c0966d1459480d0062.png

磁盘面上有很多小格,在机械硬盘工作时,磁头会悬浮在磁盘面上对磁盘中的小格中的数据进行读取。与其说是磁头在读取数据,倒不如说磁头在读取小格的磁性。每个小格都由小磁粒组成,磁粒可以显示出不同的磁性,两种不同方向的磁性对应着计算机二进制中的0和1,这样磁头就可以读取数据了。在写入数据时,写磁头可以改变小格中小磁粒的极性的方向,这样就做到了将数据写入磁盘。

盘面是机械硬盘成本最高的部分,之后的优化方向基本上都是在向着尽可能高地提高盘面的信息密度,从而均摊单位数据成本而进行。

LMR 水平式机械硬盘

最早的这种小格是水平的铺在磁面上的,这种就是最早期的LMR水平式机械硬盘。

e8683fd2b58f7fb484b816d2572369d0.png

PMR 垂直式机械硬盘(CMR)

后来随着科技的发展,磁头的体积不断被缩小,工艺的不断升级让磁盘面上的小格竖起来排列在磁面上,这样磁性的上下两个方向就对应着二进制中的0和1。这就是目前应用最广泛的PMR垂直式机械硬盘,对比于后面介绍的SMR也叫传统机械硬盘CMR。

7ba556978771aa021f7e6e6a3a09833e.png

相比于LMR水平式机械硬盘,PMR垂直式机械硬盘的磁粒所占面积更小,在同等面积的磁面的条件下PMR可以存放更多的数据。

数据显示LMR水平式机械硬盘的数据密度为133GB/平方英寸,而PMR垂直式机械硬盘的数据密度可以达到1108GB/平方英寸,是LMR的8倍多。

SMR瓦楞式堆叠硬盘

由于技术原因,写磁头是要比读磁头宽一些的,所以写磁头在对数据进行写入时,会占满整个磁道,而读磁头在对数据进行读取时只需要读取到中间一小条就可以获取完整的数据。那么这样磁道之间的区域由于不能被读磁头读取就被白白地浪费掉了。

1a4e54402b7b66b6df6b0314a4ab67ab.png

由于磁面的浪费,所以PMR垂直式机械硬盘并没有将一张磁面利用到极致,如果能利用上被写磁头和读磁头之间浪费掉的磁面岂不是又能将数据密度进行一次提升?

SMR瓦楞式堆叠硬盘利用了类似房檐的瓦叠原理,让数据密度相较于传统的垂直式硬盘有了巨大的提升。由于瓦楞式堆叠硬盘和垂直式硬盘都属于PMR硬盘的种类,所以传统的垂直式硬盘又被称之为CMR硬盘

由上图所示,由于读写磁头的大小差异,如果能把读磁头之间的间距拉到最小,那我们又更能提高数据密度了。

d716c919f0f644bf9363ff52e7538514.png

ceaf20ec4e1264e3a52b1c679d0d3314.png

如果能实现如上两图所示的磁道排布方式,那岂不美哉?

SMR实现了如上的磁道排布方式,但是这造成了一个问题,写磁道A时,可能会修改到磁道B的值,因此在写两个相关的磁道之前,必须先把下一个磁道内容先备份下来,待上一个磁道写完后,再写回下一个磁道,直到写完一个扇区(两个扇区之间的距离足够大不会相互影响)。

这需要更大的缓存,大大增加了写放大效应,严重降低了写入效率,但是优点是增大了数据密度,降低了单位成本。

由于SMR这样的设计模式,随机写入成为了相当昂贵的操作,因此,要想SMR的性能看得过去,就应当避免甚至是禁止对SMR扇区的随机写入操作(想想,这是不是和ZNS的设计思路很相似?ZNS大量工作曾在SMR上展开!)

SMR Types

SMR的Types也和ZNS的Types类似了,因为想要优化SMR性能,必须了解SMR内部细节,例如磁头当前位置,磁道堆叠情况等,于是根据主机对磁盘细节的掌控情况,可以将SMR进行以下划分:

Drive-managed

Drivemanaged SMR (DM-SMR) implements a translation layer in firmware to accommodate both sequential and random writes. It acts as a drop-in replacement of existing HDDs but suffers highly unpredictable and inferior performance

  • 在Drive-managed SMR硬盘中,磁盘驱动器负责处理SMR技术的实现细节,如写入和擦除操作的调度和数据重叠的管理。

  • 主机系统对SMR硬盘的运作方式几乎没有意识,它将其视为普通的硬盘驱动器,无需进行任何特殊的配置或优化。

  • Drive-managed SMR硬盘对主机系统透明,可以与任何操作系统和应用程序兼容。

Host-managed

HM-SMR 因其容量、可预测的性能和较低的所有权总成本 (TCO) 而成为首选选项。

Host-managed SMR (HM-SMR) requires hostsoftware modifications to reap its advantages. It accommodates only sequential writes and delivers predictable performance by exposing internal drive states

  • 在Host-managed SMR硬盘中,主机系统负责管理SMR技术的各个方面,包括写入和擦除操作的调度、数据重叠的管理以及空闲空间的管理。

  • 主机系统需要使用特定的命令和协议来与SMR硬盘进行通信,并确保正确执行SMR操作。

  • Host-managed SMR硬盘通常需要相应的主机操作系统和应用程序支持,以便充分利用SMR技术的优势。

Host-aware
  • Host-aware SMR硬盘介于Drive-managed和Host-managed之间。

  • 它们在硬件上是Drive-managed的,但主机系统可以使用一些命令和通信方式来提供更多的信息和指导,以优化写入和擦除操作的性能。

  • 主机系统需要具备一定的SMR感知能力,并能够与SMR硬盘进行通信以传递相关信息。

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

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

相关文章

专业140+总分410+北京理工大学826信号处理导论考研经验北理工电子信息通信工程,真题,参考书,大纲。

今年考研专业课826信号处理导论(信号系统和数字信号处理)140,总分410,顺利上岸!回看去年将近一年的复习,还是记忆犹新,有不少经历想和大家分享,有得有失,希望可以对大家复…

【机器学习】一文掌握机器学习十大分类算法(上)。

十大分类算法 1、引言2、分类算法总结2.1 逻辑回归2.1.1 核心原理2.1.2 算法公式2.1.3 代码实例 2.2 决策树2.2.1 核心原理2.2. 代码实例 2.3 随机森林2.3.1 核心原理2.3.2 代码实例 2.4 支持向量机2.4.1 核心原理2.4.2 算法公式2.4.3 代码实例 2.5 朴素贝叶斯2.5.1 核心原理2.…

Python大数据分析——一元与多元线性回归模型

Python大数据分析——一元与多元线性回归模型 相关分析概念示例 一元线性回归模型概念理论分析函数示例 多元线性回归模型概念理论分析示例 线性回归模型的假设检验模型的F检验理论分析示例 模型的T检验理论分析示例 相关分析 概念 a 正相关;b 负相关;c…

STM32常见调试工具介绍

STM32的常见调试工具主要包括ST-LINK、USB转TTL、USB转485以及USB转CAN。这些工具在嵌入式系统开发、调试以及通信中发挥着重要的作用。 1.ST-LINK: ST-LINK是STMicroelectronics公司专为其STM32系列微控制器开发的调试和编程工具。既能仿真也能将编译好的程序下载…

软件杯 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习?5.1.2 为什么要迁移学习? 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

如何在MacOS上使用OpenHarmony SDK交叉编译?

本文以cJSON三方库为例介绍如何通过OpenHarmony的SDK在Mac平台进行交叉编译。 环境准备 SDK准备 我们可以通过 openHarmony SDK 官方发布渠道下载对应mac版本的SDK,当前OpenHarmony MAC版本的SDK有2种,一种是x86架构,另一种是arm64&#x…

C语言 函数——断言与防御式编程

目录 如何确定假设的真假? 断言 防御式编程(Defensive programming) 如何确定假设的真假? 程序中的假设 *某个特定点的某个表达式的值一定为真 *某个特定点的某个表达式的值一定位于某个区间等 问题:如何确定这些…

蓝桥杯真题演练:2023B组c/c++

日期统计 小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的范围之内。 数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 …

网络篇08 | 运输层 tcp

网络篇08 | 运输层 tcp 01 简介1)运输层的作用2)与应用层的关系3)两个协议的应用场景4)传输的数据单位 02 功能特性1)面向连接2)停止等待协议3)流水线传输协议4)滑动窗口机制5&#…

卷积神经网络(LeNet5实现对Fashion_MNIST分类

参考6.6. 卷积神经网络(LeNet) — 动手学深度学习 2.0.0 documentation (d2l.ai) ps:在这里预备使用pythorch 1.对 LeNet 的初步认识 总的来看,LeNet主要分为两个部分: 卷积编码器:由两个卷积层组成; …

微服务相关

1. 微服务主要七个模块 中央管理平台:生产者、消费者注册,服务发现,服务治理,调用关系生产者消费者权限管理流量管理自定义传输协议序列化反序列化 2. 中央管理平台 生产者A在中央管理平台注册后,中央管理平台会给他…

【STL详解 —— list的模拟实现】

STL详解 —— list的模拟实现 list接口总览结点类的模拟实现构造函数 迭代器类的模拟实现迭代器类的模板参数说明构造函数运算符的重载--运算符的重载运算符的重载!运算符的重载* 运算符的重载-> 运算符的重载 list的模拟实现默认成员函数构造函数拷贝构造函数赋值运算符重载…

云服务器web环境之mariadb

1.安装mariadb服务 yum install mariadb-server 启动mariadb服务 systemctl start mariadb.service 输入mysql就能使用数据库了。 2.服务相关操作 systemctl stop mariadb.service systemctl restart mariadb.service 2.配置开机自启动 systemctl enable mariadb.serv…

k8s:kubectl 命令设置简写启用自动补全功能

k8s:kubectl 命令设置简写&启用自动补全功能 1、设置kubectl命令简写2、启用kubectl自动补全功能 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(K8s)是一个强大的容器编排平台&#xff0…

netty

Netty出坑记-CSDN博客 NIO网络编程,高性能 异步事件驱动 短短几句话包含着多少含金量 特点 高并发:异步非阻塞IO模型,事件驱动 高性能:零拷贝 内存池 可定制 线程模型 多协议:http websocket tcp udp 自定义&…

python爬虫-----Selenium (第二十二天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

2024/4/15 AD/DA

AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号 AD/DA转换打开了计算…

下载了恶意软件怎么办,用这个软件可以解决 Mac电脑卸载软件 MacBook查杀病毒

随着苹果电脑在全球市场的普及,它们也日益成为恶意软件制作者的目标。这种趋势打破了许多人认为Mac系统不易受到病毒或恶意软件影响的传统观念。事实上,苹果电脑面临的恶意软件和安全威胁正在不断增多,这要求用户采取更加积极的措施来保护自己…

Flutter第八弹 构建拥有不同项的列表

目标:1)项目中,数据源可能涉及不同的模版,显示不同类型的子项,类似RecycleView的itemType, 有多种类型,列表怎么显示? 2)不同的数据源构建列表 一、创建不同的数据源 采用类似Rec…

苍穹外卖学习记录(一)

1.JWT令牌认证 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 JWT是目前最常用的一种令牌规范,它最…