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

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

  1. 扩展分区:使用fdisk删除并创build一个更大的分区
  2. pvresize扩大光伏尺寸
  3. 使用免费的范围lvresize操作
  4. 然后调整文件系统的resize2fs

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

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

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

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

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

你可以做到这一点,而无需重新启动 pvresize不会调整物理卷的大小,直到使用添加的空间更新分区。 您必须对磁盘进行分区并重新创build磁盘,然后重新扫描驱动器,以便首先看到多余的空间。

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

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

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

 ls /sys/class/scsi_disk/ 

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

 echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan 

我也只是扩展了我的VMware磁盘,并且不得不扫描其他答案来find正确的命令。 希望这可以节省未来的search者的徒劳企图。

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

我真的希望新的内核版本很快会好起来。

所以我不得不:

  • 首次重新启动以查看fdisk的新磁盘大小
  • 删除fdisk的旧的主PV部分
  • 使用相同的数字和开始扇区创build一个分区条目,直到磁盘结束
  • 重新启动第二次,或者只有在/未被安装的情况下才能从parted软件包运行partprobe
  • 现在我可以运行pvresize来获得新的可用空间, lvextendresize2fs为文件系统分配更多的空间

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

更新:我刚刚检查了Debian GNU / Linux Jessie 8.2运行内核3.16并parted 3.2, partprobe现在成功后,分区表版与cfdisk无需重新启动。 pvresize后立即工作。

如果要扩展存储为逻辑PC分区的PV(例如扩展主分区/dev/sda2 ,请不要使用fdisk而应该使用parted

 parted /dev/sda2 -1 parted /dev/sda5 -1 pvresize /dev/sda5 

在创build更大的分区之前,您需要重新扫描磁盘。

在Centos中,你可以通过

 ls /sys/class/scsi_host 

然后为每个主机

 echo "- - -" > /sys/class/scsi_host/host#/scan 

(用数字代替#)

上面还有一个步骤是扩大分机或任何您使用的文件系统,一旦你调整分区的大小。

尽pipe在某些时候您仍然需要卸载该分区。 我们倾向于添加第二个vmware磁盘,并使用lvm扩展到新磁盘(如果是replace,则减less旧磁盘),因为这样可以实现整个过程。

您没有提供足够的详细信息来告诉您需要的确切命令,但实际上您需要使用lvextend命令来扩展逻辑卷,然后使用e2fsck命令,然后使用resize2fs命令来实际扩展文件系统。 这些命令中的每一个都需要额外的参数,特别是设备和文件系统信息,我们不能提供,但是你需要知道这些参数,只需使用–help选项来告诉你每个命令如何使用它们。您可能会最终使用pvdisplaylvdisplaymount命令来帮助填写这些参数。

作为一个更新的答案,在Ubuntu 16.04.1上,我能够做到以下操作,将容量从1024GB调整到1.4TB:

 echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan pvresize /dev/sdb lvextend -l +100%FREE /dev/nvr01-opt/opt resize2fs /dev/nvr01-opt/opt 

不需要fdisk ,空间立即可用。

没有人发布一套完整的命令,所以在这里我们去:

 # the following steps are for adding a new HDD apt install scsitools rescan-scsi-bus pvcreate /dev/sdX vgextend /dev/vgname /dev/sdx lvextend -l +100%FREE /dev/vgname/root resize2fs /dev/vgname/root #if resizing existing HDD fdisk /dev/sdX create new partition pvcreate /dev/sdXn vgextend /dev/vgname /dev/sdXn lvextend -l +100%FREE /dev/vgname/root resize2fs /dev/vgname/root