新闻

NEWS

VC君讲技术05 | ceph:社区提交分析

发布时间:2020-08-06 发布者:瑞驰信息技术

《VC君讲技术》

技术分享第5期

作者:带鱼、乐枫


1、client目录inode不能释放问题

当使用像nfs-ganesha这样的客户端时,其持有dir inode的ref时,inode的dentry不会过期,因为它的状态总是lru_pins。

当前的代码并没有告诉nfs -ganesha释放dir inode,应该先调用release_callback来告诉nfs -ganesha释放,然后当它的状态变为unpin时再修剪dentry。

pr:https://github.com/ceph/ceph/pull/35327


2、ceph-fuse:性能优化

可以减少ceph-fuse的IO路径中的内存拷贝,从而提升IO性能。例如,fuse_ll_read()有两个副本,libcephfs到临时bufferlist,bufferlist再到内核。

pr:https://tracker.ceph.com/issues/45267

 

3、mds:访问丢失的父目录下的文件时的hang问题

例如,这里有一个path /dir1/file1。由于一些严重的问题,元数据池中的dir1对象丢失了。

当执行“ls /dir1”时,MDS将正常返回EIO。

但是在做“ls /dir”之前,我们试着直接做“ls /dir1/file1”,这个请求将永远挂起。

该pr修复了此问题:https://github.com/ceph/ceph/pull/35690,合入到了master,backport到了O和N。


4、rgw: lc: 修复段错误

在对象上put一个标签,如果该标签没有在lc rule里面设置过,则rgw在执行lc的时候会崩溃。该pr修复了此问题:https://github.com/ceph/ceph/pull/36055


5、osdrocksdb提交空事务问题

这个pr:https://github.com/ceph/ceph/pull/26866 会导致osd向rocksdb提交空事务,这样就会出现osd在无io流的情况下,还是会让osd对应的磁盘有少量的写入流量,L、M版都受影响。


6、msgrMESSENGER V2 新功能

messenger v2 protocol(msgr2)是Ceph网络协议的第二次主要更新。几个主要改进点:

1、网络传输数据进行加密。

2、改进了身份验证的封装,支持未来集成Kerberos等新的身份验证模式。

3、改进了早期的advertisement和negotiation功能,支持以后的protocol修订。

 

Ceph daemons现在可以绑定到多个端口,从而允许旧版Ceph客户端和支持v2的新客户端连接到同一集群。

v1和v2的mon、mgr、osd监听的端口信息: