如何在虚拟磁盘增长后在线扩展 Linux PV 分区

Yve*_*tin 19 virtualization linux partition lvm vmware-esx

VMware 允许在线扩展虚拟磁盘的大小 - 当 VM 运行时。Linux 系统的下一个预期步骤是:

  1. 扩展分区:删除并创建一个更大的分区 fdisk
  2. 扩展 PV 大小 pvresize
  3. 使用自由区进行lvresize操作
  4. 然后resize2fs对于文件系统

但我坚持第一步:fdisksfdisk仍显示旧大小的磁盘。

由于虚拟 LSI 逻辑控制器,我的磁盘是连接的 SCSI 虚拟磁盘。

如何在不重启的情况下刷新 Linux 内核中可用的虚拟磁盘大小和分区表信息?

据我所知,由于 VMWare 工具,所有这些步骤都可以用于正在运行的 Windows,无需重新启动,甚至无需任何用户操作。在 Linux 上,我也希望在线完成所有步骤,而且我已经知道步骤 2、3 和 4 可以在线工作。但是第一个 - 更改分区表中声明的分区大小(仍然)似乎需要重新启动。

更新:我的系统是内核为 2.6.26 的 Debian Lenny,我扩展的磁盘是主磁盘,其中包含一个包含“/”的“根”LV 的大 PV。

J. *_*ker 17

提供的其他答案没有解决您的问题,我已经确定了重新扫描已连接磁盘的正确命令。

我们必须重新扫描您已经连接的磁盘,首先确定您要重新扫描的磁盘。

ls /sys/class/scsi_disk/
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我看到一个名为 的符号链接0:0:0:0,因此我们重新扫描了这个 scsi 磁盘。

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
Run Code Online (Sandbox Code Playgroud)

我也刚刚扩展了我的 VMware 磁盘,不得不搜索其他答案以找到正确的命令。希望这将使未来的搜索者免于徒劳的尝试。


小智 14

您无需重新启动即可执行此操作。在使用添加的空间更新分区之前,pvresize 不会调整物理卷的大小。在您可以重新扫描驱动器以首先查看额外空间之后,您必须 fdisk 分区并使用新的完整磁盘大小重新创建它。

更多信息:http : //theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/


Yve*_*tin 5

只要根文件系统/安装在已调整大小的磁盘上,分区表和磁盘大小不会被 Linux 2.6.26 的 SCSI 重新扫描刷新。

我真的希望随着更新的内核版本很快会变得更好。

所以我不得不:

  • 第一次重新启动以查看新磁盘大小 fdisk
  • 删除旧的主 PV 分区 fdisk
  • 创建一个相同编号的分区条目并开始扇区直到磁盘结束
  • 第二次重新启动或仅当未安装时才partprobeparted包运行/
  • 现在我可以运行pvresize以获取新的可用空间,lvextendresize2fs为文件系统分配更多空间

我被建议简单地丢弃那个愚蠢的旧分区表并pvcreate直接在设备上运行,因为 Grub2 能够直接从 LVM 分区上的文件系统加载内核映像。但是这样的设置对于分发安装程序来说根本不明显。

更新:我刚刚检查了运行内核 3.16 和parted3.2 的Debian GNU/Linux Jessie 8.2 ,partprobe现在在分区表版本后成功cfdisk,无需重新启动。pvresize之后立即工作。

如果您想扩展存储为逻辑 PC 分区的 PV,例如/dev/sda5在扩展主分区上/dev/sda2,请不要使用fdisk但更喜欢parted

parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5
Run Code Online (Sandbox Code Playgroud)