一,LVM逻辑卷管理
1,什么是LV逻辑卷,PV物理卷,VG卷组?
逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备
物理卷(Physical Volume,PV):也就是物理磁盘分区,如果想要使用LVM来管理这个分区,可以使用fdisk将其ID改为LVM可以识别的值,即8e。
卷组(Volume Group,VG):PV的集合
逻辑卷(Logic Volume,LV):VG中画出来的一块逻辑磁盘
物理磁盘或者磁盘分区转换为物理卷,一个或多个物理卷聚集形成一个或多个卷组,而逻辑卷就是从某个卷组里面抽象出来的一块磁盘空间。具体架构如下:
2,逻辑卷的作用
逻辑卷管理,多个硬盘分区组成,底层硬盘可随机搭配不用考虑实际硬盘分区,可看作是一个可动态扩展、快捷创建和方便管理的分区。LVM技术可以很方便地对存储空间进行管理,比如动态地增加或缩减逻辑卷的大小,扩容、缩容,移动逻辑卷的位置。备份和恢复逻辑卷,以及实现热备份等。此外,LVM还可以将不同物理硬盘的存储空间合并起来,为应用程序提供更大的存储空间。
3,为什么要使用逻辑卷
对于物理磁盘,我们直接分区、格式化为文件系统之后就可以使用,那为什么还需要使用逻辑卷的方式来管理磁盘呢?主要有2个原因:
(1)业务上使用大容量的磁盘。举个例子,我们需要在/data下挂载30TB的存储,对于单个磁盘,是无法满足要求的,因为市面上没有那么大的单块磁盘。但是如果我们使用逻辑卷,将多个小容量的磁盘聚合为一个大的逻辑磁盘,就能满足需求。
(2)扩展和收缩磁盘。在业务初期规划磁盘时,我们并不能完全知道需要分配多少磁盘空间是合理的,如果使用物理卷,后期无法扩展和收缩,如果使用逻辑卷,可以根据后期的需求量,手动扩展或收缩。
要创建逻辑卷,需要先有物理磁盘或者磁盘分区,然后使用物理磁盘或磁盘分区创建物理卷,再使用物理卷创建卷组,最后使用卷组创建逻辑卷。接下来一步一步创建逻辑卷。
4,LVM管理命令
二,创建逻辑卷
1,添加硬盘
//点击硬盘,选择添加
//点击下一步
//选择新添加的硬盘的容量,我这里选择的是5G,然后点击下一步
//点击确定后关闭,因为等会要扩容,所以我按照此方法又添加了一块5G的硬盘,所以我总的是添加了两块5G的硬盘。
//重启虚拟机,登录后使用 lsblk 命令查看。这里就显示了我刚刚新加的两块硬盘,如果添加的是一块,那么就只有一个。注意:每个人的硬盘名可能不一样
2,创建主分区,创建LVM逻辑卷之前需要创建主分区
//使用 fdisk /dev/sdb 创建主分区。注意:我这里是新添的两块硬盘,所以此操作要执行两次,只是硬盘名不一样。依次输入 n , p, 1, 然后回车回车,输入w后保存。
//使用 fdisk /dev/sdc 创建主分区。依次输入 n , p, 1, 然后回车回车,输入w后保存。
//查看结果,发现已经分区成功
3,创建物理卷
//使用 pvcreate /dev/sdb1 /dev/sdc1 。后面的那两个路径是你自己创建两个硬盘主分区后的路径。
4,打包为一个卷组
- 格式:vgcreate+卷组名+设备1+设备2+设备...
//卷组名是你自己起的名字,后面可以跟多个设备
//查看打包卷组的详细信息。注意:创建出来的大小 VG Size 会小于总的大小,因为创建的时候内部创建了分区表,占用了一定的空间。
5,创建逻辑卷
- 格式:lvcreate -L 指定的大小 -n 指定的逻辑卷名 卷组名
//逻辑卷名是自己起的名字,我这里叫做wn_lv
//使用 lvdisplay /dev/wn_vg/wn_lv查看建立的逻辑卷。wn_vg是之前自己创建的卷组名。可以看出来逻辑卷的大小 LV Size 就是我们刚刚分配的大小
6,格式化
- 格式:mkfs.xfs+创建的LVM卷组
//mkfs.xfs /dev/卷组名/逻辑卷名
7,挂载--开机自启动挂载(永久挂载)
//开机自启动挂载的方式不是唯一的,我这里使用的是blkid-UUID的方法
//使用 mkdir 建立一个挂载的目录 mkdir /wn_data
//使用blkid查看自己的UUID编码,然后复制最下面的UUID编码,不要双引号。
//编辑vim /etc/fstab 然后把/boot那一行的格式复制在最下面,把UUID替换为刚刚复制的UUID,把/boot换成自己的挂载目录,保存退出
//使用 mount -a 命令刷新,然后 df -h 查看
//挂载成功,大小为5G接下来可以进行扩容,然后也可以不扩容,看自己需求
8,逻辑卷扩容
需要手动操作
lvextend -L +5G /dev/wn_vg/wn_lv ——给逻辑卷扩容5G
xfs_growfs /dev/wn_vg/wn_lv ——逻辑卷刷新
df -h——查看
//使用命令扩容。注意:该扩容是从卷组里面拉取空间,因为刚开始卷组给逻辑卷分配了5G,所以此时我的卷组空间还有,使用此命令之前要确保卷组有相应的空间
//逻辑卷刷新
//结果展示,这是扩容后的结果。