“对齐”分区是什么意思?


Answers:


15

对齐分区意味着对齐它以匹配真实的基础块结构。

长期以来,硬盘一直使用512字节块。因为这已经进行了很长时间,所以现在几乎不可能更改块大小。太多的软件将需要修复。

在SSD上,真正的块大小可能是128 KB。在RAID阵列上,它可能是64 KB。在高级格式驱动器上,它将为4 KB。

为了向后兼容,驱动器可继续使用512字节块。但是出于性能原因,您的系统确实应该知道真正的块大小。

最简单的性能调整就是将驱动器分区与真实的块大小对齐,以便当您的OS确实写入4 KB或64 KB或128 KB时,它会写入一个完整的块。

如果分区未对齐,则结果将是在第一个块中写入512字节,在第二个块中写入4K-512字节,从而迫使磁盘/ SSD / RAID执行两个读-修改-写周期,而不是一次写。



@AnkurTank:不,这里的问题似乎很好。
Zan Lynx

感谢您的关注,剩下的就是如何确认分区是否对齐。因为对我而言,parted仍在抱怨分区未对齐。此外,我尝试使用其他工具(例如gdisk),但无法交叉编译gdisk。所以我想,如果您对如何验证有任何建议会有所帮助。
ART

3

分区是块的序列,根据长期的惯例,一个块为512字节。

因此,分区可以从磁盘内512字节的任意倍数开始,“视为”一个非常长的字节字符串。

虽然底层磁盘硬件最初具有相同的512字节扇区大小,但现在使用更大的大小来提高效率。假设它是4096个字节。

出于兼容性原因,位于操作系统和硬件之间的固件仍“在扇区内对话”。因此,您问第一个扇区,然后硬件检索第一个块(4096字节),固件提取并提供适当的片。您询问第二个块,该块可能是从缓存中检索的。

到目前为止,扇区大小不匹配没有缺点。

但是操作系统还采用了块(通常称为集群)来提高效率,并将它们与分区对齐。因此,一个4扇区的群集将由扇区5、6、7和8组成。

当OS请求文件系统集群2时,固件将被询问逻辑扇区5、6、7和8。如果它们都在同一磁盘块中,则磁盘必须执行一次读取。

但是,如果分区从“错误的”扇区开始,则文件系统中的第一个群集将最终(简化)在扇区2、3、4和5处。然后它们可能是第一个磁盘块的一半(1 -2-3-4),第二半(5-6-7-8)。

现在,您需要多读一遍。对于1:1的操作系统与磁盘比率,这与将读取次数加倍相同。如果操作系统与磁盘的比率为2:1,一个群集是两个硬件磁盘块,则您将需要2 + 1 = 3次读取,处罚为50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

在上面,集群是每个都有2个扇区的4个​​硬件块(比率4:1)。在“偶数”扇区上对齐意味着要读取群集,则将这8个扇区读取转换为4个块读取。对齐奇数扇区意味着相同的8个扇区读取需要4 + 1 = 5个块读取,性能损失为25%(您每四个添加一个读取)。

如果您使用比例为4:1的未对齐磁盘,将其对齐将使其速度提高20%(每5个保存一个读取)。

要使分区“对齐”,您可以将其从磁盘开头的偏移量/设置为512b扇区的适当倍数,或者(取决于工具),您可以在磁盘开头插入一个小的分区,大小足以使下一个分区恰好在磁盘扇区边界上开始。在第二种情况下,虽然理论上您最多需要N-1个扇区,即很少的字节,但实际上,您可能需要浪费数百千字节(可能是整个兆字节),才能从您的计算机中获得最大的性能。数GB的硬盘驱动器。

(通过适当选择OS 群集大小,您可能可以恢复该空间,甚至更多)。


1
读取还不错,是的,您必须读取一些额外的数据,但是读取三个连续的块所花费的时间不会比读取两个块花费的时间多得多。真正的问题是写操作,要写出小于基础块大小的段,则需要读取数据,等待磁盘旋转完整的旋转,然后将其重写。
plugwash

1
同样,也无需创建额外的分区,也没有规则必须对磁盘上的所有空间进行分区。
plugwash

2

驱动器几乎总是划分为512字节的逻辑扇区,其他大小也是可能的,但由于兼容性问题很少使用。对于较旧的硬盘驱动器,这些是单独的扇区,可以单独写入。

直到2000年代中期,分区一直按照“圆柱”边界对齐。由于历史原因,“汽缸”通常为63个航段。扇区0包含引导扇区和分区表。柱面0中的后续扇区有时会继续包含有关引导加载程序的其他信息。第一个分区通常从汽缸1的起点开始。

大多数文件系统将扇区分组为更大的块(有时称为“集群”)。这些通常大小为4KiB。

在某些时候,驱动器供应商相信,如果他们也使用4K物理扇区,则效率会更高,但出于兼容性原因,他们将逻辑扇区的大小保持在512字节。如果主机一次读取或写入整个物理扇区,则速度很快。如果读取部分内容,则速度仍然非常快,因为驱动器可以丢弃不需要的数据。但是,如果主机仅写入物理扇区的一部分,则驱动器必须读取物理扇区,将读取的数据与来自主机的数据合并,然后重写修改后的扇区。这意味着等待驱动器旋转两次而不是一次。

如果文件系统的4K群集与驱动器的4K物理扇区对齐,则效果很好。不幸的是,传统的驱动器分区方式意味着第一个分区基本上被保证不会对齐,而后来的分区只有八分之一的对齐机会。因此,高级格式驱动器的供应商不得不赶紧使用各种工具来帮助人们重新调整分区。

类似的考虑因素也适用于RAID阵列和SSD。尽管RAID条带可能比单个文件系统群集大得多,但某些文件系统可能具有以两个边界的力量对齐的区域或类似区域。

当前的正常做法是将分区与1MiB边界对齐,这是一个足够大的2的幂,可以是所有常见块大小的倍数。



0

Dunno,如果这是有帮助的,但是我的理解是分区对齐是指将给定分区与基础RAID条带单元对齐。

显然,当您使用基于硬件的RAID或基​​于软件的RAID时,性能可能会降低。如果分区的起始位置未与RAID上创建的磁盘分区中的条带单元边界对齐,则可能会出现问题。

根据创建卷群集的因素,可以在条带单元边界上而不是在条带单元边界旁边创建卷簇。此行为可能导致未对齐的分区。

我可能已经走了,这可能与RAID无关;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.