关于soalris文件系统logging详解.Windows系统 电脑资料_第1页
关于soalris文件系统logging详解.Windows系统 电脑资料_第2页
关于soalris文件系统logging详解.Windows系统 电脑资料_第3页
关于soalris文件系统logging详解.Windows系统 电脑资料_第4页
关于soalris文件系统logging详解.Windows系统 电脑资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于soalris文件系统logging详解.Windows系统 电脑资料 看到一篇好文章,发给大空共享! Solaris中的logging功能的应用 在Solaris7及其以后版本的系统中有一种称为logging的功能, 看到一篇好文章,发给大空共享! Solaris中的logging功能的应用 在Solaris7及其以后版本的系统中有一种称为logging的功能。它不但易于安装和使用,并且对于数据安全非常有用。 UFS是存在于Sun工作站的几乎所有硬盘分区(swap等个别分区除外)上的一种标准的文件系统类型。而logging功能是UFS文件系统的一个挂接选项,它可以被设置在包括/在内的各个硬盘分区上。 Solaris的UFS logging通过使用系统中的空白数据块来工作。所有对文件系统数据(metadata,或称为元数据)的修改都被写在这些空白的区域。这些Metadata包括目录和inode信息,不包括文件中的数据本身。比如创建文件时,目录结构被修改并且系统为这个新文件分配一个新的inode。以上这些行为被写入做logging的空间中。一旦数据的修改行为被写入做logging的区域,系统就可以接着对文件系统做其它的操作了。在后台,存在于logging中的信息将被同步到文件系统中,并自动更新相应的目录和I节点,最终完成文件系统的操作。数据也陆续被写入硬盘。因此这种做logging并在后台写入数据,比通过随机的I/O访问直接对分布在硬盘上的各种管理信息进行修改的方式速度要快得多。用来做logging的空间的大小取决于文件系统的大小。每1GB磁盘分区空间的logging空间为1MB,最多不超过64MB。这部分logging空间被循环使用:当log空间即将装满时,暂停新的metadata数据写入,直至log空间被清空。当log中记录的关于文件系统的修改都被应用于文件系统后,那部分空间又重新可以作为log空间来存放新的metadata数据了。 通常对于UFS来说,如果操作系统在任何文件系统操作中崩溃,整个文件系统都需要用fsck命令做一致性检查。这个命令的执行可能需要几分钟的时间,因为它需要检测所有的metadata和文件的数据以确认文件系统的完整性:包括当前已经用的空间、未用的、inode的数量等,修复其中不一致的地方。出现比较大的问题时还需要人工干预。在做检查的过程中有可能会丢失文件,甚至目录。这决定于crash发生时,该操作进行到了哪种程度。如果采用logging功能,情况就完全不同。因为metadata的修改首先被写在log空间而不是文件系统中。如果系统崩溃,对文件系统一致性的检测可以仅仅限于log中记录的那部分,这样会更简单、更有效。系统检查logging的数据,以决定在上一次的文件系统中,哪种修改已经做过了,哪种修改即将做,哪种修改正在做, 做过的和即将做但还没有做的操作被系统从log中删掉, 而那些做了一部分的会被接着做完或完全取消掉。如果在log中记录了足够的数据来完成这一操作,该操作会被继续完成。否则,这种改变会被取消。熟悉数据库操作的用户会发现这和数据库软件中的事务处理过程非常相似。最终的结果是:文件系统能够最大限度地保持一致,不需要进行 _的文件系统检测,整个文件系统检测过程只需要花几秒钟时间。从Solaris 7开始, mount命令和/etc/vfstab文件中也有了一个新的logging选项。 为了验证logging选项对系统性能的贡献,我们做一个脚本文件,它要创建1000个目录。这种操作将对系统中的metadata的处理带来非常大的压力。实验在一台运行Solaris7的Ultra 5机器上进行: # more logging-test #!/bin/ksh # Test ufs logging performance # Get to the right place and make a test directory cd /big mkdir test # Create 1000 directories integer i=0 while (i 1000) do mkdir test/test$i i=i+1 done # chmod a+x logging-test 给文件加上执行权限 第一次做实验时不采用logging选项(Solaris 7和8的文件系统缺省状态下都不采用这种选项)。 # time ./logging-test 用此命令测一下整个执行时间 real 27.7 user 2.0 sys 4.9 # time rm -rf /big/test real 8.0 user 0.0 sys 0.3 结果创建和删除目录共需要35.7秒时间, # umount /big # mount -o logging /big # time ./logging-test real 13.2 user 1.7 sys 5.4 # time rm -rf /big/test real 0.8 user 0.0 sys 0.2 同样的命令在采用UFS logging以后只需要14秒的时间,性能提高非常明显。下一个测试更有趣。不采用logging,并在上面的脚本执行过程中关机,那么下一次启动时,系统要求进入单用户状态手工执行fsck来修复系统,在修复过程中也报了很多错。修复了以后,系统可以引导起来。采用了logging功能后,同样的实验过程却得到了令人鼓舞的结果:系统仅仅提示: /dev/c0t1d0s3: is logging 没有其它的报错信息给出。 但是UFS logging最初会有一些bug,在采用UFS logging之前,需要打最新的系统核心patch,并且最好在另一个非生产环境进行测试。 还有另一种比较新的而且很有用的mount选项:noatime。如果没有noatime选项,每个文件每次被访问,它的I节点中的访问时间的值都会被更新。这样,用ls lu命令可以看出文件最近一次被“读”的时间。但是有些情况下我们并不关心文件什么时候被读过,比如Web server 的内容,但是他们增加很多的IO负载,从而影响性能。使用noatime会减少访问时间被更新的频率,它使系统只有在该文件的其它I节点属性同时修改时才更新文件的访问时间。在我们不关心访问时间的文件系统中,这不会对系统造成什么损害。 guchengman 回复于:xx-06-06 00:27:03以前我都不知道time还有如此妙用, 这unix命令真是越简单越深奥啊. Crazy土匪 回复于:xx-06-06 13:40:23呵呵。楼主说的你只看了time命令啊。呵呵。 吹拂的晨风 回复于:xx-06-06 19:51:06确实是不错的文章,对维护文件系统有帮助!顶! koukou 回复于:xx-06-06 23:01:59以前真的不知道logging 还有如此妙用,前两天客户就在检测系统时,丢失了很多文件,想问楼主,如果是使用logging , 是不是就可以最大可能的减少数据的丢失。 还有,俺想问问,solaris 中是不是有垃圾站的功能,删了还能找回。 或者在检测的文件系统是丢失的文件,还能找回来, 系统有这种功能吗? guchengman 回复于:xx-06-07 21:38:33quote:4fa8821453=Crazy土匪呵呵。楼主说的你只看了time命令啊。呵呵。/quote:4fa8821453 呵呵, 文章是少有的, 不过看了这个命令的用法后就更感到是好文一篇罗. guchengman 回复于:xx-06-07 21:40:51quote:068e9378e5=koukou以前真的不知道logging 还有如此妙用,前两天客户就在检测系统时,丢失了很多文件,想问楼主,如果是使用logging , 是不是就可以最大可能的减少数据的丢失。 还有,俺想问问,solaris

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论