ceph mds持续崩溃:ceph_assert失败... prepare_new_inode

时间:2018-08-10 11:15:32

标签: ceph

我们正面临来自ceph mds的持续崩溃。我们已经安装了模仿(v13.2.1)。 嗨,我们收到了mds崩溃(模拟v13.2.1)

mds:cephfs-1 / 1/1向上{0 = node2 = up:active(延迟或崩溃)}

我们已按照

中列出的DR步骤进行操作
http://docs.ceph.com/docs/mimic/cephfs/disaster-recovery/ 

请帮助解决错误:(

mds崩溃堆栈跟踪

 ceph version 13.2.1 (5533ecdc0fda920179d7ad84e0aa65a127b20d77) mimic (stable)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0xff) [0x7f984fc3ee1f]
 2: (()+0x284fe7) [0x7f984fc3efe7]
 3: (()+0x2087fe) [0x5563e88537fe]
 4: (Server::prepare_new_inode(boost::intrusive_ptr<MDRequestImpl>&, CDir*, inodeno_t, unsigned int, file_layout_t*)+0xf37) [0x5563e87ce777]
 5: (Server::handle_client_openc(boost::intrusive_ptr<MDRequestImpl>&)+0xdb0) [0x5563e87d0bd0]
 6: (Server::handle_client_request(MClientRequest*)+0x49e) [0x5563e87d3c0e]
 7: (Server::dispatch(Message*)+0x2db) [0x5563e87d789b]
 8: (MDSRank::handle_deferrable_message(Message*)+0x434) [0x5563e87514b4]
 9: (MDSRank::_dispatch(Message*, bool)+0x63b) [0x5563e875db5b]
 10: (MDSRank::retry_dispatch(Message*)+0x12) [0x5563e875e302]
 11: (MDSInternalContextBase::complete(int)+0x67) [0x5563e89afb57]
 12: (MDSRank::_advance_queues()+0xd1) [0x5563e875cd51]
 13: (MDSRank::ProgressThread::entry()+0x43) [0x5563e875d3e3]
 14: (()+0x7e25) [0x7f984d869e25]
 15: (clone()+0x6d) [0x7f984c949bad]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

mds日志:https://pastebin.com/AWGMLRm0

1 个答案:

答案 0 :(得分:0)

Ceph 13.2.2 release notes说如下...

  

不再需要bluestore_cache_ *选项。它们被替换   由osd_memory_target设置,默认为4GB。 BlueStore将扩展,   收缩其缓存以尝试保持在此限制内。用户数   升级时应注意,此默认值比以前的默认值高   bluestore_cache_size为1GB,因此使用BlueStore的OSD将使用更多   内存默认情况下。有关更多详细信息,请参阅BlueStore文档。

这让我感到惊讶。我的osds在驻留内存使用方面变得异常疯狂。内核是可杀死OSD的进程。

切换到新键并启动osd进程使我性能稳定。结果是mds趋于稳定。

我已经成功测试过的东西...

  • 写的很稳定
  • 读取的新数据是稳定的(文件小于1年)
  • 读取的旧数据是稳定的(文件大于1年)
  • 新文件的rm稳定(小于1年的文件)

我还没有测试过rm的旧文件(超过1年的文件)。这是我看到的最严重的mds不稳定情况。