Linux主流文件系统
与不同,linux的文件系统很多,用户可以工具自己的需求选择不同的文件系统,而且linux的文件系统除了ZFS因为法律条款不符合linux的遵循的GPL,无法以开源形式纳入linux内核外,其他都是开源的,用户可以工具自己的特殊需要对文件系统进行改造,以提高性能、提高数据安全性、可靠性等
简单说文件系统就是对存储系统的物理空间进行管理的软件系统,可以支持传统硬盘、SSD、光盘、U盘、磁带等不同性质的存储介质。
随着linux系统的发展,已经有原来的ext x为主的文件系统发展为数十种文件系统。
Linux内核可以支持十多种文件系统类型:JFS、 、ext、ext2、ext3、、XFS、btrfs、zfs等。另外还可以支持支持的文件系统如VFAT、NTFS等。支持多种文件系统为linux在不同环境的应用提供极大的便利。
下面简单介绍一下Linux下几个最常用的文件系统。
ext:ext是第一个专门为开发的Linux的文件系统类型,即扩展文件系统,最早出现在linux系统的文件系统,祖先级别的。1992年完成开发,其简单、高效的特点,对Linux早期的发展产生了重要作用,相当于MSDOS的FAT文件系统,但是比FAT好点。但是,由于其在稳定性、系统容量的限制,现在已经很少使用了。
ext2:ext2是为解决ext文件系统的缺陷而设计的可扩展的、高性能的文件系统,它又被称为二级扩展文件系统。ext2是1993年发布的,设计者是Rey Card。是Linux文件系统类型中使用最多的文件系统,因其高效、可扩展的特点被广泛应用,即便现在还在大量使用,比如嵌入式设备的存储系统。它是GNU/Linux系统中标准的文件系统,它存取文件的性能极好,对于中、小型的文件更显示出优势,这主要得益于inode为代表的优良设计,数据存取速度极快。ext2可以支持256字节的长文件名,其单一文件大小和文件系统本身的容量上限与文件系统本身的簇大小有关。在常见的Intel x86兼容处理器的系统中,簇最大为4KB,单一文件大小上限为, 而文件系统的容量上限为。尽管Linux可以支持种类繁多的文件系统,但是2000年以前几乎所有的Linux发行版都使用ext2作为默认的文件系统。
但是ext2也有 短板,最大的问题就是无日志,大大降低了意外断电时数据丢失的风险。
ext3:ext3在 ext2的基础上增加了日志功能,提高了数据安全性,效率降低有限,当然安全和效率比安全更重要。
日志式文件系统起源于、等大型数据库。由于数据库操作往往是由多个相关的、相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要恢复到操作以前的状态。Linux日志式文件系统就是由此发展而来的。
ext3是由开放资源社区开发的日志文件系统,早期主要开发人员是 。ext3作为ext2的升级版本,尽可能保持与ext2的兼容性,方便用户从ext2向ext3迁移。
ext4:ext4是ext3的一个改善版,主要的改善大文件空间的快速分配,小文件的省空间存储等优化,其实是个过渡产品,等ext3的后来者等不及了,整的ext4先用着。当然优点也有啊,ext3到ext4改动小,系统就稳定啊,所以目前是主流系统。
JFS:JFS是IBM为自家的“钱袋子”AIX系统设计开发的一种提供日志的字节级文件系统。一看开发者就很高级,IBM的AS系列计算机主要运行AIX操作系统,AS=“IBM的钱袋子”。该文件系统主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计、开发的。JFS文件系统是为面向事务的高性能系统而开发的。在IBM的AIX系统上,JFS已经过较长时间的测试,结果表明它是可靠、快速和容易使用的。2000年2月,IBM宣布在一个开放资源许可证下移植Linux版本的JFS文件系统。JFS也是一个有大量用户安装使用的企业级文件系统,具有可伸缩性和健壮性。Linux终于有了一套豪门出身的文件系统。
JFS的缺点是,使用JFS日志文件系统性能上会有一定损失,系统资源占用的比率也偏高,因为当它保存一个日志时,系统需要写许多数据。
:
的第一次公开亮相是在1997年7月23日,Hans 把他的基于平衡树结构的文件系统在网上公布。B tree,B+tree,学过数据结构的都是到神一样的数据结构,基于这些数据结构的文件系统效率必须高。这个曾被看做具有颠覆性的文件系统因为主要开发者的法律问题。。。。后来就没有得到更好的发展,linux的一大损失啊。
XFS:它是由SGI于20世纪90年代初开发的。先说说SGI,看看名字S,硅谷linux文件系统,就知道绝对的技术领先,90年代的SGI异军突起,在3D图形领域独领风骚,现在用的龙芯的mips就是后来被SGI收购的,当时的mips CPU的性能就是一个字“牛”,扯远哈。XFS是一种非常优秀的日志文件系统,XFS推出后被业界称为先进的、最具可升级性的文件系统技术。它是一个全64位、快速、稳固的日志文件系统,多年用于SGI的IRIX操作系统。当SGI决定支持Linux社区时,它将关键的基本架构技术授权于Linux,以开放资源形式发布了他们自己拥有的XFS的源代码,并开始进行移植。此项工作进展得很快,目前已进入beta版阶段。作为一个64位文件系统,XFS可以支持超大数量的文件(9000×1GB),可在大型2D和3D数据方面提供显著的性能。XFS有能力预测其它文件系统薄弱环节,同时提供了在不妨碍性能的情况下增强可靠性和快速的事故恢复。
由于XFS比较复杂,实施起来有一些难度(包括人员培训等),所以目前XFS主要应用于Linux企业应用的高端。
其它文件系统
只说两个吧,
BTRFS:具备众多优点的、快速发展的文件系统,也是一个B Tree文件系统,支持COW,支持可写快照,支持压缩,支持软RAID,当初开发btrfs的目标就是替代跟不上发展的ext3,结果btrfs被设计的太高级了,开发就慢了,瑕不掩瑜btrfs还是很值得期待的。总之btrfs就是“牛”,但是因为太复杂还在发展中,大型商用的案例少之又少。
ZFS:sun开发的128位文件系统。ZFS啊,Z最后一个字母,就是终结者呗,的确,他就是!一个128位的文件系统,据说地球上将每一粒沙子都进行数字化描述也达不到ZFS系统容量。先说sun开发的linux文件系统,sun不是太阳哈,源自斯坦福大学的一家计算机公司,java就是他们公司开发的,现在被收购了。
ZFS是sun公司为其unix系统开发的文件系统,现在听说的所有文件系统有的功能ZFS都支持,btrfs就是比着ZFS开发的,因为ZFS的许可证和linux不兼容,ZFS无法进入linux的内核,可惜可惜。想品尝ZFS最简单的办法就是free BSD,还有一个更为实用的,整个老机器,装个大硬盘整个,于是乎就可以ZFS了,当然是硬盘越多ZFS越好玩,一块硬盘就算了。