一、lvm出现原因
lvm 全称logic volume manager是方便linux操作系统管理扩容文件系统容量,增加硬盘的一种工具。与其他硬盘扩容方式相比较,优点即是方便随时扩容和减少硬盘。
二、lvm的一些基础介绍
lvm主要分为三层:pv层、vg层和lv层
pv层,即physics volume,物理卷层,主要是为了格式化新增的硬盘,方便后续vg层管理使用。在该层中硬盘被分割为一个个的PE(physical extent),每个PE是最小的存储单元,默认大小为4M,用与后续vg层使用。
vg层,即colume group,卷组层,主要是为了管理硬盘格式化后的一个个存储单元,为上层lv层,提供服务,方便lv层扩容和压缩。也因此致使lv层在扩容时,扩容的存储容量,一定是PE的整数倍。
lv层,即logic volume,逻辑卷层,用于最终的linux文件系统存储挂载,也是lvm工具延展性高的体现。
三、linux lvm创建使用命令
1.查看磁盘
fdisk -l
用该命令查看当前服务器的磁盘使用情况
2.初始化硬盘位物理卷PV
pvcreate 磁盘路径
用该命令初始化需要挂载的硬盘为一个个的PE存储单元
3.创建卷组VG
vgcreate 命名名称 需要加入的pv物理卷
用该命令创建一个vg卷组,将初始化的pv加入到vg卷组中
4.创建逻辑卷lv
lvcreate -n lv命名名称 -L 空间大小 来源卷组名称
该命令基于vg卷组创建一个逻辑卷
5.格式化LV逻辑卷创建文件系统
mkfs.ext4 逻辑卷路径
因为刚创建的逻辑卷是没有文件系统的,故而使用该命令为生成的lv逻辑卷创建文件系统
6.挂载文件系统
mount 逻辑卷路径 挂载路径
将创建好文件系统的逻辑卷挂载到需要的系统路径下
四、linux lvm硬盘扩容压缩常用命令
1.扩容命令
如果是需要扩容硬盘的话,首先初始化扩容的硬盘,并且将初始化完毕的硬盘扩展入vg卷组,当然,也可以直接将其他硬盘待分配的PE扩容进入卷组
pvcreate 硬盘路径
vgextend 卷组名 硬盘路径
紧接着扩容lv逻辑卷
lvextend -L +扩容容量 vg卷组路径
可以用 lvs(lvdisplay) 查看当前lv状况,如果未发现扩容成功则是因为文件系统在lv创建时大小已经固定,所以新加入lv逻辑卷中的PE并未创建文件系统,所以执行下述第一条命令创建文件系统,如果若目标目录挂载点的文件系统为xfs或出现“尝试打开超级块时出现错误的幻数”,则可以选择第二条命令执行
resize2fs /dev/centos/root(该路径为逻辑卷路径)
xfs_growfs /dev/centos/root(该路径为逻辑卷路径)
执行结束后可以进行以下命令,查看逻辑卷挂载的目录是否扩容完成。
df -h
2.压缩命令
//卸载逻辑卷
umount 逻辑卷路径
//缩小文件系统
resize2fs 逻辑卷路径
//缩小lv逻辑卷
lvreduce -L -缩小容量 逻辑卷路径
//查看缩小后的逻辑卷
lvs
//挂载
mount 逻辑卷路径 文件路径
要特别注意的是,逻辑卷压缩要慎重,在缩小文件系统时,要先查看逻辑卷使用情况,避免缩小过多导致文件丢失。
五、常用命令总结
// pv命令
pvscan
pvcreate
pvdisplay
pvremove
//vg命令
vgscan
vgcreate
vgdisplay
vgremove
vgextend
vgreduce
//lv命令
lvscan
lvcreate
lvdisplay
lvremove
lvextend
lvreduce