逻辑卷:LVM:Logical Volume Manager:逻辑卷管理。是Linux环境中对磁盘分区进行管理的一种机制,是建立在 硬盘和分区之上、文件系统之下 的一个逻辑层,可提高磁盘分区管理的灵活性。
传统分区的缺点
传统分区:
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。
采用LVM时:
1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.文件系统建立在LVM上,可以跨分区,方便使用;
3.当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
4.使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。
基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)
逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)
概念解析:
LV逻辑卷
LV(Logical Volume)逻辑卷,它是在物理卷(PV)和卷组(VG)之上创建的,可以动态地调整大小和迁移数据。通常,LV被格式化为文件系统,以提供高级别的数据管理和访问方式。LV提供了更好的灵活性和可用性,可以根据需要增加或减少存储空间,同时提供了数据冗余和恢复功能。在Linux系统中,LVM(Logical Volume Manager,逻辑卷管理)为LV提供了管理和配置工具。
PV物理卷
PV(Physical Volume)物理卷,它表示一个硬盘或分区。在LVM中,多个PV物理卷可以组成一个VG(Volume Group)卷组,VG卷组则可以被分成多个LV(Logical Volume)逻辑卷。PV物理卷通常使用命令pvcreate来创建,之后可以使用vgextend命令将其添加到VG卷组中。
VG卷组
VG:卷组(Volume Group)。VG是逻辑卷(Logical Volumes)的基础,它将一个或多个物理卷(Physical Volumes)组合在一起,形成一个单一的卷组。VG提供了一种灵活的方式,来管理一个或多个物理硬盘驱动器的存储空间。VG中的所有物理卷都必须属于同一系统,并且必须使用相同的块大小。VG可以被划分成多个逻辑卷(Logical Volumes),每个逻辑卷都可以被格式化为一个文件系统,或被用作其他用途,如MySQL数据目录等。
制作文件系统------mkfs.xfs lvm路径
挂载 ------mount 使用lvm
制作lvm的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的。
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
扫描/查看 | pvscan/pvs | vgscan/vgs | lvscan/lvs |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩容 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
LVM的制作:
安装pv命令:
yum install -y lvm2
1.创建物理卷:声明 /dev/sdb 为 pv
#语法: pvcreate 磁盘路径1 磁盘路径2 磁盘路径3
pvcreate /dev/sdb
#查看pv:
pvs
pvscan
2.创建卷组:把 物理卷pv 声明为 卷组vg
#语法:vgcreate vg名 设备1 设备2 设备3
#语法:vgcreate vg名 pv1 pv2 pv3
vgcreate VG01 /dev/sdb
#查看vg:
vgs
vgscan
查看打包的卷组:
# 语法: vgdisplay vg名
vgdisplay VG01
3.创建逻辑卷:从卷组分出空间创建路基卷
#语法:lvcreate -n lv名 -L lv空间大小(M/G/T) vg名
#语法:lvcreate -n lv名 -l PE大小 vg名
lvcreate -n LV01 -L 500M VG01
#或:全部卷组空间做逻辑卷
lvcreate -n LV01 -l 255 VG01
#查看
lvs
4.制作系统文件,并挂载:
#制作文件系统
mkfs.xfs /dev/VG01/LV01
#挂载:
mount /dev/VG01/LV01 /XFS
LVM扩容:
流程:扩容pv -- -扩容vg --- 扩容lv --- 制作文件系统。
刷新分区表 :partprobe /dev/sdd
1.由于我的sdd有5G,分出3G给上方的 LV01 扩容:sdd分区并声明pv
#划分 3G 分区
fdisk /dev/sdd
#把 sdd1 声明为pv
pvcreate /dev/sdd1
2.将新的 pv 添加到卷组 vg:
vgextend VG01 /dev/sdd1
#查看:
vgs
3.逻辑卷扩容,并声明扩容的文件系统:追加3.5G
#三种扩容方式:
lvextend -L +3.5G /dev/VG01/LV01 #在原有基础上追加3.5G
lvextend -L 4G /dev/VG01/LV01 #拓展到4G
lvextend -l 100 /dev/VG01/LV01 #在原有基础上追加100PE
#查看:
lvs
4.制作文件系统:xfs格式
#xfs扩容
xfs_growfs /dev/VG01/LV01
#ext4扩容
resize2fs /dev/VG01/LV01
#查看:
df -Th