两天会议的一些收获
周六、周日两天的AsiaBSDCon正式报告会,内容非常充实,以致于我都没有时间去整理和把一些感想写出来。今天终于准备离开了,现在是当地时间早上1点半。
说说我比较关注的几个presentation。
Brooks Davis做的关于FreeBSD高性能计算集群的报告,讲到了他们在选型方面遇到的一些问题。计算集群主要考虑的成本是能源消耗与性能之比,因此他们采购了一批Intel机器之后,选择了AMD的产品,而新一代集群也许又要选择Intel的产品;早期Alpha的节点,已经基本被x86的取代。另一方面,他讲述了相当长时间的关于高性能计算为何有很多人使用Linux的问题,由于很多人使用Linux,导致很多做高性能计算的人有这样一种概念,如果那不是超级计算机,就一定是Linux——然而,这样一来,FreeBSD的集群就会遇到一些问题,因此,他们完成了一系列MPI及相关的支持系统的支持,并制作了port。总体而言,高性能计算集群中更倾向于采用自动化的任务分配,以降低管理成本;他们对SGE(Sun Grid Engine)和监控工具进行了一系列修改,使其在FreeBSD上运行的效果与Linux相当甚至更好。
从某种意义上说,超级计算中的开发人员和系统管理员,会朝着两个完全不同的方向去思考问题。如何调和两者之间的矛盾呢?其实,这也正是在其他计算系统中经常碰到的问题。
下午的puffs。这是NetBSD的一个Google SoC项目,基本上做的和fuse类似的工作,但采用的是BSD授权,同时提供了一个fuse模拟接口,用于将fuse调用转换为puffs调用。用puffs实现的nullfs的性能相当不错,而且包括cache等问题也都考虑到了。之前AFS中的那套东西是*BSD上唯一的用户态FS接口实现,现在puffs给了我们另一个选择。
puffs留给我的几个问题是:U和K之间的通讯是否能够更加高效?如何更有效地将FS所需的I/O请求进行排列,但又不损失语义完整性?FreeBSD的gjournal提供了一个十分有价值的尝试,但仅仅重排写操作也许是不够的。puffs依赖于健壮高效的VFS/VM cache系统,总体感觉,优化的空间相当大。
第二天我比较关注的:
bluffs:Stephen Uphoff的bluffs。其实我对日志式文件系统一直保持怀疑态度(主要的原因是日志本身出现问题时,整个FS就完全无法恢复了),而bluffs其实并不是传统意义上的日志式文件系统,Stephen提出了一个概念,将SoftUpdates的优势结合进去,并大大地简化了逻辑。这个FS我们将在Q2看到。
OpenSSH:主要是讲解了OpenSSH中采取的安全加固措施。我个人并不完全认可OpenBSD的一些做法,特别是安全方面,但那都是一些比较细节的部分。总体而言,OpenBSD是三大主流BSD分支中代码品质最高的。OpenBSD采用的一系列包括随机化、特权分拆,虽然以前也看过一些介绍,但这次经过Damien讲解,又有一些新的收获。例如,由于普通的fork不能很好地增加随机性,OpenBSD采用了fork+exec的方法来启动新的sshd实例,以前尽管注意到了这个做法,但没有把它当作一项功能。
zfs:Solaris的ZFS是pjd同学几乎独力移植的,这个presentation主要介绍了他移植过程中的一些经验。讲得相当精彩,过两天我们会放出paper和slide的下载。