プロジェクト

全般

プロフィール

バグ #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](https://github.com/smallstep/certificates/issues/159#issue-552269303) されないようで、他のユーザの報告だと数十 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 だが) などを使ってみるのが良いかもしれない。

戻る