有关FreeBSD的几点误区

虽然绝大多数人都知道FreeBSD的优势在于稳定性高,网络性能好,但对于FreeBSD其他的一些技术特性,在认识上仍然存在着一些偏差。

1.FreeBSD不具备日志文件系统,因此不适合用作高要求的应用目的

首先需要指出的是,日志文件系统最早也是在BSD上开发的,称为LFS。在FreeBSD中本来是支持它的,但后来由于版本升级的原因,它的代码由于缺乏维护而被暂时抛弃,至今还可以在FreeBSD的源代码中可以找到LFS的一些遗迹。目前,LFS还存在于NetBSD中继续开发,如果有特别的需求,它完全可以再回到FreeBSD系统中。

然而,FreeBSD开发者没有急于将LFS移植回FreeBSD是有道理的,因为FreeBSD系统中已经增加了一些新的特性,足以提供LFS能提供的最重要的特性。为了解释FreeBSD的这些特性的本质,我们需要讨论一下文件系统。

由于文件系统的读写性能对于整个系统的性能来讲,是一个非常重要的指标,因此系统设计者就设法尽可能的提高文件系统的性能。这样,人们就设计了磁盘访问缓冲来达到这个目的,这样,使用缓冲的读写方法就称为异步(async)访问方法,相应的不采用缓冲的磁盘读写方法就称为同步(sync)访问方法。

显然,异步方法具有更高的读写性能,但是一旦发生故障的时候,由于有很多数据还保存在缓冲区中,就导致这一部分数据丢失。然而,如果是简单的部分数据丢失倒还罢了,但是某些重要的数据丢失,就导致整个文件系统遭到破坏。为什么会发生这样的情况呢?

因为,在文件系统中,有两种不同的数据,一种为简单的文件内容数据,这些数据丢失仅仅导致某个文件出现错误数据,不会影响其他文件的内容。另一种数据则比较重要,例如文件系统本身的I节点或者目录数据,假如I节点的数据块出现错误,就会导致大量文件丢失,甚至导致文件系统整个受到破坏。这些对文件系统完整性非常重要的数据被称为元数据(metadata)。

对于普通的文件系统来讲,并不能在缓冲区中区分出普通数据和元数据,这样就会发生普通数据的更新比它对应的元数据更新的时间要早,这样一旦发生故障,文件系统的破坏是不可避免的。对于日志文件系统来讲,由于日志是顺序发生的,因而缓冲区向磁盘写的顺序也是顺序的,这样,元数据的更新总是顺序的在数据更新之前被保存,这样就使得即使发生故障,元数据也不会发生特别严重的错误,某些元数据的错误只能导致部分文件丢失,而不会影响整个文件系统。

由于日志文件系统的这个顺序特性,使得系统不会因为故障出现严重的错误,而且在出现错误时,还具备更短的文件系统修复时间(fsck),系统修复时间对于存储量非常大的文件系统非常重要。这样一旦出现错误,系统重新启动并恢复提供服务的时间也很短暂。

时间: 2024-09-15 17:42:26

有关FreeBSD的几点误区的相关文章

Freebsd+Resin成功建立支持jsp平台

js 环境:FreeBsd 4.9 Apache1.3.29+php4.3.4+mysql4+ports 安装 首先要cvsup同步ports , /usr/local/bin/cvsup -g -L 2 /usr/local/etc/ports-supfile /usr/local/bin/cvsup -g -L 2 /usr/local/etc/stable-supfile 然后进入http://www.freebsd.org/ports/java.html 进入bsd 关于java 的官方

令网站看起来不专业的十个设计误区

  在这个奶茶店都有个响应式网站的时代,你没有网站似乎是一件说不过去的事情.不过当你考虑到自己可能仅仅只是个人名而非名人,你的店铺也算不得什么知名大厂,随便开个网站再说,等影响力扩展到前面十字路口的时候再找个美工什么的做5块钱的设计. 是吧,你就这么想的? 我就不深入吐槽了,实际的情况可能比你想象的要稍微--复杂一些.不管你是不是一个羽翼未丰企业的领导,专业的网站能为你带来的东西比你想象的多很多.退一万步来说,"考虑到我们是一个小厂",粗糙的网站也许能被用户理解,但是不一定能接受.每天

学生慎选笔记本 避免4大误区

学生的生活环境以及应用需求都比较特殊,所以对笔记本的很多要求也有别于普通用户.作为学生用户,如何避免在选购上遇到的一些误区呢?下面将详细介绍. 1.过于追求高端配置 现在大多学生购买笔记本的档次越来越高,其中不乏攀比心的作用,过分追求笔记本的档次是学生群体中最常见的笔记本消费误区. 购买高档笔记本无非就是为了获得更好的品质,但就产品质量来说,4500元以上的笔记本就已经非常不错了,高端价位的笔记本在使用寿命上基本没有什么明显差别,与中低端笔记本最大的差别在于可靠性.保密性以及产品个性 对于学生群

定义函数声明误区和函数相互调用导致的问题

我们编写程序时一般有个习惯,写函数都爱把函数写到主函数的前面, 一般常用的写法: #include<iostream> using namespace std; void A() { cout<<"函数A\n"; } void B() { cout<<"函数B\n"; } int main() { A(); B(); return 0; } 运行结果: 现在看着很正常是吧?运行结果也对,我们一般定义函数都习惯这样写,以为这样就不用

FreeBSD 8.4改进了稳定性和存储功能

FreeBSD项目团队宣布发布v8.4版--8-STABLE分支的第五个版本.主要新特性包括:GNOME 2.32.1,KDE 4.10.1:ZFS文件系统支持feature flags和异步破坏.LZ4压缩和ZIO NOP写优化:支持LSI的存储控制器. 新版主要是改进了稳定性和存储功能. 下载:FreeBSD 8.4 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/FreeBSD/

FreeBSD中使用串行通信进行远程内核调试

探索在不影响系统性能的情况下,如何远程调试正在目标计算机上运行的 FreeBSD 内核.本文讨论如何使用串行通信端口设置调试环境.如何编译经过修改的内核代码.如何进行调试,并介绍了一些故障诊断提示. 引言 FreeBSD 是从 BSD 衍生而来的高级操作系统,BSD 则是加利福尼亚大学伯克力分校开发的 UNIX 版本.它提供了很高的性能,与其他系统的兼容性更强,并且需要的系统管理更少.FreeBSD 包含了内核级的状态式 (Stateful) IP 防火墙以及许多其他服务,如 IP 代理网关.访

专家点评简历三大误区

写简历,往往是每个人进入职场的第一课.然而据职业咨询机构分析发现,即使有着数年从业经验的人,能在此门功课中交出优秀成绩单的也寥寥无几.想要应聘成功,面试是少不了的.而面试的机会90%都来自那份小小的简历.简历写的好,能为你创造机会:相反,如果不得要领,装帧得再精美恐怕也会让你求职无门.  案例  阿灿是今年7月毕业的本科生,毕业就等于失业在他身上得到了充分体现.从毕业前几个月开始,他就是招聘会与各大招聘网站的常客了.投出的简历足有两三百份,得到的回复却只有寥寥数个,还都是一些他不喜欢的岗位.在十

FreeBSD 10.0 Beta 1的亮点功能

FreeBSD 10.0 Beta 1, 一个可以运行在x86, ARM, IA-64, PowerPC, PC-98, and UltraSPARC 等架构上的操作系统, 已经发布并且可供下载测试. FreeBSD的开发者在以不可思议的速度前进,并且不断地发布一个又一个的新版本. 新的测试版在有五个内测版的情况下完成,但是没有任何问题. 官方公告称,"因为在最后一刻发现10.0-BETA1 freebsd-update(8) 中存在问题,freebsd-update(8) 不支持10.0-BE

FreeBSD 10.0增强了虚拟化功能

FreeBSD宣布发布FreeBSD 10.0-RELEASE.主要新特性包括:默认包管理工具pkg:增强虚拟化,加入bhyve.virtio和原生准虚拟化驱动支持在微软的Hyper-V中把FreeBSD作为一个客操作系统:在clang作为默认编译器的架构上不再安装GCC:ZFS文件系统加入SSD的TRIM支持,支持高性能 LZ4压缩算法:支持 Raspberry Pi:等等. 传送门: http://www.freebsd.org/zh_CN/where.html 查看本栏目更多精彩内容:ht