ceph node가 hardware fault로 인하여 reboot되는 동안 서버가 자동으로 올라오지 못하는 상황이 있었다.
문제는 ceph monitor가 qourum을 유지하지 못하여 장시간 error상태에 빠져있었고 이에따라 ceph를 사용하는 서버들이 모두 영향을 받게되었다...
문제는 ceph node가 올라왔음에도 이슈는 유지되었는데 원일을 확인해보니,
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 102G 0 102G 0% /dev
tmpfs tmpfs 102G 0 102G 0% /dev/shm
tmpfs tmpfs 102G 795M 102G 1% /run
tmpfs tmpfs 102G 0 102G 0% /sys/fs/cgroup
/dev/sda3 xfs 222G 222G 20K 100% /
/dev/sda2 xfs 1014M 134M 881M 14% /boot
/dev/sda1 vfat 500M 12M 489M 3% /boot/efi
tmpfs tmpfs 21G 0 21G 0% /run/user/1000
rootfilesystem이 full로 되어있다...
ceph mon 로그에서는 no space left on device라고나온다....
problem writing to /var/log/ceph/ceph-mon.r-ceph-farm-02.log: (28) No space left on device
근본적인 원인 자체는 /var/lib/ceph/mon/ceph-node-02/store.db 의 용량이 너무나 방대하여 발생한 문제다.
/var/lib/ceph/mon/ceph-node-02/store.db
에는 뭐가있길래 용량이 가득찼을까?
[root@ceph-node-02 store.db]# pwd
/var/lib/ceph/mon/ceph-r-ceph-farm-02/store.db
[root@ceph-node-02 store.db]# du -sh
155G .
수 많은 sst파일이 존재한다.
-rw------- 1 test test 69621050 3월 12 10:07 3641372.sst
-rw------- 1 test test 21817277 3월 12 10:08 3641376.sst
-rw------- 1 test test 67438112 3월 12 10:05 3641378.sst
-rw------- 1 test test 70087201 3월 12 10:06 3641379.sst
-rw------- 1 test test 70024334 3월 12 10:07 3641380.sst
-rw------- 1 test test 70085633 3월 12 10:07 3641409.sst
-rw------- 1 test test 70064882 3월 12 10:08 3641422.sst
-rw------- 1 test test 70120518 3월 12 10:07 3641427.sst
-rw------- 1 test test 69960608 3월 12 10:06 3641428.sst
-rw------- 1 test test 66855377 3월 12 10:06 3641429.sst
-rw------- 1 test test 69783418 3월 12 10:07 3641450.sst
-rw------- 1 test test 70060735 3월 12 10:07 3641451.sst
-rw------- 1 test test 69537282 3월 12 10:07 3641452.sst
-rw------- 1 test test 69987248 3월 12 10:07 3641453.sst
...
누군가는 저 용량이 가득 찬 파일 자체를 지우면 해결되는거 아닌가?
라고 말할 수 있다.
하지만 위험하다.
sst파일에는 ceph monitor에 대한 정보가 담겨있다. 이걸 삭제한다면 ceph monitor는 돌아올 수 없는 길을 가는거다...
오래된 sst 파일을 압축하여 신규 생성하는 것으로 진행하였다.
$ sudo ceph mon compact
이후 용량은 크게 줄었다.
Ref :: https://ceph.io/en/news/blog/2014/ceph-monitor-store-taking-up-a-lot-of-space/
해당 문서를보면, ceph.conf에 db에서 생성하는 sst 파일의 크기가 너무 커서 주기적으로 압축하는 것에 대해 설명하고 있다.
물론 테스트 용도의 ceph cluster 머신이지만 고려해볼만 한 것 같다.