zoukankan      html  css  js  c++  java
  • 2013 CLSF会议记录

    时间:2013/10/17~2013/10/18

    地点:上海LSI办公室

    CLSF全称China Linux Storage and Filesystem,可以说是国外的LSF的中国“山寨”版。发起人是Coly,2009年是第一届,所以今年已经是第5年了。会议通过邀请,聚集国内做存储/文件系统方面的内核开发人员,这些人基本活跃在内核开源社区,人数控制在30左右。

    Section #1 自我介绍

    自我介绍之余,Coly和Robin讲了他们一直在做的工作,对坏盘的自动检测,及时将坏盘从存储系统中踢除。目前检测坏盘只是通过对IO延迟的检测,好像Google有一遍相关的论文,其中列举了包括IO延迟等各种不同的参数。

     

    Section #2 XFS (Oracle Jeff Liu)

    Jeff Liu介绍了过去一年XFS的变化。

    这里有很多特性的新增或者增强。例如user ns支持,这个工作本来是user ns作者Eric做的,但Eric不懂xfs,David Chinner把patchset批了一通后,自己手动做了。

    还有,引入CONFIG_XFS_WARN,本来是有CONFIG_XFS_DEBUG,这东西overhead比较大,并且为了debug会改变块分配之类的算法,最大的问题是,xfs检测到问题时因此就会直接panic了,所以DEBUG是不适合在产品环境上打开的。

    另外一个很大的变动是增加了crc check,这个特性改变了xfs的disk layout。

    其他的特性还有quota的增强、xfs_io支持seek_data和seek_hole、online shrinker、new free inode allocation btree、compressed inode cacche等等

    据Jeff说,xfs最大的scalibility问题不是里面的某个算法问题,而是verification的问题。马涛非常关心的问题是xfs有没有做online fsck的想法,答案是否。

    去年的时候,我们提到xfs代码太庞大的问题,这次Jeff辩解了一下,这其中一个原因是xfs注重代码注释,注释占了30%的比例,远高于btrfs和ext4。

    Oracle 6.0支持了xfs,这是基于xfs的稳定性、对大文件和高并发的良好性能。另一方面,ext4的稳定性似乎有点受到诟病。Redhat也将在RHEL 7把xfs设成默认的文件系统了。

    这里还提到xfs社区的一个问题,做为maintainer的SGI开发人员,跟做为xfs实际的技术引领人David和Christoph,之间经常争论不休,以致patch被接受的时间往往要比别的社区多花两倍时间。这个问题可能会好转,因为David已经变成maintainer,这个提议是由Ric Wheeler提出的,Ric是Redhat的文件系统项目组的manager,David也是Redhat的雇员。

    Section #3 0day testing (Intel 吴峰光)

    峰光这一两年其本上时间都投在这上面了,而且这个工作受到整个内核社区的赞赏,因为0day帮大家在开发中的代码及时发现很多bug。

    Intel OTC本来就有做社区内核版本的测试工作,主要是性能方面,当发现有性能退化时,他们就会往内核社区发个report。峰光接手了这个工作后,就把它整成自己的0day了。

    峰光介绍了介绍了0day是怎样将各个git tree合并的,在测试的过程中统计了哪些信息,这些信息有不同的权重,然后通过运算公式得到一个分数,这个分数决定了将决定系统要不要自动做git-bisect找到出问题的地方。

    从一开始的启动测试,到现在的静态代码扫描、性能测试,这个测试套件还没有完善。

    另外,0day是不开源的,马涛问到能否拿来测他们的内核,回答是只能把git tree的链接发给峰光。

    Section #4 ext4 (阿里巴巴刘征)

    淘宝的刘征介绍了ext4的进展。相比xfs,ext4在特性上的变化就少些了,主要有inline data、extent status tree、extent status cache,另外还有punch hole对non-extent mapping file和bigalloc的支持等。

    对于extent status cache,可以用filemap FIEMAP_FLAG_CACHE,或者ioctl EXT4_IOC_PRECACHE_EXTENTS,将一个inode的extents信息全读到内存里面。这样有什么好处?可以避免从磁盘读取extent tree,否则的话,对preallocated的文件使用AIO的时

    候,由于有了磁盘操作,AIO就不再是AIO了。

    接下来刘征介绍了4月份的ext4 workshop的一些讨论结果:

    -          将blocknumber从48位改为64位以支持更大的文件,但这种改动extent tree layout的事情是很麻烦的,而且也没有很迫切的需要。

    -          range locking。如果能只锁住文件的一部分,而不是通过i_mutex锁住整个文件的话,并发性应该可以提到比较大的提升。

    -          Online fsck。这是淘宝比较迫切的需要。对于数据库之类的东西,他们不希望因为文件系统损坏和修复而中断服务,如果fsck不需要卸载文件系统就好了。这个问题Ted有一些建议,网上可以找到。不过,花不花时间去实现估计就看淘宝自己了。

    看起来,ext4最终会被xfs替代,xfs在btrfs成熟前作为最主要的linux通用本地文件系统。(不过btrfs的成熟遥遥无期)

    Section #5 zswapzramzcache (Oracle 刘勃)

    总的来说,这几样东西做的事情是将需要swap出来的内存压缩,然后放到一个内存池里,而不是真的swap出来,通过尽量避免使用swap提高系统性能。

    zswap的压缩率最多只能到50%,而zram可以更高,但代替是page reclaim很困难。

    目前主线的状态是,zcache已经从staging tree去掉,zram还在staging里。Bob Liu希望把zram和zcache整合在一起。

    Section #6 From Industry (科达 Ma Jianpeng)

    科达的Ma Jianpeng给我们讲了他们在存储/文件系统上的需求和应对。

    对于图片,他们在前端是6张/秒,一张图片是50K,使用的是FAT32文件系统。后端则是100张/秒,用的是IPSAN,ext4文件系统。

    由于IPSAN太贵,他们已经放弃了,而是自己研发了一个文件系统,将图片这样的小文件合并成大文件。

    Jianpeng提到,对于他们这个行业,在存储上,客户是不大关心数据丢失或者损坏的,但唯独不能接受RAID5损坏,因为这一损坏就表示系统不能写了。

    Section #7 btrfs (Oracle 刘博)

    这个Section用了两个小时都还不够。。

    作为一个还在积极开发中的文件系统,刘博列了一大堆的新开发的特性,诸如让人望穿秋水的raid5/6,还有snapshot-aware defrag、online device replace、dio speedup、send/receive、offline dedup、online dedup、skinny extents等等。

    目前offline dedup已经进主线了,更复杂困难的online dedup还在开发中,估计也会进主线,两者可以用在不同的场景下。对于dedup,大家关心的是它对cpu占用率的影响,倒不一定是怕太耗cpu,而是让cpu占用率一会儿高一会儿低,这样就不可控,产生严重的抖动。

    当然,btrfs最大的问题是稳定性问题,什么时候能够商用。虽然Chris Mason等人一再表示btrfs现在挺稳定的了,每年都会说到年底就能商用了,但到目前为止都没有一个实际可预期的未来。Chris本人现在在btrfs上花的时间看来太少了,Josef最近也没见他多发几个patch。

    总之,对于btrfs只能审慎的观望。

    Section #8 ocfs2 (华为沈灿泉)

    我司的沈灿泉介绍了我们在ocfs2上做的工作,除了稳定性的增强外,我们还将ocfs2的重启机制改为将文件系统置为无效(即不可读也不可写)、支持dlm划分多分区、一个文件只允许被一个主机写(防止脑裂)。

    目前我们还正在做支持多lun、dlm增加网络序列号、支持ATS等工作。后续还想支持SCSI Fence、集群的write back cache等。

    ocfs2的maintainer及主要开发人员陆续离开Oracle后,ocfs2的开发和维护就基本就停滞了,而ocfs2在Oracle内够用了,也就不太关心了。

    但我们在选用了ocfs2用来存放虚拟机镜像后,发现当压力和节点规模增大以及各种异常情况发生时,ocfs2问题多多,并且ocfs2也缺乏一些我们需要的功能,这些都只能由我们自己解决,从社区可以得到的帮助很少。

    我们遇到的ocfs2的问题集中在dlm,这也是我们目前想加固dlm及使用ATS代替DLM的原因。

    这里有个故事,Oracle招聘了一个人维护ocfs2,此人看了一段时间的ocfs2代码后,毅然离职。。这个故事大概可以告诉我们,文件系统的维护是一件很困难的事情。

    这里还有一件事情,当我在CLSF组委会里提名灿泉参加会议时,有人觉得有些奇怪,因为他们看到往ocfs2社区发patch的是某几个人而不是灿泉。殊不知,是因为我司的SE经常是不写代码的,或者即使想写也无奈没有时间精力。

    Section #9 Ceph (Ubuntu麒麟汪黎)

    天河二号是准备选择Ceph作为存储方案的,不过我们好奇的问Ceph到底能不能在商用环境下用在PB级别的存储系统上,汪博和严正似乎都没什么信心。汪博自己只在32个节点上部署过Ceph,而计划将来是6000个节点。

    Section #10 Fast Swap (Fusion-IO 李少华)

    这是硬件又一次对内核发展的驱动。我们都知道Swap是一件非常耗时的事情,我们自己用浏览器、拷贝文件时也应该遇到因为swap而机器卡住的时候,所以我们总是想避免swap,例如之前提过的zswap。但另一方面,如果我们用高速SSD作为swap disk,那还怕什么呢。

    但是真的这样做时,会发现内核有一些瓶颈阻碍了SSD发挥最好的性能。少华在这方面就做了不少工作,其中一部分进主线了,一部分还没有(甚至不大乐观)。

    这些瓶颈包括一些锁的竞争、过多的TLB flush等等。

    Section #11 From Industry: LSI (唐杰)

    唐杰介绍了一些LSI的存储相关的产品:raid卡、flash控制器、nvram。

    其他参会人员的CLSF report可供参考阅读:

    https://blogs.oracle.com/linuxkernel/entry/clsf_clk_2013_trip_report

    CLSF 2013讨论会纪要(一)

    CLSF 2013讨论会纪要(二)

  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/lizf-kernel/p/3433945.html
Copyright © 2011-2022 走看看