详解叠瓦式磁记录SMR盘基础知识

2023-05-16


      SMR(Shingled Magnetic Recording)叠瓦式磁记录盘是一种采用新型磁存储技术的高容量磁盘。SMR盘将盘片上的数据磁道部分重叠,就像屋顶上的瓦片一样,这种技术被称为叠瓦式磁记录技术。该技术在制造工艺方面的变动非常微小,但却可以大幅提高磁盘存储密度。


      在数据量飞速增长的当今世界,SMR技术可以有效降低单位容量的磁盘存储成本,是未来高密度磁盘存储技术的发展潮流。


      尽管SMR盘的读行为和普通磁盘相同,但它的写行为有了巨大的变化:不再支持随机写和原地更新写。这是由于SMR盘上新写入的磁道会覆盖与之重叠的所有磁道,从而摧毁其上的数据。换言之,相较传统磁盘而言,SMR盘不再支持随机写,只能进行顺序追加写。写入方式的限制给欲使用SMR盘的存储系统带来了巨大的挑战。


SMR盘的技术原理


      大数据时代的数据量呈指数级增长,预计每两年就会翻一番。硬盘作为一种经济高效的存储介质,在当今的存储数字世界中依然起着中流砥柱的作用。



      硬盘驱动器的存储面密度(每单位面积存储的位数)受到物理定律的限制,目前硬盘使用的PMR垂直磁记录(Perpendicular Magnetic Recording)技术即将达到其存储密度极限。业界迫切希望引入新的技术来克服限制,继续稳步提升容量。


      SMR盘是领先的下一代磁盘技术。 SMR盘在制造工艺方面的变动非常微小,因为它保持现有磁头和介质技术不变,它通过将磁道像屋顶上的瓦片那样重叠在一起来实现其存储面密度的增长。


      具体来说,硬盘盘片被划分为同心圆状的磁道,磁道与磁道之间具有一定间隔,起到保护作用。硬盘的磁头位于盘片记录介质的上方,包含用于写入的写磁头和用于读取的读磁头,二者是独立的部件。在磁盘上想要写入数据,需要写磁头施加较强的磁场来改变盘片上的记录,这就进一步要求写磁头足够大以产生所需的写入磁场强度。因此,如果磁道没有任何重叠,磁盘上每英寸能容纳的磁道数量由写磁头的宽度所决定。



传统硬盘与SMR盘磁记录方式的对比示意图


      叠瓦式写入则利用了磁盘读取所需要的磁场强度低于写入所需要的磁场强度的事实。换言之,磁盘读取所需的磁道宽度可以小于写入所需的轨道宽度,读磁头的宽度可以小于写磁头宽度。SMR盘上数据的写入是通过部分重叠前一条磁道写入的,同时留出了足够的空间给较窄的读磁头读取前一条磁道的数据。叠瓦式写入的结果就是留给读用的窄磁道,以及最后用于写入的较宽的写磁道,写入将会覆盖若干个读磁道的宽度。


      和传统磁盘相比,SMR盘通过叠瓦式写入在相同的面积内容纳了更多的磁道,从而提高了存储面密度,进而降低了磁盘单位存储容量的成本。


      SMR磁盘将磁道划分为若干个带(Band),即由连续磁道所构成的可连续写入区域,每个区域构成一个需要顺序写入的基本单元。Band是SMR盘上的物理概念,其对应的逻辑概念是“区域”(zone),是上层软件所能看到的SMR盘的顺序写区域。一个zone的大小通常在256 MB量级。由于SMR盘仍然确保可以从磁道的未重叠部分读取数据,zone内的数据读取依旧可以随机进行。

      SMR盘在生产制造时就划分好了分区,通过在zone之间出留出较大的间隔来标识zone的起始位置。此外,硬盘厂商在SMR盘上一小块区域内,通过采用传统硬盘非重叠的磁道组织方式,牺牲了部分存储密度以换取在这些zone内随机写入的能力。这部分zone被称为“传统区”(Conventional Zone),为上层应用的随机写提供了一个落脚点。


      在传统硬盘上,存储在磁盘上的用户数据由文件系统来管理,文件系统假定磁盘提供的块接口中,块是独立可更新的单元。但是,由于叠瓦式写入导致随机写和原地更新写不再受支持,SMR盘需要全新的数据管理解决方案。寻找一种方法来高效地存储、检索和管理SMR盘中这些大块顺序写区域中的数据,而不会导致太多空间浪费是非常具有挑战性的。


SMR盘的分类


      SMR盘采用叠瓦式记录通过将一个zone内的磁道按序部分重叠,获得了更高的存储面密度、更大的磁盘容量、更低的单位容量价格。在获得这一好处的同时,SMR盘也对上层应用提出了一些限制,包括SMR盘在zone内只能顺序写,不支持随机写,SMR盘的空间回收以一个Zone的大小(例如256MB)为粒度。


      SMR盘对写入的约束可在硬件侧由硬盘本身来管理,亦可在主机侧由软件来进行。前者被称为“驱动器自管理的SMR盘”(Drive Managed SMR disk),以下简称DM SMR盘。后者则将SMR内部的组织结构通过新增接口向上层软件暴露。


      制定SCSI协议的T10国际组织和制定ATA协议的T13国际组织都针对SMR盘对SCSI和ATA协议进行了相应的拓展。


  • T10组织引入了ZBC(Zoned Block Commands),定义了SMR盘相关的术语和行为,成为SAS接口SMR盘所必须遵守的规范。

  • T13组织引入了ZAC(Zoned-device ATA Commands),与ZBC类似,是SATA接口SMR盘所必须遵守的标准。


      ZBC和ZAC标准将SMR盘抽象成为一组Zone的集合,其中的Zone由一段连续的LBA构成。ZBC与ZAC标准中均定义了SMR盘中可以存在的三种类型的Zone:


  • 传统Zone(Conventional Zone简写为C-Zone)

  • 首选顺序写入Zone(Sequential-Preferred Zone简写为SP-Zone)

  • 强制顺序写入Zone(Sequential-Required Zone简写为SR-Zone)



      对C-Zone而言,和传统硬盘一样,它具有完全的随机写能力,对其中写入IO的逻辑块地址(LBA)的顺序不做任何限制。C-Zone所占的大小一般不超过SMR盘容量的1%。


      SP-Zone也不对写入顺序做强制性限制,但是,和C-Zone不同的是,SP-Zone位于SMR盘的顺序写入区域,最适合顺序写。SP-Zone引入了写指针(Write Pointer,以下简称WP)的概念,该指针等于该Zone内的最大LBA,应用程序应该首选在SP-Zone内的写指针处写入数据。尽管该硬盘本身在也能够处理非写指针处的写入(随机写),但这是有代价的,会引起后续的数据迁移、垃圾回收等。


      对于每个Zone,SR-Zone也暴露了写指针WP的位置,但硬盘设备将拒绝写入除写指针指向的LBA以外的任何位置,也就是SR-Zone内必须以写指针当前所在位置为起点,进行顺序追加写。


      当SR-Zone写满之后,则需通过Reset Write Pointer操作将该WP重置到该Zone开头,即清空该Zone以回收空间,从头开始写入。SP-Zone和SR-Zone被统称为写指针区(Write Pointer Zone)。


      如前所述,如果一块硬盘采用了叠瓦式写入技术,但是对外不暴露Zone和WP,由硬盘固件本身来管理写入的顺序性约束,我们称之为Drive Managed SMR。


      如果一块硬盘采用了叠瓦式写入技术,对外暴露了Zone和WP,并且所包含的Zone类型仅仅含有C-Zone和SR-Zone,那么我们称之为Host Managed SMR(主机管理的SMR盘)。


      如果一块硬盘采用了叠瓦式写入技术,对外也暴露了Zone和WP,并且所包含的Zone类型由C-Zone和SP-Zone组成,那么我们称之为Host Aware SMR(主机感知的SMR盘)。


      HA SMR盘可以视为DM SMR盘和HM SMR盘的折中类型。



      上表总结了三种SMR盘的特点。虽然DM SMR盘采用和传统硬盘相同的接口,在内部实现一个叠瓦转换层STL(Shingle Translation Layer)对外隐藏了顺序写入的限制,但它也有一个主要缺点:


      在某些带有随机写的工作负载下,DM SMR盘内顺序写入区域需要进行数据迁移、垃圾回收等背景操作,DM SMR盘的性能可能受到不可预测的影响,性能波动巨大。


      相比之下,HM SMR盘不将自身伪装为传统磁盘,而是根据ZBC/ZAC标准对外暴露了zone和WP的抽象结构,允许上层软件来完全管理SMR盘的顺序写入约束,对不符合顺序写规则的IO请求则直接返错。通过向上暴露新接口,HM SMR盘的IO行为完全受软件控制,因而其性能是可控的,能最大化发挥SMR盘的优势。


      但劣势是上层的软件必须进行修改才能使用HM SMR盘。HA SMR盘提供了和HM SMR盘一样的新接口,但是当其收到不符合顺序写原则的IO是,HA SMR盘将允许其写入而非报错,具有一定的灵活性。


      无论采用哪一种类型的SMR盘,我们都需要将上层应用的IO行为特点与SMR盘顺序写的内在特点相匹配,否则就无法使SMR盘工作在最佳状态。


     点击原文链接获取已整理成文的<传统企业存储知识完全解析>电子书。



热文阅读

  • 埃森哲全球“技术展望2018”报告解析(附下载链接)

  • 容器原生存储: 红帽Gluster容器化技术解析(附实战视频)



温馨提示:

请搜索“ICT_Architect”“扫一扫”二维码关注公众号,点击原文链接获取更多技术资料

Stay hungry Stay foolish

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解叠瓦式磁记录SMR盘基础知识 的相关文章

  • @Component和@Configuration

    64 configuration和 64 component之间的区别是 xff1a 64 Component注解的范围最广 xff0c 所有类都可以注解 xff0c 但是 64 Configuration注解一般注解在这样的类上 xff1
  • zookeeper笔记

    ZooKeeper对分布式系统的协调 xff0c 使 共享存储解决分布式系统 临的问题 其实共享存储 xff0c 分布式应 也需要和存储进 络通信 大多数分布式系统中出现的问题 xff0c 都源于信息的共享出了问题 如果各个节点间信息不能及
  • Dubbo

    1 分布式架构 xff08 SOA 分层 按照业务性质分层 每一层要求简单 和 容易维护 应用层 距离用户最近的一层 也称之为接入层 使用tomcat 作为web容器 接收用户请求 使用下游的dubbo提供的接口来返回数据并且该层禁止访问数
  • Java的对象模型

    原文链接 对象在堆内存的布局分为三个区域 xff1a 分别是对象头 xff08 Header xff09 实例数据 xff08 Instance Data xff09 对齐填充 xff08 Padding xff09 对象头 xff1a 对
  • CopyOnWriterArrayList

    CopyOnWrite CopyOnWrite容器即写时复制的容器 通俗的理解是当我们往一个容器添加元素的时候 xff0c 不直接往当前容器添加 xff0c 而是先将当前容器进行Copy xff0c 复制出一个新的容器 xff0c 然后新的
  • Java 并发编程一篇 -(Synchronized 原理、LockSupport 原理、ReentrantLock 原理)

    并发编程已完结 xff0c 章节如下 xff1a Java 并发编程一篇 xff08 Synchronized 原理 LockSupport 原理 ReentrantLock 原理 xff09 Java 并发编程二篇 xff08 JMM C
  • Google离开我们已经快十年

    2010年1月13日 xff0c Google离开中国 掐指算来 xff0c Google已经离开我们快十年了 2010年是个特殊的年份 xff0c 这一年还发生了3Q大战 为什么诸多大事都发生在2010年 就是因为2010年是PC Web
  • Java 并发编程四篇 -(JUC、AQS 源码、ReentrantLock 源码)

    并发编程已完结 xff0c 章节如下 xff1a Java 并发编程一篇 xff08 Synchronized 原理 LockSupport 原理 ReentrantLock 原理 xff09 Java 并发编程二篇 xff08 JMM C
  • 在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面)

    原文地址
  • 20210721复盘

    1 在大厂中用的是java8吗 xff1f 还是更高版本的 xff1f 基本都是8 xff0c 一些老项目是7 2 远程面试的时候让写算法题 xff0c 是线上写还是用纸写还是用面试公司开发的工具写 xff1f 会有方法输入提示吗 xff1
  • 解决No plugin found for prefix ‘archetype‘ in the current project and in the plugin groups

    建立Maven项目时 xff0c 在cmd输入mvn archetype generate命令后出现了标题的报错 xff0c 我在settings xml里面配置的mirror是阿里云 xff0c 尝试了网上的好几个解决方案都不行 xff0
  • RocketMQ介绍和简单使用

    RocketMq下载安装 下载网址 xff1a http rocketmq apache org dowloading releases 系统要求64bit Linux Unix或Mac JDK版本 gt 61 1 8 解压后其中的目录文件
  • 如何在Oracle官网下载java的JDK最新版本和历史版本

    1 打开Oracle官网 xff0c 准备下载JDK 下载时需要使用注册用户登陆 xff0c 可以免费注册 地址 xff1a https developer oracle com 2 点击Downloads xff0c 并选择Java SE
  • 【Java】Collections集合类介绍

    Collections集合类介绍 Collections 是一个操作Set List和Map等集合的工具类 xff0c 提供了一系列静态方法对集合元素进行排序 查询和修改等操作 1 排序操作 xff08 1 xff09 reverse Li
  • AD将元器件由正面,放置到反面/元器件由反面放到正面

    按住选中元器件 xff0c 选中元器件之外的部分变灰 xff0c 选中元器件变成高亮 再按英文按键 l xff0c 实现元器件的正反面放置
  • CentOS6 yum命令报错YumRepo Error: All mirror URLs are not using ftp, http[s] or file解决

    原文地址 xff1a https www cnblogs com pistachio123 p 14301949 html 一 CentOS6 yum命令报错YumRepo Error All mirror URLs are not usi
  • Ubuntu 系统直接使用 root 用户登录实例

    Ubuntu 系统直接使用 root 用户登录实例 一般安装的Ubuntu 系统默认的不设置 root 帐户和密码 xff0c 这是为了安全做考虑 但是如果是本地虚拟机或者是作为测试使用 xff0c 直接使用root账户登录能减少很多麻烦
  • 深入浅出: 理解云原生基本原则

    云原生指的是一个敏捷的工程团队 xff0c 遵循敏捷的研发原则 xff0c 使用高度自动化的研发工具 xff0c 开发基于云基础设施和服务的应用以满足快速变化的客户需求 这些应用采用弹性 xff0c 可扩展和高可用的架构 这个工程团队通过高
  • java实现html转pdf

    1 需求 xff1a 将一个html页面转成pdf格式 2 方法 xff1a 在实现之前先考虑一个问题 xff0c pdf是前端生成还是后端生成 这里采用pdfbox 43 itext xff08 PDF文件名可自定义 xff09 技术在服
  • 生产者消费者模型(代码实现)

    一个场所 xff1a 队列 两个角色 xff1a 生产者 消费者 三种关系 xff1a 生产者 生产者 xff1a 互斥 消费者 消费者 xff1a 互斥 生产者 消费者 xff1a 同步 43 互斥 如果生产者直接将数据交给消费 xff0

随机推荐

  • XmlDocument操作XML

    https www cnblogs com fengxuehuanlin p 5631664 html C XmlDocument操作XML XML xff1a Extensible Markup Language xff08 可扩展标记语
  • Spring框架配置

    创建Maven项目 点击 Finish 按钮修改项目的Maven配置 在Maven仓库里查找Spring框架 xff0c 查看Spring Core xff0c 选择最新的版本 5 3 20 xff0c 添加到pom xml文件的 lt d
  • 在线古诗自动生成器的设计与实现

    在线古诗自动生成器的设计与实现 前言一 算法模型介绍LSTM简介模型框架实验环境实验与分析实验数据集数据集预处理训练过程模型训练结果模型的评估 二 在线古诗生成器的设计与实现系统结构远程服务器的项目部署系统测试 三 成品展示 前言 古诗 x
  • E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

    安装软件报错 apt get install python minimal E Unable to fetch some archives maybe run apt get update or try with fix missing 原
  • YUM命令常见报错以及解决办法

    简介 xff1a 本文主要为大家讲解CentOS 7系统中执行yum命令失败等常见问题的排查方法 1 执行yum命令报404错误 1 xff09 检查yum仓库是否配置正确 xff0c 可以到CentOS 镜像下载阿里云repo配置文件 2
  • 无法显示此网页

    上网过程中电脑打开浏览器 xff0c 浏览器突然显示 34 无法显示此网页 34 有可能是网络出现问题了 xff0c 也有可能是浏览器设置原因 xff0c 也有可能网站服务器原因 先用排除法来判断是哪种原因造成的 xff0c 再一一解决 0
  • 电脑添加打印机方法/步骤

    方法1 主要有以下几种方法 xff1a 1 新购买的打印机都会有自带的驱动软件安装光盘 xff0c 如果你电脑上有光驱的话 xff0c 直接安装上就可以了 xff1b 如果没有光驱那就到所购买的打印机品牌官网上去找对应型号的驱动下载安装上
  • ssh常见命令

    Linux系统的远程管理工具大概有几种 xff1a telnet xff0c ssh xff0c vnc等 xff0c 其中ssh是最常用的管理方法 xff0c 采用密文的传输方式 xff0c 简单安全 基本用法 最简单的用法就是不带参数
  • 芯片春秋: 开源架构RISC-V前世今生

    不久前 xff0c 特斯拉加入 RISC V基金会 xff0c 并考虑在新款芯片中使用免费的 RISC V 设计 至此 xff0c 已有IBM NXP 西部数据 英伟达 高通 三星 谷歌 华为等100多家科技公司加入RISC V阵营 出现这
  • 华为设备配置——配置通过FTP进行文件操作

    1 实验原理 FTP xff08 File Transfer Protocol xff0c 文件传输协议 xff09 是 TCP IP 协议组中的协议之一 其主要功能是向用户提供本地和远程主机之间的文件传输 xff0c FTP采用C S x
  • Linux学习笔记

    Linux linux的本质是一切皆目录 学习来自哔哩哔哩狂神说 xff0c 视频地址https www bilibili com video BV187411y7hF hostnamectl xff1a 查看linux信息 关机 shut
  • Linux .deb包的安装(gdebi)

    一些废话 deb包可以通过传统的dpkg命令来实现 xff0c 但过程中经常会遇到一些问题 所以有个软件叫GDebi xff0c 可以更加有效的帮助安装deb 通过点击deb包即可实现安装 xff0c 当然 xff0c 也可以通过命令行模式
  • 简单的理解EKF算法1

    简单的理解EKF算法 经典的EKF公式简化版的EKF公式参考资料 经典的EKF公式 来我们先来看一下第一眼看上去不知道在讲啥的公式 1 x k 61 A
  • Myeclipse/Eclipse 如何停止死循环进程

    今天在在练习hibernate 对象导航查询的时候想输出一对多 xff08 客户1 联系人n xff09 关系里面想输出某个客户的所有联系人 xff0c 便用Iterator对set进行遍历 xff0c 顺便看看iterator里面的方法具
  • 如何快速解决zookeeper闪退问题!

    有以下2种情况 xff1a 第一种方法 xff1a 按任意键直接闪退 xff0c 这时我们只需要修改一下配置文件即可 xff0c 右键 zkServer cmd xff0c 编辑文件内容 xff0c 在末尾输入 pause 保存并退出 在双
  • Centos6.8更新yum

    一 重新安装 1 卸载yum CentOS6停止维护更新日期2020年11月30日 下架了包括官方所有的CentOS6源 xff08 包括国内的镜像站 xff09 span class token comment 查看yum span rp
  • Debian 10系统最小化安装

    Debian 10最小化安装 一 Debian系统介绍 广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品 xff0c 由于Debian项目众多内核分支中以Linux宏内核为主 xff0c 而且 Debian开发者 所创建的
  • 在Ubuntu16.04系统下安装Python3.6 + pip3 的完整步骤

    python gt 垃圾垃圾真垃圾 xff08 开玩笑的 xff09 Ubuntu16 04版本最新的Python 3 x为版本3 5 1 要安装Python 3 6 xff0c 请运行以下命令 xff1a wget https www p
  • Ubuntu中的中文字体设置

    首先我们要搞清楚我们要设置的是系统的字体还是Firefox中的字体 一 设置的是Firefox浏览器中的字体 我们只需要在点击浏览器右上角Open menu gt Preferences gt Content gt Fonts amp Co
  • 详解叠瓦式磁记录SMR盘基础知识

    SMR Shingled Magnetic Recording 叠瓦式磁记录盘 是一种采用新型磁存储技术的高容量磁盘 SMR盘将盘片上的数据磁道部分重叠 xff0c 就像屋顶上的瓦片一样 xff0c 这种技术被称为叠瓦式磁记录技术 该技术在