![可以正确对齐 GPT 分区的 Linux 工具](https://linux22.com/image/1402394/%E5%8F%AF%E4%BB%A5%E6%AD%A3%E7%A1%AE%E5%AF%B9%E9%BD%90%20GPT%20%E5%88%86%E5%8C%BA%E7%9A%84%20Linux%20%E5%B7%A5%E5%85%B7.png)
正确的分区对齐可确保数据访问期间的理想性能。不正确的分区对齐会导致性能下降,尤其是对于 SSD(例如内部页面大小为 4,096 或 8,192 字节)、具有四千字节(4,096 字节)扇区的硬盘和 RAID 卷。
--http://www.thomas-krenn.com/en/wiki/Partition_Alignment
您可能仍然想知道正确的分区对齐到底有多重要。那么看看这个, http://www.ibm.com/developerworks/library/l-4kb-sector-disks/#benchmarks
最好的 Linux 磁盘分区和对齐检查实用程序是sfdisk
。我用了 10 多年,到现在它无法处理 GPT 分区。
我知道事实上的 Linux 磁盘分区工具是gparted
,它可以处理 GPT 磁盘。但恕我直言,它处理得并不好,因为默认对齐选项是MiB
,恕我直言,这是错误的。好吧,严格来说,这不算错误,但至少不是最佳的,也就是说,做得不够好。
根据我的发现(来自 MS,http://support.microsoft.com/kb/300415/en-us),
所有膜生物反应器磁盘,大小或偏移参数是四舍五入至气缸对齐。 在谷氨酰胺磷酸酶磁盘,大小或偏移参数是四舍五入至扇区对齐。
如果这是真的,那么gparted
GPT 的默认对齐选项就是错误的。但问题是,唯一的其他合理选项是对齐到柱面,这有点过分,而且没有对齐到扇区的选项。这就是我的问题,因为我需要寻找其他地方。
我发现了一个
如何使用 parted 对齐分区以获得最佳性能
http://rainbow.chard.org/2013/01/30/how-to-align-partitions-for-best-performance-using-parted/
它有一个好的开始,但最终却对 GPT 磁盘进行了整个分区(100%),这无法解释如何对齐分区以获得其他/正常分区的最佳性能。
那么,哪些 Linux 工具可以对 GPT 进行正确对齐的分区?
答案1
最好的 Linux 磁盘分区和对齐检查实用程序是
sfdisk
。我用了 10 多年,到现在它无法处理 GPT 分区。
你没有说你是如何做到这一点的,所以我有点困惑,因为据我所知sfdisk
没有任何对齐选项可言。(不过,你可以以 KiB、MiB 等为单位指定某些值。)请注意,要设置的选项磁柱/磁头/磁扇区 (CHS)如今,几何值 100% 毫无用处。CHS 在 20 世纪 70 年代和 80 年代很有用,但到了 20 世纪 90 年代中期,它只不过是一种方便的虚构。到了 20 世纪 90 年代末,它已经成为一种不方便的虚构,而今天它要么比无用更糟糕,要么无关紧要,这取决于你用 CHS 做什么。这既是因为高级格式、RAID 和 SSD 配置的新对齐需求,也是因为 CHS 的最大容量约为 8GiB,这意味着它在大多数现代磁盘上都被忽略了。
我知道事实上的 Linux 磁盘分区工具是
gparted
,它可以处理 GPT 磁盘。但恕我直言,它处理得并不好,因为默认对齐选项是MiB
,恕我直言,这是错误的。好吧,严格来说,这不算错误,但至少不是最佳的,也就是说,做得不够好。
最小最佳对齐值因磁盘而异,但在大多数磁盘上,最佳对齐值是 2 的幂的倍数,例如 4KiB、256KiB 或 512KiB。因此,就性能而言,使用 1MiB 对齐对于大多数磁盘来说是最佳的,尽管少数磁盘(主要是 SSD)的值高于此值。
请注意,在需求较小的对象上设置 1MiB 对齐值最多会导致磁盘开头浪费不到 1MiB 的空间(也许在分区之间浪费更多的空间,但不确定)。现代磁盘上浪费 1MiB 的空间微不足道。例如,在 1TB 磁盘上,如果我的算术正确的话,1MiB 是总磁盘空间的 0.0001%。我不会担心这么少量的磁盘空间浪费。
根据我的发现(来自 MS,http://support.microsoft.com/kb/300415/en-us),
所有膜生物反应器磁盘,大小或偏移参数是四舍五入至气缸对齐。 在谷氨酰胺磷酸酶磁盘,大小或偏移参数是四舍五入至扇区对齐。
我不太熟悉 Microsoft 工具,但我知道 Windows GUI 工具自 Windows Vista 以来一直默认在所有磁盘上使用 1MiB 对齐。如果DISKPART
该页面上描述的文本模式仍在进行柱面对齐,那么在我看来它已经严重损坏了。没有什么今天应该使用 CHS 或气缸对准,除非可能使用它来支持非常旧的操作系统。(我上次检查时,Linuxcfdisk
仍然使用柱面对齐。因此,我认为它有问题。)
我怀疑“扇区对齐”的意思是默认指定扇区中的值。当然,使用未对齐的分区(这才是“扇区对齐”的真正含义)可能会导致大多数现代磁盘的性能下降。
如何使用 parted 对齐分区以获得最佳性能 http://rainbow.chard.org/2013/01/30/how-to-align-partitions-for-best-performance-using-parted/
它有一个好的开始,但最终却对 GPT 磁盘进行了整个分区(100%),这无法解释如何对齐分区以获得其他/正常分区的最佳性能。
不,该网站描述了对齐单分区在磁盘上。您只需将相同的原则应用于所有后续分区。换句话说,如果您发现磁盘的最佳值是 2048 扇区对齐,则应确保每个分区都以该值的倍数开始,例如 2,097,152 或 15,403,008。
为了回答这个帖子标题中隐含的问题,我自己的GPT fdisk(gdisk
、、sgdisk
和cgdisk
),在大多数 Linux 发行版的gdisk
或gptfdisk
包中都提供了此功能,它支持设置您喜欢的任何对齐值。默认值为 1MiB(大多数磁盘上为 2048 个扇区),但您可以使用l
专家菜单上的选项进行调整(在 中gdisk
;此系列中的其他工具的详细信息有所不同)。不幸的是,我发现应该返回对齐数据的 Linux 系统调用不可靠(尽管它们最近比几年前更可靠了)。因此,您可能需要查找型号规格或检查 RAID 设置以了解最适合您磁盘的设置。