inode数がたまってファイルが開かない

 

最近勉強したinodeの割り当てが100%になりファイルが開かない事象があったのでメモ

以下のようにファイルを開こうとすると「No space left on device」というエラーが出た

bash-2.05#  vi /etc/hosts 
"/var/tmp/Ex7QaOdE" No space left on device

(ファイルを開くため/var/tmpに一時的なファイルを作るのか。。)

 

なんでだろう?まずはdf -kコマンドで容量を確認してみたが、問題なさそうに見える

bash-2.05# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/dsk/c1t0d0s0    4136979 1090117 3005493    27%    /
/proc                      0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
fd                         0       0       0     0%    /dev/fd
/dev/dsk/c1t0d0s3    2061938  389967 1610113    20%    /var
swap                 2705780       8 2705772     1%    /var/run
swap                 2705792      20 2705772     1%    /tmp
/dev/dsk/c1t0d0s7    12333047 5971525 6238192    49%    /home

次でinode情報を見てみる。sorarisの場合「/usr/ucb/df -i」で表示できた

なんと! /varディレクトリのindoe数が100%になってるぞ

bash-2.05# /usr/ucb/df -i
Filesystem             iused   ifree  %iused  Mounted on
/dev/dsk/c1t0d0s0      61458  440302    12%   /
/dev/dsk/c1t0d0s3     335360       0   100%   /var
/dev/dsk/c1t0d0s7     169237 1317227    11%   /home

inodeは一個のファイルつき必ず一つつくものなのでファイル容量が小っちゃくてもものすごい数のファイルがあるのを削除すればよい

すぐ思いついたのはメールのキューだった

 

bash-2.05# /var/qmail/bin/qmail-s qstat 

もしくは

cd /var/qmail/queue
bash-2.05# find ./ type f  | wc -l

を打ってみたらqueueが494107件たまってることを確認。。

 

このサーバはメール機能を使ってなかったので存在しているキューをすべて削除した

cd /var/qmail/queue
find ./ -type f -exec rm {} -f;  

49万件のキューを削除するのに1時間かかった

削除後inodeの割り当て情報を見てみたら、ほら!2%になった!

bash-2.05# /usr/ucb/df -i
Filesystem             iused   ifree  %iused  Mounted on
/dev/dsk/c1t0d0s0      61458  440302    12%   /
/dev/dsk/c1t0d0s3       6016  329344     2%   /var
/dev/dsk/c1t0d0s7     169237 1317227    11%   /home

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です