用于正确对齐 ~250GB SSD 分区的最佳开始和结束扇区 (CentOS 7)

用于正确对齐 ~250GB SSD 分区的最佳开始和结束扇区 (CentOS 7)

我有一个 2TB 三星 EVO SSD,我刚刚安装它来替换旧的、较小的型号。这是多个操作系统安装的共享资源。我的驱动器上有 4 个分区,因为并非所有分区都用于共享资源的每个操作系统。我做了 bonnie++ 测试,该驱动器的性能大约是我预期的一半。

fsidk -l 的输出是,

$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes, 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x01033206

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        4096   511991549   255993727    7  HPFS/NTFS/exFAT
/dev/sdb2       511995904   716795903   102400000   83  Linux
/dev/sdb3       716800000  1740799999   512000000   83  Linux
/dev/sdb4      1740804096  3907029167  1083112536   83  Linux

我认为这是一个对齐问题,但我无法确定正确的开始和结束扇区。

尽管物理扇区大小被列为 512,但我相信它实际上是 4096。这意味着分区应该从 4096 倍数的扇区边界开始。第一个分区(抱歉,在本例中是 ntfs)从扇区 4096 (2MB) 开始,所以看起来是正确的,但我不确定它在哪里应该结束。根据上面的打印输出,该分区覆盖了 255993727 个块。该值除以 4096 为 62,498.4685059,它不是整数,因此看起来末端扇区不是最佳的。

分区需要 ~250GB。我不知道如何计算结束扇区应该在哪里。我使用 GParted 创建分区,您只能指定分区大小(以 MB 为单位)。您可以对齐到 MiB、圆柱体或不对齐,但我也不知道那里的正确选项。如果更有意义的话,我可以使用 fdisk 来进行分区。

如果第一个分区未最佳对齐,其他分区可能也不会最佳对齐。我可以通过调整分区 sdb1 的大小以在不同的扇区结束来解决此问题吗?如果是的话,分区大小应该是多少MB?

我想如果我能回答的话我就能弄清楚剩下的事情。如果我需要发布更多信息,请告诉我。

LMH医药化学

答案1

最佳实践是将分区与 1MiB 边界对齐。这确保了与扇区、块和其他分段(例如 raid、lvm 等)的最佳兼容性

基本:

1 sector = 512byte  
1Kib = 1024byte or 2 sectors  
1MiB = 1024 * 1KiB = 1024 *1024byte = 1048576byte or 2048 sectors  
1GiB = 1024 * 1MiB = 1024 * 1024 * 1024byte = 1073741824byte or 2097152 sectors  

由于 1MiB 边界为 1048576 字节,等于 2048 个扇区,因此从扇区 4096 开始的第一个分区与 2MiB 边界对齐。

如果您希望第一个分区有 250GiB,那么它是尺寸应该
250GiB = 250 * 1024MiB = 256000MiB
256000MiB * 2048 sectors/MiB =524288000sectors

最后一个扇区第一个分区的大小应为
(起始扇区) - 1 + (扇区大小)
4096 -1 + 524288000 =524292095

然后,您的第二个分区可以从扇区 524292096 开始,该扇区与 256002MiB 边界对齐
524292096 (sectors) / 2048 (sectors per 1MiB) = 256002MiB (boundary)

如果您遵循此方案,那么您可以计算所有后续分区的开始、大小和结束。

相关内容