Ceph luminous rbd map永远挂了
Ceph luminous rbd map hangs forever
运行 一个 1 节点的 ceph 集群,并使用来自另一个节点的 ceph-client。 Qemu 在 RBD 安装上运行良好。当我尝试在 ceph 客户端上挂载 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
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 以及可能的解决方案:
Yes, you should be able to set your CRUSH tunables profile to hammer
with "ceph osd crush tunables hammer".
这将禁用一些功能,但应该使旧内核与集群兼容。
或者,您可以升级到主线内核或更新的 OS 版本。
运行 一个 1 节点的 ceph 集群,并使用来自另一个节点的 ceph-client。 Qemu 在 RBD 安装上运行良好。当我尝试在 ceph 客户端上挂载 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
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 以及可能的解决方案:
Yes, you should be able to set your CRUSH tunables profile to hammer with "ceph osd crush tunables hammer".
这将禁用一些功能,但应该使旧内核与集群兼容。
或者,您可以升级到主线内核或更新的 OS 版本。