关于glusterfs-3.3.1的两个bug

    最近因工作需要,对gulsterfs-3.3.1进行了性能测试,测试过程中发现了两个bug:

    1)创建dht+stripe+afr模式的卷,向挂载点拷贝文件,返回“Invalid argument ”错误。然后我创建了dht+stipe模式的卷以及dht+afr模式的卷,拷贝文件均正常。查看报错时log中报error:stripe.c: Get stripe-size Failed。通过分析代码,stripe模块在write时,要获取stripe-size等参数时失败。最后确认,该参数是stripe_create_cbk中的xdata_rsp中获取,但在afr_create_cbk中已将xdata_rsp销毁,返回上层的是NULL。导致stripe层获取stripe-size等参数失败。虽然获取失败,但没有立即报错,当create之后进行write需要stripe-size等参数时出现上述错误。所以在dht+stripe+afr模式下,单单touch一个文件是不会报错的。不明白为什么这么明显的bug没有测出来,而且官方文档上说支持dht+stripe+afr模式。

    2)当含有stripe(3)模式的卷时,df -h 显示的使用大小与实际不符。我向挂载点内拷贝一个4G的镜像文件,df -h显示使用了12G,du -sh 也显示12G,计算md5值与原文件相同。但 ls -l显示的大小正确。这样看了问题很明显了,估计是在stat 或 fstat时合并文件大小时出现了一个bug(注:经验证,stat显示的是各个stripe子卷上该文件实际占用磁盘空间的总和)。因此bug没有影响性能测试,所以没有立即修改。下周搞定它,哈哈。

    从上述的问题看了,glusterfs-3.3.1尚有许多问题,还需进行功能性测试和压力测试。本次的几组测试中并没有发现stripe对性能有所提高,可能是测试不够,下周继续~敬请关注本人如何玩转glusterfs,嘻嘻~

你可能感兴趣的:(bug,gluster,GlusterFS,stripe,glusterfs-3.3.1)