为什么要调整 PV 的大小而不是添加新的 PV?

Mar*_*try 5 storage lvm

当您增加现有块设备的大小时(例如 /dev/sdc 从 vmware 获得 20 gigs,现在已增加到 40 gigs),您需要为 LVM 做一些工作以使用该空间。我见过的所有指南(123)都建议删除现有分区并在末尾添加额外空间重新创建它,然后运行 ​​pvresize。

除了调整 /dev/sdc1 的大小然后运行之外pvresize /dev/sdc1,您还可以创建 /dev/sdc2 并运行pvcreate /dev/sdc2并将其添加到 VG。

是否有技术或性能原因为什么调整大小比添加新分区更好,或者调整大小的方式一直是这样?

der*_*ert 6

总结:从纯技术的角度来看,它没有太大区别,但调整大小会更好。一旦添加了实际方面,添加新分区显然是赢家。

从严格的技术角度来看,新的 PV 有一些缺点:

  • 您将获得 LVM 元数据的另一个副本,这会消耗一些磁盘空间。如果你经常做 LVM 操作,这也会导致写放大(因为元数据被镜像到所有的 PV)
  • 可能有空余空间用于对齐
  • 略微增加 LVM 元数据(每个副本)的数量,以存储有关新 PV 的信息。
  • 如果你创建一个跨越两个 PV 的 LV,它不是连续的(由于额外的元数据和任何用于对齐的孔)。因此,例如,如果您使用该 LV 进行大的连续读/写,那么现在有一个搜索。

从实际的角度来看,对于任何合理数量的 PV,这些都不重要。元数据的额外副本首先很重要,但有一个 LVM 选项可以保留更少的副本(VG--metadatacopies或 PV --metadataignore)。

此外,从实用的角度来看,删除和重新创建分区比创建新分区更容易遭受管理错误(错字等),因为后者有更好的工具。并且发生的任何管理错误都可能对调整大小更具破坏性(因为您的数据在调整大小的分区上,但新分区上没有数据)。当您有多个图层时,情况会更糟;例如,LVM 下的 mdraid。根据您的-e选择,超级块可以位于阵列的末尾——当您调整分区大小时很有趣。

我想到了一个例外:如果由于某种原因您无法创建新分区。例如,也许您正在使用 DOS 分区表,并且您已经使用了所有四个主分区(没有创建扩展分区)。那你就别无选择了。