LVM 简介
文章目录
传统的文件系统安装模式
传统的文件系统,是直接安装在分区之上。当你拿到一块存储设备,比如硬盘,或固态硬盘,首先要做的,是在设备上建立分区。
一个设备可以建立多个分区。分区的作用,是把存储设备,分成以扇区(sector)为单位的逻辑单元,数据的写入和读取,都是以扇区为单位的。一个扇区大小是512K,信息都是分成以扇区大小的单元存储在设备上。但如果操作系统直接操作扇区来读写数据,会严重影响效率,增加程序的复杂性,所以在分区之上,实现了文件系统。
操作系统利用文件系统提供的接口在进行 IO 操作,文件系统负责与设备的驱动协同工作,提供 IO 功能。
-
linux 上常用的分区工具有: fdisk, gdisk, parted
-
linux 常用的文件系统有: ext4, ext3, XFS, Btrfs
-
windows 上常用的文件系统有: NTFS, VFAT
-
MAC 上常用的文件系统有:HFS, HFS+
为什么引入卷
传统的方式,在扩展存储时会遇到困难。
想象如下场景,在某一个目录存储文档,此目录存放在某个分区上,随着存储的数据越来越多,存储空间不够,但因为这个目录是限制在此分区上,所以没有办法动态的增加其可用空间。为了能引入灵活性,引入了卷的概念。
文件系统建立在卷上,而分区包括在卷里。当卷的存储空间不够,只需要添加一块新的存储设备,在这个设备上建立新的分区,然后将分区添加在这个卷里,这样,就可以动态的增加可用的存储空间了。
卷是一个分层的概念。 首先是在分区上建立物理卷(pv),之后建立卷组(vg),一个卷组可以包含一个或多个物理卷。 可以把卷组看成是一个存储空间的池,在圈组里,可以建立一个或多个逻辑卷(lv), 文件系统就建立在逻辑卷上。

操纵卷的工具
linux 提供了 lvm 来管理卷,其中包含了多个工具: pvcreate: 从分区上建立物理卷 pvs, pvdisplay: 显示当前系统的物理卷情况 pvresize: 改变物理卷的大小
vgcreate: 创建卷组 vgs, vgdisplay: 显示当前系统卷组的情况 vgextend: 将新的物理卷加入卷组 vgreduce: 将物理卷移出卷组
lvcreate: 创建逻辑卷 lvs, lvdisplay: 显示当前系统逻辑卷的情况 lvresize, lvexten, lvreduce 用来调整逻辑卷的大小。
将新的硬盘加入卷组(扩展卷组)
-
在新的硬盘分区上创建物理卷
1
pvresize /dev/sda1
-
将新创建的物理卷加入卷组 vg01
1
vgextend vg01 /dev/sda1
可以用命令 vgs 查看卷组 vg01 里有新的可用的空间。
-
将新增加的空间扩展给已经存在的逻辑卷 rhel/root
1
lvresize -l +100%FREE --resizefs rhel/root
就能看到新硬盘空间增加到了系统中。
缩减逻辑卷的空间(支持 –resizefs)
如果希望将一个逻辑卷的空间转移给另一个卷,就需要先减小一个卷的大小,这样被释放的空间就会回到其所属的卷组里。之后就可以用和上面相同的命令来将被释放的空间扩展给其它卷。
对于被 fsadm 支持 文件系统,比如 ext3, ext4,可以用一行命令来释放其对应的逻辑卷的空间。
|
|
这样逻辑卷 home 的大小就被设置为 15G 了。
缩减 xfs 文件系统逻辑卷的空间(不支持 –resizefs)
对于不支持 fdadm 的文件系统,就不能使用 –resizefs 来调整逻辑卷。因此要缩减使用 xfs 的逻辑卷,就需要先将需要缩减的目录备份,然后缩减了逻辑卷尺寸后,重新创建文件系统,再将已备份的目录恢复。
-
备份目录
1
xfsdump -f /home.image /home
-
将要缩减的目录 umount
1
umount /home
-
缩减尺寸 将 home 目录对应的逻辑卷尺寸所谓 2G
1
lvreduce -L 2G /dev/mapper/rhel-home
-
格式化缩减后的逻辑卷
1
mkfs.xfs -f /dev/mapper/rhel-home
-
重新挂载 home 目录
1
mount /dev/mapper/rhel-home /home
-
恢复备份的目录
1
xfsrestore -f /home.image /home
文章作者 Griffin
上次更新 2020-12-29