尝试使用 lvm 调整根分区大小不起作用

尝试使用 lvm 调整根分区大小不起作用

我正在使用 ubuntu 18.04 服务器。最近几天,我在执行一些简单操作时不断收到错误消息“设备上没有剩余空间” ll

我发现这与我的根分区不知何故已满有关。

$df -h 
Filesystem                                            Size  Used Avail Use% Mounted on
...
/dev/mapper/ubuntu--vg-ubuntu--lv                     130G  130G     0 100% /
...
/dev/sda2                                             976M  211M  699M  24% /boot
/dev/sda1                                             511M  6.1M  505M   2% /boot/efi
/dev/mapper/ubuntu--vg-lv--0                           12T  787G   11T   7% /home
...

创建服务器时,我使用 raid6 结构创建了一个物理卷(16 个硬盘)、一个卷组和两个逻辑卷。我使用 LVM 将 VG 划分为两个逻辑卷,一个用于root~132G,另一个home用于 ~12T(其余)的目录

$ sudo lvdisplay -m
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                d6ihzF-rV8o-RSJA-9cDw-7O5t-x1uC-6PVUHg
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2019-02-25 11:33:31 +0000
  LV Status              available
  # open                 1
  LV Size                132.00 GiB
  Current LE             33792
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Segments ---
  Logical extents 0 to 1023:
    Type        linear
    Physical volume /dev/sda3
    Physical extents    0 to 1023

  Logical extents 1024 to 33791:
    Type        linear
    Physical volume /dev/sda3
    Physical extents    3183807 to 3216574


  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/lv-0
  LV Name                lv-0
  VG Name                ubuntu-vg
  LV UUID                xJ0jjx-Bmnv-itG6-HR8k-eySF-HCXf-GRi6Rb
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2019-02-25 11:33:32 +0000
  LV Status              available
  # open                 1
  LV Size                12.14 TiB
  Current LE             3182783
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Segments ---
  Logical extents 0 to 3182782:
    Type        linear
    Physical volume /dev/sda3
    Physical extents    1024 to 3183806

我现在想增加我的root分区,但我总是遇到同样的问题。

我曾尝试使用lvextendlvresize但没有帮助。

lvextend -L+128G /dev/ubuntu-vg/ubuntu-lv 
  Insufficient free space: 32768 extents needed, but only 0 available

和 也同样如此lvresize

我想知道我需要做什么才能增加根分区的大小。

分区/home/占用了剩余的“可用空间”与此有关吗?我是否需要先减小其大小,然后才能增加分区root?我该怎么做?

答案1

LVM 的概念就像洋葱一样:

  1. 物理卷可能没有可用空间,因此您无法扩展它。使用“pvs”在此处查看概览,它可能会显示 0 字节的可用空间。它基本上是硬盘上的一个分区
  2. 里面有一个或多个卷组。这是第一个抽象层(使用命令电压或者创建扩展
  3. 里面有逻辑卷
  4. 逻辑卷内部驻留有文件系统,例如 ext2、ext3、btrfs 或 ext4。

需要注意的是,lvm 不同层上的命令子集具有相同的命名策略。因此延长减少调整大小创造依此类推,你会发现每个抽象层都有相关的前缀,并且使用相同的参数来标准化,例如建立虚拟创建lvcreate等等。一旦你理解了语法和架构,使用它就很容易了。

因此,您需要在 pvs 中扩展空间,然后在扩展之后,您需要将其分配给逻辑卷组(/dev/“volumegroupname”),之后您需要使用以下命令将部分或全部空间分配给逻辑卷:lvextend或者调整大小(将在 Ubuntu 中映射为 /dev/mapper/“vgname-lvname”)。最后,您需要调整逻辑卷内的文件系统大小(lv,命令lvs)。 也做一个ext2fsck -f然后在文件系统上。

如果要缩小,则必须使用 resize2fs,然后使用 lvreduce 或 lvresize,最后缩小物理卷。反之亦然。绝对有必要了解这里的基本概念。LVM 是为了便于管理和扩展或向现有系统添加硬盘磁盘空间而创建的。因此,您甚至可以扩展到第二个硬盘驱动器,并将逻辑卷扩展到这两个硬盘驱动器上。但是到目前为止,我的私人系统还没有使用过这种用例。您还可以使用 raid0 和 raid1 来提高数据安全性。并使用 iE luks 来保证您的安全。所以这是一个非常好的主意!

示例案例:

  1. 你买了一个新的 SSD,空间增加了一倍
  2. 启动 Ubuntu live,并在其中安装 clonezilla
  3. 您将旧分区 1:1 克隆到新设备
  4. 您按照以下说明操作unix.stackechange:D,但是你跳过了使用 luks 的步骤,因为你没有加密硬盘(我只能推荐它)

祝你好运!请注意,如果你不遵循上述“哲学”,你可能会搞砸部分甚至整个系统。我鼓励任何人改进这个解释,因为我只是通过自己的血腥经历才得到这个解释。我希望至少这可以减轻任何读到这篇文章却不知道发生了什么的人的痛苦。

相关内容