您所在的位置: 首页 > 读书频道 > 操作系统 > Linux >

6.4 Linux支持的文件系统

http://book.51cto.com  2007-09-27 09:58  鸟哥  人民邮电出版社  我要评论(0)

6.4  Linux支持的文件系统

本章前面提到的都是单一文件的属性与相关信息,以及单一目录在FHS中的定义,还没有提到分区的相关概念。下面我们就简要谈一谈,前面提到的这些文件、目录,是放在什么样的文件系统内呢?

什么是文件系统(filesystem)呢?当前的操作系统大多数是从硬盘读数据的,每个操作系统使用的硬盘在x86架构上的都一样,都是同样的硬盘。但是,每种操作系统都有其独特的读取文件的方法,也就是说,每种操作系统对硬盘读取的方法不同,就造就了不同的文件系统。

举例来说,Windows 98默认的文件系统是FAT(或FAT16),Windows 2000有所谓的NTFS文件系统,Linux的正统文件系统则为ext2(Linux second extended file system, ext2fs,Linux第二扩展文件系统)。系统能不能读取某个文件系统,与“核心功能”有关。Linux核心必须能够认识某种文件系统,才能读取该文件系统的数据内容。也就是说,必须要将所要支持的文件系统编译到核心中,才能被支持。因此,可以发现,Windows与Linux安装在同一个硬盘的不同分区时,Windows将不能取用Linux的硬盘数据,原因何在?因为Windows的核心不认识Linux的文件系统。

当前Fedora Core IV默认的文件系统为ext3(Third Extended File System,第三扩展文件系统),它是Ext2的升级版,主要是增加了日志(journaling)功能,但是,ext3还是向下支持ext2等。另外,如果需要将原有的Windows系统也挂在Linux中,那么Linux同时也支持MS-DOS、VFAT、FAT、BSD等文件系统。至于Window NT的NTFS文件系统,则不一定每个Linux版本都支持,例如FC4默认就没支持。怎么看出来的呢?Linux能够支持的文件系统与核心是否将其编译进去有关,所以可以到Linux系统的:

/lib/modules/`uname -r`/kernel/fs    

目录下面看一看,如果有想要的文件系统,那么这个核心就支持。很多Linux所需要的功能都可以在ext2上完成,不过ext2缺乏日志管理系统,如果发生问题时,修复过程会慢一些。最近发布的Linux版本大多已经默认采用ext3或reiserfs这种具有日志式管理的文件系统了。

什么是日志式文件系统呢?或者,ext3与ext2有什么不同?ext3其实只是多做了一个日志式数据的记录。要将数据写入硬盘时,ext2是直接将数据写入,但ext3则会将这个“要开始写入”的信息写入日志式记录区,然后才开始写入数据。在数据写入完毕后,又将“完成写入动作”的信息写入日志式记录区,这有什么好处呢?最大的好处就是数据的完整性与“恢复力”。

什么是“恢复力”呢?早期的ext2文件系统如果遇到断电,文件系统就要检查文件一致性。这个检查过程要将整个分区内的文件进行完整的比较,很慢,时间很久。如果是ext3,那么只要通过检查“日志记录区”就可以知道,断电时有哪些文件正在进行写入,只要检查这些地方即可。这样就能够节省很多文件检查的时间。

所以我们要选择ext3。Red Hat公司首席核心开发人员Michael K. Johnson说:

“为什么要从ext 2转换到ext3呢?有4个主要的理由:可利用性、数据完整性、速度及易于转换”。“可利用性”,他指出,这意味着从系统中止到快速重新复原,而不是持续让e2fsck执行长时间的修复。ext3的日志式条件可以避免数据毁损的可能。他也指出:“除了写入若干数据超过一次的情况,ext3往往会比ext2更快,因为ext3的日志使硬盘读取头的移动能更有效地进行”。然而,或许决定因素还是在Johnson先生的第4个理由中。

“我们可以轻松地从ext2更改到ext3,获得强有力的日志式文件系统,而不需要重新做格式化”。这是正确的,为了体验ext3的好处,不需要去做长时间的、冗长乏味的且易于产生错误的备份工作及重新格式化的动作。

这些信息可在Whitepaper: Red Hat's New Journaling File System: ext3(http:// www.redhat.com/support/wpapers/redhat/ext3/)查得。使用ext3或其他日志式文件系统是有好处的,最大的好处当然是错误问题的排除效率比较高。无论如何,只要先知道这些即可:ext2是Linux正规的文件系统,近年来的ext3等日志式文件系统有取代它的趋势。

• Linux的VFS(Virtual Filesystem Switch):

了解了文件系统之后,下面要提到,Linux的核心如何管理这些文件系统呢?其实,整个Linux系统都通过虚拟文件系统交换(Virtual Filesystem Switch)的核心功能去读取文件系统。也就是说,整个Linux认识的文件系统其实都是VFS在管理,用户并不需要知道每个分区上的文件系统是什么。VFS会主动帮我们做好读取操作。

这无疑是个很好用的功能。为什么呢?因为只要系统管理员一开始就设置好各主要文件系统对应的文件系统模块,核心的VFS就会主动接管该文件系统的存取模式。用户可以在不知道每个文件系统是什么的情况下,就能自由运用系统上的各种文件系统。很方便。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
系统应用日志分析管理
Linux——从菜鸟到高手
网络管理系统如何支撑ITSM
企业Web安全威胁在线评估系统
赛门铁克诺顿误杀Windows系统文件 导致百万系统崩溃
 
 验证码: (点击刷新验证码)   匿名发表
  • 网络工程师考试案例动手实验营

  • 作者:郭春柱
  • 本书依据2009年版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点..
Copyright©2005-2008 51CTO.COM 版权所有