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

详解叠瓦式磁记录SMR盘基础知识相关推荐

  1. 关于python语言的浮点数类型_Python 浮点数数据类型详解(float)[学习 Python 必备基础知识][看此一篇就够了]...

    原博文 2020-04-20 15:25 − > 您的"关注"和"点赞",是信任,是认可,是支持,是动力...... > 如意见相佐,可留言. &g ...

  2. js if for 详解 获取元素方式 及一些js 基础知识

    ##获取元素的新方法## --document.querySelector('Css Selector{css选择器}') 接收一个css选择器(通配,群组,类,包含,id....等) 若这个选择器对 ...

  3. python复数类型转换_Python 复数数据类型详解(complex)[学习 Python 必备基础知识][看此一篇就够了]...

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 复 ...

  4. python录音详解_Python实现电脑录音(含音频基础知识讲解)

    咪哥杂谈 本篇阅读时间约为 6 分钟. 1 前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些东西 ...

  5. HTML表格布局实际使用详解,是HTML入门学习中的基础知识

    什么时候会用到表格 现在,表格<table>一般不再用于网页整体的布局.不过,在面对某些特定的设计,如表单输入.数据呈现时,表格则可能是最恰当的选择. 关于表格的直观印象,就是由多个单元格 ...

  6. 叠瓦盘为什么不推荐_说说SMR叠瓦式硬盘是怎么回事,为什么不推荐。

    首先我们要知道传统硬盘是怎么记录数据的. 之前的硬盘使用的普遍是PMR-CMR,垂直磁记录技术-常规磁记录方式. 使用这种技术的硬盘,磁头记录的数据在盘片上是这么排列的. 磁头在写入的时候写入的范围会 ...

  7. pmr垂直式硬盘与smr叠瓦式硬盘的原理与区别

    文章目录 问题 硬盘的构造 1.构造原理 2.磁盘的读取响应时间 3.磁盘硬件被系统虚拟化 块 page LMR水平式记录磁盘 PMR垂直式记录磁盘 SMR瓦楞式堆叠磁盘 避免购买到叠瓦式机械硬盘 问 ...

  8. 叠瓦式硬盘 微型计算机,叠瓦式硬盘!究竟是技术的退步?还是商人的套路。...

    关于机械硬盘的一些事,你可能还完全不知道.现在市面上的机械硬盘几乎全是叠瓦式机械硬盘了. SMR(Shingled Magnetic Recording)叠瓦式磁记录盘是一种采用新型磁存储技术的高容量 ...

  9. 详解西部数据SMR叠瓦式硬盘的190二级编译器(译码表)模块

    一.190和T2是什么 与传统的垂直式(PMR)硬盘相比,叠瓦式(SMR)硬盘磁道的间距更小,数据读写的难度增加,因此LBA扇区的分配管理也发生了很大变化,使用一份数据结构动态分配LBA扇区,由于是动 ...

最新文章

  1. 各计算机语言之父,四大编程语言之父
  2. html元素移动时颜色逐渐变深,css实现随鼠标移动div渐变色效果
  3. java开发怎么打补丁_[Java教程]【NC】出补丁与打补丁
  4. java 使用三元运算符和if-else获取两个和三个数中的最大值
  5. Windows11电脑锁屏快捷键是什么
  6. Java核心类库篇4——集合
  7. android开发ui插件下载,TKUISDK-ANDROID
  8. 給服务器增加swap空间缓解内存压力
  9. 浮动和清浮动,内外边距和margin的坑
  10. 强化学习 ---baselines项目之 Atari游戏的网络结构解析
  11. 一个html可以有几个h1,关于html:HTML5大纲和多个H1 SEO
  12. lua游戏脚本实例源码_Redis Lua脚本中学教程(上)
  13. dynamips虚拟服务:找不到指定设备
  14. BubbleSort C#
  15. 2019蓝桥杯省赛心得
  16. Python爬虫爬取Google图片 -续- :使用Selenium进行网页操作
  17. 自动化测试po模式是什么?自动化测试po分层如何实现?(附详细源码)
  18. 启动项目报错:null, message from server: “Host ‘XXX‘ is not allow
  19. cocos creator休闲游戏甜品幻想H5+安卓+IOS三端源码开发脚本为javaScript
  20. Bad Smell (代码的坏味道)

热门文章

  1. centos7无盘启动_200M Linux 可以通过网络启动,批量自动部署或直接无盘运行了 (附配置 iPXE 无盘启动说明)...
  2. matlab中定义数组
  3. android传感器_充分利用Android的传感器
  4. selector到底是什么
  5. 汽车灯阻燃测试FMVSS302报告
  6. adams2015怎么把工具栏打开_剪映怎么玩的更好?教你0基础也能秒会的剪映三大进阶级功能!...
  7. JQuery 获取 数据表格 复选框 选中的值
  8. matlab输入矢量场求散度,微波仿真论坛_附录 COMSOL Multiphysics的MATLAB矢量计算基础.doc...
  9. 黄药师遥祭衡卿文!-悲哉千古!
  10. Kotlin笔记30--顶层方法