磁盘按照物理扇区大小的不同分为三种512byte原生扇区硬盘(512n),4KB扇区仿真512byte(512E)磁盘,4kB扇区原生磁盘。

首先说物理扇区,扇区是硬盘上最小的读写单位,这个是硬盘决定的,不是操作系统决定的。当然可以被修改,但是需要操作系统支持,否则也不会有操作系统支持4k的问题了。扇区包含了数据和编号,校验码之类的数据。推出4k是因为现在硬盘可靠性上升了,用不着每512bytes搞一个校验码了,4096bytes搞一个校验码就可以满足需求,还可以省出来存储数据。簇是文件系统的最小读写单位,簇是扇区的倍数,簇可以可以保证里面的扇区是连续的。这两个对磁盘性能都有影响,影响原因基本类似,主要是磁头寻道耗时,4k扇区在读取连续数据时相比512bytes,最优情况可以减少4倍寻道时间,簇保证扇区连续相当于把多个扇区打包成一个大扇区,保证连续读取磁盘数据时候速度更快。

512n的物理扇区是512bytes,512e和4k原生磁盘的物理扇区是4k,其中512e是因为当时部分操作系统识别不了4k物理扇区,而做的兼容方案。相对于512n磁盘,后两者的读写效率要高很多原生512n每个扇区都有50bytes的ECC纠错码;4KB扇区将这个ECC区域合并、扩大(但没有50bytes的8倍那么大),并省去了间隔、地址标记等空间,因此格式化效率提升到大约97%,并且能否检测和纠正更大的介质错误。也就是说,在磁记录密度不变的情况下,“高级格式化”能够提供更大的实际可用容量。随着硬盘上的记录单元——磁极尺寸不断缩小,容量增速放缓,4KB扇区是未来大容量硬盘的趋势。

512byte原生扇区硬盘的生命周期将在2017年终止(部分企业级产品和老型号可能例外)。按照这个之前的预计,以3.5” 7200转为例最大是4TB,超出该容量物理扇区只有4KB了?实际上我们看到有硬盘厂商推出6TB 512byte物理扇区的型号,包括密封充氦7碟片和非充氦普通6碟片,但继续增大容量还是需要4KB扇区。

4KB扇区仿真512byte(512E)已经广泛应用于客户端,毕竟即使出现写放大或者未对齐写入产生更多I/O,PC用户对磁盘性能也没有那么敏感,但企业级应用则要保守多了。Windows
Server 2008(2012)之前的操作系统如windows2003由于不能很好识别512E,只能按照512n的读取方式不能做到扇区对齐写入,而windowsserver2008能够很好的支持512E做到扇区对齐写入。关于对齐与非对齐的方式如下图

512E的“对齐/非对齐”写入

其中“Misaligned”和“Aligned”分别表示在使用512e硬盘时非对齐和对齐的4KB I/O块操作。由于4KB块(比如对应文件系统的页面)操作需要先以8个512bytes逻辑扇区写入到硬盘,再合并记录到4KB物理扇区,
在非对齐的情况下,一个4KB逻辑写I/O对应到2个物理磁盘扇区,如果是新写入就会产生2次I/O;若是改写之前物理扇区中的数据,则需要读-更改-写的操作,这种非原子写入(non-atomic)最多可能产生4次I/O。
而对齐的情况则简单多了,尽管中间要经过硬盘模拟512bytes扇区的过程,但每个4KB的I/O操作都是对应到一个物理扇区。属于比较理想的情况。

原生4KB扇区硬盘直到2014年晚期才发布针对企业级市场的版本

关于操纵系统对三种磁盘的支持如下图:

其中,Windows从Server 2008开始能够感知512e硬盘并自动对齐分区;Server 2012进一步加入了对原生4Kn设备的支持。RHEL 6可以感知512e和4Kn硬盘并能自动对齐;SLES 11能感知512e和4Kn硬盘却无法自动对齐?VMware ESXi 4.x和5.x都无法感知512e和4Kn硬盘,但支持自动分区对齐。这里有必要进一步解释下。

  首先对于Windows Server 2003、RHEL 5和SLES 10来说,512e硬盘首先是可以用的,只是操作系统“意识不到”而当成512n来用了。微软如今已经停止了对Server 2003的支持(戴尔等厂商为用户提供迁移方案和服务),如果我们在这些较早的操作系统上使用第三方分区工具,或者手动指定开始扇区建立对齐的分区,应该可以规避一部分性能影响。

磁盘512n,512e,4k原生磁盘的区别和操作系统支持的更多相关文章

  1. [转帖]HDD磁盘,非4K无以致远

    https://blog.csdn.net/swingwang/article/details/54880918 机械硬盘的未来要靠高容量作为依托,在财报中,希捷表示未来18个月内它们将推出14和16 ...

  2. HDD磁盘,非4K无以致远

    机械硬盘的未来要靠高容量作为依托,在财报中,希捷表示未来18个月内它们将推出14和16TB机械硬盘,而2020年20TB机械硬盘就将诞生.也有资料显示,3.5英寸100TB硬盘大概在2025年就能面世 ...

  3. (转)Linxu磁盘体系知识介绍及磁盘介绍

    Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...

  4. zabbix磁盘的自动发现与磁盘指标监控

    由于最近项目上需要对服务器监控进行规范化监控,再磁盘这块有几种方式 1.如果每台设备的磁盘是一样的 比如都有vda,vdb两块磁盘那么可以采用 1.1 每台客户端写脚本,服务端每台设备去加上监控项(- ...

  5. linux磁盘管理系列一:磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  6. atitit.html5 vs 原生 app的区别与选择

    atitit.html5  vs 原生 app的区别与选择 1. html5的优点 1 1.1. 最大优势::在跨平台(ios苹果,android安卓等) 1 1.2. 开放性 1 1.3. 快速的更 ...

  7. Java.io下的方法是对磁盘上的文件进行磁盘操作

    File类(java.io.*)可表示一个文件,也有可能是一个目录(在JAVA中文件和目录都属于这个类中,而且区分不是非常的明显). Java.io下的方法是对磁盘上的文件进行磁盘操作,但是无法读取文 ...

  8. h5做的app和原生app的区别

    之所以说h5做的app和原生app的区别,是因为一位博友的问题: 随着 h5 的普及,是不是不再需要开发 app ? 我的回答是要分业务需求,分场合而定. 比如现在的微信小程序这么流行,甚至也取代了不 ...

  9. 向现有的磁盘组加入/删除ASM磁盘

    ASM磁盘组支持动态扩展,我们可以向现有的磁盘组动态加入新的磁盘,新磁盘加入后,Oracle通过后台RBAL进行Rebalance,将当前的数据均衡到新增加的磁盘上.Drop磁盘亦会Rebalance ...

随机推荐

  1. tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners

    TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行.在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止 ...

  2. PyAlgoTrade Hello World 第一个程序(一)

    本教程的目标是快速介绍PyAlgoTrade.PyAlgoTrade的目标是帮助您实现股票交易策略.假设您有一个交易策略的想法,并且您希望使用历史数据进行评估,并查看其行为方式,那么PyAlgoTra ...

  3. Session History 属性和方法

    History 接口允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录. js通过window.history来访问和操作的,操作的范围是某个tab的会话历史记录. 这个tab打开后,tab内的 ...

  4. c++ 声明和定义的区别

    从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存.而定义就是分配了内存. int a;在外面是作为一个语句,这就是定义,会构造对象,定义本身也是声明. ...

  5. SQL中利用脚本创建database mail.

    SQL中利用脚本创建database mail   编写人:CC阿爸 2014-6-14 多话不讲,请参考以下脚本 use  

  6. 如何ping别人的计算机名来获取IP?

    来源:http://blog.csdn.net/qq_27109081/article/details/47128175 如何ping别人的计算机名来获取IP?            获取别人的IP, ...

  7. 国产FPGA市场分析 该如何破局

    2018年上半年对于中国半导体行业而言是多事之秋,发生了几件让国人深入思考的大事.我作为IC产业的逃兵,最近也在思考很多的问题,包括资本市场.集成电路行业和研究所的一些不成熟的想法. 2008年进入华 ...

  8. Unable to locate \.nuget\NuGet.exe 问题解决办法之一

    问题出现的原因是项目下.nuget文件夹下NuGet.exe文件夹不存在导致的 解决办法: 1.右键编辑NuGet.targets文件 将下载NuGet.exe的配置节点DownloadNuGetEx ...

  9. 蓝桥杯 生命之树【树状dp】

    生命之树 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上, 都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S, 使得对于S中的任意两个点a,b ...

  10. python + docker, 实现天气数据 从FTP获取以及持久化(四)-- 数据准备

    前情提要 在之前的文章里,我们已经掌握从FTP上面下载天气数据然后插入到数据库中. 但是如何将我们已有的数据放到生产环境中呢? 思考 首先,我们先简单的理一理现在的情况. 目前: FTP上面已有半个月 ...