LVM逻辑卷------基础命令详解(三分钟入门)

一、LVM概述

LVM:是 Logical Volume Manager(逻辑卷管理)的简写。

LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层,能够在保持现

有数据不变的情况下动态调整磁盘容量,从而来提高磁盘分区管理的灵活性。

首先了解LVM的几个基本术语:

名词解释:

物理卷:physical volume PV

卷组:vlolume groap VG

物理分区:physical partition PP

逻辑卷:logical volume LV

逻辑分区:logical partition LP

二、LVM命令的详解

将普通分区转换为物理卷的命令是pvcreate。

将物理卷组合为卷组的命令是vgcreate。

从卷组中提取容量创建逻辑卷的命令是Ivcreate。

创建完成后可以分别使用pvdisplay、vgdisplay、 Ivdisplay 查看效果。

功能物理卷管理卷组管理逻辑卷管理
Scan扫描pvscanvgscanlvscan
Create建立pvcreatevgcreatelvcreate
Display显示pvdisplayvgdisplaylvdisplay
Remove删除pvremovevgremovelvmove
Extend扩展----------vgextendlvextend
Reduce减少----------vgreducelvreduce

2.1、新建物理分区

将各物理磁盘或分区的系统类型设为Linux LVM,其system ID为 8e,通过fdisk工具中的 t 命令设置类型。

[root@server3 ~]# fdisk /dev/sdc
...
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)+5G 
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):t             #设置类型
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e     #指定system id为8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039)+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):t             #设置类型
分区号 (1,2,默认 2):
Hex 代码(输入 L 列出所有代码):8e    #指定system id为8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0e3b0805

   设备 Boot      Start         End      Blocks   Id  System         # 磁盘信息
/dev/sdc1            2048    10487807     5242880   8e  Linux LVM   
/dev/sdc2        10487808    20973567     5242880   8e  Linux LVM

命令(输入 m 获取帮助):w
...

2.2、PV物理卷

1、pvcreate:用于将分区或整个硬盘转换成物理卷。

用法: pvcreate [选项]物理卷[物理卷..]
例子:
[root@server3 ~]# pvcreate /dev/sdc{1,2}  # 将两个分区初始化为物理卷
  Physical volume "/dev/sdc1" successfully created.
  Physical volume "/dev/sdc2" successfully created.

2、pvscan:扫描当前系统上的所有物理卷

root@server3 ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<59.00 GiB / 4.00 MiB free]
  PV /dev/sdc1                      lvm2 [5.00 GiB]
  PV /dev/sdc2                      lvm2 [5.00 GiB]
  Total: 3 [<69.00 GiB] / in use: 1 [<59.00 GiB] / in no VG: 2 [10.00 GiB]

3、pvdisplay:显示物理卷的属性

[root@server3 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <59.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              15103
  Free PE               1
  Allocated PE          15102
  PV UUID               sgwtEa-1iNn-lVnL-njYf-jzDO-nm8T-2Bx6IP
   
  "/dev/sdc1" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               U5Emlp-ardb-Qr9I-vh33-nLc7-pOFA-aiNeFz
   
  "/dev/sdc2" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc2
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               k8DDqx-1E6C-swSh-7qNw-uplR-uBM6-ncl6dS

4、pvremove:将物理卷信息删除,使其不再被视为一个物理卷

用法:pvremove [option] PV_DEVICE

[root@server3 ~]# pvremove /dev/sdc2   #删除/sdc2 物理卷
  Labels on physical volume "/dev/sdc2" successfully wiped.
[root@server3 ~]# pvscan               #查看物理卷信息;物理卷/sdc2 已被删除
  PV /dev/sda2   VG centos          lvm2 [<59.00 GiB / 4.00 MiB free]
  PV /dev/sdc1                      lvm2 [5.00 GiB]
  Total: 2 [<64.00 GiB] / in use: 1 [<59.00 GiB] / in no VG: 1 [5.00 GiB]

2.3、创建VG卷组

卷组将多个物理卷整合起来(屏蔽了底层细节),并划分PE(physical extend)

PE是物理卷中的最小存储单元,有点类似于文件系统中的block,PE大小可指定,默认为4M。

1、vgcreate:创建卷组

用法:vgcreate [option] VG_NAME PV_DEVICE

  选项:

      -s:卷组中的物理卷的PE大小,默认为4M

      -l:卷组上允许创建的最大逻辑卷数

      -p:卷级中允许添加的最大物理卷数
例子:
[root@server3 ~]# vgcreate -s 6G myvg /dev/sdc{1,2} 
  Volume group "myvg" successfully created

2、vgscan:查找系统中存在的LVM卷组,并显示找到的卷组列表

[root@server3 ~]# vgscan
  Reading volume groups from cache.
  Found volume group "centos" using metadata type lvm2
  Found volume group "myvg" using metadata type lvm2

3、vgdisplay:显示卷组属性

用法:vgdisplay [option] [VG_NAME]

[root@server3 ~]# vgdisplay
... 
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               0   
  PE Size               6.00 GiB
  Total PE              0
  Alloc PE / Size       0 / 0   
  Free  PE / Size       0 / 0   
  VG UUID               F8elQL-VxDA-Yf91-e1o9-QpKF-Px82-y4s9sO

4、vgextend:动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量

  用法:vgextend VG_NAME PV_DEVICE

  例 vgextend myvg /dev/sdb3

5、vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量,不能删除LVM卷组中剩余的最后一个物理卷

 用法:vgreduce VG_NAME PV_DEVICE

6、vgremove:删除卷组,其上的逻辑卷必须处于离线状态

 用法:vgremove [-f] VG_NAME

  -f:强制删除

2.4、创建LV

在卷组上创建LV(logical volume,逻辑卷)

为了便于管理,逻辑卷对应的设备文件保存在卷组目录下,为/dev/VG_NAME/LV_NAME。

1、lvcreate:创建逻辑卷或快照

用法:lvcreate [选项] [参数]

  选项:

      -L:指定大小

      -l:指定大小(LE数)

      -n:指定名称

      -s:创建快照

      -p r:设置为只读(该选项一般用于创建快照中)

  注:使用该命令创建逻辑卷时当然必须指明卷组,创建快照时必须指明针对哪个逻辑卷  
         
例子
[root@server3 ~]# lvcreate -L 2G -n mylv myvg
  Logical volume "mylv" created.

2、lvscan:扫描当前系统中的所有逻辑卷,及其对应的设备文件

[root@server3 ~]# lvscan
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/home' [<18.70 GiB] inherit
  ACTIVE            '/dev/centos/root' [<38.30 GiB] inherit
  ACTIVE            '/dev/myvg/mylv' [2.00 GiB] inherit

3、lvdisplay:显示逻辑卷属性

[root@server3 ~]# lvdisplay
...
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                fO9Voa-0SZh-xfbZ-XlBD-h8g2-KhL5-y0d6Qj
  LV Write Access        read/write
  LV Creation host, time server3, 2020-10-29 21:14:06 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:

4、lvextend:可在线扩展逻辑卷空间

用法:lvextend -L/-l 扩展的大小 /dev/VG_NAME/LV_NAME  

  选项:
    -L:指定扩展(后)的大小。例如,-L +800M表示扩大800M,而-L 800M表示扩大至800M

    -l:指定扩展(后)的大小(LE数)
      
     例子:
   lvextend -L 200M /dev/myvg/mylv

5、lvreduce:缩减逻辑卷空间,一般离线使用

用法:lvexreduce -L/-l 缩减的大小 /dev/VG_NAME/LV_NAME  

  选项:

      -L:指定缩减(后)的大小

      -l:指定缩减(后)的大小(LE数)

  例 lvreduce -L 200M /dev/myvg/mylv

6、lvremove:删除逻辑卷,需要处于离线(卸载)状态

用法:lvremove [-f] /dev/VG_NAME/LV_NAME

  -f:强制删除

三、格式化逻辑卷并挂载

[root@server3 ~]# mke2fs -t ext4 /dev/myvg/mylv
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
...
Writing superblocks and filesystem accounting information: 完成 

[root@server3 ~]# mkdir /data1  
[root@server3 ~]# mount /dev/myvg/mylv /data1
[root@server3 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        39G  4.4G   34G   12% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.1M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        19G   33M   19G    1% /home
tmpfs                   tmpfs     183M   12K  183M    1% /run/user/42
tmpfs                   tmpfs     183M     0  183M    0% /run/user/0
/dev/sdb1               ext4      4.8G   20M  4.6G    1% /data
/dev/mapper/myvg-mylv   ext4      2.0G  6.0M  1.8G    1% /data1

四、总结

如果格式化成 EXT4 文件系统,然后在使用 lvextend 命令为逻辑卷扩容,最后一定要用 resize2fs 更新系统识别的
文件系统大小。

如果格式化成 xfs 文件系统,LVM扩容后使用的是 xfs_growfs 命令 更新系统识别的文件系统大小。

通过以上内容,相信大家对LVM的配置过程和一些命令有了一定的了解,但是对于LVM的配置还需要多多练习。不
要担心,在下一个博客我会列举一个实例操作来带着大家做

©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页