第十四章、【Linux】磁盘配额与进阶文件系统管理

简介: 第十四章、【Linux】磁盘配额与进阶文件系统管理

14.1 磁盘配额 (Quota) 的应用与实作

14.1.1 什么是 Quota

在 Linux 系统中,由于是多用户多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生, 如果其中有少数几个使用者大量的占掉了硬盘空间的话,那势必压缩其他使用者的使用权力! 因此管理员应该适当的限制硬盘的容量给使用者,以妥善的分配系统资源。


举例来说,我们使用者的默认主文件夹都是在 /home 下面,如果 /home 是个独立的 partition, 假设这个分区有 10G 好了,而 /home 下面共有 30 个帐号,也就是说,每个使用者平均应该会有 333MB 的空间才对。 偏偏有个使用者在他的主文件夹下面塞了好多只影片,占掉了8GB 的空间,想想看,是否造成其他正常使用者的不便呢? 如果想要让磁盘的容量公平的分配,这个时候就得要靠 quota 的帮忙。


Quota 的一般用途


quota 比较常使用的几个情况是:


针对 WWW server ,例如:每个人的网页空间的容量限制


针对 mail server,例如:每个人的邮件空间限制。


针对 file server,例如:每个人最大的可用网络硬盘空间


上头讲的是针对网络服务的设计,如果是针对 Linux 系统主机上面的设置那么使用的方向有下面这一些:


限制某一群组所能使用的最大磁盘配额 (使用群组限制): 你可以将你的主机上的使用者分门别类,有点像是目前很流行的付费与免付费会员制的情况。


限制某一使用者的最大磁盘配额 (使用使用者限制): 在限制了群组之后,你也可以再继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配。


限制某一目录 (directory, project) 的最大磁盘配额: 在旧版的 CentOS 当中,使用的默认文件系统为 EXT 家族,这种文件系统的磁盘配额主要是针对整个文件系统来处理,所以大多针对“挂载点”进行设计。 新的 xfs 可以使用 project 这种模式,就能够针对个别的目录 (非文件系统喔) 来设计磁盘配额。


Quota 的使用限制


虽然 quota 很好用,但是使用上还是有些限制要先了解的:


在 EXT 文件系统家族仅能针对整个 filesystem: EXT 文件系统家族在进行 quota 限制的时候,它仅能针对整个文件系统来进行设计,无法针对某个单一的目录来设计它的磁盘配额。 因此,如果你想要使用不同的文件系统进行 quota 时,请先搞清楚该文件系统支持的情况。因为 XFS 已经可以使用 project 模式来设计不同目录的磁盘配额。


核心必须支持 quota : Linux 核心必须有支持 quota 这个功能才行。如果是CentOS 7.x的默认核心,那系统就默认有支持quota这个功能。


只对一般身份使用者有效:并不是所有在 Linux 上面的帐号都可以设置quota 呢,例如 root 就不能设置 quota , 因为整个系统所有的数据几乎都是他的。


若启用 SELinux,非所有目录均可设置 quota : 新版的 CentOS 默认都有启用 SELinux这个核心功能,该功能会加强某些细部的权限控制!由于担心管理员不小心设置错误,因此默认的情况下, quota 似乎仅能针对 /home 进行设置而已。


Quota 的规范设置项目:


quota 针对 XFS filesystem 的限制项目主要分为下面几个部分:


分别针对使用者、群组或个别目录 (user, group & project):


XFS 文件系统的 quota 限制中,主要是针对群组、个人或单独的目录进行磁盘使用率的限制。


容量限制或文件数量限制 (block 或 inode):


文件系统主要规划为存放属性的 inode 与实际文件数据的 block 区块,Quota 既然是管理文件系统,所以当然也可以管理 inode 或 block。这两个管理的功能为:


限制 inode 用量:可以管理使用者可以创建的“文件数量”;


限制 block 用量:管理使用者磁盘容量的限制,较常见为这种方式。


柔性劝导与硬性规定 (soft/hard):


既然是规范,当然就有限制值。不管是 inode/block ,限制值都有两个,分别是 soft 与hard。 通常 hard 限制值要比 soft 还要高。举例来说,若限制项目为 block ,可以限制 hard为 500MBytes 而 soft 为 400MBytes。这两个限值的意义为:


hard:表示使用者的用量绝对不会超过这个限制值,以上面的设置为例, 使用者所能使用的磁盘容量绝对不会超过 500MBytes ,若超过这个值则系统会锁住该用户的磁盘使用权;


soft:表示使用者在低于 soft 限值时 (此例中为 400MBytes),可以正常使用磁盘,但若超过 soft 且低于 hard 的限值 (介于 400~500MBytes 之间时),每次使用者登陆系统时,系统会主动发出磁盘即将爆满的警告讯息, 且会给予一个宽限时间 (gracetime)。不过,若使用者在宽限时间倒数期间就将容量再次降低于 soft 限值之下, 则宽限时间会停止。


会倒数计时的宽限时间 (grace time):


由于达到 hard 限值时,使用者的磁盘使用权可能会被锁住。为了担心使用者没有注意到这个磁盘配额的问题, 因此设计了 soft 。当你的磁盘用量即将到达 hard 且超过 soft 时,系统会给予警告,但也会给一段时间让使用者自行管理磁盘。一般默认的宽限时间为七天,如果七天内你都不进行任何磁盘管理,那么 soft 限制值会即刻取代 hard 限值来作为 quota 的限制。


以上面设置的例子来说,假设你的容量高达 450MBytes 了,那七天的宽限时间就会开始倒数, 若七天内你都不进行任何删除文件的动作来替你的磁盘用量瘦身, 那么七天后你的磁盘最大用量将变成 400MBytes (那个 soft 的限制值),此时你的磁盘使用权就会被锁住而无法新增文件了。


整个 soft, hard, grace time 的相关性我们可以用下面的图示来说明:


                              6063cd36878543e395f9a306c454cddc.png


                                          图14.1.1、soft, hard, grace time 的相关性


图中的长条图为使用者的磁盘容量,soft/hard 分别是限制值。只要小于 400M 就一切 OK ,若高于 soft 就出现 grace time 并倒数且等待使用者自行处理。


相关文章
|
1月前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
62 5
|
1月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
38 2
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
17天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
1月前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
45 0
|
18天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
5天前
|
Ubuntu Linux 芯片
Linux(2)ubuntu rootfs根文件系统制作
Linux(2)ubuntu rootfs根文件系统制作
19 0
|
12天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
103 2
|
13天前
|
存储 运维 监控
深入理解 Linux 文件系统的层次结构
【4月更文挑战第14天】本文将探讨 Linux 操作系统的文件系统层次结构,这是每个系统管理员和开发人员必须掌握的核心知识。我们将从文件系统的顶层目录开始,逐步深入到每个目录的特定用途和重要性,以及它们如何协同工作以支持 Linux 系统的正常运行。
|
18天前
|
存储 缓存 监控
Linux内存和硬盘空间管理技巧
了解Linux内存和硬盘管理技巧,提升系统性能和稳定性。使用`free`, `top`, `vmstat`监控内存,通过`sync`, `echo 1 > /proc/sys/vm/drop_caches`清理缓存。利用Swap分区释放内存。借助`df`, `du`检查硬盘空间,清理无用文件,使用`clean-old`, `gzip`, `tar`压缩归档。查找大文件用`find`和`du`,确保
33 0