Ceph sst 파일로 인한 rootfilesystem full 이슈 정리

beomjin·2025년 5월 28일

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 머신이지만 고려해볼만 한 것 같다.

0개의 댓글