linux文件系统比较

  Linux上有许多可用的文件系统。每个文件系统都有其特定的用途,以便于特定用户解决不同的问题。本文的焦点集中在Linux平台上文件系统的主流选择。毫无疑问,其它的场景下还有一些别的选择。

文件系统:它们不是世界上最激动人心的技术,但是仍然很重要。本文我们将细数那些流行的 Linux 文件系统 - 它们是什么,它们能够做什么,以及它们的目标用户。

1.Ext4

file-systems-ext4

如果你曾经安装过 Linux,你可能在安装过程中看到过“Ext4”字样。用它有一个不错的理由: 它是当前每个可用的 Linux 发行版所选择的文件系统。当然,还有其他的一些选择,但是不可否认的是,Ext4(Extended 4)几乎是所有 Linux 用户都会选择的文件系统。

它能做什么?

Ext4 拥有之前的文件系统(Ext2/Ext3)中你所期待的所有优点, 同时还带来了一些改进。还有很多内容可以发掘,这里列举出了 Ext4 为你带来的最好的部分:

◆ 日志型文件系统

◆ 日志校验

◆ 多重块文件分配

◆ 向后兼容 Ext2 && Ext3

◆ 持续的空闲空间预分配

◆ 改进的文件系统校验(相比于之前的版本)

◆ 当然,同时支持更大的文件

目标用户

Ext4 针对那些寻找超级可靠的基础环境或者那些只需要能工作就行的用户。这个文件系统不会对你的系统做快照;它甚至没有最好的 SSD 支持,但是如果你不是太挑剔的话,你会觉得它也还不错。

2.BtrFS

file-systems-btrFS

B 树(B-tree)文件系统 (也被当做是 butterFS,黄油文件系统) 是 Oracle 为 Linux 研发的一款文件系统。它是一个全新的文件系统,而且正处于主要开发阶段。Linux 社区认为其有时候使用上还有些不稳定。BtrFS 的核心原则是围绕着写时复制(copy-on-write)原则展开的。写时复制基本上意味着在写入数据完成前,这份数据的每一比特都有单独的一份副本。当数据写入完毕后,相当于它做了一份副本。

它能做什么

除了支持写时复制之外,BtrFS 也能够胜任许多其他的事务 - 事实上,它可以不断列出各种特性。这里列举最值得一提的特性:支持只读快照、文件克隆、子卷、透明压缩、离线文件系统校验、从 ext3 & 4 原地转换到 BtrFS、在线碎片整理,还支持 RAID 0, RAID 1, RAID 5, RAID 6 和 RAID 10。

目标用户

BtrFS 的开发者们许诺过,该文件系统是当前其他文件系统的新一代替代者。非常正确,虽然目前其处于开发中。它有很多面向高级用户的杀手级特性,对于基本用户也是这样(包括 SSD 上面的更佳性能)。这个文件系统针对那些想要从文件系统中获取更多(特性),以及那些想尝试用写时复制机制做一些事情的用户。

3.XFS

file-systems-xfs

由 Silicon Graphics 公司创造开发,XFS 是一个高端文件系统,定位于速度和性能方面。处于对性能方面的专注,使得在并行 IO 方面,XFS 表现的尤其出色。XFS 文件系统能够处理数量庞大的数据,事实上某些 XFS 用户的数据接近300TB 以上。

它能做什么

XFS 是一个经历良好测试的数据存储文件系统,它是为了高性能操作而诞生的。其特性包括:

◆ RAID 阵列的条带化分配

◆ 日志型文件系统

◆ 块大小可变

◆ 直接 I/O

◆ 指定速率(guaranteed-rate) I/O

◆ 快照

◆ 在线碎片整理

◆ 在线调整文件系统大小

目标用户

XFS 针对那些想要一个坚如磐石的文件系统方案的用户。它始于1993年,并且随着时间的变迁它变得越来越好。如果你有一台家庭服务器,而且你苦恼于如何部署存储环境,那么可以考虑下 XFS。它拥有的众多特性(比如快照)能够有助于你的文件存储系统。尽管如此,它不局限于服务器端。如果你是一个相对高级一点的用户或者你对 BtrFS 所承诺的很多特性感兴趣的话,尝试一下 XFS。它实现了很多与 BtrFS 相似的特性,并且没有稳定性方面的问题。

4.Reiser4

file-system-riser4

Reiser4 是 ReiserFS 的继任者,由 Namesys 公司创造研发。它的诞生可以追溯到 Linspire 项目和 DARPA。它与众不同的地方在于众多的事务模式。并不止于单一的一种写入数据的方式;取而代之的是,有很多方式(来写入)。

它能做什么

Reiser4 拥有着使用多种不同事务模式的独特能力。它能够使用写时复制模式 (像 BtrFS),任意位置写入(write-anywhere),日志,以及混合事务模式。它在 ReiserFS 的基础上做了许多的改进,包括更好的基于漫游日志的文件系统日志,对较小文件的支持更好,以及更快速的目录处理。Reiser4 提供了许多功能特性。还有更多的特性可以探讨,不过简单来讲,相比于 ReiserFS 它不但做了非常大的改进,而且增加了众多特性。

目标用户

Resier4 适合那些想要将一个文件系统应用到多种场景下的用户。可能你想在一台机器上使用写时复制机制,在另一台机器上使用任意位置写入机制,还会在另一台机器上使用混合事务,而你又不希望使用多种不同类型的文件系统来完成这项任务。Reiser4 是适合这种情况的完美方案。

结论

Linux 上有许多可用的文件系统。每个文件系统都有其特定的用途,以便于特定用户解决不同的问题。本文的焦点集中在 Linux 平台上文件系统的主流选择。毫无疑问,其它的场景下还有一些别的选择。

你在 Linux 上最喜欢的文件系统是什么?在下面的评论区告诉我们吧!

源地址:http://os.51cto.com/art/201601/504669.htm

时间: 2024-10-12 14:41:11

linux文件系统比较的相关文章

linux 文件系统笔记

文件格式: windows:PE linux:  ELF 文件系统: rootfs FHS:规定linux应该创建哪些目录 /下的目录结构: /boot: 系统启动相关的文件,如内核,initrd,以及 grub(bootloader) /dev :设备文件(例如:光盘,cdrom) 类型: 块设备:随机访问, 数据块 字符设备:线性访问, 以字节为单位 设备号:主设备号(major),次设备号(minor) /etc:  配置文件(绝大多数为纯文本格式) /home: 用户的家目录,默认为/h

【转】LINUX文件系统剖析

引自:http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/   在文件系统方面,Linux? 可以算得上操作系统中的 "瑞士军刀".Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统.对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台.本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构.

Linux文件系统

文件系统与目录结构 文件系统 1.文件和目录被组织成一个单根倒置数结构 2.文件系统从根目录下开始,用"/"表示 3.根文件系统(rootfs):root filesystem 4.文件名称区分大小写 5.以.开头的文件为隐藏文件 6.路径分隔符:/ 7.文件的两类数据: 元数据(metadata)和 数据(data) 8.文件系统分层结构:LSB (Linux Standard Base) 9.FHS(Filesystem Hierarchy System) 文件名规则 1.文件名最

linux文件系统索引节点浅析

索引节点,Inode是Index Node的缩写,存储于文件系统上的任何文件都可以用索引节点来表示,所以也可以说索引节点是整个linux文件系统的基础.操作系统在读取硬盘的时候不是一个块一个块的来读取信息,因为这样做的话效率太低,文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者.文件的创建日期.文件的大小等等.这种储存文件元信息的区域就叫做inode,中文译名为"索引节点". 在Linux系统中,文件系统主要分为两部分,

嵌入式 Linux根文件系统移植(一)——Linux文件系统简介

嵌入式 Linux根文件系统移植(一)--Linux文件系统简介 本文对文件系统分析的代码来源于linux 2.6.35.7版本. 一.文件系统的体系结构 文件系统是对存储设备上的数据和元数据进行组织的机制,便于用户和操作系统的交互.Linux支持多种文件系统,文件系统接口实现为分层的体系结构,将用户接口层.文件系统实现和操作存储设备的驱动程序分隔开.Linux文件系统的体系结构如下: 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C库(glibc),为文件系统调用(打开.读取.

linux --> 文件系统十问

文件系统十问 参考:http://djt.qq.com/article/view/620 关于Linux文件系统相关的问题: 1.机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的? 2.touch一个新的空文件占用磁盘空间吗? 占用的话占用多少? 3.新建一个空目录占用磁盘空间吗?占用多少?和新建一个文件相比,哪个占用的更大? 4.你知道文件名是记录在磁盘的什么地方吗? 5.文件名最长多长?受什么制约? 6.文件名太长了会影响系统性能吗?为什么会产生影响? 7.一个目录

linux文件系统学习总结

linux最优秀的特点在于它是多用户多任务的环境,而且对于linux来讲一切皆文件,提到文件这个概念就免不了提文件相关的权限与属性的概念,那相关文件的属性记录在硬盘的哪个地方呢?这就需要了解linux的文件系统是如何记录文件,如何读取文件. 大家都知道硬盘作为存储介质,如果要使用硬盘存储数据需要对硬盘进行分区,格式化之后才可以存储数据.那为什么要对硬盘进行分区呢?因为我们必须要告诉操作系统:"这块硬盘可以访问的区域是有A柱面到B柱面",只有这样,操作系统才能控制硬盘磁头去A~B范围内的

Vim,find,bash,Linux文件系统的特殊权限2015.8.30作业

一   Vim 1.vim的使用方法 1.1 三种模式化 编辑模式.输入模式.末行模式 1.2 模式转换 编辑模式 --> 输入模式: i:在当前光标所在字符的前面,转为输入模式 a:在当前光标所在字符的后面,转为输入模式 o:在当前光标所在行的下方,新建一行,并转为输入模式 I:在当前光标所在行的行首,转为输入模式 A:在当前光标所在行的行尾,转为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式 输入模式 --> 编辑模式:ESC 编辑模式 --> 末行模式:: 末行模式

攻城狮在路上(叁)Linux(二十六)--- linux文件系统的特殊查看与操作

一.boot sector 与 super block的关系: 1.boot sector用于存放引导装载程序,占用1024个字节. 2.super block的大小也为1024字节. 3.若block大小为1k,则boot sector和super block各占一个block. 4.若block大于1K(2K/4K)时,则两者都位于第一个block中. 二.磁盘空间的浪费问题:暂不考虑. 三.利用GUN的parted命令进行分区行为: 因为fdisk不支持高于2TB的分区. 命令格式: pa

操作系统——linux文件系统初实现——为fileSystem添加驱动,让linux可以识别。

0.我的理解,所为驱动,就是用户可以通过自己的应用程序访问你的文件系统.而我恰恰相反. 1.我是谢了字符驱动,让我的fileSystem去做应用程序,同样可以被linux系统识别. 2.其实我对驱动理解也不深,暂且贴代码. 3.驱动程序: /*chardev.c 驱动程序*/ #include <linux/kernel.h> #include <linux/fs.h>/*for file-f_op*/ #include <linux/module.h> #includ