在 LVM 中添加磁盘的最佳实践是什么

Mac*_*ver 27 storage linux lvm

根据 Linux 联机帮助页,您可以将原始磁盘和分区添加到卷组。

在其他文档(RedHat、CentOS 或 openSUSE)中,所有示例都是指将分区添加到 VG 而不是原始磁盘。什么是常见(最佳)实践?

slm*_*slm 22

RHEL6 LVM 管理指南

根据RHEL 6 Logical Volume Administration Guide,建议如果您要将整个驱动器用作 LVM 卷组中的物理卷,则仍应对其进行分区:

摘自指南“RHEL6 逻辑卷管理器管理 LVM 管理员指南”

2.1.2. 磁盘上的多个分区

LVM 允许您从磁盘分区创建物理卷。通常建议您创建一个覆盖整个磁盘的分区来标记为 LVM 物理卷,原因如下:

行政便利

如果每个真实磁盘只出现一次,那么跟踪系统中的硬件会更容易。如果磁盘出现故障,情况尤其如此。此外,单个磁盘上的多个物理卷可能会在启动时导致有关未知分区类型的内核警告。

LVM 操作指南

11.1LVM Howto 的初始化磁盘或磁盘分区说明如下:

摘自 LVM Howto

对于整个磁盘:

在磁盘上运行 pvcreate:

# pvcreate /dev/hdb
Run Code Online (Sandbox Code Playgroud)

这会在磁盘的开头创建一个卷组描述符。

不建议

不建议将整个磁盘用作 PV(而不是跨越整个磁盘的分区),因为它可能会产生管理问题。查看磁盘的任何其他操作系统都不会识别 LVM 元数据并将磁盘显示为空闲,因此它很可能会被覆盖。LVM 本身可以很好地处理整个磁盘 PV。

如果您收到 LVM 无法初始化带有分区表的磁盘的错误,请首先确保您正在操作的磁盘是正确的。如果您非常确定它是,请运行以下命令:

危险的

以下命令将破坏正在操作的磁盘上的分区表。非常确定它是正确的磁盘。

# dd if=/dev/zero of=/dev/diskname bs=1k count=1
# blockdev --rereadpt /dev/diskname
Run Code Online (Sandbox Code Playgroud)

结论

这些是我在确定是否应该在将 HDD 上的单个分区添加为物理卷之前对其进行格式化时所信任的主要来源。正如其他答案所指出的(和评论),您在没有分区的情况下添加整个驱动器不会错。

对我来说,我把它比作系好安全带开车。如果你从来没有出过事故,那么安全带就没有任何用处,但如果我真的出过事故,我肯定很高兴我戴着它。

后续行动#1(针对@Joel 的评论)

我认为以上 2 个指南是 2 个很好的理由。它们都是官方指南,一个来自 RH,另一个是 LVM 团队整理的 Howto。

这是另一个原因。通过不对硬盘进行分区,硬盘上没有明确设置 ID 来清楚地标识它的使用方式。

 fdisk -l
 ...
/dev/sda6       318253056   956291071   319019008   8e  Linux LVM
Run Code Online (Sandbox Code Playgroud)

作为系统管理员,对于我自己和其他人来说,与没有 8e 的情况相比,如何使用此特定驱动器的意图要明显得多。

我很欣赏你所说的@Joel,我也在一家财富 500 强公司工作,在那里我们在桌面/服务器物理/虚拟部署以及大型存储部署中都有 100 多个 Linux 部署,所以我明白你的意思说。

  • 我是根据个人经验说的,我们只需要为很多卷增加空间。它们是分区的,所以我们遇到了内核不放弃分区表的各种问题。因此,我们被迫重新分区,然后重新启动,导致服务无缘无故中断。至于“查看磁盘的任何其他操作系统将无法识别 LVM 元数据并将磁盘显示为空闲,因此它很可能会被覆盖”,这根本不是真的。在 Windows 中,它只会显示为未使用的磁盘(但管理员更清楚),他们在谈论什么操作系统? (2认同)
  • 到目前为止,没有人说磁盘分区是首选,实际上并没有给出有效的理由,并且实际上鼓励人们做一些最终在企业情况下肯定会咬他们的事情(你最终会想要更多空间) . 我们得到的只是关于它将如何在其他操作系统中显示为未分配的模糊回答(好像这是一个问题,Windows 也不会识别分区上的 ext3)或关于它的未经证实的陈述不止一次出现或以某种方式使跟踪存储更容易。 (2认同)
  • @Joel - 和我一样。我感谢讨论。很高兴我们都可以带来我们的各种实践经验,并尝试为这个特定主题提供比目前网络上提供的更好的指导。至少,我们至少将大量零散的文档集中到一个位置。8-)。 (2认同)
  • @Bratchley:RH 建议似乎主要是“为什么不在同一磁盘上创建*多个* LVM 分区” (2认同)
  • @Bratchley:我的意思是在文档中,以下段落处理磁盘上多个LVM分区的缺点,而不是没有分区......(这似乎没有讨论) (2认同)

poi*_*ige 11

最好有一些公认的描述符(元数据),而 MBR 确实是这样的描述符。甚至 GPT 也使用旧的基于 MBR 的分区表来指示它的存在。

确实,您会丢失一些磁盘空间,但同时了解磁盘上的内容(以及位置)的优势是不言而喻的。


Bra*_*ley 5

在占用 100% 磁盘空间的分区上创建物理卷几乎从来都不是正确的做法。我说“几乎”只是因为我采取的态度是,仅仅因为我想不出做某事的理由,这并不意味着没有理由去做。也就是说,如果要使用 LVM,我想不出将分区以 100% 的空间放在磁盘上的单一理由。

你没有得到任何明显的好处来换取一些分割的刚性。如果这些是 SAN 支持的物理卷,并且您这样做了,则只有两种方法可以扩展卷组中的存储空间:

  1. 呈现一个新的更大的 LUN,将其添加到卷组中,将您莫名其妙分区的 LUN 移出,将其从卷组中删除,并告诉 SAN 人员取消呈现它。这可能可行,并且可以在线完成(会影响性能,并假设它们在 SAN 端的存储池中有足够的 SAN 空间来同时保存这两个 LUN),但它是可行的。
  2. 唯一的另一种方法是重新处理分区,这也是人们喜欢精心设计的卷管理方案(如 btrfs、lvm、zfs 等)的部分原因。您可以编辑物理卷的分区表并希望partprobe让您读取新的大小,但根据我的个人经验,这只能在 2 次中大约 1 次有效,并且它需要您卸载文件系统(即强制您离线另一个原因)像卷管理器)。

如果你做一个完整的磁盘,SAN 管理员可以为你扩展 LUN,你重新扫描 SCSI 总线,它选择 LUN 的新大小,然后你做一个pvresize扩展物理卷。所有这些都无需使任何文件系统脱机。

离开 MBR 位,您通常不会从一个系统中获取 PV 并将它们呈现给企业环境中的另一个。即使您这样做了,如果是 LVM,您也会希望您将向其提供 LUN 的操作系统支持 LVM。否则把它呈现给他们有什么意义?如果是,那么您将看到所有物理卷信息、卷组信息和逻辑卷(假设这是卷组中唯一的 PV)。所以它以这种方式自我记录。

基本上:将整个磁盘分区为 100% 就像要求给你带来苹果派的服务员也给你带来一把刀。当他这样做时,您将刀扔到一边,然后将脸埋在馅饼中。意思是:如果你只是打算一次性使用它,那么坚持使用一种工具将某些东西分成更小的部分是没有意义的。

  • 理论上你没有错,实际上你会看到日常问题,例如操作系统和安装程序(甚至 Linux)提供格式化这个所谓的免费磁盘 - 因为它们不识别 LVM。同时,使用分区没有缺点(性能方面)。所以在家庭用户、桌面、多操作系统环境中,坚持分区更安全。 (2认同)