Ubuntu 扩展 LVM

知识热身:

  • 在 LVM 中,一个磁盘分区是一个物理卷(PV)
  • 多个物理卷组成一个卷组(或者叫存储池,VG),相当于多个小磁盘组成了一个大磁盘。
  • 从存储池可以划分出逻辑卷(LV),相当于从大磁盘里分出的虚拟分区。
  • 每个物理卷都会被划分成许多物理扩展块(PE),相当于磁盘扇区,所有的分配和调整都以 PE 为单位。

将新磁盘加入 LVM

磁盘分区

  1. 打开 GPT 磁盘分区工具

    sudo gdisk /dev/sdX
    
  2. 创建新分区。输入 n,然后按 4 次回车。

    GPT fdisk (gdisk) version 1.0.10
    
    Partition table scan:
      MBR: not present
      BSD: not present
      APM: not present
      GPT: not present
    
    Creating new GPT entries in memory.
    
    Command (? for help): n
    Partition number (1-128, default 1):
    First sector (34-4194303966, default = 2048) or {+-}size{KMGTP}:
    Last sector (2048-4194303966, default = 4194301951) or {+-}size{KMGTP}:
    Current type is 8300 (Linux filesystem)
    Hex code or GUID (L to show codes, Enter = 8300):
    Changed type of partition to 'Linux filesystem'
    
  3. 输入 p 检查分区表,没问题的话输入 w 保存分区表,然后输入 q 退出。

将新分区加入 VG

  1. 检查磁盘设备分区情况:

    $ lsblk
    NAME                      MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
    sda                         8:0    0   2T  0 disk
    ├─sda1                      8:1    0   1M  0 part
    ├─sda2                      8:2    0   2G  0 part /boot
    └─sda3                      8:3    0   2T  0 part
      └─ubuntu--vg-ubuntu--lv 252:0    0   2T  0 lvm  /
    sdb                         8:16   0   2T  0 disk
    └─sdb1                      8:17   0   2T  0 part
    

    这里的 sdb1 是我新创建的分区。

  2. 创建物理卷(PV)

    sudo pvcreate /dev/sdb1
    
  3. 查看现有的卷组(VG)

    $ sudo vgdisplay
      --- Volume group ---
      VG Name               ubuntu-vg
      System ID
      Format                lvm2
      Metadata Areas        1
      ...
    

    可以看到这里的 VG Name 为 ubuntu-vg

  4. 将新 PV 加入现有的 VG

    sudo vgextend ubuntu-vg /dev/sdb1
    
  5. 验证 VG 已被扩展

    sudo vgdisplay
    

    观察 Free PE / Size 项,应该可以看到现在 VG 有了一些剩余空间。

将 VG 剩余空间分配给 LV

  1. 查看块设备:

    $ lsblk
    NAME                      MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
    sda                         8:0    0   2T  0 disk
    ├─sda1                      8:1    0   1M  0 part
    ├─sda2                      8:2    0   2G  0 part /boot
    └─sda3                      8:3    0   2T  0 part
      └─ubuntu--vg-ubuntu--lv 252:0    0   2T  0 lvm  /
    
  2. 检查卷组剩余空间:

    $ sudo vgdisplay
      --- Volume group ---
      VG Name               ubuntu-vg
      ...
      Free  PE / Size       511999 / 1.95 TiB
      ...
    

    可以看到未分配的 PE 大小 Free PE 为 1.95 TiB,我们可以直接将其分配给 LV。

  3. 查看逻辑卷的信息:

    $ sudo lvdisplay
      --- Logical volume ---
      LV Path                /dev/ubuntu-vg/ubuntu-lv
      ...
    

    可以看到 LV 路径为 /dev/ubuntu-vg/ubuntu-lv,记住它。

  4. 将卷组中未分配的空间全部分配给逻辑卷:

    $ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv  # 这里要填之前记住的 LV 路径
    
  5. 扩展逻辑卷后,需要调整文件系统大小以使用新增的空间。对于 ext4 文件系统,运行以下命令:

    $ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv  # 这里要填之前记住的 LV 路径
    
  6. 最后,检查根分区 / 是否成功扩展:

    $ df -h
    Filesystem                         Size  Used Avail Use% Mounted on
    /dev/mapper/ubuntu--vg-ubuntu--lv  3.9T  1.9T  1.9T  50% /
    ...
    

    可以看到根分区 / 已经被成功扩展。

posted @ 2024-12-04 15:11  Undefined443  阅读(12)  评论(0编辑  收藏  举报