LVM 的基础

1.4k 词

文章封面: 水面 by: 鈍色玄

本人为新手,如有错误或不足之处,欢迎指正。


物理卷(PV)卷组(VG)和逻辑卷(LV)

在 Linux 的逻辑卷管理中,逻辑卷是建立在卷组之上的,而且一个逻辑卷只能拥有一个卷组,但卷组可以拥有多个逻辑卷。

卷组则是由一个或多个物理卷组成的。

因此,如果要创建逻辑卷,您需要先有物理卷和卷组。

注意:GFS2 或者 XFS 文件系统不支持缩小。

1
apt-get install lvm2 # 安装 lvm

创建物理卷

  1. 创建物理卷,可以是硬盘也可以是分区

    1
    pvcreate /dev/[硬盘或分区]
    实例
    1
    pvcreate /dev/sde # 使用 sde 硬盘来创建物理卷
  2. 查看物理卷

    这里的命令先选一个来用着,慢慢来。
    PS:物理卷、卷组和逻辑卷的命令基本相似,不用着急。

    1
    2
    3
    pvs # 显示简要信息
    pvscan # 扫描所有物理卷(PV)并统计
    pvdisplay # 显示详细的物理卷(PV)信息

创建卷组

  1. 创建卷组必须使用物理卷

    1
    vgcreate [卷组名称] /dev/[物理卷]
    实例
    1
    vgcreate vg-1 /dev/sde # 使用 "sde" 的物理卷来,创建一个叫 "vg-1" 的卷组
  2. 查看卷组

    如果 vgscan 扫描不出来,就使用 vgs

    1
    2
    3
    vgs # 显示简要信息
    vgscan # 扫描所有卷组(VG)并统计
    vgdisplay # 显示详细的卷组(VG)信息

创建逻辑卷

  1. 使用卷组创建逻辑卷

    1
    lvcreate -n [逻辑卷名称] -L [逻辑卷的大小] [卷组名称]
    实例
    1
    lvcreate -n disk-1 -L 200M vg-1 # 逻辑卷名称叫 disk-1 容量有 200Mb 使用的卷组是 vg-1

    参数说明:

    • n:逻辑卷的名称。
    • L:以字节单位设置逻辑卷大小。
  2. 查看逻辑卷

    顺便查看逻辑卷的路径。

    1
    2
    3
    lvs # 显示简要信息
    lvscan # 扫描所有逻辑卷(LV)并统计
    lvdisplay # 显示详细的逻辑卷(LV)信息

逻辑卷格式化和挂载

  1. 格式化逻辑卷

    这里的路径是由你创建,卷组和逻辑卷所填写的名字。

    1
    mkfs.ext4 /dev/[卷组名称]/[逻辑卷名称]
  2. 重新读取分区

    1
    partprobe
  3. 挂载逻辑卷

    1
    mount /dev/[卷组名称]/[逻辑卷名称] /mnt/[任意文件夹]

逻辑卷的管理

扩充逻辑卷

  1. 扩充逻辑卷

    注意:扩充的时候 不要超过卷组 的容量了。

    1
    lvextend -L [扩充的大小] /dev/[卷组名称]/[逻辑卷名称]
  2. 重新加载逻辑卷

    这里有个问题 扩充之后,如果 df -hT 没有刷新出来,就需要使用以下命令来重新加载一下逻辑卷。

    1
    resize2fs /dev/[卷组名称]/[逻辑卷名称]

缩小逻辑卷

注意:GFS2 或者 XFS 文件系统不支持缩小。
要想缩小逻辑卷就要 先卸载逻辑卷 ,使用 df -hT 查看逻辑卷的文件系统类型和路径。

  1. 卸载文件系统

    1
    umount /dev/[逻辑卷路径]
  2. 使用 e2fsck 命令来检查或修复是否有错误(必须)

    PS:e2fsck 只针对 ext2ext3ext4 文件系统。

    1
    e2fsck -f /dev/[逻辑卷路径]

    参数说明:

    • f: 强制检查和修复指定的文件系统。
    实例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    e2fsck -f /dev/mapper/vg-1-disk-1

    # 以下是输出的结果
    e2fsck 1.47.0 (5-Feb-2023)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/mapper/vg-1-disk-1: 11/327680 files (0.0% non-contiguous), 41566/1310720 blocks
  3. 缩小文件系统

    缩小就是重新定义一个比当前容量还要小的容量。

    注意: 缩小文件系统 的大小和 缩小逻辑卷 的大小必须是一样的。

    1
    resize2fs /dev/[逻辑卷路径] [新的逻辑卷大小]
    实例
    1
    resize2fs /dev/mapper/vg-1-disk-1 1G
  4. 缩小逻辑卷

    1
    lvreduce -L [新的逻辑卷大小] /dev/[逻辑卷路径]
    实例
    1
    lvreduce -L 1G /dev/mapper/vg-1-disk-1
  5. 重新挂载逻辑卷

    1
    mount /dev/[逻辑卷路径] /mnt/[任意文件夹]

删除逻辑卷

  1. 取消挂载逻辑卷

    在删除逻辑卷之前,请先取消挂载逻辑卷,然后再删除逻辑卷。

    1
    umount /dev/[逻辑卷路径]
  2. 删除逻辑卷

    1
    lvremove /dev/[逻辑卷路径]

卷组的管理

  1. 扩充卷组

    要想扩充卷组可以 使用已有的物理卷 或创建 新的物理卷 ,创建物理卷上面已经说了。

    使用已有的物理卷

    1
    vgextend [卷组名称] /dev/[物理卷] # 使用现有的物理卷扩充卷组
  2. 缩小卷组

    缩小不需要卸载逻辑卷(LV)的挂载的,但要确定卷组有多余的物理卷不然会提示”该物理卷使用中”。

    vgreduce 的卷组缩小可以理解为移出,比如从一个卷组中移出一个或多个物理卷,不会彻底删除物理卷,而是保留。

    1
    vgreduce [卷组名称] /dev/[物理卷] # 完成后使用"pvscan"查看
  3. 删除卷组

    删除卷组前,要确定没有逻辑卷在使用该卷组,而且还要取消挂载该逻辑卷。

    1
    vgremove [卷组名称]

物理卷

  1. 删除物理卷

    和删除卷组类似,删除物理卷前,请确保没有卷组在使用该物理卷。

    1
    pvremove /dev/[物理卷]

LVM 命令:

LVM 物理卷 卷组 逻辑卷
扫描: pvscan vgscan lvscan
创建: pvcreate vgcreate lvcreate
详细: pvdisplay vgdisplay lvdisplay
删除: pvremove vgremove lvremove
扩充: vgextend lvextend
缩小: vgreduce lvreduce

留言