运行1节点ceph集群,并使用另一个节点的ceph-client。 Qemu与RBD安装工作正常。当我尝试在ceph-client上安装RBD块设备时,我得到一个没有输出的无限期挂起。如何诊断错误?
系统是ubuntu 16.04服务器,和Ceph Luminous。
sudo ceph tell osd.* version
{
"version": "ceph version 12.2.2 (cf0baeeeeba3b47f9427c6c97e2144b094b7e5ba) luminous (stable)"
}
ceph -s
cluster:
id: 4bfcc109-e432-4ac0-ba9d-bf81243aea
health: HEALTH_OK
services:
mon: 1 daemons, quorum gcmaster
mgr: gcmaster(active)
osd: 1 osds: 1 up, 1 in
data:
pools: 1 pools, 128 pgs
objects: 1512 objects, 5879 MB
usage: 7356 MB used, 216 GB / 223 GB avail
pgs: 128 active+clean
rbd info gcbase
rbd image 'gcbase':
size 512 MB in 128 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.376974b0dc51
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
create_timestamp: Fri Dec 29 17:58:02 2017
这永远挂起
rbd map gcbase --pool rbd
就像这样
rbd map typo_gcbase --pool rbd
dmesg显示
Dec 29 13:27:32 cephclient1 kernel: [85798.195468] libceph: mon0 192.168.1.55:6789 feature set mismatch, my 106b84a842a42 < server's 40106b84a842a42, missing 400000000000000
Dec 29 13:27:32 cephclient1 kernel: [85798.222070] libceph: mon0 192.168.1.55:6789 missing required protocol features
答案 0 :(得分:3)
dmesg输出告诉我们发生了什么:集群需要一个libceph内核模块不支持的功能位。
有问题的功能位是CEPH_FEATURE_CRUSH_TUNABLES5,CEPH_FEATURE_NEW_OSDOPREPLY_ENCODING或CEPH_FEATURE_FS_FILE_LAYOUT_V2(它们是重叠的,因为它们是同时引入的),这些只在内核4.5上可用,而Ubuntu 16.04使用4.4内核。
一个类似的问题(尽管与CephFS有关)came up on the mailing list有一个可能的解决方案:
是的,您应该能够将CRUSH可调参数配置文件设置为锤子 用“ceph osd crush tunables hammer”。
这将禁用某些功能,但应使旧内核与群集兼容。
或者,您可以升级到主线内核或更新的操作系统版本。