• [Linux]逻辑卷LVM配置


    逻辑卷LVM配置

    什么是LVM

    LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

    LVM中常用概念

    PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。

    VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。

    LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。

    PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。

    LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

    LVM结构图

    底层PV是一种LVM格式,VG相当于普通磁盘,LV相当于磁盘上的分区,结构如下:

     

    LVM常用命令汇总

    任务

    PV阶段

    VG阶段

    LV阶段

    查找(scan)

    pvscan

    vgscan

    lvscan

    新建(create)

    pvcreate

    vgcreate

    lvcreate

    显示(display)

    pvdisplay

    vgdisplay

    lvdisplay

    增加(extend)

    vgextend

    lvextend(lvresize)

    减少(reduce)

    vgreduce

    lvreduce(lvresize)

    删除(remove)

    pvremove

    vgremove

    lvremove

    改变容量(resize)

    lvresize

    改变属性(attribute)

    pvchange

    vgchange

    lvchange

    配置示例

    下面用一个示例,演示LVM常用的配置流程

     

    如上图,虚拟机新磁盘sdb为10G,满足以下要求:

    1、新建一个2G的逻辑卷,要求卷组名vg0_ext3,逻辑卷名lvm0,大小为1G,文件系统类型ext3,挂载点/data0;

    2、将lvm0增大2G,同时增大文件系统,不影响已有文件;

    3、将lvm0减小660M,同时减小文件系统,不影响已有文件;

    4、新建一个3G的逻辑卷,要求卷组名vg1_xfs,逻辑卷名为lvm1,大小为3G,文件系统类型xfs,挂载点/data1;

    5、将lvm1增大1G,增大文件系统,不影响已有文件;

    使用ext3文件系统配置LVM

    创建LVM

    配置如下:

    首先使用fdisk划分出2G分区,分区类型为LVM格式;

    fdisk /dev/sdb

    n(新增分区)--->p(基础分区)--->1(分区号)--->Enter(起始柱面)--->+2G(分区大小)--->t(改变分区类型)--->1(改变的分区号)--->8eLVM分区类型label--->w(保存退出)

    查看分区:

     

    PV阶段,将sdb1设置为PV格式,并查看:

    pvcreate /dev/sdb1

    pvdisplay /dev/sdb1

     

    VG阶段,在sdb1分区,新建VG卷组名vg0_ext3,并查看该卷组;

    vgcreate vg0_ext3 /dev/sdb1

    vgdisplay /dev/vg0_ext3                       #注意此时卷组名/dev/vg0_ext3

     

    LV阶段,在卷组vg0_ext3上,新建LV,名称lvm0,大小为1G,并查看;

    lvcreate -L 1G -n lvm0 /dev/vg0_ext3      #选项 -L指定大小  -n指定lvm名称

    lvdisplay /dev/vg0_ext3/lvm0            #注意此处lvm格式

     

    查看LVM配置结果:

     

    格式化lvm0,文件系统类型ext3,挂载点/data0

    mkfs.ext3 /dev/vg0_ext3/lvm0

    echo '/dev/vg0_ext3/lvm0 /data0 ext3 defaults 0 0' >> /etc/fstab

    mkdir /data0

    mount -a

    查看挂载结果:

     

    扩大LVM

    由于剩余PV空间不足2G,需重新划分一个分区,大小2G,加到/dev/vg0_ext3/lvm0中;

    配置如下:

    fdisk /dev/sdb

    N--->p--->2--->Enter--->+2G--->t--->2--->8e--->w--->partprobe(强制内核检查分区表)

     

    umount /data0                                               #扩大LVM,首先umount挂载点

    pvcreate /dev/sdb2                                        #/dev/sdb2创建PV

    vgextend /dev/vg0_ext3 /dev/sdb2                #扩大原有VG,将/dev/sdb2加入

    lvextend -L 3G /dev/vg0_ext3/lvm0                #扩大原有LV3G

    e2fsck -f /dev/vg0_ext3/lvm0                         #要求强制检查文件系统

     

    resize2fs /dev/vg0_ext3/lvm0 3G                 #调整/dev/vg0_ext3/lvm0分区大小为3G

     

    查看增大后分区,并挂载

     

    缩小LVM

    缩小LVM,首先需要umount挂载点

    umount /data0

    减小660M文件系统,相当于文件系统减小为1024*3-660=2412M

    e2fsck -f /dev/vg0_ext3/lvm0

    resize2fs /dev/vg0_ext3/lvm0 2412M

     

    lvreduce -L 2412M /dev/vg0_ext3/lvm0        #再减小LVM2412M

     

    重新挂载后结果

     

    使用xfs文件系统配置LVM

    创建LVM

    首先使用fdisk创建/dev/sdb3,大小为3G,之后开始创建LVM

    pvcreate /dev/sdb3

    vgcreate vg1_xfs /dev/sdb3

    注意此处,由于/dev/sdb3大小是3G,创建LV时可能出现PE不够的情况

     

    用vgdisplay查看空闲PE数后,用PE数量创建LV

    lvcreate -l 767 -n lvm1 /dev/vg1_xfs                 # -l 参数表示PE个数

     

    LV建立后进行格式化、挂载

    mkfs.xfs /dev/vg1_xfs/lvm1

    echo '/dev/vg1_xfs/lvm1 /data1 xfs defaults 0 0' >> /etc/fstab

    mkdir /data1

    mount -a

     

    扩大LVM

    扩大dev/vg1_xfs/lvm1,首先fdisk新建分区/dev/sdb4,大小为1G,再增加LVM

    pvcreate /dev/sdb4

    vgextend /dev/vg1_xfs /dev/sdb4

    查看VG,总PE数为1022

     

    lvextend -l 1022 /dev/vg1_xfs/lvm1

     

    扩大xfs文件系统,注意xfs文件系统可以在挂载的情况下扩大

    xfs_growfs /dev/vg1_xfs/lvm1

     

    查看LVM扩大后结果

     

    删除LVM

    过程跟创建LVM相反,先删除LV,再删除VG,举例删除/dev/vg1_xfs/lvm1

    umount /data1

    lvremove /dev/vg1_xfs/lvm1

    vgremove vg1_xfs

    pvremove /dev/sdb4

    pvremove /dev/sdb3

    最后用fdisk删除磁盘分区即可

     

    总结

    1、ext3文件系统调整前必须umount,强制检查后调整,即先e2fsck后再resize2fs;

    2、xfs文件系统用xfs_growfs扩大,不能减小,没有相应的减小命令,在挂载状态下执行;

    3、文件系统减小有风险,尽量避免对根分区操作;

    4、如果LV扩大提示空间不足,考虑使用PE个数扩大;

    5、PE大小默认4MB,如果要改变,VG阶段使用vgcreate -s指定PE大小,同时其他要加入的逻辑卷PE大小须保持一致;

       

  • 相关阅读:
    【 POJ
    C语言常用数学函数及其用法
    【HDU3065】 病毒侵袭持续中(AC自动机)
    windows版本cloudbase-init流程说明
    Metadata 的概念
    DataSource的设置
    cloud-utils
    cloud-init代码调试方法
    cloud-init简介及组件说明
    使用dib element proliant-tools制作deploy image
  • 原文地址:https://www.cnblogs.com/gwblogs/p/8486362.html
Copyright © 2020-2023  润新知