1. 문제 상황
Ceph Luminous(ceph-12.2.10) 버전을 사용하여 클러스터 구축 중 특정 노드에서 OSD를 배포할 때遇到了一个问题: 디스크 준비 명령을 실행한 후 클러스터에格式化된 디스크가 OSD로 추가되지 않았으며, 아무런 오류 메시지也表示되지 않았습니다.
명령어 실행 결과:
[root@k8s-node2 ceph]# ceph-disk prepare --bluestore /dev/sdb
Creating new GPT entries.
Setting name!
partNum is 0
REALLY setting name!
The operation has completed successfully.
Setting name!
partNum is 1
REALLY setting name!
The operation has completed successfully.
The operation has completed successfully.
meta-data=/dev/sdb1 isize=2048 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=864, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
실행 후 디스크 상태 확인:
[root@k8s-node2 ceph]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 37G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 100M 0 part
└─sdb2 8:18 0 19.9G 0 part
sdc 8:32 0 30G 0 disk
sr0 11:0 1 906M 0 rom
OSD가 정상적으로 마운트되지 않았음을 확인할 수 있습니다. 파티션은 생성되었으나 실제 OSD로 활성화되지 않았습니다.
2. 해결 방법
먼저 클러스터의 다른 노드들과 설정을 비교하고, bootstrap-osd 디렉토리를 확인해보았습니다.
[root@k8s-node2 ceph]# ll -a /var/lib/ceph/bootstrap-osd/
total 4
drwxr-xr-x 2 root root 26 Dec 10 01:26 .
drwxr-xr-x 12 ceph ceph 166 Dec 10 04:14 ..
문제가 발견되었습니다. /var/lib/ceph/bootstrap-osd/ 디렉토리가 비어있습니다. 이 디렉토리에는 OSD를 클러스터에 등록하기 위한 키링 파일이 필요합니다.
클러스터의 마스터 노드에서 ceph.keyring 파일을 가져와서 해당 디렉토리에 복사한 후, OSD 활성화 명령을 실행합니다:
[root@k8s-node2 ceph]# ceph-disk activate /dev/sdb1
Created symlink from /run/systemd/system/ceph-osd.target.wants/ceph-osd@4.service to /usr/lib/systemd/system/ceph-osd@.service.
OSD 활성화 후 결과:
[root@k8s-node2 ceph]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 37G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 100M 0 part /var/lib/ceph/osd/ceph-4
└─sdb2 8:18 0 19.9G 0 part
sdc 8:32 0 30G 0 disk
sr0 11:0 1 906M 0 rom
OSD가 성공적으로 활성화되어 /var/lib/ceph/osd/ceph-4에 마운트되었습니다.