Linux 文件系统

简介:

系统分区完成后,将要将分区格式化文件系统(文件系统是个管理软件,存到磁盘分区的某个位置,文件系统不是整个分区)但是文件系统上的数据是在这个分区上的,所以说文件系统是一个管理软件。

    文件系统把磁盘分为两片:元数据存储区(metadata)(inode位图、块位图、inode条目等等)、数据存储区数据存储区又分为多个逻辑存储单元叫做磁盘块(是逻辑概念))

    任何文件系统中的数据分为数据和元数据(metadata)。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。但是元数据中不包含文件名文件名存放在磁盘块上的


下面 介绍下常用的文件系统类型:

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 是适合这种情况的完美方案。


补充:常见文件系统类型及应用场景


EXT2无日志,CDN相关,比如蓝汛的cache服务,一些CDN网站的加速服务

EXT3   centos5 系统默认的文件系统

EXT4  centos6系统默认的文件系统

zfs  solaris默认的文件系统

xfs  cenos7 默认的文件系统

reiserfs  suselinux 默认的文件系统,处理大量的小文件如100k以下,推荐这个系统

IBM的小型机使用jfs文件系统

sunos   使用ufs文件系统


文件系统的选择:

服务器数量比较少的,无特殊要求的随便选。

centos系列默认的文件系统都是比较优秀的。

海量服务器,推荐选一个折中的文件系统。


本文转自写个博客骗钱博客51CTO博客,原文链接http://blog.51cto.com/dadonggg/1949387如需转载请自行联系原作者

菜鸟东哥
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
27天前
|
存储 监控 Shell
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
35 0
|
27天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
31 2
|
27天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 文件系统维护工具 ext2ed命令使用教程
【Shell 命令集合 磁盘维护 】Linux 文件系统维护工具 ext2ed命令使用教程
25 0
|
27天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
33 0
|
27天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
30 2
|
27天前
|
安全 Shell Linux
【Shell 命令集合 磁盘维护】Linux 检查和修复Minix文件系统 fsck.minix命令使用教程
【Shell 命令集合 磁盘维护】Linux 检查和修复Minix文件系统 fsck.minix命令使用教程
13 0
|
27天前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 查和修复ext2文件系统 fsck.ext2命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查和修复ext2文件系统 fsck.ext2命令使用教程
28 0
|
28天前
|
算法 Linux Shell
【Shell 命令集合 磁盘管理 】Linux 于挂入MS-DOS文件系统 mmount 命令使用指南
【Shell 命令集合 磁盘管理 】Linux 于挂入MS-DOS文件系统 mmount 命令使用指南
26 0
|
27天前
|
存储 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
27 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 启用指定文件系统上的磁盘配额功能 quotaon 命令使用教程
【Shell 命令集合 磁盘管理 】Linux 启用指定文件系统上的磁盘配额功能 quotaon 命令使用教程
31 1