LVM 需要分区表吗?

cat*_*nts 26 lvm parted

看来我能够在原始块设备之上成功执行 pvcreate ,而无需采取创建分区表的步骤。然后我就可以创建一个卷组、逻辑卷,最后是一个文件系统,挂载它,并通过 dd 进行测试。

它似乎有效,但我需要进行健全性检查。这是一个坏主意吗?

如何在原始块设备上创建 GPT 或 MBR 分区表?

如何使用 parted 显示正在使用的分区表类型?我试过这样做:

分开,选择/dev/sdb,打印,我得到:

错误:/dev/sdb:无法识别的磁盘标签

但是该驱动器目前正在使用中,我可以对其进行读写。这是在没有分区表的原始块设备上执行 LVM 时的预期输出吗?有什么想法吗?

谢谢!

Phi*_*lip 32

即使 LVM 本身并不关心有一个真正的分区,创建它的一个原因是通知分区程序“那里有东西”。一个噩梦场景是新的系统管理员诊断服务器上的启动问题、启动分区程序、查看未分区的磁盘并得出驱动器损坏的结论。

我认为创建 LVM 分区没有缺点。你?

  • 缺点:如果你扩展块设备并且没有使用分区表,你可以立即使用 pvresize 扩展物理卷。如果您使用了分区表,则必须先删除该分区并使用更大的大小重新创建它。 (10认同)
  • +1 的场景。在现实生活中太有可能了。 (2认同)
  • +1 有见地。 (2认同)
  • 谨慎行事是好的,但把问题抛回去并不能得到很好的答案。不需要这个分区,有一个分区也有缺点。 (2认同)

3di*_*nce 16

虽然您可以从原始块设备中创建一个 pv,但我通常会尽量避免它,因为它可能会导致对块设备的用途产生混淆。如果 LVM 缺少配置文件,它也可能会破坏 LVM 可以使用的一些自动发现例程。

这是使用 parted 创建一个 GPT 的示例,该 GPT 具有 1 个分区,即整个驱动器,并将分区标志设置为 lvm。mkpart 要求您指定文件系统,但它不会创建文件系统。似乎是 parted 中的一个长期存在的错误。此外,1M 的起始偏移量是为了确保您获得正确对齐。

parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on
Run Code Online (Sandbox Code Playgroud)

  • “mkpart 要求您指定文件系统,但它不会创建文件系统。” 感谢您提到这一点,这对建立理智非常重要!:) (3认同)

Pau*_*ers 6

如果您直接在 KVM 来宾内的虚拟存储设备上创建 PV,那么您会注意到来自来宾的逻辑卷在管理程序上可见。如果您在多个来宾中使用相同的逻辑卷和卷组名称,这可能会使事情变得非常混乱。您可能还会在虚拟机管理程序上收到一些警告,说它找不到设备。

例如,我在我的测试虚拟机管理程序上重新创建了这个问题:

[root@testhost ~]# vgs
  Couldn't find device with uuid dCaylp-1kvL-syiF-A2bW-NTPP-Ehlb-gtfxZz.
  VG          #PV #LV #SN Attr   VSize   VFree  
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_testhost   1   8   0 wz--n- 237.98g 120.15g
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到 2 个同名的卷组,它们都来自不应真正出现在虚拟机管理程序上的来宾。

出于这个原因,我建议您在创建 PV 并将其添加到卷组之前,首先使用 parted 或 fdisk 在那里创建一个 KVM 分区(如 3dinfluence 的先前回答所示)。这样,来宾逻辑卷对虚拟机管理程序保持隐藏。

  • 如果您在 /etc/lvm/lvm.conf 中使用 `filter` 来过滤掉 VM 直接使用的所有块设备,则可以避免这种情况。 (3认同)

Mir*_*ici 6

即使过去我使用 MS-DOS disklabel 或 GPT disklabel 作为 PV,我现在更喜欢在主块设备上直接使用 LVM。没有理由使用 2 个磁盘标签,除非您有一个非常具体的用例(例如带有引导扇区和引导分区的磁盘)。

直接使用 LVM 的优点是:

  • 简单 - 您不需要使用 2 套工具
  • 灵活性 - 您可以使用 pvmove 将数据从一个磁盘卷移动到另一个磁盘卷而无需停机,您可以使用快照和精简配置
  • 您不需要运行 partprobe 或 kpartx 来告诉内核您创建/调整大小/删除了一个卷。和partprobe / kpartx可能会失败,如果分区正在使用,则可能需要重新启动
  • 与在 MS-DOS 或 GPT 磁盘标签上使用 LVM 相比,性能可能更好

  • 不知道为什么每个人都想要那个分区 - 但在这里回答“为什么不”的方向。这个答案更好 - 如果您要使用整个磁盘,则不需要分区。拥有分区也会使调整/扩展磁盘的大小更加痛苦。 (4认同)

小智 5

根据 RedHat 的 LVM 指南,第 4.2.1 节 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/physvol_admin

他们说没有必要有分区表,他们甚至建议我们如果我们将整个磁盘用于 VG(卷组),他们甚至建议我们销毁它,除非我们只想包括它的一部分(分区)。