文件系统

支持 ext4 文件系统

openEuler 1.0 Base 中使用的默认文件系统是 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 文件系统

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

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