假设我有一个 LVM 逻辑卷,我将把它传递给虚拟机(Xen,但我认为这并不重要)以用作整个磁盘。虚拟机会将其视为 /dev/xvda 并期望其上有分区表。
诸如 fdisk 之类的工具喜欢建议第一个分区的起始扇区为 63,但考虑到主机上可能有 4KiB 扇区,我认为这可能会导致未来的对齐问题,从而引起性能问题。
确定第一个分区的起始扇区的安全方法是什么?起始位置应为引导加载程序留出多少空间?
我认为,如果我坚持使用 8 的倍数作为起始扇区(因此适用于 512B 或 4,096B 扇区的存储),那么就可以覆盖对齐。由于 fdisk 似乎喜欢扇区 63,也许最好从扇区 64 开始?
答案1
您可以使用块设备而不对其进行分区。是的,Linux 会打印一条消息,表示它无法在设备上找到分区表,但这无害。
话虽如此,只有旧版 fdisk 建议使用扇区 63 作为第一个分区。新版 fdiskfdisk
则parted
使用 4MiB 作为第一个分区的起始位置。
因此,如果您不需要客户机上的 LVM 功能(LVM 上的 LVM),那么最好使用原始分区并在主机上正确对齐它们(4KiB 与 512B 扇区的问题比 RAID 条带对齐要小)。
答案2
首先,只有当硬盘基于 RAID/SAN 时,错位问题才会出现。其次,最佳起始扇区取决于 SAN/RAID 的“条带大小”,因为 RAID 的默认条带大小可能小于 512KB,所以从扇区 256 开始应该是安全的。或者从扇区 512(1Mb)开始以确保万无一失
更多关于 http://honglus.blogspot.com/2009/08/align-partitions-on-stripe-boundary-for.html
答案3
您可以使用 gparted,它提供与 1MiB 边界对齐的功能。我认为在大多数情况下,它都是安全的选择,我个人将此方案作为满足我所有需求的默认方案。其他 Linux 工具也可能支持此方案,但我只使用过 gparted。