ownCloudでディスク満杯

ある日突然、ウェブアプリが使えなくなり、原因を調べてみるとMySQLが文句を言っていた。どうもディスクが満杯らしい。その原因を調べてみると、ownCloudだった。

適当に設定していたのがいけないらしい。

状況

OSはCentOS 6.9で、以下のような状況だ。

jdiskreportで調べてみる。これは非常に速く、使い方も簡単なのだが、おしむらくはlinuxの場合ディスクごとには計測できないようだ。

以下のサイズが異常に大きいことがわかる。

  • /var/cache/davfs2
  • /var/lib/owncloud/data/ユーザ名/files_versions

原因

原因としては、サーバ内のMySQLデータベースやらwordpressやらの内容を毎晩バックアップしていること。

つまり、これらのファイルをowncloudサーバに入れておくと、owncloudに接続している複数のPCに自動的にダウンロードされるという仕組みである。

さらにバックアップファイルの履歴を残しておきたかったので、ownCloudにWebDAV経由でアクセスするに書いたように、自身にWebDAV接続してバックアップしている。

そのために、

  • WebDAVキャッシュがたまりすぎる
  • バックアップファイルの履歴がたまりすぎる

ようだ。

davfs2のキャッシュ

前者のdavfs2のキャッシュ容量だが、/etc/davfs2/davfs2.confのcache_sizeで設定できるのだという、デフォルトは50 MiByteだというのだが、これをはるかに越えている。50メガではなく、50ギガ近くあるのだが。。。

とりあえずこれを0にし、/var/cache/davfs2の中身を削除しておく。

owncloudの履歴

もともとはバックアップファイルの過去履歴を保持するために行った措置なのだが、逆にディスクを圧迫するようになってしまった。せいぜい一週間分ほどあれば良いものを、一ヶ月以上保持しているようだ。

期間を制限するにはどうすればよいのだろうか?Controlling File Versions and Agingが適用できるかもしれない。

例えば一週間と決め、それ以前を削除するには、

'versions_retention_obligation' => 'auto, 7',

とする。/etc/owncloud/config.phpに記述すればよいようだ。

が、こんなもの管理画面から設定できないものだろうか?

とりあえずこれで様子を見てみることにする。