概述
硬盘行业正在经历一场变革。多年来,在存储密度大幅增长的同时,作为硬盘设计最主要方面之一的逻辑块格式化大小(也称为扇区)却始终没有变化。
2010 年左右,硬盘公司正在将扇区从传统大小 512 字节迁移到更大、更高效的 4096 字节(一般称为 4K 扇区),国际硬盘设备与材料协会(International Disk Drive Equipment and Materials Association,IDEMA)将之称为高级格式化。
本资料阐述了此迁移的情况,指出了为客户带来的长期收益,同时提出从 512 字节迁移到 4K 扇区的过程中要避免的潜在隐患。
背景
30 多年以来,硬盘上储存的数据都格式化到小的逻辑块中,这种逻辑块称为扇区,而传统的扇区大小为 512 字节。现代计算机系统的许多方面仍然采用基于该格式标准的设计假定。
传统扇区格式中包含间隙 (Gap)、同步 (Sync) 和地址标记 (Address Mark)、数据和纠错代码 (EEC) 部分(见图 1)。
图 1.硬盘介质上的传统扇区布局
此扇区布局的结构设计如下:
- 间隙 (Gap) 部分:分隔扇区。
- 同步 (Sync) 部分:表示扇区的开始处,并提供计时对齐。
- 地址标记 (Address Mark) 部分:包含可识别扇区号和位置的数据。还可提供扇区本身的状态。
- 数据部分:包含所有用户数据。
- EEC 部分:包含用于修复或复原读写过程可能受损的数据的纠错代码。
多年来,硬盘行业一直采用这种低级别的格式。然而,随着硬盘容量的不断增长,扇区大小逐渐成为了设计提高硬盘容量和纠错效率方面的主要限制因素。例如,将以前的扇区大小和总容量的比率与最近硬盘的扇区大小和从容量的比率相比较,可以发现,扇区分辨率已变得非常低。扇区分辨率(扇区大小和总存储大小的百分比)已经非常高并且有效(见表 1)。
容量 | 扇区总量 | 扇区分辨率 |
40MB | 80,000 | .001% |
400GB | 800,000,000 | .0000001% |
12TB | 24,000,000,000 | .000000004 |
管理小型离散数据时,分辨率越高越好。但是,现代计算系统中的常用应用都管理大型的数据块,实际远比 512 字节扇区大小要大得多。
另外,当区域密度增加时,盘面上的小型 512 字节扇区也将占据越来越小的空间。从纠错和介质缺陷风险方面看,更小的空间会引起更大的问题。如图 2 所示,硬盘扇区中的数据占据的空间越小,错误纠正就会变得越困难,因为同样大小的介质缺陷对总体数据负载损害的百分比更高,因此需要更大的纠错强度。
图 2.介质缺陷和区域密度
512 字节扇区一般可纠正高达 50 字节长度的缺陷。当今的硬盘已经开始通过领先的磁密度来超越此错误纠正限制。因此,相对于错误纠正和实现格式化效率来说,迁移到较大扇区是硬盘行业内的基本要求。
过渡到 4K 扇区(高级格式化)
数年来,存储行业一直致力于向较大扇区硬盘格式过渡;Seagate 以及硬盘行业内的同行进行的努力可以追溯到 2005 年(见图 3)。2009 年 12 月,经过与 IDEMA 的通力合作,提名高级格式化作为 4K 字节扇区标准的名称,并获准。同时,所有硬盘制造商承诺,自 2011 年 1 月开始,所发行的台式机和笔记本电脑产品的新型硬盘平台都采用高级格式化扇区格式。在此日期之前,高级格式化硬盘就已开始进入市场。Seagate 首先向 OEM 客户以及在品牌零售产品中发行大扇区硬盘。
图 3.高级格式化标准发展的重要里程碑
4K 扇区的长期收益
鉴于所有硬盘制造商一致同意到 2011 年 1 月前完成向高级格式化扇区设计过渡,因此,硬盘行业针对此更改进行了调整和适应,以最小化潜在负面副作用。虽然在即时容量增加方面最终用户的短期收益并不显着,但迁移到 4K 大小扇区确实更快速地实现了更高的磁密度和硬盘容量,同时提供了更加强大的错误纠正功能。
通过降低错误纠正代码所用空间来提高格式化效率
图 4 显示了传统的 512 字节扇区布局,其中每个 512 字节扇区都包含 50 字节与数据无关的空间用于 EEC,以及另外 15 字节用于间隙 (Gap)、同步 (Sync) 和地址标记 (Address Mark) 部分。由此产生的扇区化1格式效率约为 88% (512/(512 + 65))。
图 4.传统 512 字节扇区布局
新的高级格式化标准使得 4K 字节扇区发生了很大变化,4K 字节扇区将 8 个传统 512 字节扇区合并为一个 4K 字节扇区(见图 5)。
图 5.高级格式化:4K 字节扇区布局
高级格式化标准用于间隙 (Gap)、同步 (Sync) 和地址标记 (Address Mark) 的字节数相同,但将 EEC 的字节数增加至 100 字节。这使扇区化1格式效率达到约 97% (4096/(4096 115)),与传统扇区化相比提高将近 10%。
这些格式化效率将逐渐发挥作用,有助于产生更高的容量,同时提高数据完整性。
可靠性和错误纠正
硬盘扇区的物理大小占据的空间越来越少,不断缩减,但介质缺陷却没有同时减少。见图 6,图中显示了我们认为很小的物体的图像。与读/写磁头的飞行高度相比,这些物体显得非常庞大。比图中显示物体更小的微小颗粒也会造成硬盘的介质缺陷。
图 6.磁头飞行高度的极小范围表示
高级格式化标准中的较大 4K 扇区可加倍2 EEC 块大小,从 50 字节到 100 字节,带来针对颗粒和介质缺陷的错误纠正效率和稳健性方面必要的改进。
从改进的格式化效率和更加强大的纠错算法的综合优势来看,向 4K 扇区的过渡很值得。如何管理这种过渡,以最小的副作用获取长期收益,一直是硬盘行业的关注焦点。
了解过渡到 4K 的影响
前面提到,现代计算系统的很多方面都仍假设扇区都是 512 字节。要将整个行业过渡到新的 4K 标准,同时希望所有原来的假设一下子适应这种改变是不现实的。随着本机 4K 扇区的实现,主机和硬盘会逐渐以 4K 块来交换数据。彼时,硬盘制造商将通过称为“512 字节扇区模拟”的技术实现到 4K 扇区的过渡。
512 字节扇区模拟
4K 大小扇区的引入主要依赖于 512 字节扇区模拟。这个术语是指,将高级格式化中所用 4K 物理扇区转换为主机计算系统所用的传统 512 字节扇区。
由于 512 字节模拟不会强制在传统计算系统中进行复杂的改变,因而是可行的。但是会对硬盘性能带来潜在的负面影响,特别是写入的数据与八个转换的传统扇区不完全对应时。考虑到 512 字节模拟所需的读写过程时,这种影响很明显。
模拟读写过程
从 512 模拟方式来读取 4K 扇区格式化硬盘中的数据非常直接,如图 7 所示。
图 7.512 字节模拟的可行读序列
硬盘系统内存可以读取 4K 数据块以及格式化主机系统所需的特定 512 字节虚拟扇区,这个过程不会明显影响到性能。
但是写过程却十分复杂,特别是主机尝试写入的数据为 4K 物理扇区的子集时。这时,硬盘必须首先读取包含主机写入请求目标位置的整个 4K 扇区,将现有数据与新数据合并,然后重新写入整个 4K 扇区(见图 8)。
图 8.512 字节模拟的可行写序列
在此情况下,硬盘必须执行额外的机械步骤:读取 4K 扇区、修改其内容,然后写入数据。此过程称为“读取-修改-写入”(read-modify-write)循环,但这个过程不可取,因为它会对硬盘性能造成负面影响。最小化“读取-修改-写入”情况的发生及其频率是顺利无忧过渡到 4K 扇区的重要因素。
“读取-修改-写入”预防
- 由于逻辑分区和物理分区未对齐,导致写入请求不对齐
- 写入请求的数据小于 4K 大小
对齐硬盘分区和未对齐硬盘分区
目前,我们尚未讨论主机系统和硬盘如何针对介质上的扇区位置进行通信。现在来介绍一下逻辑块地址(Logical Block Address,LBA)。
每个 512 字节扇区都分配了唯一的 LBA,从数字 0 到硬盘所需的数字(取决于硬盘大小)。主机会使用分配的 LBA 来请求特定的数据块。主机请求写入数据时,在写入的结尾会返回一个 LBA 地址,告知主机数据的位置。这对于 4K 扇区的过渡非常重要,因为主机 LBA 起点位置可以有八种可能性。
当 LBA 0 与 4K 物理扇区中第一个 512 字节的虚拟块对齐时,512 字节模拟的逻辑对齐和物理对齐情况称为 Alignment 0。 另一种可能对齐情况是,LBA 0 与 4K 物理扇区中第二个 512 字节的虚拟块对齐。这种情况称为 Alignment 1,图 9 显示了 Alignment 1 与 Alignment 0 对齐情况的比较。另外,还有六种可能的分区不对齐情况,会引起与 Alignment 1 情况相似的“读取-修改-写入”事件。
图 9.对齐情况
Alignment 0 情况与高级格式化标准中的 4K 扇区完全符合。因为硬盘能够轻松将 8 个相邻的 512 字节扇区映射到一个 4K 扇区。实现此映射的方法是,将 512 字节的写入请求储存在硬盘的缓存中,等接收到 8 个连续的 512 字节的数据块时再将其写入到 4K 扇区(8 个连续的 512 字节块刚好构成一个 4K 扇区)。由于现代计算应用要处理大量的数据,这些数据一般都超过 4K,因此很少发生“超短帧”的情况。但是,Alignment 1 却是完全不同的状况。
当创建的硬盘分区不对齐(如图 9 所示)时,会引起“读取-修改-写入”循环,影响硬盘性能。这是高级格式化硬盘的实现过程中主要应避免的情况,稍后对此进行讨论。
小记
现代计算应用中的文档、图片和视频流等数据都远超过 512 字节。因此,硬盘会将这些写入请求存储在缓存中,直到这些 512 字节的数据块能够组成一个 4K扇区。如果硬盘分区是对齐的,那么可以轻松将 512 字节扇区映射到 4K 扇区,而不会对性能产生任何影响。但是,某些低级别进程会强制硬盘处理“超短帧”状况,而该状况与未对齐分区无关。这种情况很少见,仅当主机发出小于 4K 的离散写入请求时发生。这些通常都是处理文件系统、日记或类似低级别活动的操作系统级别活动。通常来说,这些活动发生的几率很小,因此不会明显影响到总体性能。但仍然建议系统设计人员考虑对这些进程进行适当修改,在实施 4K 过渡的同时,将硬盘性能最大化。
向 4K 过渡的准备和管理
我们已经了解了迁移到 4K 扇区的优势以及对性能的潜在影响,接下来就该查看如何有效管理此过渡。我们通过现代计算中部署的两种最常用的操作系统来详细阐述这一主题:Windows 和 Linux。
在 Windows 环境中管理 4K 扇区
管理到 4K 扇区的过渡中最重要的一个方面就是上述与对齐问题相关的管理。高级格式化硬盘在 Alignment 0 情况下能够运行完好,这时物理启动和逻辑启动位置相等。创建硬盘分区时,便已创建了对齐情况。创建分区的软件分为两大类:
- Windows 操作系统版本
- 硬盘分区实用程序
对于通过 Windows 操作系统创建的分区,值得一提的有三种 Windows 版本:Windows XP、Windows Vista 和 Windows 7。Microsoft 已投身于规划向更大扇区过渡的社区中。因此,Microsoft 在 Windows Vista Service Pack 1 中发布了可兼容 4K 扇区的软件。可创建 Alignment 0 状态(符合高级格式化标准)的分区的软件称为“可识别 4K”。表 2 说明了与当前 Microsoft Windows 操作系统的相关情况。
操作系统版本 | 是否可识别 4K? | 成果 |
Windows XP | 否 | 创建状态为 Alignment 1(未对齐)的主分区 |
Windows Vista Service Pack 1 之前的版本 | 否 | 能检测到较大的扇区,但创建的分区不正确(未对齐) |
Windows Vista Service Pack 1 或更高版本 | 是 | 创建状态为 Alignment(对齐)的分区 |
Windows 7 | 是 | 创建状态为 Alignment(对齐)的分区 |
Windows 10 | 是 | 创建状态为 Alignment(对齐)的分区 |
明显看出,配有 Windows 最新版本的计算机系统的状态相对更适合使用高级格式化硬盘。但是,对于仍然使用 Service Pack 1 之前的 Windows XP 或 Windows Vista 的系统来说,操作系统所创建的分区性能很可能显著下降。
除 Windows 操作系统较早版本所创建的分区可能具有潜在不对齐情况外,系统构建商、OEM、增值经销商和 IT 管理员广泛使用的软件实用程序中,有很多软件实用程序也能够引起分区不对齐情况。事实上,通过这些实用程序创建的分区比通过 Windows 操作系统本省创建的分区还要普遍。因此,创建不对齐分区,从而导致使用 4K 扇区时环境中硬盘性能下降的风险非常明显。更麻烦的是,如今系统中的硬盘一般都包含多个硬盘分区。这意味着硬盘上的每个分区都必须使用可识别 4K 的分区软件进行创建,以确保适当对齐,并保障性能。图 10 显示了使用不能识别 4K 的软件创建多硬盘分区时的可能结果。
图 10.多种分区和对齐情况
处理不对齐状态
有三种可行方法可避免和/或管理不对齐状态(不对齐状态对硬盘性能具有潜在影响)。
- 使用 Windows 操作系统的最新版本或使用分区使用程序提供程序来获取可识别 4K 版本的软件。
- 使用硬盘实用程序来重新对齐磁盘分区。
- 交与您的硬盘供应商来管理硬盘性能,而不论对齐状态如何。
使用可识别 4K 的 Windows 版本来创建硬盘分区,是避免不对齐状态的直观简单的方法。 创建硬盘分区的软件实用程序的供应商应该能够告知您可识别 4K 版本的软件是否可用。如果可用,迁移到可识别 4K 的版本,以免后顾之忧。
有些硬盘供应商通过提供能够检测现有硬盘分区,并按需重新对齐的实用程序来解决此问题。这种方法要花费更多时间,并且系统构建或升级流程的步骤会变得更加繁琐。
最后,硬盘构建商要开发更加复杂的方法,来管理不对齐状态,同时还要避免对性能产生负面的影响。
由于向高级格式化硬盘的过渡仍在继续,所有这些方法都将在最大化行业收益、同时避免潜在性能影响方面起到重要作用。
在 Linux 环境中管理 4K 扇区
在 Windows 环境中管理到 4K 扇区过渡的关键策略同样适用于 Linux。多数 Linux 系统用户都能够访问源代码,根据他们的特定需要来定制操作系统。因此,Linux 用户能够主动更新其系统,以便适当管理高级格式化硬盘。
适当创建磁盘分区以与高级格式化硬盘对齐,最小化可生成超短帧的低级别系统写入(与对齐问题无关),对您的 Linux 系统做一些修改可避免对齐问题。
为了支持高级格式化硬盘,对 Linux 内核和实用程序均进行了更改。这些更改可确保高级格式化硬盘上的所有分区在 4K 扇区边界上都完全对齐。版本 2.6.31 或更高版本的内核支持高级格式化硬盘。以下 Linux 实用程序中支持高级格式化硬盘的分区和格式化:
Fdisk:GNU Fdisk 命令行实用程序可对硬盘进行分区。版本 1.2.3 和更高版本支持高级格式化硬盘。
Parted:GNU Parted 图形实用程序可对硬盘进行分区。版本 2.1 和更高版本支持高级格式化硬盘。
结论
从传统 512 字节扇区进行的行业过渡已成为现实。硬盘制造商一致同意,在 2011 年 1 月前,笔记本电脑和台式机细分市场的新型产品均采用高级格式化标准。
硬盘工程师继续推动着改进的磁密度和更强大的纠错功能。随着硬盘产品中采用新技术,具有更高的容量、更低的每 GB 成本和一如既往的可靠性级别,消费者将从中获益。
受教良好的存储社区是实现顺利过渡的关键,从而消除潜在的性能隐患。顺利成功过渡到高级格式化的 4K 扇区最关键的方面是推广可识别 4K 硬盘分区工具的采用。系统构建商、OEM、集成商、IT 专家甚至构建或配置计算机的最终用户都应该确保:
- 使用 Windows Vista(Service Pack 1 或更高版本)或 Windows 7 或更高版本来创建硬盘分区。
- 使用第三方软件或实用程序创建硬盘分区时,与供应商联系,确定已更新这些软件或实用程序,确定其可识别 4K。
- 如果您的客户经常重新映像系统,请建议他们确定其映像实用程序可识别 4K。
- 如果要使用 Linux,请与 Linux 供应商或组织联系,确定已对您的系统进行了更改,以识别 4K。
- 与您的硬盘供应商联系,获取在系统中使用高级格式化硬盘的其他建议或指导。
与同行及客户一起,我们将继续顺利有效地过渡到 4K 高级格式化扇区,充分利用整个存储行业的长期潜在收益。
脚注
1 扇区化格式仅限指数据扇区,并未考虑伺服系统数据和其他扇区布局无效性相关开销。
2 从 512 字节转移至 4K 字节扇区时,不是所有的 4K 扇区实施都能使 ECC 字节倍增。