当前位置:刘伯温论坛 > 日志文件系统 >

Linux性能优化之IO子系统介绍(1)

  文件系统是内核的功能,是一种工作在内核空间的软件,访问一个文件必须需要文件系统的存在才可以。Linux 可以支持多达数十种不同的文件系统,它们的实现各不相同,因此 Linux 内核向用户空间提供了虚拟文件系统这个统一的接口用来对文件系统进行操作。

  虚拟文件系统是位于用户空间进程和内核空间中多种不同的底层文件系统的实现之间的一个抽象的接口层,它提供了常见的文件系统对象模型(如 i-node,file object,page cache,directory entry,etc.)和访问这些对象的方法(如 open, close, delete, write, read, create, fstat, etc.),并将它们统一输出,类似于库的作用。从而向用户进程隐藏了各种不同的文件系统的具体实现,这样上层软件只需要和 VFS 进行交互而不必关系底层的文件系统,简化了软件的开发,也使得 linux 可以支持多种不同的文件系统。

  在非日志型文件系统中,对文件系统实施一个写操作,内核会首先修改对应的元数据,然后修改数据块。如果在写入元数据时,文件系统发生崩溃或某种故障,那么数据的一致性将会遭到破坏。fsck 命令可以在下次重启时检查所有的元数据并修复数据一致性,但是如果文件系统非常大,或者系统运行关键业务不允许停机,使用非日志型文件系统的风险会非常高。

  日志型文件系统的区别在于,在进行对文件系统写数据之前,写将数据写到“日志区”,然后再写入文件系统,在写入文件系统之后删除日志。日志区可以在文件系统内部也可以在文件系统外部。日志区的数据称作文件系统日志,这些数据包含了修改了的元数据,也可能包含将要修改的数据。写日志也会带来一定的额外开销。

  ext2 文件系统组成不再赘述,需要注意的是 ext2 文件系统没有日志功能。

  ◆数据完整性:在挂载时指定选项 data=journal 则可以使日志记录下元数据和文件数据。

  ◆速度:指定挂载选项 data=writeback 使用回写的方式写数据。

  ◆灵活性:可以从 ext2 系统升级,而不需要重新格式化文件系统,也可以以非日志模式挂载,就如同 ext2 一样。

  ◆ordered,日志只记录元数据。但是会保证文件数据先被写入,这是默认选项。

  ◆ReiserFS,ReiserFS是一个快速的日志型文件系统,有着良好的磁盘空间使用和快速的崩溃恢复。属于 Novell 公司,在 SUSE Linux 中使用。

  ◆JFS (Journal File System), JFS 是一个完全 64 位文件系统,可以支持非常大的文件和分区,早先由 IBM 公司为 AIX 操作系统开发,现已使用 GPL 协议开源。JFS适用于非常大的分区和文件如 HPC 或者数据库业务。

  每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。

http://alanhandle.com/rizhiwenjianxitong/48.html
点击次数:??更新时间2019-05-17??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】