Linux的LVM系统与磁盘配额

文章目录

  • LVM
  • LVM的管理命令
  • LVM 实现步骤
  • LVM实验
  • 磁盘限额
  • 设置磁盘配额步骤
  • 实验

LVM

全名:Logical Volume Manager
作用:

  • 能够在保持现有数据不变的情况下 动态调整磁盘容量(动态增加、减少磁盘的容量),从而提高磁盘管理的灵活性
  • 注意 :/boot 分区用于存放引导文件,不能用于 LVM 创建

注:由于 /boot 中有系统内核、启动文件目录、引导文件,所以不能基于LVM创建

LVM 机制基本概念,由三部分组成:

Linux的LVM系统与磁盘配额_第1张图片

  • VG(Volume Group,卷组)
    • 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
  • PV ( Physical Volume,物理卷)
    • 物理卷是 LVM机制 的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并 把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。一般需要使用两个及以上硬盘。
  • LV (Logical Volume,逻辑卷)
    • 从卷组中分割出的一块空间(基于PE进行分割),形成逻辑卷。使用 mkfs 等工具可在逻辑卷上创建文件系统。

LVM的管理命令

功能 物理卷管理命令 卷组管理命令 逻辑卷管理命令
Scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 - vgextend lvextend
Reduce 减少 - vgreduce lvreduce

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

LVM 实现步骤

  • 建立:先创建 物理卷 → 再创建卷组 → 最后创建逻辑卷
  • 删除:先删除 逻辑卷 → 再删除卷组 → 最后删除物理卷

如图:
Linux的LVM系统与磁盘配额_第2张图片
命令

关闭主机,添加两块新硬盘,重启主机

先使用fdisk 工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区尖型的ID标记号改为"8e":

fdisk /dev/sdb
fdisk /dev/sdc

n p 1 回车 +5G p t  8e w

创建物理卷
pvcreate /dev/sdb1 /dev/sdc1  或 pvcreate /dev/sd[b-c]1

创建卷组,卷组名为vgname1
vgcreate vgname1 /dev/sdb1 /dev/sdc1

创建逻辑卷,逻辑卷名为lvnamel,容量为20GB,生成的文件路径为 /dev/vgname1/lvname1
lvcreate -L 20G -n lvname1 vgname1

对逻辑卷进行格式化,创建XFS 文件系统,并挂载到/opt目录下
mkfs -t xfs /dev/vgname1/lvname1
mount /dev/vgname1/lvname1 /opt
df -hT

再扩容
vgextend vgname1 /dev/sdc2
vgdisplay vgname1

lvextend -L+10G /dev/vgname1/lvname1
lvdisplay /dev/vgname1/lvname1

xfs_growfs /dev/vgname1/lvname1    #刷新xfs文件系统容量
resize2fs /dev/vgname1/lvname1       #刷新ext4类型文件系统容量

LVM实验

第一步:分区
1.给虚拟机新增两块磁盘,每块大小10G。启动系统, fdisk -l 查看新增的两块硬盘 /dev/sdc /dev/sdd
Linux的LVM系统与磁盘配额_第3张图片
2.先将 /dev/sdc 磁盘分区类型设置为 Linux LVM ( 8e ),执行命令 fdisk /dev/sdc
Linux的LVM系统与磁盘配额_第4张图片
3.同样的设置 /dev/sdd 磁盘分区类型设置为 Linux LVM ( 8e ),不过只先分配5G,留着5G空间后面进行 扩展LVM实验 用。执行命令 fdisk /dev/sdd
Linux的LVM系统与磁盘配额_第5张图片
4.将 /dev/sdd 剩下的5G空间也设置为 Linux LVM ( 8e )。执行命令 fdisk /dev/sdd
Linux的LVM系统与磁盘配额_第6张图片
5.现在有

  • /dev/sdc1 10G
  • /dev/sdd1 5G
  • /dev/sdd2 5G,都是Linux LVM 类型

第二步:创建物理卷
1.创建物理卷 pvcreat,/dev/sdc1 /dev/sdd1 两个设备都创建物理卷
在这里插入图片描述
2.执行 pvscan 命令,可以看到目前有两个物理卷了
Linux的LVM系统与磁盘配额_第7张图片
第三步:创建卷组
1.创建一个卷组 vgcreat 卷组名 物理卷设备名
命令:vgcreat vgabc /dev/adc1 /dev/add1 命令等同于 vgcreat vgabc /dev/ad[cd]1
如图:
Linux的LVM系统与磁盘配额_第8张图片
第四步:创建逻辑卷
1.创建逻辑卷,创建逻辑卷名为 abc01,使用卷组vgabc,容量为12GB,生成的 文件路径为 /dev/vgabc/abc01
Linux的LVM系统与磁盘配额_第9张图片
第五步:创建文件系统、挂载逻辑卷
1.我们现在创建号了逻辑卷,不能直接使用,需要 对逻辑卷进行格式化,创建 XFS 文件系统,并挂载到 目录下,设备名格式是:/dev/vg名/lv名
Linux的LVM系统与磁盘配额_第10张图片
此时LVM逻辑卷的12G空间可以进行使用

磁盘限额

1.为什么要用磁盘限额
1.我们使用的Linux系统是可以多用户同时登录使用,如果同时有多个用户一起写文件,可能会导致根目录的容量被占满,会出现服务器崩溃不断重启的情况,为了防止这种情况,这时候就需要我们去设置磁盘限额,去控制多用户环境下限制每个用户的磁盘空间,规定某个用户最多只能创建多少个文件,最大使用多少容量
2.为了避免在服务器中出现类似因 操作不当或黑客攻击等 导致的磁盘空间不足的问题,可以启用 磁盘配额功能,对用户/组 在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性
3. 在Centos系统中,不同的文件系统 使用不同的磁盘配额配置管理工具。例如,XFS文件系统通过 xfs_quota 工具 进行管理;EXT3/4 文件系统通过 quota 工具 进行管理。Centos 7 使用 XFS 文件系统,Centos 6 使用 EXT4 文件系统
2.磁盘限额的概述
实现磁盘限额的条件
1、需要Linux内核的支持。
2、需要安装xfsprogs与quota软件包,一般来说Linux系统都是自带的,可以通过rpm -q [软件包名]来查看,如果没有安装,可以通过 yum install -y 进行安装。
Linux磁盘限额的特点

  • 作用范围是针对指定的文件系统
  • 限制对象为用户账号、组账号
  • 限制类型分为:磁盘容量、文件数量
  • 限制方法:软限制和硬限制
    • 软限制:假如我设置了软限制文件数量为16,当你文件数量超过16的时候,会出现提示,但是你还能继续创建文件
    • 硬限制:如果你硬限制了文件数量为20,当你文件数量超过20时,将不允许继续创建
    • 可以执行 mount 命令查看磁盘限额情况,noquota 表示没有配置限额

设置磁盘配额步骤

第一步:检查系统是否已安装 xfsprogs 和 xfs_quota 软件包
命令:rpm -q xfsprogs quota 查看软件包是否已安装
如图:
在这里插入图片描述
如果安装的话
执行这个命令安装:yum install -y xfsprogs quota.
第二部:以支持配额功能的方式挂载文件系统
表示支持用户,组的配额功能

umount /dev/vgname1/lvname1 #先将正在使用 LVM 的磁盘进行解挂载

#添加挂载参数 "usrquota, grpquota"
#用于增加对用户、组配额功能的支持,(暂时生效,重启失效)
mount -o usrquota,grpquota /dev/vgname1/lvname1 /opt

进行永久设置

vim /etc/fstab
#在启动文件fstab中添加一行配置,【重启也生效】
/dev/vgname1/lvname1 /opt xfs defaults, usrquota, grpquota 0 0

umount /dev/vgname1/lvname1
mount -a   #一a选项,将/etc/fstab 的所有内容重新挂载

第三步:编辑 用户和组账号 的配额设置

useradd zhangsan
passwd zhangsan
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /opt/

注: xfs_quota 命令来查看配额信息 以及 为用户和目录分配配额,并验证配额限制是否生效
选项与属性

  • -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
  • -c:表示直接调用 管理员命令,后面跟 ‘命令体’。(也可以不用-c,而去配置文件中修改)

对于管理员命令选项有

  • -u:指定用户账号对象
  • -g:指定组账号对象
  • -v:显示详细信息
  • bsoft:设置 磁盘容量 的 软限制大小值(默认单位为KB)
  • bhard:设置 磁盘容量 的 硬限制大小值(默认单位为KB)
  • isoft:设置 磁盘文件数 的 软限制数量值
  • ihard:设置 磁盘文件数 的 硬限制数量值
#/opt/ 是磁盘挂载目录

限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/

限制文件数
xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/

查看zhangsan 磁盘容量限制
xfs_quota -c 'quota -uv zhangsan' /opt/

查看zhangsan 文件数限制
xfs_quota -c 'quota -i -uv zhangsan' /opt/

第四步:验证磁盘配额功能

chmod 777 / opt  #修改用户权限 写的权限,用来去认证
su zhangsan
cd /opt

验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12

验证磁盘文件数超限
touch {aa, bb, cc, dd,ee,ff}.txt

注:dd 命令是一个 设备转换和连续复制命令

  • "if=” :指定输入设备(或文件)
  • "of=”:指定输出设备(或文件)
  • "bs=”:指定读取数据块的大小
  • "count=”:指定读取数据块的数量
  • /dev/zero: "零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件

第五步:查看配额使用情况

查看所有可用分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -a'

查看磁盘容量和文件数的报告
xfs_quota -x -c 'report -abih'

实验

先将xfsprogs 和 xfs_quota 软件包 已经安装了
1.对磁盘容量进行配额设置,先解挂 ,再将添加到自动挂载文件 /etc/fstab 中
Linux的LVM系统与磁盘配额_第11张图片
命令:格式: /卷组名 /挂载目录 xfs defaults, usrquota, grpquota 0 0
Linux的LVM系统与磁盘配额_第12张图片
注:wq 保存并退出后,执行命令 mount -a,全部挂载 fstab 中的文件,在执行命令 mount 查看,发现该设备已经设置了配额
在这里插入图片描述
2 用户和组账号的配额设置,给 chenlei 用户设置配额限制:软限制磁盘容量80M,硬限制磁盘容量100M,文件数量8个,软限制硬限制10个
Linux的LVM系统与磁盘配额_第13张图片
3 验证配额功能,为了能够用 chenlei 的非管理员账户操作 /lvmdata 目录,需要给设置目录的权限
命令: chmod 777 /lvmdata/ 赋予用户所有权限,验证用
Linux的LVM系统与磁盘配额_第14张图片
注:格式是 touch {1…11 }.txt 联系创建多个文件,如果多敲一个点 ,那么就会被当成一个文件去创建
4 查看配额使用情况
Linux的LVM系统与磁盘配额_第15张图片

你可能感兴趣的:(Linux的LVM系统与磁盘配额)