delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

25 Feb 2010

FAST 2010第一天

今天去参加了在San Jose举行的 FAST ‘10 第一天的 Tech Session,FAST是 USENIX 主办的关于文件和存储技术的学术会议。记上几笔。

开场的Keynote其实讲的还算精彩,不过感觉跟会议本身关系不大(讲的主要是发展中国家的手机等设备的发展),就不介绍了。

Build a Better File System and the World Will Beat a Path to Your Door部分。第一个是本次的获奖论文 quFiles: The Right File at the Right Time,具体来说是实现了同一份data(文件)的不同view(例如,将其表现成不同分辨率、码流等)的一种通用的存取方法。个人对Semantic File System持保留态度,不过这个talk还是可以帮助拓宽一下思路。

第二篇是介绍在 WAFL 类型的文件系统(具体举例是 btrfs) 中实现倒排索引的 Tracking Back References in a Write-Anywhere File System。具体来说,是在 inode -> 块这样的单向关系基础上,增加了块->inode(包括inode版本、回收时间等)的倒排索引。paper值得看但是性能比较做的稍微有些瑕疵(用做B-Tree的时间去比较在FS中查询的时间,而没有比较建立倒排索引之后更新与在block中插入信息所引起的开销,以及两者对应的查询时间)。

第三篇指出了内存故障可能导致的问题,指出 ZFS 的 end-to-end 检查只能检测出磁盘介质或控制器偶然故障引起的问题,而系统主存中存在的问题则无法发现并可能导致数据损坏甚至系统崩溃,并提出了在 ext2 FS 中增加运行时checksum检查的方案。这篇的试验方法和结论受到了很多人的质疑。

午饭时间。

下午的Looking for Trouble环节是我比较感兴趣的,这个环节主要是讨论故障检测、预防的方法(很多内容似乎跟 LISa 的话题更符合?)

第一篇 Black-Box Problem Diagnosis in Parallel File Systems 提出了一套通过观察一些运行时的响应特征来检测并评估分布式文件系统中所存在的网络、磁盘问题的方法。这个方法值得借鉴,具体来说是事先收集一组正常的性能数据,并在系统运行的过程中收集这些性能信息并与正常的数据比较。由于不同的客户端、服务器角色都能够收集数据,通过一定的统计模型,可以以很高的概率预测遇到的问题是位于网络、磁盘、客户端还是服务器端。

第二篇 A Clean-Slate Look at Disk Scrubbing 和第三篇 Understanding Latent Sector Errors and How to Protect Against Them 主要是讨论在 RAID 和单片盘使用过程中,以主动巡检 (scrub) 的方式去事先检测故障的方法,不过两篇有一些相反的结论(第三篇有来自NetApp的数据支持)。一些我认为比较重要的发现(如果两篇结论相反的话,我采用的是第三篇的结论):磁盘上的故障点倾向于集中出现,巡检时,遇到坏块可考虑首次扫描中立即跳过128MB;磁盘品质在前2个月的时间会比较稳定,因此在两个月之后应考虑增加巡检的频率,而前两个月做scrub则不需很频繁;数据并未显示巡检(或读写)操作本身会显著降低磁盘的使用年限;发生2处错误时,有90%的情况是发生在两个盘上;staggered scrubbing(以采样的方式将磁盘分成若干大块,并只抽取大块中的一小部分做scrub,见第二篇)可以将检测到故障的时间缩短40%,等等。

傍晚的时候是WiP部分。比较感兴趣的是 Non-Volatile Transactional Memory、The Hot Pages Associative Translation Layer for Solid State Drives(SSD存储结构的改进)和Revisiting I/O Middleware for the Cloud;The Case for a New Sequential Prefetching Technique这个话题因为没有看到具体的算法,所以暂时还不知道效果如何,期待下次FAST能看到。