日志式文件系统:SGI的xfs, Reiserfs, IBM的jfs, ext3fs
日志文件(Log files)是包含系统消息的文件,包括内核、服务、在系统上运行的应用程序等。不同的日志文件记载不同的信息。日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。 例如,有的是默认的系统日志文件,有的仅用于安全消息,有的记载 cron 任务的日志。 当你在试图诊断和解决系统问题时,如试图载入内核驱动程序或寻找对系统未经授权的使用企图时,日志文件会很有用。本节讨论要到哪里去寻找日志文件,如何查看日志文件,以及在日志文件中查看什么。 某些日志文件被叫做 syslogd 的守护进程控制。被 syslogd 维护的日志消息列表可以在 /etc/syslog.conf 配置文件中找到。 尽管Linux可以支持种类繁多的文件系统,但是几乎所有的现代Linux发行版都用ext4作为默认的文件系统。 ext4的设计者主要考虑的是文件系统性能方面的问题。ext4在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。 日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。 日志式文件系统在强调数据完整性的企业级服务器中有着重要的需求,是文件系统发展的方向。日志式文件系统的思想来自于如Oracle等大型数据库。数据库操作往往是由多个相关的、相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要回复到操作以前的状态。日志式文件系统采用了类似的技术。 在分区中保存有一个日志记录文件,文件系统写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件的内容来恢复没有完成的写操作,这个过程一般只需要几秒钟。 SGI的xfs文件系统 SGI最新发布xfs为 .0是可被linux的2..x核心支持.在redhat上运行的很好,SGI还在redhat上开发了一个安装程序. 其它linux发行版的安装程序也正在开发中. SGI的xfs被称为业界最先进的、最具可升级性的文件系统技术。它是一个全64位,快速、稳固的日志文件系统,多年用于sgi的irix操作系统。sgi决定支持linux社区,将关键的基本架构技术授权于linux。它以开放资源形式发布了他们自己拥有的xfs的源代码,并开始进行移植。此工作进展得很快,目前已进入beta版阶段。作为一个64位文件系统,xfs可以支持超大数量的文件(9g×1gb,甚至更大的18g×1gb),可在大型 2d 和 3d 数据方面提供显著的性能。xfs有能力预测其它文件系统薄弱环节,同时xfs提供了在不妨碍性能的情况下增强可靠性和快速的事故恢复。 sgi的xfs可为linux和开放资源社区带来的新特性有: 可升级性 xfs被设计成可升级,以面对大多数的存储容量和i/o存储需求,可处理大型文件和包含巨大数量文件的大型目录,满足二十一世纪快速增长的磁盘需求。xfs有能力动态地为文件分配索引空间,使系统形成高效支持大数量文件的能力。在它的支持下,用户可使用1exabyte (1g×1gb) 大的文件,远远大于现在最大的文件系统。 优秀的i/o 性能 典型的现代服务器使用大型的条带式磁盘阵列,以提供达数gb/秒的总带宽。xfs可以很好地满足i/o请求的大小和并发i/o请求的数量。 系统排错 xfs可以在一秒内从大多数意外中断中恢复。传统文件系统必须在中断后做一些特定的文件系统检查,可能会花费数小时才完成。xfs避免了冗长的文件系统检查,可明显地减少读写磁盘的时间。 xfs可作为root文件系统,并被lilo支持.在NFS服务器上使用也没问题.支持软件raid和LVM. Reiserfs文件系统 Reiserfs文件系统的主页是在1997年7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布 。 这是ReiserFS的第一次公开亮相。此后,ReiserFS一直在Hans Reiser和领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。 由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。Linux内核2.4.1-pre4版本开始包含ReiserFS文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中。 新一代的reiser4将于2002//30日发布. ReiserFS是一种新型的文件系统,在蓝点Linux中你可以选择它来装载你的Linux操作系统和其他应用程序和数据文件。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持 海量磁盘和磁盘阵列,并能在上面继续保很快的搜索速度和很高的效率。 ReiserFS是基于平衡树的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;ext2使用局部的二分查找法,综合性能比不上ReiserFS。 空间分配和利用情况 ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(<4K)可以直接存储进树,小文件读取和写入的速度更快,树内节点是按字节对齐的,小的文件可共享同一个硬盘块, 节约大量空间。Ext2使用固定大小的块分配策略,也就是说,不到4K的小文件也要占据4K的空间,导致的空间浪费比较严重。 先进的日志机制 ReiserFS有先进的日志(Journaling/logging)机制,在系统意外崩溃的时候,未完成的文件操作不会影响到整个文件系统结构的完整性。 ext2虽然健壮性很强,但一旦文件系统被不正常地断开,在下一次启动时它将不得不进行漫长的检查系统数 据结构的完整性的过程,这是为了防止数据丢失而必需的操作。对于较大型的服务器文件系统,这种"文件系统检查"可能要持续好几个小时,在很多场合下这样长的时间是无法接受的。 解决这个问题的一种技术"日志文件系统"。在日志的帮助下,每个对数据结构的改变都被记录下来,日志在机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。正因为如此,在系统突然崩溃时,在下次启动几秒钟后就能恢复成一个完整的系统,系统也就能很快的使用了。 支持海量磁盘和优秀的综合性能 ReiserFS是一个相当现代化的文件系统,相比之下,ext2虽然性能已经很好了,但其设计还只是19世纪80年代的水准。 ReiserFS的出现,使Linux拥有了像Irix/AIX那样的高档商用Unix才有的高级文件系统。ReiserFS可轻松管理上百G的文件系统,在企业级应用中有其用武之地,由于它的高效存储和快速小文件I/O特点,它在桌面系统上也表现出色:启动X窗口系统的时间ReiserFS比ext2少1/。而ext2则无法管理2G以上的单个文件,这也使得ReiserFS在某些大型企业级应用中比ext2要出色。 ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次,这个缺点也正在改进中。 IBM的jfs文件系统 IBM最新发布xfs 1.0.2版. jfs(Journaled File System Technology for Linux)的开发者包括AIX(IBM的Unix)的jfs的主要开发者。在AIX上,jfs已经经受住了考验。它是可靠、快速和容易使用的。 2000年2月,ibm宣布在一个开放资源许可证下,移植linux版的jfs文件系统。jfs也是一个有大量用户安装使用的企业级文件系统。 使用日志文件系统,性能上会稍有损失,是因为当它保持一个日志时,系统需要写许多数据。但面对系统崩溃及运行fsck,这是值得的。jfs通过把同步日志转为异步日志从而减少了性能的损耗。使用同步日志,系统直接进行与文件系统的动作成比例的日志记录操作;而异步日志,日志记录较少,且其可以在不影响其它文件系统操作时进行记录,因而可减少日志的开销。 四、ext2的后继者ext3fs ext3是由开放资源社区开发的日志文件系统,主要开发人员是redhat的黑客高手stephen tweedie。ext3被设计成是ext2的升级版本,尽可能地方便用户从ext2fs向ext3fs迁移。ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性。这个文件系统也许称为ext2的下一个版本更为合适些。 ext3fs工作得很好。ext3fs最大的优点是向下兼容ext2。而且ext3fs还支持异步的日志,这意味着它的性能可能比ext2还好。但是使用ext3文件系统时要注意硬盘限额问题,在这个问题解决之前,不推荐在重要的应用上采用ext3+disk quota ext3最新版本是针对kernel -.gz 新推出的redhat .2B上正式启用了ext3,Turbolinux Server .5则同时支持 ReiserFS 及 ext3. 通过在已有的ext2文件系统上添加日志文件可把ext2文件系统转换成ext3文件系统. 你可以把一个文件系统在ext3和ext2自由切换.因为在ext2文件系统上的ext3日志文件仍然存在,只是ext2不能认出而已.
日志式文件系统:SGI的xfs, Reiserfs, IBM的jfs, ext3fs的更多相关文章
- 程序员的智囊库系列之3--分布式文件系统(Distributed file systems)
程序员的智囊库系列之3--分布式文件系统(Distributed file systems) 这是程序员的智囊库系列的第三篇文章.上一篇文章本来打算介绍几个搭建网站的框架,但由于这部分的内容较多,还需 ...
- Linux日志文件系统(EXT4、XFS、JFS)及性能分析
Ext4 ReiserFS Btrfs 等七种文件系统性能比拼 自上一篇<Ext2 v.s. Ext3 v.s. Ext4 性能比拼> 发布以来,社会各界纷纷来电来函,给出了“Ext4 我 ...
- MooseFs-分布式文件系统系列(四)之简单聊聊MFS的日常维护
回顾 文件或目录的额外属性(noower,noattracache和noentrycache),可以通过MFS提供的命令(mfsgeteattr,mfsseteattr,mfsdeleattr等)检查 ...
- MooseFs-分布式文件系统系列(三)之MFSclient端的使用
Web界面监控MFS状态 mfscgiserv 是用python写的一个web服务器,监听端口是9425,必须在master(管理服务器上)上启动 常用的参数如下: | 参数| 作用| |:--| : ...
- MooseFs-分布式文件系统系列(二)之安装总结
preface 上篇博客写了如何安装MFS,那么现在就说说经验总结把 安装方式有源码和yum安装,在官网地址:https://moosefs.com/download/centosfedorarhel ...
- MooseFs-分布式文件系统系列(一)之了解并安装它
preface 在上上家公司,曾维护过公司的MFS文件系统,主要用来存储系统日志文件,单纯的把日志当作文件存储,在当时的架构下,MFS就像一个中间站一样,这边程序生成的日志放入MFS,那边日志分析程序 ...
- Java 8 被动迭代式特性介绍(转自IBM)
编程语言一般都需要提供一种机制用来遍历软件对象的集合,现代的编程语言支持更为复杂的数据结构,如列表.集合.映射和数组.遍历能力是通过公共方法提供,而内部细节都隐藏在类的私有部分,所以程序员不需要了解其 ...
- (转)认识 Linux 文件系统
7.1 认识 Linux 文件系统 原文:https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/59.html Linux 最传统 ...
- Linux磁盘管理——虚拟文件系统
前言 Linux支持众多文件系统,包括: 传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等:日志式文件系统: ext3 / ...
随机推荐
- Java——(五)Collection之List集合、ArrayList和Vector实现类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.List集合 List集合代表一个元素有序.客重复的集合,集合中每个元素都有其对应的顺序索引 ...
- svn设置
svnserver -d -r /home/peter.mycode 如果想要开机自启动,将上述启动命令添加到:/etc/rc.local中.
- IOS 中得runloop 详细解释
1.Runloop基础知识- 1.1 字面意思 a 运行循环 b 跑圈 - 1.2 基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死) b 处理app中的各种事件(比如触 ...
- Relative与Absolute组合使用
小伙伴们学习了绝对定位的方法:使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后, 大家有没有想过可不可以相对于其它元素进行定位呢?答案是肯定的,当然可以.使 ...
- 限制UITextField/UITextView的输入字数与中文输入之后的英文换行问题
要限制一个UITextField/UITextView的输入字数,首先想到的应该是通过UITextFieldDelegate/UITextViewDelegate的代理方法来限制,那么如何来更好的限制 ...
- 2014年10月16号--for语句实例
Console.WriteLine("一对小兔一个月之后长成大兔,再过一个月后生新的一对兔子,且两年之后有多少对兔子,就是三兔子幼兔,小兔,成兔"); Console.WriteL ...
- String、StringBuffer、StringBuilder
也说String. String:不可变字符序列. StringBuffer:线程安全的可变字符序列. StringBuilder:StringBuffer的非线程安全实现,JDK1.5+. publ ...
- CSS的inherit与auto使用分析
一个很显浅的寓言,千年老树,电打雷劈,屹立不倒,却毁于蝼蚁的侵袭之下.自以为精通CSS的人,常常被一些小问题搞到头晕脑胀. 通常是一个很小的数值,经过层层放大歪曲后,整个布局就走形了.CSS是一门很简 ...
- Html禁止粘贴 复制 剪切
oncopy="return false;" onpaste="return false;" oncut="return false;"
- 关于css中透明度继承的问题
今天工作中发现了一个问题,透明度的继承问题,如下图所示: 容器div2就“继承了”外面容器div1的透明度,也变成了70%的透明.容器里面的字体颜色和图片都“继承”了div1,具体代码如下: 可是设计 ...