DBメンテナンス作業時にデータファイルのコピー作業をしていたら、コピー先のサーバのディスク容量が一杯になってしまい、書き込みが出来ない状況に陥ってしまいました。
そこで、今までコピーしたファイルをディレクトリごと全て削除してディスク容量を確保しようとしたが、dfコマンドで確認するとディスク使用量が40GB程なのに対し、duコマンドで各ディレクトリの使用量の合計を計算すると1GB程度しかなかった。
原因を調べてみると、どうやらゾンビファイルとやらがある状態のため、dfコマンドでは空き容量が増えていなかったらしい。
ゾンビファイルの確認するために現在開いているファイルのプロセスを特定する必要があるので、lsofコマンドを使って調べてみる。
※ちなみにゾンビファイルとは見た目上は消えているが、プロセスが掴んでいるのでkernel上はまだ残っている状態のことだそうです。
このコマンドを使用すると、使用しているプロセスと、掴んでいるファイル名、ファイル容量がわかるのだが、確認してみると、どうやら落としたはずのMySQLプロセスが落ちていなかった。
どうやら誤って別のプロセスであるApacheプロセスを落としてしまっていた。
改めてMySQLプロセスを落とすと、ディスク容量が一気に40GB増えた。
これで一安心。