# 文件系统<a name="ZH-CN_TOPIC_0185681954"></a>

## 支持 ext4 文件系统<a name="zh-cn_topic_0058462766_s15e1285a2991480fab403626b3193a88"></a>

openEuler 1.0 中使用的默认文件系统是 ext4，ext4 向下兼容于 ext3/ext2 文件系统，可以将 ext3/ext2 挂载为 ext4 分区。

ext4 的主要特性：

-   ext4 最大支持的文件系统是 1EB，单一最大文件值是 16TB。
-   ext4 使用 extent 树代替了ext3/ext2 的逻辑块映射，减少了元数据块的使用，提高了处理大型文件的效率。
-   ext4 使用延迟块分配机制，仅当文件从高速缓存写入磁盘时才真正为数据分配磁盘块，有利于改善大文件的碎片化。
-   ext4 支持日志校验和，以确认日志块是否遭到损坏，提升可靠性。
-   ext4 支持惰性初始化，启用 lazyinit 特性后，会在后台挂载过程中逐步初始化inode表，这将显著加快创建 ext4 文件系统的速度。
-   ext4 支持快速 fsck，在 ext4 中每个 inode 表将会存储未使用的 inode 列表，在 fsck 时将会跳过这些inode，加速 fsck。
-   ext4 支持三种日志模式：journal（可靠性最高）、ordered、writeback（性能最好）。

另外，openEuler 也对 ext4 进行了一些bug修复和优化，主要优化点如下：

-   ext4 和 sysmonitor相结合，支持 ext4 文件系统的故障告警通知。

## 支持 XFS 文件系统<a name="section202642058161515"></a>

openEuler 1.0 支持高性能的日志文件系统 XFS，并提供了专门用于 XFS 备份和恢复的工具 xfsdump 和 xfsrestore 。XFS 需要关注的主要特性如下：

-   XFS 的设计完全基于扩展，最大支持的文件系统和文件大小是8EB - 1字节。
-   使用B+树的数据结构来提升IO灵活性，如将B+树用于 inode 和 block 管理等。
-   将块设备分割成多个AG（分配组），允许多个线程并行在不同的分配组上进行IO操作，提升并行能力。
-   支持延迟分配，在内存中记录事务，在数据真正写入磁盘之前分配磁盘块。
-   支持自描述 metadata 的元数据校验，防止在意外断电时元数据遭到损坏。

