逻辑卷(Logical Volume)是一种对物理存储设备进行管理和抽象的技术。它是将多个物理存储设备(如硬盘、分区)做成物理卷,然后将他们合并为一个逻辑卷组(Volume Group),并从中创建逻辑卷(Logical Volume),以当做文件系统使用。逻辑卷的大小和还可以动态的调整。
形象的说一下就是:
有一个个各种各样的普通人,如男人女人老人年轻人(多个不同的物理存储设备)
我们要把他们培养成某方面的人才(创建物理卷)
培养完后将这些人才全部收入公司(组成卷组)
然后公司哪里需要人才的时候就从这些人里面挑来工作(从卷组中划分一部分出来当逻辑卷)
所以这个逻辑卷就好比挑出来工作的人才
在Linux系统中,逻辑卷管理主要通过LVM(Logical Volume Manager)软件实现。LVM将物理存储设备划分为三个层次:物理卷(Physical Volume)、卷组(Volume Group)和逻辑卷(Logical Volume)。
-
物理卷(Physical Volume):物理卷是指物理存储设备,如硬盘分区或磁盘。在LVM中,物理卷通常被格式化为LVM专用的物理卷格式(如LVM2)。
-
卷组(Volume Group):卷组是由一个或多个物理卷组成的逻辑存储池。多个物理卷可以被添加到同一个卷组中。卷组是逻辑卷的容器,逻辑卷的创建和管理都是在卷组级别进行的。
-
逻辑卷(Logical Volume):逻辑卷是从卷组中划分出来的逻辑存储区域。然后把逻辑卷格式化就可以使用了。逻辑卷的大小可以根据需要进行调整,而无需重新分区或重新格式化物理存储设备。
lvm管理工具所用到的常用命令有:
在Linux中创建逻辑卷的步骤是:
①创建物理卷;②拿物理卷来创建卷组;③从卷组中划分一部分来当物理卷;④格式化逻辑卷然后挂载;(⑤还有就是可以对逻辑卷进行大小调整,就是扩大或缩小)。
1.创建物理卷
首先选好要做成物理卷的磁盘或分区
查看到有两个没有用到的分区和一块磁盘没有用到(sdb1、sdb2和sdc),一共10+7+15=32G
把他们三个做成物理卷
输入pvcreate /dev/sdb1 /dev/sdb2 /dev/sdc
这样就成功将分区sdb1、sdb2还有硬盘sdc做成了物理卷
2.创建卷组
我们将做成的物理卷做成一个卷组
这样就把这三个物理卷组成了一个名为storage的卷组
可以用命令vgdisplay查看名为storage卷组信息
查看到名为storage的卷组的内容,大小为32G
3.创建逻辑卷
创建逻辑卷
lvcreate -L 22G -n lv1 storage的意思是从名为storage的卷组中创建了一个大小为22G,名字位lv1的逻辑卷
然后lsblk可以查看到已经划分好的逻辑卷
可以看到从sdb1和sdc中划分了一块名为lv1的逻辑卷,大小为22G。
1.格式化逻辑卷
逻辑卷也是要经过格式化,然后挂载才能使用的。
我们将逻辑卷lv1格式化,选用ext4的文件系统格式(逻辑卷最好不用xfs格式的,xfs格式的对逻辑卷的支持性不是很好,容易出错)
这个就相当于在/dev中创建了一个目录时卷组storage,然后卷组/dev/storage下创建了一个名为lv1的文件系统。所以逻辑卷lv1就是/dev/storage/lv1的文件系统,和分区/dev/sdb1很像,本质基本差不多。
2.挂载逻辑卷
然后把逻辑卷挂载上
可以看到,我在根目录下创建一个目录为abc的挂载点,然后将逻辑卷lv1挂载到abc上去,lsblk查看到挂载成功了。
df -h也可以清晰的看到
4.逻辑卷的调整(扩容与缩小)
1.扩容
逻辑卷扩容所用的命令是lvextend
比如我们要把刚刚创建的逻辑卷lv1从22G扩容到25G
首先把挂载的逻辑卷先卸下来
①输入命令lvextend -L +3G /dev/storage/lv1进行扩容
②切记还要输入resize2fs命令进行调整后的同步数据(因为加进来的 10G 还没有格式化)
这样就完成了逻辑卷的扩容
然后我们挂载上去
再用lsblk查看逻辑卷lv1分配的磁盘文件,用df -h查看逻辑卷lv1分配的文件系统
可以看到逻辑卷lv1已经成功从22G扩容到了25G
(注意一点:如果你选用的不是ext4的文件系统,而是xfs 文件系统,要使用的是 xfs_growfs命令来调整数据格式, 后面接挂载点,比如:xfs_growfs /abc)
2.缩小
逻辑卷扩容所用的命令是lvreduce
步骤是:
先输入检查命令(e2fsck),然后输入调整命令(resize2fs),最后输入缩小命令(lvreduce)。
我们现在把刚刚的25G逻辑卷lv1缩小到17G。
一样的要先把挂载的卸下来
①先输入e2fsck检查命令, 检查硬件状态,完整性(-f表示强制执行)
②输入resize2fs调整数据的命令(重置硬盘容量8G)
③最后输入缩小的命令
然后可以挂载上去用lsblk和df -h查看一下
可以看到已经成功缩小到17G了