强制 fdisk 使用扇区 63 边界是否安全?

wou*_*205 5 partition fdisk

出于某种原因,我的 VPS(运行 Debian 8)的第一个分区与扇区 63(而不是 2048)对齐

Model: VMware Virtual disk (scsi)
Disk /dev/sda: 314572800s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start      End         Size        Type     File system     Flags
 1      63s        79971569s   79971507s   primary  ext4            boot
 2      79971570s  83875364s   3903795s    primary  linux-swap(v1)
        83875365s  314572799s  230697435s           Free Space
Run Code Online (Sandbox Code Playgroud)

现在我想调整分区大小以分配可用空间,不幸的fdisk是,第一个扇区从 2048 开始。但正如我在这里读到的那样,可以fdisk使用此命令强制从 63 开始。

fdisk -c=dos -u=cylinders /dev/sda
Run Code Online (Sandbox Code Playgroud)

这有多安全?此外,由于此方法已被弃用,这是否会损害我的 VPS 的性能?

Rui*_*iro 5

扩展大小时,由于它涉及删除分区,因此您必须以它开始的任何编号重新创建它。

否则它最多不会被识别,最坏的情况可能是数据损坏。

如果该 VPS 是用于创建其他 VM 的模板,我会不厌其烦地重新创建/移动开头的 * 和 * 数据/扇区到扇区 2048。

由于它是一个虚拟机,如果您确实想移动分区,我不会完全移动它,我会在侧面创建一个分区,复制数据并使用复制分区启动。这就是使用虚拟机的美妙之处,您有更多的空间进行测试。

附注。至于我个人的看法,性能上的小幅提升并不值得将其从 63 扇区移出。我会等待机器退役,它迟早会发生。

至于分区对齐:

您想让分区与 4096 字节边界对齐。通过这种方式,实际扇区通常肯定会与虚拟扇区对齐,并且 VMWare 将您的虚拟机管理程序/VM 将从硬件中提取更好的性能。

要了解为什么未对齐的分区是一个性能问题,请参阅 purestorage.com 上的这张图片:

未对齐

咨询行业中存储专家的白皮书,以更好地了解当前的最佳实践是什么:

来自 Microsoft 和 Linux 分销商(例如 Red Hat)的现代供应商支持的操作系统 (OS) 不再需要调整以将文件系统分区与虚拟环境中的底层存储系统的块对齐。

(例如“保留默认设置”)

但是,要继续回答原始问题,请访问几个链接的白皮书:

将您的分区与 VMDK 和 LUN 中的 4K 边界对齐是推荐的最佳实践

并且:

在每个设备的输出中,将start乘以扇区大小(fdisk输出中通常为512),然后除以4096。 如果结果是整数(整数),则为ALIGNED,如果不是,则为MISALIGNED .

因此,请检查有关在扇区 63 处创建分区的问题:

512 * 63 / 4096 = 7.875 => 错位

我可能会在未来使用并保留默认值 2048。让我们检查一下:

512 * 2048 / 4096 = 156 => 对齐

参考:

常见问题解答:VMware vSphere、其他虚拟环境和 NetApp 存储系统的来宾 VM 文件系统分区/磁盘对齐

如何在 VMware vSphere 5.x 环境中更正来宾 VM 数据分区对齐

如何在 VMWare ESX 中对齐块