LVM相关命令

摘要: 本文详细介绍了Linux Volume Manager (LVM) 的相关命令,包括磁盘分区、物理卷创建、卷组管理、逻辑卷创建与管理、文件系统挂载与自动挂载等步骤。LVM 是一种逻辑卷管理技术,允许用户在物理磁盘上创建、扩展、缩减和移动分区,而不必重新分区或重新格式化磁盘。通过LVM,可以更灵活地管理存储空间,提高存储利用率和灵活性。

参考链接:https://support.huaweicloud.com/bestpractice-evs/evs_02_0002.html

磁盘分区

新挂载硬盘或者扩充硬盘

parted相关命令

按照如下命令建立分区、文件系统格式、打上lvm标签

1
2
3
4
5
6
7
8
9
lsblk  # 查看挂载磁盘
parted /dev/vdd # 回车后按照以下操作:
mklabel gpt  # 大于2T以上磁盘使用该格式
mkpart p1 ext4  0 100GB # p1 分区名称,ext4 文件系统格式 0 起始位置(百分比or数字),100GB结束位置(百分比or数字)
print #查看分区结果
toggle 3 lvm  # 3 新创建分区的编号,lvm 标签,从而可以使用lvm来管理
quit # 退出parted命令

lsblk #查看分区情况

通过新增磁盘来创建物理卷

pvcreate /dev/vdd3

物理卷

  • 查看磁盘
1
2
3
fdisk -l | grep /dev/vd | grep -v vda
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/vdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
  • 执行以下命令,将云硬盘创建为物理卷。

pvcreate 磁盘设备名1 磁盘设备名2 磁盘设备名3

参数说明如下:

磁盘设备名:此处需要填写磁盘的设备名称,如果需要批量创建,可以填写多个设备名称,中间以空格间隔。

命令示例:

pvcreate /dev/vdb /dev/vdc

1
2
3
  pvcreate /dev/vdb /dev/vdc
  Physical volume "/dev/vdb" successfully created.
  Physical volume "/dev/vdc" successfully created.
  • 执行如下命令,查看系统中物理卷的详细信息。

pvdisplay

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
	pvdisplay
  "/dev/vdc" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdc
  VG Name
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dypyLh-xjIj-PvG3-jD0j-yup5-O7SI-462R7C

  "/dev/vdb" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb
  VG Name
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               srv5H1-tgLu-GRTl-Vns8-GfNK-jtHk-Ag4HHB

卷组

创建卷组

  • 执行以下命令,创建卷组。

vgcreate 卷组名 物理卷名称1 物理卷名称2 物理卷名称3…

参数说明如下:

​ 卷组名:可自定义,此处以vgdata为例。

​ 物理卷名称:此处需要填写待添加进卷组的所有物理卷名称,中间以空格隔开。

命令示例:

vgcreate vgdata /dev/vdb /dev/vdc

回显类似如下信息:

1
2
	vgcreate vgdata /dev/vdb /dev/vdc
  Volume group "vgdata" successfully created
  • 执行如下命令,查看系统中卷组的详细信息。

vgdisplay

卷组扩/缩容

  • 查看磁盘,并如创建物理卷

    fdisk -l | grep /dev/vd | grep -v vda

    pvcreate 磁盘**设备名

  • 添加新的物理卷

    vgextend 卷组名称 物理卷名称

    命令示例:

    vgextend vgdata /dev/vdd

  • 删除物理卷

    vgreduce 卷组名称 物理卷名称

    命令示例:

    vgreduce vgdata /dev/vdd

逻辑卷

创建逻辑卷

  • lvcreate** -L 逻辑卷大小 -n 逻辑卷名称 卷组名称

参数说明如下:

逻辑卷大小:该值应小于卷组剩余可用空间大小,单位可以选择“MB”或“GB”。

逻辑卷名称:可自定义,此处以lvdata1为例。

卷组名称:此处需要填写逻辑卷所在的卷组名称。

命令示例:

lvcreate -L 15GB -n lvdata1 vgdata

1
2
  lvcreate -L 15GB -n lvdata1 vgdata
  Logical volume "lvdata1" created.
  • 执行如下命令,查询系统中逻辑卷的详细信息。

    lvdisplay

扩充逻辑卷

  • 执行如下命令,扩展逻辑卷的容量。

lvextend -L +增加容量 逻辑卷路径

参数说明如下:

增加容量:该值应小于组卷剩余可用空间大小,单位可以选择“MB”或“GB”。

逻辑卷路径:此处需要填写待扩容的逻辑卷的路径。

命令示例: lvextend -L +4GB /dev/vgdata/lvdata1

回显类似如下信息:

1
2
lvextend -L +4GB /dev/vgdata/lvdata1 
Size of logical volume vgdata/lvdata1 changed from 15.00 GiB (3840 extents) to 19.00 GiB (4864 extents). Logical volume vgdata/lvdata1 successfully resized. 

此时只是扩展的逻辑卷的容量,在其之上的文件系统也要随之进行扩展才能使用。

  • 执行如下命令,扩展文件系统的容量。

    resize2fs 逻辑卷路径

    命令示例: resize2fs /dev/vgdata/lvdata1

    回显类似如下信息:

    1
    2
    
    resize2fs /dev/vgdata/lvdata1 
    resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vgdata/lvdata1 is mounted on /Data1; on-line resizing required old_desc_blocks = 4, new_desc_blocks = 28 The filesystem on /dev/vgdata/lvdata1 is now 3657728 blocks long. 
    
  • 执行如下命令,查看文件系统容量是否增加。

    df -h 回显类似如下信息:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    df -h 
    Filesystem                  Size  Used Avail Use% Mounted on
    /dev/vda2                    39G  1.5G   35G   5% /
    devtmpfs                    487M     0  487M   0% /dev
    tmpfs                       496M     0  496M   0% /dev/shm
    tmpfs                       496M  6.7M  490M   2% /run
    tmpfs                       496M     0  496M   0% /sys/fs/cgroup
    /dev/vda1                   976M  131M  779M  15% /boot
    tmpfs                       100M     0  100M   0% /run/user/0
    /dev/mapper/vgdata-lvdata1   19G   44M   18G   1% /Data1
    

    可以看到,文件系统“/dev/mapper/vgdata-lvdata1”的容量相比之前增加了4GB。

逻辑卷缩容

不可在线操作,需要先umount 挂载

主要命令

  • umount /Data1 # /data1为挂载路径
  • e2fsck -f /dev/vgdata/lvdata1 # 进行磁盘检查
  • resize2fs /dev/vgdata/lvdata1 1G # 调整文件系统
  • lvreduce -L 1GB /dev/vgdata/lvdata # 通过lvduce命令进行缩
  • mount /dev/vgdata/lvdata1 /Data1 # 重新挂载
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
umount /Data1  # /data1为挂载路径
mount |grep Data1|wc -l  # 查看是否成功卸载
lvs |grep Data1 # 查看磁盘状态
e2fsck -f /dev/vgdata/lvdata1 # 进行磁盘检查
resize2fs  /dev/vgdata/lvdata1  1G  # 调整文件系统
lvs |grep Data1 # 查看磁盘状态,未发生变化
lvreduce -L 1GB /dev/vgdata/lvdata   # 通过lvduce命令进行缩
lvs |grep Data1 # 查看磁盘状态,可发现减少
mount /dev/vgdata/lvdata1 /Data1   # 重新挂载
df -lh |grep Data1  # 查看当前状态

挂载文件系统

  • 执行如下命令,创建文件系统。

**mkfs.**文件格式 逻辑卷路径

命令示例:

mkfs.ext4 /dev/vgdata/lvdata1

回显类似如下信息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
mkfs.ext4 /dev/vgdata/lvdata1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
983040 inodes, 3932160 blocks
196608 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
120 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

手动挂载

具备文件系统后才可以挂载

  • 创建挂载目录。 mkdir 挂载目录 命令示例: mkdir /Data1
  • 执行如下命令,将文件系统挂载到目录下。 mount 逻辑卷路径 挂载目录 命令示例: mount /dev/vgdata/lvdata1 /Data1
  • 执行如下命令,查询文件系统挂载信息。 mount | grep 挂载目录 命令示例: mount | grep /Data1

​ 回显类似如下信息:

1
2
mount | grep /Data1
/dev/mapper/vgdata-lvdata1 on /Data1 type ext4 (rw,relatime,data=ordered)

开机自动挂载

执行以下步骤,设置云服务器系统启动时自动挂载文件系统。

  • 执行如下命令,查询文件系统的UUID。

    blkid 文件系统路径

    以查询“dev/mapper/vgdata-lvdata1”的UUID为例:

    blkid /dev/mapper/vgdata-lvdata1

1
2
blkid /dev/mapper/vgdata-lvdata1
/dev/mapper/vgdata-lvdata1: UUID="c6a243ce-5150-41ac-8816-39db54d1a4b8" TYPE="ext4"
  • 执行以下命令,打开“/etc/fstab”文件。

    vi /etc/fstab

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    vi /etc/fstab
    
    #
    # /etc/fstab
    # Created by anaconda on Tue Nov  7 14:28:26 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=27f9be47-838b-4155-b20b-e4c5e013cdf3 /                       ext4    defaults        1 1
    UUID=2b2000b1-f926-4b6b-ade8-695ee244a901 /boot                   ext4    defaults        1 2
    
  • 按“i”进入编辑模式,将光标移至文件末尾,按“Enter”,添加如下内容。

1
UUID=c6a243ce-5150-41ac-8816-39db54d1a4b8 /Data1                  ext4    defaults        0 0

内容说明如下:

第一列:UUID,此处填写1查询的UUID;

第二列:文件系统的挂载目录;

第三列:文件系统的文件格式,如文件格式“ext4”;

第四列:挂载选项,此处以“defaults”为例;

第五列:备份选项,设置为“1”时,系统自动对该文件系统进行备份;设置为“0”时,不进行备份。此处以“0”为例;

第六列:扫描选项,设置为“1”时,系统在启动时自动对该文件系统进行扫描;设置为“0”时,不进行扫描。此处以“0”为例。

  • 按“Esc”,输入“:wq!”,并按“Enter”。保存设置并退出vi编辑器。

  • 执行以下步骤,验证自动挂载功能

    • 执行如下命令,卸载文件系统。

      umount 逻辑卷路径

      命令示例: umount /dev/vgdata/lvdata1

    • 执行如下命令,将/etc/fstab文件所有内容重新加载。

      mount -a

    • 执行如下命令,查询文件系统挂载信息。

      mount | grep 挂载目录

      命令示例: mount | grep /Data1

      回显类似如下信息,说明自动挂载功能生效:

1
2
    mount | grep /Data1
    /dev/mapper/vgdata-lvdata1 on /Data1 type ext4 (rw,relatime,data=ordered)

使用 Hugo 构建
主题 StackJimmy 设计