我经常需要扩展在 VMWare-ESX 6 上运行的 RHEL7 系统上的文件系统。通常,我会调整现有虚拟磁盘的大小并运行以下命令:
- 回显“ 1”> / sys / class / scsi_disk / 0:0:X:X / device / rescan
- pvresize /dev/sdX
- lvextend -l+100%FREE [卷组]
- resize2fs [挂载点]
我认为这是一个方便的解决方案,但我发现 RedHat、VMWare 和大多数其他 How2 都使用另一种方法。它们创建一个新分区并将其添加到卷组,而不是调整现有分区的大小。
看:
https://access.redhat.com/solutions/24770
我无法预测空间需求,所以我不得不经常调整大小,但我不想每次都创建一个新分区。他们使用并更喜欢第二种方法肯定是有原因的,我认为这是最糟糕的方法。有人能告诉我为什么吗?
亲切问候 Sascha
答案1
实际上,在您链接到的 RedHat 文章中,第一步是说:
从创建物理卷可用磁盘或者分区(例如 /dev/sdc1 作为分区)
在 VMWare 文章的链接中,顶部有一条注释:
笔记:这些步骤仅适用于 EXT3 文件系统。
所以你可以选择其中一种。在几乎所有情况下(从 RHEL7/GRUB2 开始——抱歉,我不能代表 VMWare)建议不要创建分区,因为你随后会创建如下方案。
Disk
|- MBR
|- |- LVM
|- |- |- Superblock
由于没有分区,曾经出现过对齐问题,这会导致性能下降,但是对于需要分区的系统,您可以补偿 LVM 中缺失的分区。
分区建议以前是基于这样的事实:其他操作系统无法读取 LVM 元数据,而且由于没有分区,磁盘将显示为未格式化,而不是显示为具有分区。实际上,即使在 Linux 中,如果没有分区,所有分区工具(fdisk、gdisk、parted 等)都会认为磁盘未使用。这是因为它们旨在查找分区。
如果您运行的是 VMware,我假设您是在有控制措施的企业环境中工作——SA 不会有任何理由对分区进行修改,除非机器被重新利用,否则您永远不会在机器上安装 Windows 或任何“其他操作系统”。因此,分区建议不适用。
旧版本 RHEL 中的最佳实践是进行分区: https://unix.stackexchange.com/questions/76588/what-is-the-best-practice-for-adding-disks-in-lvm
当然,使用整个磁盘的修订建议对于 RHEL 7 来说是新的,因为旧系统使用 GRUB 而不是 GRUB2。在这些旧系统上,保留分区的原因是 /boot 需要位于物理磁盘上。
就您而言,您指的不是操作系统磁盘,因此即使在较旧的系统中,您也可以安全地将 LVM 元数据直接保存在原始磁盘上,而无需任何分区。
有一种情况您需要使用保护性 MBR,那就是当您在客户操作系统中的物理驱动器上使用 LVM 而不是使用 vmdk 或其他类型的文件时。但正如 @shodanshok 所指出的,您可以使用虚拟机管理程序上的 lvm.conf 中的过滤器来隐藏它们。
如果这是 SAN 支持的物理磁盘,则这里有一个讨论: https://access.redhat.com/discussions/1488023
Oracle DBA 还建议使用原始磁盘: http://www.dba-oracle.com/real_application_clusters_rac_grid/raw_devices_linux.html
最后,Reddit 上也有关于此问题的讨论: https://www.reddit.com/r/sysadmin/comments/292qf2/lvm_physical_disk_vs_partitions/
几乎每个人都同意,使用整个磁盘。
如果您有兴趣,请进一步阅读有关从 LVM 支持的磁盘启动的信息。 https://unix.stackexchange.com/questions/136614/how-does-grub2-load-the-kernel-from-an-lvm-volume
http://forums.fedoraforum.org/showthread.php?t=263325
总结一下:使用整个磁盘。有一天,分区工具可能会完全在 *nix 中淘汰,取而代之的是 zfs 工具、btrfs 工具、lvm 或三者的某种组合。
答案2
根据您的命令,您正在使用原始设备作为物理卷。虽然完全没问题,但 Red Hat 通常建议创建保护性 MBR(即:对底层磁盘进行分区)并将分区用作物理卷。
常用工具fdisk
无法直接扩展分区大小,而是要求您手动删除/重新创建分区;因此在线常见问题解答通常会向您介绍更简单的方法 - 创建一个新分区并将其添加为新的物理卷。此外,为了让客户系统检测到分区扩展,通常需要重新启动它。另一方面,添加分区不需要重新启动。
无论如何,我同意为了扩展 vdisk 大小而不断添加分区并不是最好的方法;我通常更喜欢手动调整分区大小(在进行 MBR 备份后)并重新启动客户系统,然后pvresize
针对调整大小的分区发出命令。