LVM逻辑卷详解
LVM逻辑卷管理
LVM概述
LVM(logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。
物理存储介质(The physical media):LVM存储介质,是用于保存逻辑卷中所存储数据的存储设备,可以是硬盘分区,整个硬盘,raid阵列或SAN硬盘,设备必须初始化为LVM物理卷,才能与LVM结合使用。
物理卷PV(physical Volume):在LVM中使用设备之前,必须将设备初始化为物理卷,LVM工具会将物理卷划分为物理区块PE,他们是充当物理卷上最小存储块的小块数据。
卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,卷组是存储池,一个卷组VG由一个或多个物理卷PV组成,1个PV只能分配给1个VG。
逻辑卷LV(logical Volume):逻辑卷根据卷中的空闲物理区块创建,提供应用,用户和操作系统所使用的存储设备,类似于非LVM系统中的硬盘分区,逻辑卷LV是逻辑区块(LE)的集合,它创立在卷组VG之上,然后再逻辑卷LV之上建立文件系统。
物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB。
逻辑块LE(logical Extent):逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对。

LVM优缺点
卷组VG可以使多个硬盘空间看起来像是一个大硬盘。
逻辑卷LV可以创建跨多个硬盘空间的分区。
在使用逻辑卷LV时,可以在空间不足时动态调整大小,不需要考虑逻辑卷LV在硬盘上的位置,不用担心没有可以用的连续的空间。
可以在线对卷组VG、逻辑卷LV进行创建、删除、调整大小等操作。但LVM上的文件系统也需要重新调整大小。
LVM允许创建快照,用来保存文件系统的备份。
配置稍复杂,读写速度稍慢。
LVM命令
| 功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
|---|---|---|---|
| 扫描 | pvscan | vgscan | lvscan |
| 建立 | pvcreate | vgcreate | lvcreate |
| 显示 | pvdisplay | vgdisplay | lvdisplay |
| 删除 | pvremove | vgremove | lvremove |
| 扩展 | vgextend | lvextend | |
| 缩小 | vgreduce | lvreduce |
在对磁盘分区进行操作需要卸载挂载时,如果操作的目录位置处于后台进程运行中,会出现卸载失败报错的情况,这是我们可以使用lsof命令配合grep过滤出我们需要查看的进程信息,在使用kill命令加上目标进程的PID 杀死目标进程,这是再次尝试卸载磁盘分区就没问题了。
lsof | grep ***
kill -9 ******
umount ****
示例:
dnf install lvm2
增加2个10G的硬盘
pvcreate /dev/sdb /dev/sdc
pvs
pvdisplay /dev/sdb1
使用vgcreate创建卷组VG,并且此处可以-s选项指定PE(LE)的大小,(默认PE大小4M)
注意:PE大,读取速度快,但浪费空间。反之,读取速度慢,但节省空间,类似于socket
vgcreate vg /dev/sdb /dev/sdc
查看vg
vgs
vgdisplay vg
使用lvcreate创建LV,
lvcreate -n lv1 -L 64M vg
lvcreate -n lv2 -L 128M vg
lvcreate -n lv3 -L 256M vg
查看
lvs
注意:在格式化之前需要知道xfs文件系统只支持增大,不支持缩小。ext2、ext3、ext4增大减小都支持。
将lv1格式化为xfs
mkfs.xfs /dev/vg/lv1
创建挂载目录
mkdir /opt/lv1
mount /dev/vg/lv1 /opt/lv1
这里的/dev/vg/lv1实际是一个软链接,实际地址如下:
ls -l /dev/vg/lv1
逻辑卷LV扩容(动态扩容)
首先需要确认是否有可用的扩容空间,逻辑卷LV是从卷组VG中创建的,所以在逻辑卷LV扩容前需要查看卷组VG的空间使用情况。
vgs
vgdisplay vg
+100M是增加100M
lvextend -L +100M /dev/vg/lv1
直接使用1024M是增加到1024M
lvextend -L +1024M /dev/vg/lv1
lvs
但是在使用df命令查看时,发现文件系统并没有扩展
df -h /opt/lv1
但是通过lsblk看是已经扩容了
lsblk
这是因为文件系统也需要扩容,ext4文件系统扩容使用resize2fs[逻辑卷名称],xfs文件系统扩容使用xfs_growfs 挂载点
ext4文件系统扩容
resize2fs /dev/vg/lv1
xfs文件系统扩容
xfs_growfs /mnt/data
CentOS7可以使用绿extend命令的-r选项来使文件系统自动扩容
lvextend -L +1024M -r /dev/vg/lv1
df -h
卷组VG扩容
卷组的扩容相对简单,一般是LVM空间不够时,增加一块新硬盘使用。
增加一块磁盘/dev/sdd
pvcreate /dev/sdd
pvs
vgextend vg /dev/sdd
vgs
pvs

浙公网安备 33010602011771号