使用 vgextend/lvextend 添加额外的 8GB 空间,但它没有反映在 df 输出中

使用 vgextend/lvextend 添加额外的 8GB 空间,但它没有反映在 df 输出中

我在 VirtualBox 中创建了一个 ubuntu VM 实例。一开始我只分配了 7GB 的存储空间,现在 VM 已经没有空间了。

首先,我通过 VirtualBox 前端向虚拟机添加了另外 8GB (/dev/sdb)。然后我设置了以下分区:

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 8589 MB, 8589934592 bytes
40 heads, 1 sectors/track, 419430 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x076b5690

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    16777215     8387584    5  Extended
/dev/sdb5            4096    16777215     8386560   8e  Linux LVM

然后我运行以下命令来扩展 VG。

  sudo pvcreate /dev/sdb5
  sudo vgextend ubuntudevbox2 /dev/sdb5
  sudo lvextend 100% /dev/ubuntudevbox2/root
  lvextend --help
  sudo lvextend -l 100%FREE /dev/ubuntudevbox2/root
  sudo lvextend -r -l 100%FREE /dev/ubuntudevbox2/root
  sudo resize2fs  /dev/mapper/ubuntudevbox2-root

我原本预计 / 的大小会扩大到 16Gb。然而 df 报告说

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/ubuntudevbox2-root  8.0G  6.9G  680M  92% /

root mount 只增加到 8G

以下是 VG 信息

$ sudo vgdisplay ubuntudevbox2
[sudo] password for antkong: 
  --- Volume group ---
  VG Name               ubuntudevbox2
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               15.75 GiB
  PE Size               4.00 MiB
  Total PE              4033
  Alloc PE / Size       2182 / 8.52 GiB
  Free  PE / Size       1851 / 7.23 GiB
  VG UUID               ZV6VAi-qkxC-KnKz-1LHg-nfLB-afSI-mVpIPv

为什么我没有获得完整的8Gb额外空间?

mkfs -t ext5 /dev/sdb5补充信息1:我使用fdisk添加新分区后立即运行。这会导致失败吗?

附加信息2:

$ uname -a
Linux ubuntudevbox2 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 19:58:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

lvdisplay输出:

$ sudo lvdisplay

  --- Logical volume ---
  LV Path                /dev/ubuntudevbox2/root
  LV Name                root
  VG Name                ubuntudevbox2
  LV UUID                V1Qq0f-qKJR-UTf5-4tjM-ycoY-1J5L-mJQ2Fy
  LV Write Access        read/write
  LV Creation host, time ubuntudevbox2, 2013-03-29 12:18:26 +1100
  LV Status              available
  # open                 1
  LV Size                8.03 GiB
  Current LE             2055
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/ubuntudevbox2/swap_1
  LV Name                swap_1
  VG Name                ubuntudevbox2
  LV UUID                LbvPFE-j3GO-oaF1-HQV3-a2r5-HTfy-YrhQve
  LV Write Access        read/write
  LV Creation host, time ubuntudevbox2, 2013-03-29 12:18:29 +1100
  LV Status              available
  # open                 2
  LV Size                508.00 MiB
  Current LE             127
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

答案1

输出是绝对的

sudo lvextend -l 100%FREE /dev/ubuntudevbox2/root

由于您在 vgextended 之后只有 8G 的可用范围,因此您只能获得一个代表 8G 绝对大小的 lv。

您必须告知 LVM 您打算进行额外的空间大小。来自的手册页lvextend

   -l, --extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}]
          Extend  or  set  the  logical  volume  size  in units of logical
          extents.  With the '+' sign the value is  added  to  the  actual
          size of the logical volume and without it, the value is taken as
          an absolute one.

尝试

sudo lvextend -l +100%FREE /dev/ubuntudevbox2/root

答案2

从输出中可以看出,vgdisplay仅分配了大约一半的空间:

Alloc PE / Size       2182 / 8.52 GiB
Free  PE / Size       1851 / 7.23 GiB

我怀疑您需要lvextend更明确地指定参数。

相关内容