《linux_文件系统的介绍(详细)》由会员分享,可在线阅读,更多相关《linux_文件系统的介绍(详细)(18页珍藏版)》请在金锄头文库上搜索。
1、Linux文件系统类型介绍 Lib modules 2 4 18 6mdk kernel fs中查出当前系统所支持的文件系统种类 从图 1中可以看到笔者使用的MandrakeLinux8 2支持的文件系统非常多 Linux系统核心支持十多种文件系统类型 jfs ReiserFS ext ext2 ext3 iso9660 xfs minx msdos umsdos Vfat NTFS Hpfs Nfs smb sysv proc等 ext文件系统 ext是第一个专门为Linux的文件系统类型 叫做扩展文件系统 完成时间 1992年4月作者 RemyCard它为Linux的发展取得了重要作用 但
2、是在性能和兼容性上存在许多缺陷 现在已经很少使用了 ext2文件系统 ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统 又被称为二级扩展文件系统 发布时间 1993年作者 ReyCard优点 在速度和CPU利用率上较突出 是GNU Linux系统中标准的文件系统 其特点为存取文件的性能好 对于中小型的文件更显示出优势 这主要得利于其簇快取层的优良设计 Ext2可以支持256字节的长文件名 其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关 在一般常见的Intelx86兼容处理器的系统中 簇最大为4KB 则单一文件大小上限为2048GB 而文件系统的容量上限为6
3、384GB 尽管Linux可以支持种类繁多的文件系统 但是2000年以前几乎所有的Linux发行版都用ext2作为默认的文件系统 ext2文件系统 缺点 ext2的缺点 ext2的设计者主要考虑的是文件系统性能方面的问题 ext2在写入文件内容的同时并没有同时写入文件的meta data 和文件有关的信息 例如 权限 所有者以及创建和访问时间 换句话说 Linux先写入文件的内容 然后等到有空的时候才写入文件的meta data 这样若出现写入文件内容之后但在写入文件的meta data之前系统突然断电 就可能造成在文件系统就会处于不一致的状态 在一个有大量文件操作的系统中出现这种情况会导致很
4、严重的后果 ext3文件系统 ext3是由开放资源社区开发的日志文件系统主要开发人员 Stephentweedie 斯蒂芬 特威迪 ext3在ext2的基础上加入了记录元数据的日志功能 努力保持向前和向后的兼容性 这个文件系统被称为ext2的下一个版本 也就是在保有目前ext2的格式之下再加上日志功能 ext3是一种日志式文件系统 日志式文件系统的优越性在于 相比之下 除非发生硬件故障 即使非正常关机 ext3也不需要文件系统校验 这是因为数据是以文件系统始终保持一致方式写入磁盘的 在非正常关机后 恢复ext3文件系统的时间不依赖于文件系统的大小或文件数量 而依赖于维护一致性所需 日志 的大小
5、 使用缺省日志设置 恢复时间仅需一秒 依赖于硬件速度 ext4文件系统 Linuxkernel自2 6 28开始正式支持新的文件系统Ext4 Ext4是Ext3的改进版 修改了Ext3中部分重要的数据结构 而不仅仅像Ext3对Ext2那样 只是增加了一个日志功能而已 Ext4可以提供更佳的性能和可靠性 还有更为丰富的功能 1 与Ext3兼容 执行若干条命令 就能从Ext3在线迁移到Ext4 而无须重新格式化磁盘或重新安装系统 原有Ext3数据结构照样保留 Ext4作用于新数据 当然 整个文件系统因此也就获得了Ext4所支持的更大容量 2 更大的文件系统和更大的文件 较之Ext3目前所支持的最大
6、16TB文件系统和最大2TB文件 Ext4分别支持1EB 1 048 576TB 1EB 1024PB 1PB 1024TB 的文件系统 以及16TB的文件 3 无限数量的子目录 Ext3目前只支持32 000个子目录 而Ext4支持无限数量的子目录 4 Extents Ext3采用间接块映射 当操作大文件时 效率极其低下 比如一个100MB大小的文件 在Ext3中要建立25 600个数据块 每个数据块大小为4KB 的映射表 而Ext4引入了现代文件系统中流行的extents概念 每个extent为一组连续的数据块 上述文件则表示为 该文件数据保存在接下来的25 600个数据块中 提高了不少效
7、率 5 多块分配 当写入数据到Ext3文件系统中时 Ext3的数据块分配器每次只能分配一个4KB的块 写一个100MB文件就要调用25 600次数据块分配器 而Ext4的多块分配器 multiblockallocator mballoc 支持一次调用分配多个数据块 6 延迟分配 Ext3的数据块分配策略是尽快分配 而Ext4和其它现代文件操作系统的策略是尽可能地延迟分配 直到文件在cache中写完才开始分配数据块并写入磁盘 这样就能优化整个文件的数据块分配 与前两种特性搭配起来可以显著提升性能 7 快速fsck 以前执行fsck第一步就会很慢 因为它要检查所有的inode 现在Ext4给每个组
8、的inode表中都添加了一份未使用inode的列表 今后fsckExt4文件系统就可以跳过它们而只去检查那些在用的inode了 8 日志校验 日志是最常用的部分 也极易导致磁盘硬件故障 而从损坏的日志中恢复数据会导致更多的数据损坏 Ext4的日志校验功能可以很方便地判断日志数据是否损坏 而且它将Ext3的两阶段日志机制合并成一个阶段 在增加安全性的同时提高了性能 9 无日志 NoJournaling 模式 日志总归有一些开销 Ext4允许关闭日志 以便某些有特殊需求的用户可以借此提升性能 10 在线碎片整理 尽管延迟分配 多块分配和extents能有效减少文件系统碎片 但碎片还是不可避免会产生
9、 Ext4支持在线碎片整理 并将提供e4defrag工具进行个别文件或整个文件系统的碎片整理 11 inode相关特性 Ext4支持更大的inode 较之Ext3默认的inode大小128字节 Ext4为了在inode中容纳更多的扩展属性 如纳秒时间戳或inode版本 默认inode大小为256字节 Ext4还支持快速扩展属性 fastextendedattributes 和inode保留 inodesreservation Btrfs文件系统 创始人 ChrisMason特点 1 使用了copyonwrite COW 这意味着Btrfs在普通操作中不会直接覆盖数据 而是将元数据 metada
10、ta 和数据的新值写到别的地方 然后在文件系统中指向新的位置 这就提供了强大的一致性和完整性保证 在海量存储上 这对于保持数据的可管理非常重要 2 Btrfs还提供了快照和调整文件系统大小的功能 为了方便现有的Ext3 4用户迁移 Btrfs提供了从Ext3 4离线转换 offlineconversion 的功能 xfs文件系统 xfs是一种非常优秀的日志文件系统 它是SGI公司设计的 xfs被称为业界最先进的 最具可升级性的文件系统技术 它是一个全64位 快速 稳固的日志文件系统 多年用于SGI的IRIX操作系统 特征 数据完全性 传输特性 可扩展性 传输带宽缺点 由于xfs比较复杂 实施起
11、来有一些难度 所以目前xfs主要应用于Linux企业应用的高端 ReiserFS文件系统 作者 HansReiser和他的在Namesys的开发组共同开发设计的ReiserFS是一种新型的文件系统 它通过一种与众不同的方式 完全平衡树结构来容纳数据 包括文件数据 文件名以及日志支持 ReiserFS还以支持海量磁盘和磁盘阵列 并能在上面继续保很快的搜索速度和很高的效率 优点 独特的搜寻方式ReiserFS基于快速平衡树 balancedtree 搜索 平衡树在性能上非常卓越 这是一种非常高效的算法 ReiserFS搜索大量文件时 搜索速度要比ext2快得多 Reiserfs文件系统使用B Tr
12、ee存储文件 而其它文件系统使用B Tree树 B Tree查询速度比B Tree要快很多 Reiserfs在文件定位上速度非常快 在实际运用中 ReiserFS在处理小于1k的文件时 比ext2快8到15倍 ReiserFS几乎在各个方面都优于ext2 支持海量磁盘ReiserFS是一个非常优秀的文件系统 可轻松管理上百G的文件系统 ReiserFS文件系统最大支持的文件系统尺寸为16TB 这非常适合企业级应用中 优异的性能由于它的高效存储和快速小文件I O特点 使用ReiserFs文件系统的PC 在启动X窗口系统时 所花的时间要比在同一台机器上使用ext2文件系统少1 3 缺点 出现异常断
13、电的时候 会出现大量的未写入完全的数据 ReiserFS会在恢复的时候进行rebuild tree 而这个过程是非常慢的 在ReiserFS的升级版本Reiser4中有所改观 其他文件系统简介 Minix Llnux支持的第一个文件系统 对用户有很多限制而且性能低下 有些没有时间标记 其文件名最长l4个字符 minix文件系统最大的缺点是最大只能使用64M的硬盘分区 所以在目前已经没有人使用它了 Xia Minix文件系统修正后的版本 在一定程度上解决了文件名和文件系统大小的局限 但没有新的特色 目前很少有人使用 Msdos msdos是在Dos Windows和某些OS 2操作系统上使用的一
14、种文件系统 其名称采用 8 3 的形式 即8个字符的文件名加上3个字符的扩展名 umsdos Linux下的扩展msdos文件系统驱动 支持长文件名 所有者 允许权限 连接和设备文件 允许一个普通的msdos文件系统用于Linux 而且无须为它建立单独的分区 iso9660 标准CDROM文件系统 通用的RockRidge增强系统 允许长文件名 Smb smb是一种支持Windowsforworkgroups WindowsNT和LanManager的基于SMB协议的网络操作系统 Sysv sysv文件系统实际上是SystemV Coherent在Linux平台上的文件系统 Ncpfs ncp
15、fs是一种NovellNetWare使用的NCP协议的网络操作系统 Proc proc是Linux系统中作为一种伪文件系统出现的 它用来作为连接内核数据结构的界面 NTFS 微软WindowsNT内核的系列操作系统支持的 一个特别为网络和磁盘配额 文件加密等管理安全特性设计的磁盘格式 总结 我想 在未来的日子里 EXT等传统文件系统肯定不会消失 古典文件系统成熟 稳定 经受了历史的考验 必然将在很长一段时间内被继续广泛使用 古典文件系统和新一代文件系统同时并存是非常合理的事情 正如我们在被陈亦迅的歌声触动和感伤之后 还可以在莫扎特的奏鸣曲中得到慰藉和平静 本人水平有限 对文件系统的了解也并不深入 因此文中必然有很多错误的地方 希望能得到大家的指正 谢谢大家 知识回顾KnowledgeReview