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
もちろん、特にファイルを削除しているわけではないので、プロセスがファイルを掴んでいるわけではない。
そんなときは、以下のコマンドでファイルシステムの予約ブロックサイズを確認すると良いだろう。もしこの予約ブロックの容量が大きい場合、そのせいで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などでプロセスをファイルがつかんでいなければ、これを疑うのが良いだろう。