Linux-Ext4系统文件与磁盘配额(扩展)

一、Ext4系统文件

1、概述

EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。

2、Ext4文件系统的特点(参考百度)

  1. 更大的文件系统和更大的文件
    Ext3文件系统最多只能支持32TB的文件系统和2TB的文件,根据使用的具体架构和系统设置,实际容量上限可能比这个数字还要低,即只能容纳2TB的文件系统和16GB的文件。而Ext4的文件系统容量达到1EB,而文件容量则达到16TB,这是一个非常大的数字了。对一般的台式机和服务器而言,这可能并不重要,但对于大型磁盘阵列的用户而言,这就非常重要了。
  2. 更多的子目录数量
    Ext3目前只支持32000个子目录,而Ext4取消了这一限制,理论上支持无限数量的子目录。
  3. 更多的块和i-节点数量
    Ext3文件系统使用32位空间记录块数量和i-节点数量,而Ext4文件系统将它们扩充到64位。
  4. 多块分配
    当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块,如果写一个100MB的文件就要调用25600次数据块分配器,而Ext4的多块分配器“Multiblock Allocator(MBAlloc)”支持一次调用分配多个数据块。
  5. 持久性预分配
    如果一个应用程序需要在实际使用磁盘空间之前对它进行分配,大部分文件系统都是通过向未使用的磁盘空间写入0来实现分配,比如P2P软件。为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。而Ext4在文件系统层面实现了持久预分配并提供相应的API,比应用软件自己实现更有效率。
  6. 延迟分配
    Ext3的数据块分配策略是尽快分配,而Ext4的策略是尽可能地延迟分配,直到文件在缓冲中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,显著提升性能。
  7. 盘区结构
    Ext3文件系统采用间接映射地址,当操作大文件时,效率极其低下。例如,一个100MB大小的文件,在Ext3中要建立25600个数据块(以每个数据块大小为4KB为例)的映射表;而Ext4引入了盘区概念,每个盘区为一组连续的数据块,上述文件可以通过盘区的方式表示为“该文件数据保存在接下来的25600个数据块中”,提高了访问效率。
  8. 新的i-节点结构
    Ext4支持更大的i-节点。之前的Ext3默认的i-节点大小128字节,Ext4为了在i-节点中容纳更多的扩展属性,默认i-节点大小为256字节。另外,Ext4还支持快速扩展属性和i-节点保留。
  9. 日志校验功能
    日志是文件系统最常用的结构,日志也很容易损坏,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4给日志数据添加了校验功能,日志校验功能可以很方便地判断日志数据是否损坏。而且Ext4将Ext3的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能 [1] 。
  10. 支持“无日志”模式
    日志总归会占用一些开销。Ext4允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。
  11. 默认启用Barrier
    磁盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写Commit记录。若Commit记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4文件系统默认启用Barrier,只有当Barrier之前的数据全部写入磁盘,才能写Barrier之后的数据。
  12. 在线碎片整理
    尽管延迟分配、多块分配和盘区功能可以有效减少文件的碎片,但碎片还是不可避免会产生。Ext4支持在线碎片整理,并将提供e4defrag工具进行个别文件或整个文件系统的碎片整理。
  13. 支持快速fsck
    以前的文件系统版本执行fsck时很慢,因为它要检查所有的i-节点,而Ext4给每个块组的i-节点表中都添加了一份未使用i-节点的列表,所以Ext4文件系统做一致性检查时就可以跳过它们而只去检查哪些在使用的i-节点,从而提高了速度。
  14. 支持纳秒级时间戳
    Ext4之前的扩展文件系统的时间戳都是以秒为单位的,这已经能够应付大多数设置,但随着处理器的速度和集成程度(多核处理器)不断提升,以及Linux开始向其他应用领域发展,它将时间戳的单位提升到纳秒。
    Ext4给时间范围增加了两个位,从而让时间寿命在延长500年,Ext4的时间戳支持的日期到2514年4月25日,而Ext3只达到2038年1月18日。

二、实例:Ext4磁盘配额管理

1、在虚拟机创建2个40G的硬盘,并重启

在这里插入图片描述

2、查看硬盘并建立分区

fdisk -l——查看
fdisk /dev/sdb——建立分区(图片以/dev/sdb磁盘为例)
fdisk /dev/sdc——建立分区(同上)
在这里插入图片描述
在这里插入图片描述

3、创建lvm

pvcreate /dev/sdb1 /dev/sdc1——创建物理卷
vgcreate vg1 /dev/sdb1 /dev/sdc1——创建卷组
lvcreate -L 20G -n lv1 vg1——创建逻辑卷
在这里插入图片描述

4、格式化,并挂载

mkfs.ext4 /dev/vg1/lv1——把磁盘格式化为ext4文件系统
1.手动挂载
mkdir /data——创建目录
mount /dev/vg1/lv1 /data——手动挂载
在这里插入图片描述
在这里插入图片描述
2.自动挂载
vim /etc/fstab——进入
/dev/vg1/data——ext4——defaults,usrquota——0——0(挂载)
mount -a——重新加载
在这里插入图片描述
在这里插入图片描述

5、关闭安全功能,创建配额文件

setenforce 0——关闭安全功能
quotacheck -cvu /dev/vg1/lv1——创建
-u、-g:检测用户、组配额
-c:创建配额数据文件
-v:显示执行过程信息
cd /data
ls——查看
aquota.group aquota.user——查看是否存在
在这里插入图片描述

6、创建用户,并设置配额

useradd srs
passwd srs
edquota -u srs
在这里插入图片描述在这里插入图片描述

7、开启配额功能,设置权限

quotaon -uv /data(关闭quotaoff)
chmod 777 /data
在这里插入图片描述

8、验证磁盘容量和文件数量

su srs
dd if=/dev/zero of=/data/1.txt bs=10M count=11——验证磁盘容量,因为设置了100M上限所以大于100M显示超额
touch {1,2,3,4,5,6}.txt——验证文件数量,因为设置了5个上限所以最多只能创建5个
quota -u srs——查看配额使用情况
在这里插入图片描述
在这里插入图片描述

9、重启查看用户是否创建,磁盘是否挂载

这里可以看出用户已经创建,磁盘也已经挂载到了/data目录之下。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/s15212790607/article/details/113691740