[Linux]逻辑卷LVM配置

逻辑卷LVM配置spa

什么是LVM

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

LVM中经常使用概念

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

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

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

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

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

LVM结构图

底层PV是一种LVM格式,VG至关于普通磁盘,LV至关于磁盘上的分区,结构以下:扩展

 

 

 

LVM经常使用命令汇总

 

任务配置

PV阶段gc

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,知足如下要求:

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

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

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

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

五、将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删除磁盘分区便可

 

 

总结

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

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

三、文件系统减少有风险,尽可能避免对根分区操做;

四、若是LV扩大提示空间不足,考虑使用PE个数扩大;

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

   

相关文章
相关标签/搜索