天天看點

ceph叢集jewel版本 rbd 塊map 報錯-故障排查

測試資訊如下:

#建立rbd 塊:

rbd create rbd/test2 --size 10G --image-format 2 

#檢視塊資訊:

rbd ls

#将rbd 塊映射到主機:

rbd map rbd/test2

#報錯内容如下

rbd: sysfs write failed

RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".

In some cases useful info is found in syslog - try "dmesg | tail" or so.

rbd: map failed: (6) No such device or address

故障排查:

rbd 塊ceph 支援兩種格式:

rbd create rbd/test2 --size 10G --image-format 2  

--image-format format-id

選擇用哪個對象布局,預設為 1 。

format 1 - 建立 rbd 映像時使用最初的格式。此格式相容所有版本的 librbd 和核心子產品,但是不支援較新的功能,像克隆。

format 2 - 使用第二版 rbd 格式, librbd 和 3.11 版以上核心子產品才支援(除非是分拆的子產品)。此格式增加了克隆支援,使得擴充更容易,還允許以後增加新功能。

為使用rbd 塊新特性,使用格式2,在map 時發生以上報錯:

    查找官網相關資料,找到資訊如下:

筆者安裝的是jewel 版本,建立rbd塊指定格式2,預設格式2的rbd 塊支援如下特性,預設全部開啟;

layering: 支援分層

striping: 支援條帶化 v2

exclusive-lock: 支援獨占鎖

object-map: 支援對象映射(依賴 exclusive-lock )

fast-diff: 快速計算差異(依賴 object-map )

deep-flatten: 支援快照扁平化操作

journaling: 支援記錄 IO 操作(依賴獨占鎖)

筆者使用系統為centos7.2 ,核心版本 3.10.0-327.18.2.el7.x86_64,根據報錯内容提示可知,伺服器系統核心版本,不支援有些格式2 的新特性導緻。可以使用 

--image-feature   選項指定使用特性,不用全部開啟。我們的需求僅需要使用快照等特性,開啟layering即可,配置方式如下:

rbd create rbd/test1 --size 10G --image-format 2 --image-feature  layering

rbd ls

rbd map rbd/test1   #可以正常映射;

繼續閱讀