linux lvm逻辑卷管理

linux lvm逻辑卷管理

LVM概述

LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。

需要注意的是,“/boot”分区不能基于LVM创建,必须独立出来

pv(PhysicalVolume,物理卷)

注:如果分区表刷新不出来,可以通过 partprobe 刷新分区表

partprobe

物理卷是LVM机制的基本存储设备,通常对应一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷,物理卷一般直接使用设备文件名称,如/dev/sdb1、/dev/sdb2、/dev/sdd等。

对用于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”。若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相应调整。

VG(VolumeGroup,卷组)

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷,许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自行定义。

LV(LogicalVolume,逻辑卷)

逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统之后,就可以挂载到Linux系统中的目录下使用。

通过上述对物理卷、卷组、逻辑卷的解释可以看出,建立LVM分区管理机制的过程:首先将普通分区或整个硬盘创建为物理卷;接下来,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组;最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷。逻辑卷才是最终用户可以格式化并挂载使用的存储单位。

LVM的管理命令

常用的LVM管理命令功能PV管理命令VG管理命令LV管理命令

  • Scan扫描
    pvscan vgscan lvscan

  • Create建立
    pvcreate vgcreate lvcreate

  • Display显示
    pvdisplay vgdisplay lvdisplay

  • Remove移除
    pvremove vgremove lvremove

  • Extend扩展
    vgextend lvextend

  • Reduce减少
    vgreduce lvreduce

pvscan命令

pvscan用于扫描系统中的所有物理卷,并输出相关信息。
image

pvcreate命令

pvcreate用于将分区或整个硬盘转换成物理卷,主要是添加LVM属性信息并划分PE存储单位。该命令需要使用硬盘或分区的设备文件作为参数(可以有多个)。例如,执行以下操作将把分区/dev/sdb1、/dev/sdb2转换成物理卷。
image

pvdisplay命令

pvdisplay用于显示物理卷的详细信息,需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷信息。例如,执行以下“pvdisplay /dev/sdb1”命令可以查看物理卷/dev/sdb1的详细信息。

image

pvremove命令

pvremove用于将物理卷还原成普通分区或磁盘,不再用于LVM体系,被移除的物理卷将无法被pvscan识别。执行“pvremove /dev/sdb1”命令可以将物理卷/dev/sdb1从LVM体系中移除。

pvremove /dev/sdb1

VG卷组管理

vgscan命令

vgscan命令用于扫描系统中已建立的LVM卷组及相关信息。

vgscan

vgcreate命令

vgcreate用于将一个或多个物理卷创建为一个卷组,第一个命令参数用于设置新卷组的名称,其后依次指定需要加入到该卷组的物理卷作为参数。例如,若要使用物理卷“/dev/sdb1、/dev/sdb2”创建名为abc的卷组,可以执行以下操作。

image

vgdisplay命令

vgdisplay用于显示系统中各卷组的详细信息,需要使用指定卷组名作为命令参数(未指定卷组时将显示所有卷组的信息)。例如,若要查看卷组abc的详细信息,可以执行以下操作。

image

vgremove命令

vgremove命令用于删除指定的卷组,指定卷组名称作为参数即可。删除时应确保该卷组中没有正在使用的逻辑卷。例如,若要删除名为abc的LVM卷组,可以执行以下操作。

vgremove abc

#Volumegroup "abc" successfully removed

vgextend命令

vgextend用于扩展卷组的磁盘空间。当创建了新的物理卷,并需要将其添加到已有卷组中时,就可以使用vgextend命令。该命令的第一个参数为需要扩展容量的卷组名称,其后为需要添加到该卷组中的各物理卷。例如,一下操作将重新创建卷组abc,包含物理卷“/dev/sdb1、/dev/sdb2”,然后通过vgextend命令将物理卷“/dev/sdc1”添加到卷组abc中。
image

LV逻辑卷管理

lvscan命令

lvscan命令用于扫描系统中已建立的逻辑卷及相关信息。

lvscan

lvcreate命令

lvcreate用于从指定的卷组中分割空间,以创建新的逻辑卷。需要指定逻辑卷大小、名称及所在的卷组名作为参数。命令格式如下

lvcreate  -L  容量大小  -n  逻辑卷名  卷组名

例如,执行以下操作将在卷组abc中建立一个新的逻辑卷,容量为10GB,名称设为hlj。

image

lvdisplay命令

lvdisplay命令用于显示逻辑卷的详细信息,需要指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数,以显示该卷组中所有逻辑卷的信息。例如,执行以下操作可以查看前面创建的hlj逻辑卷的详细信息。

image

lvextend命令

lvextend用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展。只要指定需增加的容量大小及逻辑卷文件位置即可。前提条件是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量。另外,调整逻辑卷的容量后,需要执行“resize2fs /dev/卷组名/逻辑卷名”命令以便Linux系统重新识别文件系统的大小(resize2fs命令用于在线调整文件系统大小),需要格式化之后才可以使用resize2fs命令

使用lvextend命令时,基本格式如下

lvextend  -L  +大小  /dev/卷组名/逻辑卷名

例如,以下操作可以为hlj逻辑卷扩展(增加)5GB大小的磁盘空间,并使用resize2fs

image

创建成功后的逻辑卷使用mkfs命令格式化之后就可以挂载到目录下边使用了。

lvresize

lvresize 用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。使用lvresize命令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失

lvresize(选项)(参数)

-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。

lvresize -L +200M /dev/vg1000/lvol0     #将逻辑卷空间增加200M

lvresize 和 lvextend的区别

lvresize -size +40G /dev/vg0/foo
要么:
lvresize -size 120G /dev/vg0/foo

区别在于lvextend只能增加一个体积的大小,而lvresize可以增加或减小它的大小。
这使lvresize功能更强大但更危险。
如果不经意地减小卷的大小而没有先减小其中包含的文件系统的大小,则该文件系统很可能会受到不可挽回的损害。
对于与此处描述的情况类似的情况,lvextend建议使用此方法,因为这样就不可能出现这种类型的错误。

参考文档

linux vgdisplay命令,Linux常用命令(八)LVM逻辑卷管理

posted @ 2022-12-08 20:09  liwenchao1995  阅读(712)  评论(0编辑  收藏  举报