バグ #1016
nop_thread さんが26日前に更新
# ## 問題: 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](https://github.com/smallstep/certificates/issues/159) * [Database cleanup procedure for ACME data · Issue #473 · smallstep/certificates](https://github.com/smallstep/certificates/issues/473) 加えて、問題の調査や DB の中身を弄るのにもいちいち go でコードを書かないといけないので、トラブルシューティングが非常に面倒。 ## 別のバックエンド (RDBMS) * [Configuring open source step-ca | Smallstep](https://smallstep.com/docs/step-ca/configuration/#databases) badger 以外のデータベースバックエンドにも対応しているようなので、 MySQL (というか MariaDB だが) などを使ってみるのが良いかもしれない。