운영체제 : ubuntu 16.04 64bit
ceph ver: ceph jewel (10.2.2)
error :
root@client:/# rbd map backup/backup
rbd: sysfs write failed
In some cases useful info is found in syslog – try “dmesg | tail” or so.
rbd: map failed: (6) No such device or address
——————-
ceph status:
Every 2.0s: ceph -s Wed Aug 17 10:35:51 2016
cluster e4b08efd-7b6c-43f8-s8a9d7sa8f7cs98d7fs
health HEALTH_OK
monmap e2: 3 mons at {mon-0=111.111.111.111:6789/0,mon-1=111.111.111.112:6789/0,mon-2=111.111.111.113:6789/0}
election epoch 6, quorum 0,1,2 mon-0,mon-1,mon-2
fsmap e5: 1/1/1 up {0=mds=up:active}
osdmap e48: 7 osds: 7 up, 7 in
flags sortbitwise
pgmap v209: 576 pgs, 4 pools, 1253 kB data, 24 objects
274 MB used, 78216 GB / 78217 GB avail
576 active+clean
——————————-
pool 확인:
root@mgmt:~/cephcluster# rados lspools
backup
root@client:/# rbd info backup/backup
rbd image ‘backup’:
size 20000 GB in 5120000 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.2b03238e1f29
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags
이에 대한 rbd map error 은 위와 같았다.
이는 pool feature 와 관련된 내용으로 해결 방법은 다음과 같다.
(참고로 pool rbd feature는 다이나믹하게 그 값을 enabled disabled 할 수 있음)
방법 1>
pool 생성 시 옵션을 주어 지정할 수 있다
root@client:/# rbd create test/test –size 2048 –image-feature layering
root@client:/# rbd info test/test
rbd image ‘test’:
size 2 GB in 5120 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.2b03238e1f29
format: 2
features: layering
flags
에러를 출력했을시 생성한 pool의 info와 비교해보면
feature info가 다른 것을 확인 할 수 있다
error 출력시 feature 값 – layering, exclusive-lock, object-map, fast-diff, deep-flatten
이 값의 변화는 생성 pool마다 값을 바꿔도 무관하나 본 테스터는 다음의 방법으로
생성되는 모든 pool에 적용해보았다 [방법2]
방법2>
ceph.conf 파일 수정.
rbd default features = 1 — 추가 후
전체 노드에 변경된 ceph.conf 를 overwrite 시킴
전체 서비스 재시작.
rnd map 확인
root@client:/# rbd map test/test
/dev/rbd0 — [ 정상 출력 됨 ]