FreeBSD

共 688 篇文章。

很久不写blog了......

• Diary Excerpt

今天伟大的 A core 说起我blog上面一个很严肃的问题,tag cloud似乎只是罗列了字母序的关键词,一看果然如此,还不完整,也许是 MT 系统要惩罚一下我最近的懒惰了?

说说最近的事情,流水帐。

一件折腾了很长时间的事是,公司的 filer 终于在 6 月 25 日那天寿终正寝。了却了一件心事,以后就准备一直用server去代替了,据说 NetApp 原来和我们公司是在一个院里起家的,不管是不是真的吧,这台 filer 也算是见证了相当长一段时间的历史,到最后连 EBay 上面都买不到它用的硬盘了。

总而言之,值得纪念的一天(顺手把UDP mount都改成TCP mount了)。

Hans Reiser的案子判了,15年,在最后关头他供出了埋老婆的地方,奇怪的美国法律,为什么这样可以从一级谋杀改判为二级谋杀?从新闻报道看,这个家伙很倒霉,被一个人差点骗走了公司,并且把老婆也抢了,然而杀人……之前以为美国警察逻辑混乱,现在看来,老婆失踪立刻把老公控制起来还是对的,十之八九跟那家伙有关。不过真是很可惜,ReiserFS恐怕从此走向死亡了,一个相当有成就,而且有了两个娃的技术专家,最后居然因为杀人而锒铛入狱,真是一件非常可惜的事情。现在人都怎么了?

阅读全文… ( 本文约 1436 字,阅读大致需要 3 分钟 )

湾区committer聚会

• Life

今天和 lwhsu 去 julian 老大家参加了一次小型的聚会,见到了很多传说中的人物,包括 alc(VM Guru)、bmah(re@)、rwatson(大家都认识的我就不说了)、sam(4.2BSD时代的总boss、现在在搞802.11),以及 Peter Losher (Internet背后的运营者)等。

参与评论

ZFS时代FreeBSD系统的数据冗余策略

• Data Management

2008硬盘磨损年!

我相信很多人都遇到过硬盘卡壳、掉链子的情况。当然,这篇文档的主旨不是告诉你怎么样可以绕过那些老爷子写的课本上说的金科玉律──重要的数据都应该有备份──如果你的数据最终丢失了,那么我的问题是:你的备份呢?

但是,即使你有经常备份的习惯,有些数据还是会难免出现一些没有及时备份而导致丢失的情况。我的观点是,没有备份计划的数据都不是重要数据,不要等到数据丢失了再去后悔,但是我们显然应该采取各种各样的手段来阻止没有及时备份的那一小部分数据的丢失。

硬盘

大家一起默念:它很便宜!它会坏掉!

是的,实战经验会告诉你,它很便宜!它也会坏掉!不管这个硬盘是来自什么厂商,也不管它是SATA、SCSI、SAS或者是传统的ATA接口,它出现故障只是时间早晚的问题。

为了解决这个问题,人们提出了廉价磁盘冗余阵列(RAID)的概念。例如,使用两块相同容量的磁盘组成 RAID-1 (MIRROR) 阵列,可以在其中任意一块出现问题时,从另一块中取出数据。而如果有至少3块硬盘,便可以组成 RAID-5 (注:还有其他RAID级别可以用3块硬盘组成冗余结构),只损失 1/n 的容量(n为硬盘数量)来得到带冗余的存储,使得存储可靠性得以提高。

除了改善可靠性之外,RAID还可以用来改善读写性能。例如用多块硬盘组成 RAID-0 阵列,可以将读写性能提高 n 倍,等等。我们并不讨论这些RAID级别。

不幸会发生

和很多人已经想到的一样──不要高兴的太早……

带数据冗余的 RAID 的一个基本假设是,磁盘是不骗人的,它有两种状态:好、坏,并且,主机(或RAID控制器)能够可靠地识别这种状态。

很不幸,这句话只对了一半。一块磁盘要么是好的、要么是坏的(这里,“坏的"的定义是读写时会发生任何错误),但是主机未必能够识别这种状态。

更为严重的是,有些时候主机甚至连读出来的数据是否是正确的这件事都不知道!当你发现自己的程序在其它机器上都很正常,但是在某台机器上总是神秘的崩溃的时候,你就要看看是不是那台机器的内存或者其他存储器出现问题了。

阅读全文… ( 本文约 3066 字,阅读大致需要 7 分钟 )

FreeBSD的坏损硬盘修复工具──recoverdisk(1)

• Data Management

2008硬盘磨损年,你需要这个工具,是的,即使你有备份,只要那备份不是实时的,你还是会需要这个工具。

recoverdisk(1)是FreeBSD 7.0新引入基本系统(/sbin!)的磁盘复制工具,这个工具对于修复硬盘、光盘、存在坏盘上的文件等各种情形都能非常有效地进行迅速修复:它首先尝试以1MB的块尺寸读取和写入数据,随后是64K和512字节(1扇区),遇到错误时会自动跳过,从而最大限度地从损坏的磁盘上恢复数据(如果是用 dd(1) 来恢复数据,通常在遇到坏区时会丢掉整个block,而recoverdisk则是先跳过,然后回过头来用较小的块尺寸重新读取直到失败,而此时主要的数据都已经恢复了)。

参与评论

今天讲个故事

• Life

今天讲个故事,这个故事是什么呢?

《列子·说符》
人有亡斧者,疑其邻之子。视其行步,窃斧也;颜色,窃斧也;言语,窃斧也;动作态度,无为而不窃斧也。俄而抇其谷而得其斧,他日复见其邻人之子,动作态度,无似窃斧者。

我很小的时候,大人给我讲过这个故事,这个故事告诉我们,想要知道一件事情的真相,那么,无论任何事情,你都不要去预设一个结果,然后让这个结果去影响你的调查研究、情绪或者什么。

这个并不是每个人都能做到,甚至,其实能做到的人,真的很少,而且,他们的下场未必怎么样,伽利略的名字上了罗马教廷的黑名单,布鲁诺被活活烧死,到今天也是一样,当你说关于某明星的不好的时候,立马就会有fans蹦出来跟你拼命,因为人们不愿意相信那些与他们观念不太一致的东西。

阅读全文… ( 本文约 603 字,阅读大致需要 2 分钟 )

Using 'skim' for input in KDE

• Development

I have a long history suffering from inputing Chinese in KDE, where scim does not work well, especially when used with Qt applications. Certain applications like KWord will refuse Chinese when using SCIM.

After some search it seems that ‘skim’ which is scim Qt’ifyed version, would support them well. Moreover, this version seems to have better UI than its GTK counterpart. The port (textproc/skim) is now unmaintained, maybe someone will pick it up? I’ll consider picking it up if there is nobody taking care for it.

参与评论

patched top(1) and kernel to support multiple CPU

• Development

前几天有人问 FreeBSD 的 top(1) 如何能够显示不同 CPU 的占用情况。这是 patch 过之后的输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
last pid:  1773;  load averages:  0.43,  0.19,  0.16                                                                                        up 0+00:34:35  16:17:04
97 processes:  1 running, 96 sleeping
CPU 0: 20.8% user,  0.0% nice,  0.0% system,  0.0% interrupt, 79.2% idle
CPU 1:  3.1% user,  0.0% nice,  0.0% system,  0.0% interrupt, 96.9% idle
Mem: 517M Active, 21M Inact, 577M Wired, 11M Cache, 48K Buf, 810M Free
Swap: 2048M Total, 2048M Free

 PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND  
 1236 delphij 1 104 0 232M 143M select 1 4:37 37.06% Xorg  
 1768 delphij 1 8 0 164M 52704K nanslp 1 0:07 36.28% kicker  
 1771 delphij 1 8 0 6212K 1664K wait 0 0:00 3.17% sh  
 1772 delphij 1 45 0 8020K 1656K select 1 0:00 2.39% ksysguardd  
 1756 delphij 1 20 0 10648K 3596K pause 1 0:00 1.17% csh  
 1754 delphij 1 4 0 11764K 1588K sbwait 1 0:00 0.78% gnome-pty-helper  
 1751 delphij 2 -8 0 136M 25756K piperd 0 0:00 0.68% gnome-terminal  

FreeBSD 8 中已经包含了这个功能。

参与评论