操作
バグ #1016
未完了
NO
step-ca の badger V2 データベースファイルが肥大化する
バグ #1016:
step-ca の badger V2 データベースファイルが肥大化する
ステータス:
新規
優先度:
通常
担当者:
-
開始日:
期日:
進捗率:
0%
一時中断:
いいえ
pinned:
いいえ
リマインド予定日:
前回確認日:
管理外残件あり:
説明
DB 肥大化¶
/etc/step-ca/db# ls -lh
total 377M
-rw------- 1 root root 834M Apr 16 07:05 000005.vlog
...
同ディレクトリ内の sst というのが LSM tree で vlog が value log らしい。
で、この vlog ファイルが全然 gc されないようで、他のユーザの報告だと数十〜数百 GB とかになる例もあるそう。
弊鯖でも一度この問題に気付いていない頃に disk full (quota exceeded) で CA が止まって大変なことになった。
ファイルが 834 MiB (と、加えて LSM tree で計数十〜数百 MiB) で "total 377M" 程度で済んでいるのは ZFS の透過的圧縮のおかげと思われる。
回避策¶
badger ではどうしようもなさそう¶
デフォルトの badger V2 のバックエンドではこの問題が解決しそうな気配がない。
- DB consumes lots of disk · Issue #159 · smallstep/certificates
- Database cleanup procedure for ACME data · Issue #473 · smallstep/certificates
加えて、問題の調査や DB の中身を弄るのにもいちいち go でコードを書かないといけないので、トラブルシューティングが非常に面倒。
別のバックエンド (RDBMS)¶
badger 以外のデータベースバックエンドにも対応しているようなので、 MySQL (というか MariaDB だが) などを使ってみるのが良いかもしれない。
そうすれば肥大化の問題が残るとしても SQL を直接叩いて不要そうなものを自動的かつ定期的に削ることができるはず。
操作