dfで使用容量がフルじゃないのにディスクの空き容量が0の時の対応
Pocket

Linuxで容量ギリギリでディスクを使用していると、時折以下のようにディスクの空き容量がまだあるはずなのに0として扱われてしまう事がある。

[root@recserver ~]# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_recserver-lv_root
                       50G  3.5G   44G   8% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm
/dev/sdb1             485M   91M  369M  20% /boot
/dev/mapper/vg_recserver-lv_home
                      400G  216M  379G   1% /home
/dev/sda              2.7T  2.6T     0 100% /media/data1
/dev/sdc1             2.7T  2.3T  308G  89% /media/data2
[root@recserver ~]# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/vg_recserver-lv_root
                      51606140   3566240  45418460   8% /
tmpfs                  3873168         0   3873168   0% /dev/shm
/dev/sdb1               495844     92601    377643  20% /boot
/dev/mapper/vg_recserver-lv_home
                     418786032    221144 397291700   1% /home
/dev/sda             2884285104 2746593496         0 100% /media/data1
/dev/sdc1            2884285068 2415734252 322037492  89% /media/data2
Sponsored Links

もちろん、特にファイルを削除しているわけではないので、プロセスがファイルを掴んでいるわけではない。
そんなときは、以下のコマンドでファイルシステムの予約ブロックサイズを確認すると良いだろう。もしこの予約ブロックの容量が大きい場合、そのせいで100%になってしまっている可能性がある。

tune2fs -l デバイスファイル
[root@recserver ~]# tune2fs -l /dev/sda
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   data
Last mounted on:          /media/data1
Filesystem UUID:          f4af203d-dfda-4135-b9e2-b81f728d4463
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              183148544
Block count:              732566646
Reserved block count:     36628332
Free blocks:              34422902
Free inodes:              183147718
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      849
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
RAID stride:              1
Flex block group size:    16
Filesystem created:       Sun Sep  2 00:25:35 2012
Last mount time:          Thu Jul 23 03:01:33 2015
Last write time:          Thu Jul 23 03:01:33 2015
Mount count:              44
Maximum mount count:      39
Last checked:             Sat Feb  8 00:40:06 2014
Check interval:           15552000 (6 months)
Next check after:         Thu Aug  7 00:40:06 2014
Lifetime writes:          36 TB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      b3fd5ff4-2b9a-4ed3-b960-ce27765b2280
Journal backup:           inode blocks

 

この予約ブロックの%を変える場合は、以下のようにコマンドを実行する。

tune2fs -m 予約ブロックのデバイスファイル全体での割合(%) デバイスファイル
[root@recserver ~]# tune2fs -m 1 /dev/sda
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 1% (7325666 blocks)
[root@recserver ~]# tune2fs -l /dev/sda
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   data
Last mounted on:          /media/data1
Filesystem UUID:          f4af203d-dfda-4135-b9e2-b81f728d4463
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              183148544
Block count:              732566646
Reserved block count:     7325666
Free blocks:              34422902
Free inodes:              183147718
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      849
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
RAID stride:              1
Flex block group size:    16
Filesystem created:       Sun Sep  2 00:25:35 2012
Last mount time:          Thu Jul 23 03:01:33 2015
Last write time:          Thu Jul 23 07:46:04 2015
Mount count:              44
Maximum mount count:      39
Last checked:             Sat Feb  8 00:40:06 2014
Check interval:           15552000 (6 months)
Next check after:         Thu Aug  7 00:40:06 2014
Lifetime writes:          36 TB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      b3fd5ff4-2b9a-4ed3-b960-ce27765b2280
Journal backup:           inode blocks
[root@recserver ~]# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_recserver-lv_root
                       50G  3.5G   44G   8% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm
/dev/sdb1             485M   91M  369M  20% /boot
/dev/mapper/vg_recserver-lv_home
                      400G  216M  379G   1% /home
/dev/sda              2.7T  2.6T  104G  97% /media/data1
/dev/sdc1             2.7T  2.3T  308G  89% /media/data2

 

もし、lsofなどでプロセスをファイルがつかんでいなければ、これを疑うのが良いだろう。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。