Linux深度探秘:LVM卷与磁盘限额管理

194 阅读5分钟

1、LVM卷

LVM称为(逻辑卷管理)。我们在平时用电脑的时候,应该经常会遇到硬盘空间不够用的情况,但是,我们又不能直接更换一个新硬盘,因为数据是无价的。这时候就可以用到LVM卷,它可以在保持现有数据不变的情况下,实现动态调整磁盘大小,从而提高灵活性。 /boot分区用于存放引导文件,不能基于LVM创建。

1.1 LVM组成

LVM由三部分组成,

  • 第一部分叫PV(物理卷),物理卷是LVM基本存储设备,对应一个普通分区或者整个硬盘,在创建物理卷时,物理卷会把存储空间分割成默认大小为4MB的基本单元(PE)。
  • 第二部分叫VG(卷组):是由一个或者多个物理卷组成的,可以动态的添加或者移除物理卷。
  • 第三部分叫LV(逻辑卷):逻辑卷是从卷组中分割出的一块空间,使用mkfs等工具可以在逻辑卷上创建文件系统。

image.png

1.2 LVM主要命令

功能物理卷卷组逻辑卷
Scan扫描pvscanvgscanlvscan
Create建立pvcreatevgcreatelvcreate
Display显示pvdisplayvgdisplaylvdisplay
Remove删除pvremovevgremovelvremove
Extend扩展vgextendlvextend
Reduce减少vgreducelvreduce

可以发现,物理卷的命令都是以pv开头,卷组是以vg开头,逻辑卷是以lv开头。一般来说我们用不到减少,因为我们绝大部分应该都是磁盘不够用才去使用LVM来实现动态调整磁盘容量。

1.3 配置LVM

  1. 首先,我们要先关机,去手动添加两块新的硬盘进虚拟机,大小设置成20GB。进入虚拟机之后,可以通过fdisk -l 进行查看。 image.png
  2. 分别用 fdisk /dev/sdb 和 fdisk /dev/sdc 进入sdb和sdc进行配置。sdb配置的时候,我们输入n,选择p主分区,然后后面全部默认即可。但是注意不要直接w退出,因为目前的ID号是83,是默认的xfs文件系统,我们需要修改成8e才是LVM卷,按t进入页面,修改成8e。进入sdc的时候,我们可以配置两个主分区sdc1和sdc2,分别给10G的大小,sdc1我们后面与sdb1合成一个物理卷,sdc2我们可以用来实现后期的容量扩展。 image.png
  3. 将sdb1和sdc1创建成一个物理卷,可以通过pvdisplay进行查看。 image.png image.png
  4. 创建卷组,卷名为vgname(自己设置): image.png
  5. 创建逻辑卷,卷名为lvname(自己设置),容量为29G,根据自己的物理卷来设置大小,生成的文件路径为 /dev/vgname/lvname image.png image.png
  6. 对逻辑卷进行格式化,创建xfs文件系统,并挂载到 /data下。 image.png
  7. 继续完成扩容,之前创建sdc的时候还有一个主分区sdc2没有用上,现在可以用来加入到卷组中。 image.png image.png

2、磁盘限额

我们使用的Linux系统是可以多用户同时登录使用,如果同时有多个用户一起写文件,可能会导致根目录的容量被占满,会出现服务器崩溃不断重启的情况,为了防止这种情况,这时候就需要我们去设置磁盘限额,去控制多用户环境下限制每个用户的磁盘空间,规定某个用户最多只能创建多少个文件,最大使用多少容量。

2.1 实现磁盘限额的条件

  1. 需要Linux内核的支持。
  2. 需要安装xfsprogs与quota软件包,一般来说Linux系统都是自带的,可以通过rpm -q [软件包名]来查看,如果没有安装,可以通过 yum install -y 进行安装。

2.3 配置磁盘限额

整体的配置思路:以支持配额功能的方式挂载文件系统(最好在/dev/fstab中设置)→编辑用户和组账号的配额设置。→验证磁盘配额功能→查看磁盘配额使用情况。

  1. 检查是否安装了xfsprogs和quota软件包。
  2. 先通过mount可以查看到目前为noquota,不支持磁盘配额,接下来就要我们进行修改,让他支持磁盘配额。 image.png 取消挂载,再vim /etc/fstab进行设置,因为需要每次重启系统都进行自动挂载。 image.png image.png 设置完之后wq保存退出,使用mount -a重新加载内容,再通过mount查看,可以发现目前已经支持磁盘配额了。 image.png
  3. 编辑用户和组账号的配额设置 image.png image.png
useradd luwei
passwd luwei
xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=8 ihard=10 luwei’ /data
## -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令。
## -c:表示直接调用管理命令
## -u:指定用户账号对象
## -g:指定组账号对象
## bsoft:设置磁盘容量的软限制数值
## bhard:设置磁盘容量的硬限制数值
## isoft:设置磁盘文件数的软限制数值
## ihard:设置磁盘文件数的硬限制数值
  1. 查看luwei磁盘容量限制 image.png
  2. 查看luwei磁盘文件数限制 image.png
  3. 验证磁盘功能,默认的data权限为755,普通用户没有写的权限,所以要先将data的权限修改成777。
chmod 777 /data
su luwei
cd /data
dd if=/dev/zero of=/data/ddtest.txt bs=10M count=12
// 提供一些空字符复制进data/ddtest.txt中,bs为每次复制空字符的大小,count为复制的次数。上述的总大小就为12次*每次10M=120M,由于我上面设置过了硬限制不能超过100M,所以这里是不能通过的。

image.png 通过rm -rf *删除掉data中的内容,重新复制一次,这次我们复制次数为9次,每次复制10M。 image.png image.png

这次创建10个txt文件,也是不成功,因为超出了之前的限制(之前硬限制文件数为10),因为这里面包含了之前创建的ddtest.txt文本,所以一共有11个文件。 image.png image.png

查看磁盘容量和文件数的报告

image.png