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

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

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

pvresize /dev/sdc1您也可以创建 /dev/sdc2 并运行pvcreate /dev/sdc2并将其添加到 VG,而不是调整 /dev/sdc1 的大小然后运行。

是否存在技术或性能原因导致调整大小比添加新分区更好,或者调整大小是否只是按照以往的方式进行?

答案1

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

从严格的技术角度来看,新型光伏发电有一些缺点:

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

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

此外,继续从实际角度来看,删除和重新创建分区比创建新分区更有可能遭受管理错误(拼写错误等),因为后者有更好的工具。发生的任何管理错误都可能对调整大小造成更大的破坏(因为您的数据位于调整大小的分区上,但新分区上没有数据)。当你有多个层时,情况会更糟;例如,mdraid 低于 LVM。根据您的-e选择,超级块可以位于数组的末尾,这在您调整分区大小时很有趣。

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

答案2

正如您建议的那样,通过继续向同一个 VG 添加更多 PV 来增加 VM 的存储来横向扩展存储,这会变得很糟糕。

假设您需要将 VM 上的空间增加 10 倍 - 您是否要向 VG 添加新的 PV 10 倍?您的虚拟机最终将拥有无数的虚拟磁盘和附加的 PV。

lvextend当你每次resize2fs向 VG 添加一个 PV 以使用额外的空间时,会发生什么?您的 LV 及其上的文件系统将跨越多个 PV。如果执行 a,pvdisplay -m您将看到 LV 使用不同 PV 的范围。

系统越复杂,就越有可能以某种奇怪和意想不到的方式失败。

那是不是说“每个 VM 不超过 1 个 PV(虚拟磁盘)“!使用一个PV对于每个 VG,即:vg_system并且vg_data将是一个整洁的组织,将数据抽象成与操作系统分开的一堆。我只建议避免使用多个 PV相同的VM 中的 VG。

在此输入图像描述

相关内容