lvm介绍

lvm介绍

Featured image

环境说明

该lvm配置,基于centos7.6

整体原理

通俗易懂讲解lvm的原理。

1、首先介绍lvm是什么?

2、lvm架构图

见架构图,Physical volume(以下简称,PV), Logical Volume(一下简称,LV),Volume GROUP(以下简称,VG)

1336985472_9898

​ lvm架构图

3、整体原理

PV可以理解我们挂载的硬盘,比如我们挂载3个1T的硬盘,那么我们的VG(可以理解为一个蓄水池),VG总储存量就是3T。VG总储存量就是3T,将3T可以任意分配到LV中,比如我们可以设置5个LV,每个LV的储存那么就是600G。最后,LV的值确定下来后,我们可以在LV上建立文件系统(比如/home或者/usr等)。

LV的值不是一直保持不变,而是可以后期改变的,这就说明文件系统的储存大小也是能改变的。

NOTICE(一些容易出bug的地方)

1、umount /home

只是不挂载在/home上,但是LV还是存在,会占用VG的存储。需要手动删除。

#手动删除LV,特别要注意别删centos-swap和centos-home
lvremove /dev/mapper/centos-home

2、/dev/centos/data和/dev/mapper/centos-data

都是VG中创建LV,/dev/centos/data和/dev/mapper/centos-data两个路径等价。

3、mount -a

建议修改/etc/fstab后,再进行mount -a。这样可以验证/etc/fstab修改是否正确,否则会造成机器启动失败。

修改实例,将/dev/mapper/centos-data的逻辑卷挂载在/data上。文件系统为ext4

/dev/mapper/centos-data  /data         ext4    defaults        0 0

4、mkfs.ext4 /dev/mapper/centos-data

将LV的文件格式改成ext4。如果不改,是不能挂载的。

常用命令

# 使用sdb创建基于磁盘的物理卷
pvcreate /dev/sdb
#展示pv资源
pvdisplay
#将/dev/sdb拉入vg中的data group
vgcreate data /dev/sdb
#查询vg是否创建成功
vgdisplay
#创建新的物理卷
pvcreate /dev/sdc
#将新的物理卷添加到现有卷组
vgextend data /dev/sdc
#VG的大小由刚才的500G变成了现在的1T的空间,PV的数量也由之前的1个变成了两个
vgdisplay data
#创建指定大小的逻辑卷LV,该命令就在卷组data上创建名字为data001,大小为200M的逻辑卷,并且设备入口为/dev/data/data001(data为卷组名,data001为逻辑卷名)。
lvcreate -L200M -n data001 data

#创建文件系统
mkfs.ext3 /dev/data/data003
# 挂载文件系统
mkdir /data003
mount /dev/data/data003 /data003
df -h

#持久化
修改/etc/fstab加入以下
/dev/s<盘符>    /mnt              ext4    defaults             0   1          // 作用于日志存储
/dev/s<盘符>    /data             ext4    defaults             0   1          // 作用于工作目录
/dev/s<盘符>    /docker-data      xfs     defaults,prjquota    0   1          // 作用于docker-data,必须是xfs,有prjquota
/dev/s<盘符>    /glusterfs-registry      ext4    defaults      0   1          // 作用于公共镜像仓库
/dev/s<盘符>    /glusterfs-sys-data   ext4    defaults         0   1          // 作用于系统依赖存储
/dev/s<盘符>    /glusterfs-user-data   ext4    defaults        0   1          // 作用于BML平台用户存储

#创建目录并挂载
mkdir -p /data /docker-data /glusterfs-registry /glusterfs-sys-data /glusterfs-user-data && mount -a

#在扩容lv后,需要xfs_growfs生效增长空间(针对于xfs文件系统,可通过`cat /etc/fstab`查看文件系统类别)
xfs_growfs /dev/centos/root

#在扩容lv后,需要resize2fs生效增长空间(针对ext4文件系统,可通过`cat /etc/fstab`查看文件系统类别)
resize2fs /dev/centos/root