请帮我弄清楚我的虚拟机 LVM2 分区上的可用空间发生了什么情况

请帮我弄清楚我的虚拟机 LVM2 分区上的可用空间发生了什么情况

我在 VirtualBox 5.0 中运行一个 Ubuntu Server 16.04 VM,并连接了一个 20GB 的驱动器(最初在名为“box-template”的 VM 中创建为 10GB,然后在 VM 克隆和重命名后扩展)。

今天,当我尝试使用终端自动完成功能时,我收到一条消息,指出-bash: cannot create temp file for here-document: No space left on device。当我运行时df -i,我看到以下输出:

media@box-library:~$ df -i
Filesystem                            Inodes  IUsed     IFree IUse% Mounted on
udev                                  251035    475    250560    1% /dev
tmpfs                                 256039    609    255430    1% /run
/dev/mapper/box--template--vg-root    491520 491520         0  100% /
tmpfs                                 256039      2    256037    1% /dev/shm
tmpfs                                 256039      3    256036    1% /run/lock
tmpfs                                 256039     16    256023    1% /sys/fs/cgroup
/dev/sda1                             124928    313    124615    1% /boot
//10.0.0.5/media2                  183148544  23791 183124753    1% /media/media2
//10.0.0.5/media1                  183148544   7496 183141048    1% /media/media1
tmpfs                                 256039      4    256035    1% /run/user/1000

这时我发现这个答案这让我稍微更好地理解了这个特定分区到底是什么。我试着查看指南对于 LVM,但不幸的是我对 Linux 的了解有限,我甚至不知道从哪里开始阅读该文档......

当我从 GParted 实时 CD 启动我的虚拟机时,我的“19.52 GiB”box-template-vg分区仍然显示“10.03 Gib”可用。

VM GParted 屏幕截图

我是不是漏掉了什么重要的东西?还是我在克隆虚拟机和调整驱动器大小时做错了什么?


编辑:运行评论请求的屏幕截图lvscan

在此处输入图片描述


编辑2:包括输出lvdisplay

在此处输入图片描述


顺便提一下:我实际上克隆了两次“模板”虚拟机,但另一个虚拟机目前不需要更多驱动器空间。df -i该虚拟机上的命令显示“IUse%”列的容量为 35%,因此将来如果/当我需要调整该机器上的虚拟驱动器大小时,我需要记住什么特别的事情来防止出现此问题吗?

答案1

LVM 有三个抽象级别:

“物理卷”(PV),顾名思义,是基本的“物理”层。这是指您的硬件以及您已增加的内容sudo pvresize /dev/sda5sudo pvdisplay现在应该显示完整大小和已使用的大小。

“逻辑卷组”(VG) 是一个或多个 PV 的分组层。您可以使用 查找 VG 的名称和大小sudo vgdisplay。此名称应为“box--template--vg”;查找此名称。调整 PV 大小时,VG 应自动扩展。

“逻辑卷”(LV) 是您可以像普通分区一样使用的顶层。一个 VG 可以有一个或多个 LV。LV 的名称和大小以 显示。LV 的名称是“box--template--vg-root”,如( )sudo lvdisplay的设备列中所示。df/dev/mapper/box--template--vg-root

扩展 VG 时不会自动增加。因此您必须扩展 LV:。sudo lvresize -r -l100%VG box--template--vg-root这将调整 LV 的大小以使用完整 VG(-l100%VG),然后增加文件系统的大小/-r),假设这可以在线增加(就像 ext4 那样)。

编辑:我刚刚看到您的输出lvdisplay。因此,用 增加这个sudo lvresize -r -l100%VG /dev/box-template-vg/root。或者,相同的是sudo lvextend -r -l +100%FREE /dev/box-template-vg/root

答案2

延长后也Volume Group必须Logical Volume延长:

  1. 使用以下命令扩展逻辑卷:

    sudo lvextend -l +100%FREE /dev/box-template-vg/root
    
  2. 首先运行文件系统检查以确保扩展后一切正常:

    sudo e2fsck -f /dev/box-template-vg/root
    
  3. 扩展文件系统以容纳新的空间:

    sudo resize2fs /dev/bpx-template-vg/root
    
  4. 关闭 gparted 并重新启动VM

信息:

  1. 获取Logical Volume Group运行的路径:

    sudo lvscan
    
  2. 如果尚未激活,请激活您的分区以GParted启用步骤2并工作。3

  3. 扩展逻辑卷的基本步骤:

    • 脚步:

      • 卸载逻辑卷
      • 扩展卷组:
        • $ sudo vgextend myvolumes /dev/physical_volume
      • 扩展逻辑卷:

        • $ sudo lvextend /dev/myvolumes/firstgroup /dev/physical_volume

          • 其他格式:

            Extends the size of the logical volume "vg01/lvol10" by 54MiB on physical 
            volume /dev/sdk3. This is only  possible 
            if /dev/sdk3 is a member of volume group vg01 and there are enough 
            free physical extents in it:
            
            lvextend -L +54 /dev/vg01/lvol10 /dev/sdk3
            
            Extends  the  size  of  logical volume "vg01/lvol01" by the amount 
            of free space on physical volume /dev/sdk3.
            This is equivalent to specifying "-l +100%PVS" on the command line:
            
            lvextend /dev/vg01/lvol01 /dev/sdk3
            
            Extends a logical volume "vg01/lvol01" by 16MiB using physical extents 
            /dev/sda:8-9 and /dev/sdb:8-9 for allocation of extents:
            
            lvextend -L+16M vg01/lvol01 /dev/sda:8-9 /dev/sdb:8-9
            
      • 调整文件系统大小以适应增加:

        • $ sudo e2fsck -f /dev/myvolumes/firstgroup
        • $ sudo resize2fs /dev/myvolumes/firstgroup
      • 挂载逻辑卷:
        • $ sudo mount -t ext3 /dev/myvolumes/firstgroup /mount/point

来源(从终端运行):

相关内容