LVM逻辑卷使用

LVM逻辑卷基础知识

PV (physical volume)物理卷
VG (Volume Group)卷组
LV ( Logical Volume)逻辑卷

它们之间的关系

1.先创建PV(物理卷)
2.给PV(物理卷)中创建一个或多个VG(卷组)
3.在VG(卷组里)创建LV(逻辑卷)
物理卷命令说明
命令 说明
pvcreate 创建物理卷
pvs 查看当前物理卷基本信息
pvdisplay 显示物理卷属性
示例
说明:

  1. 当前有一块磁盘为 /dev/sdb
  2. 使用fdisk命令将它进行分区 fdisk /dev/sdb
  3. 将分区后的磁盘改为 8e 【也就是LVM系统】
  4. 使用 pvcreate 命令将它进行初始化物理卷,比如: pvcreate /dev/sdb1
    操作:
  5. fdisk /dev/sdb命令进行创建物理卷
  6. pvcreate /dev/sdb1 创建物理卷
  7. pvs 查看当前物理卷信息
    相关命令说明
    [root@LVM ~]# pvdisplay ## 显示当前物理卷的属性信息;查看某个物理卷信息用 pvdisplay /dev/sdb1
    // 查看物理卷
    [root@LVM ~]# pvs
    PV VG Fmt Attr PSize PFree
    /dev/s db1 lvm2 --- 83.98g 83.98g
    卷组命令说明

命令 说明
vgcreate 创建卷组
vgs 查看当前卷组基本信息
vgdisplay 显示卷组属性

示例
说明:

  1. 根据上面物理卷信息,进行创建卷组;
  2. 创建卷组时,必须给卷组起个名字【任何名称都可以】;
  3. 查看卷组信息,并进行转交给 LV(逻辑卷)进行操作;
    操作:
  4. vgcreate vgdata /dev/sdb1 ## vgdata是卷组名称
  5. vgs ## 查看当前所有卷组基本信息
  6. vgdisplay ## 查看当前所有卷组属性【也可以指定查看某一个卷组信息,如 vgdisplay vgdata】
    示例说明

    [root@LVM ~]# vgcreate vgdata /dev/sdb1
    Volume group "vgdata" successfully created

    [root@LVM ~]# vgs ## 查看当前所有卷组基本信息
    VG #PV #LV #SN Attr VSize VFree
    vgdata 1 0 0 wz--n- 83.98g 83.98g

    [root@LVM ~]# vgdisplay ## 查看当前所有卷组属性
    --- Volume group ---
    VG Name vgdata ## 卷组名称
    System ID ## 卷组ID
    Format lvm2 ## 格式
    Metadata Areas 1 ## 元数据区域
    Metadata Sequence No 1 ## 元数据序列
    VG Access read/write ## 可读写权限
    VG Status resizable ## VG状态, resizable表示可调整大小
    MAX LV 0 ## 最大LV
    Cur LV 0
    Open LV 0
    Max PV 0
    Cur PV 1
    Act PV 1
    VG Size 83.98 GiB ## 卷组大小
    PE Size 4.00 MiB ## PE大小
    Total PE 21498 ## 总PE大小
    Alloc PE / Size 0 / 0
    Free PE / Size 21498 / 83.98 GiB ## 剩余PE大小
    VG UUID fJdTeF-qPk1-Rbs1-3rjh-Ccek-4b5R-nQAVDQ

逻辑卷命令说明
常用命令 说明
lvcreate 创建逻辑卷
lvs 查看当前所有逻辑卷基本信息
lvdisplay 查看当前所有逻辑卷属性
示例
说明:

  1. 根据上面的PV(物理卷) 和 VG(卷组)信息进行创建 LV (逻辑卷)
  2. 创建命令 lvcreate -L 分配大小 -n 逻辑卷名称 卷组名称
  3. 使用 lvs 或 lvdisplay命令进行查看 LV(逻辑卷)属性信息
    示例说明

    [root@LVM ~]# lvcreate -L 50G -n lvdata vgdata
    Logical volume "lvdata1" created

    [root@LVM ~]# lvs
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    lvdata vgdata -wi-a----- 50.00g

    [root@LVM ~]# lvdisplay /dev/vgdata/lvdata1 ### 查看当前逻辑卷属性
    --- Logical volume ---
    LV Path /dev/vgdata/lvdata1
    LV Name lvdata ### 逻辑卷名称
    VG Name vgdata ### 卷组名
    LV UUID xLWslA-a9WU-4EZL-9aCg-qDNc-4v0C-jMFitZ
    LV Write Access read/write
    LV Creation host, time LVM, 2015-11-26 19:10:38 +0800
    LV Status available
    # open 0
    LV Size 50.00 GiB ### 逻辑卷大小;通过卷组 vgdata里创建分配的
    Current LE 12800 ###
    Segments 1
    Allocation inherit
    Read ahead sectors auto

    • currently set to 256
      Block device 253:0

格式化分区
说明:

  1. 格式化分区的命令时 mkfs.[system.tpye]
  2. 格式化完成后,就可以进行挂载使用了
  3. 执行partprobe ,不用重启机器,使分区表生效【让kernel重新读取分区,从而避免重启系统】
    操作:
  4. 这里格式化为ext4类型,mkfs.ext4 /dev/vgdata/lvdata
  5. 上述表述为将 /dev/vgdata/lvdata 分区格式化为ext4格式
  6. mount /dev/vgdata/lvdata /data_lvm
  7. 挂载,将/dev/vgdata/lvdata分区 挂载到/data_lvm目录下
    示例

    [root@LVM /]# mkdir data_lvm

    [root@LVM /]# lvdisplay ## 查看逻辑卷属性
    --- Logical volume ---
    LV Path /dev/vgdata/lvdata ## LV逻辑卷所在位置
    LV Name lvdata
    VG Name vgdata
    LV UUID xLWslA-a9WU-4EZL-9aCg-qDNc-4v0C-jMFitZ
    LV Write Access read/write
    LV Creation host, time LVM, 2015-11-26 19:10:38 +0800
    LV Status available
    # open 0
    LV Size 50.00 GiB
    Current LE 12800
    Segments 1
    Allocation inherit
    Read ahead sectors auto

    • currently set to 256
      Block device 253:0

    [root@LVM /]# mount /dev/vgdata/lvdata1 /data_lvm
    [root@LVM /]# df -TH
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/xvda1 ext4 22G 5.6G 15G 28% /
    tmpfs tmpfs 4.2G 0 4.2G 0% /dev/shm
    /dev/mapper/vgdata-lvdata

               ext4      53G   189M    50G   1% /data_lvm  ## 表示挂载成功
    

扩容LVM
描述:

  1. 上面讲到了如何创建一个LVM【非安装系统时的创建】
  2. 下面说一下如果把第二块硬盘扩容到LVM中,且不改变已有LVM中的内容

说明:

  1. 添加第二块硬盘,大小为500GB
  2. 将这500GB扩容到当前LVM中,最终大小为 500GB + 84GB == 584GB
    操作:
  3. 将新硬盘进行分区并格式化为LVM分区
  4. 将新的LVM分区磁盘(500GB) 转换为 PV(物理卷)
  5. 将 PV(物理卷) 加入到已有的 VG(卷组)中;卷组名为(vgdata)【扩容VG】
  6. 将 VG(卷组) 加入到已有的 LV(逻辑卷中;【扩容LV】

示例
步骤一: 将新磁盘(500GB)为LVM分区

步骤二: 将新磁盘(500GB)创建为 PV(物理卷)

[root@LVM ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created

[root@lbl ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sdb1  
  VG Name               vgdata
  PV Size               8.00 GiB / not usable 1.35 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2047
  Free PE               255
  Allocated PE          1792
  PV UUID               2t7wcJ-fmS7-u3bP-uMI6-2dpn-fi64-pEeder
   
  "/dev/sdc1" is a new physical volume of "500.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1   ## 新添加的PV(物理卷)
  VG Name               
  PV Size               499.99 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               1CUdZR-p090-0quS-HmeQ-nd4k-rSkk-FYSHlA

[root@LVM /]# pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sdb1  vgdata lvm2 a--   83.98g  33.98g
  /dev/sdc1  vgdata lvm2 a--  499.99g 499.99g

步骤三: 查看 将新磁盘(500GB)的物理卷 扩展到对应的LV(逻辑卷)

[root@LVM ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgdata/lvmdata
  LV Name                lvmdata
  VG Name                vgdata
  LV UUID                7LxbTf-tUml-qsdi-COvq-JueV-zz8S-obzN8a
  LV Write Access        read/write
  LV Creation host, time lbl, 2017-08-09 20:27:52 +0800
  LV Status              available
  # open                 1
  LV Size                7.00 GiB
  Current LE             1792
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

步骤四: 扩容VG(卷组)

[root@LVM ~]# vgextend vgdata /dev/sdc1  ## 将新磁盘(500GB)扩容到 vgdata 卷组中
Volume group "vgdata" successfully extended

[root@LVM ~]# vgdisplay 
  --- Volume group ---
  VG Name               vgdata
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               507.99 GiB   ## 查看扩容后的 VG(卷组),增加了 500GB
  PE Size               4.00 MiB
  Total PE              4094
  Alloc PE / Size       1792 / 7.00 GiB
  Free  PE / Size       2302 / 500.99 GiB
  VG UUID               i0B2WL-NWZP-sLOU-qaEi-Uv90-cWwk-jtFNG4

步骤五: 扩容LV(逻辑卷)

[root@LVM /]# lvextend -L 507.99G /dev/vgdata/lvmdata  
  Rounding size to boundary between physical extents: 507.99 GiB.
  Size of logical volume vgdata/lvmdata changed from 499.99 GiB (2302 extents) to 507.99 GiB (4094 extents). ## 因为这里无法模拟500GB 所以只能以增加8GB为演示
  Logical volume lvmdata successfully resized.

步骤六:扩容后,查看当前 LV(逻辑卷信息)

[root@LVM /]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgdata/lvmdata
  LV Name                lvmdata
  VG Name                vgdata
  LV UUID                7LxbTf-tUml-qsdi-COvq-JueV-zz8S-obzN8a
  LV Write Access        read/write
  LV Creation host, time lbl, 2017-08-09 20:27:52 +0800
  LV Status              available
  # open                 1
  LV Size                507.99  GiB
  Current LE             4094
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

步骤七: 扩展LV(逻辑卷)后,当前磁盘使用情况并没有发生变化;所以需要重设大小

[root@LVM /]# df -h     
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              39G  6.8G   30G  19% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   33M  147M  19% /boot
/dev/mapper/vgdata-lvmdata
                      6.8G   16M  6.4G   1% /LVMdata 

[root@lbl /]# resize2fs /dev/vgdata/lvmdata 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vgdata/lvmdata is mounted on /LVMdata; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vgdata/lvmdata to 4192256 (4k) blocks.
The filesystem on /dev/vgdata/lvmdata is now 4192256 blocks long.

[root@lbl /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              39G  6.8G   30G  19% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   33M  147M  19% /boot
/dev/mapper/vgdata-lvmdata
                       16G   20M   15G   1% /LVMdata  ### 扩展成功

[root@lbl /]# cat LVMdata/ccc.log  查看扩展容量后,当前磁盘内容没有影响;
aaa

删除LV(逻辑卷)VG(卷组)操作方法
说明:

  1. 这里分别介绍如何进行删除 LV(逻辑卷) 和 VG(卷组)
  2. 根据实际情况进行删除操作;
  3. 删除操作的命令分别是: lvremove 和 vgremove
    删除 VG(卷组)

说明:

  1. 先查看要删除的卷组名称;
  2. 根据卷组名称,进行 vgremove 命令操作;
    示例

    [root@LVM ~]# vgdisplay vgdata1
    --- Volume group ---
    VG Name vgdata1
    System ID
    Format lvm2
    Metadata Areas 1
    Metadata Sequence No 3
    VG Access read/write
    VG Status resizable
    MAX LV 0
    Cur LV 0
    Open LV 0
    Max PV 0
    Cur PV 1
    Act PV 1
    VG Size 8.00 GiB
    PE Size 4.00 MiB
    Total PE 2047
    Alloc PE / Size 0 / 0
    Free PE / Size 2047 / 8.00 GiB
    VG UUID Ijeep9-Vybo-CN8c-1cAx-s4Qz-8Xn2-Ksoces

开始删除操作

[root@LVM ~]# vgremove vgdata1  ## 删除
  Volume group "vgdata1" successfully removed  ## 卷组vgdata1成功删除

[root@LVM ~]# vgdisplay vgdata1 ## 再次查看是否删除成功
  Volume group "vgdata1" not found
  Cannot process volume group vgdata1

错误总结

Volume group “vgdata” has insufficient free space (2047 extents): 2048 required
卷组“vgdata”没有足够的自由空间(2047区段):2048需要

Logical volume “lvmdata” already exists in volume group “vgdata”
逻辑卷“lvmdata”已经存在于卷组“vgdata”中

Extending logical volume vgdata to 26.00 GB Insufficient free space: 321 extents needed, but only 320 available
扩展逻辑卷vgdata 没有足够的空闲空间
————————————————
版权声明:本文为CSDN博主「寰宇001」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40907977/article/details/83512888