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などでプロセスをファイルがつかんでいなければ、これを疑うのが良いだろう。
