以下の出力を見てください:
bob ~ # df -h
Filesystem Size Used Avail Use% Mounted on
udev 5,7G 4,0K 5,7G 1% /dev
tmpfs 1,2G 1,5M 1,2G 1% /run
/dev/mapper/mint--vg-root 218G 66G 142G 32% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
tmpfs 5,7G 528M 5,2G 10% /tmp
none 5,0M 0 5,0M 0% /run/lock
none 5,7G 99M 5,6G 2% /run/shm
none 100M 48K 100M 1% /run/user
tmpfs 5,7G 44K 5,7G 1% /var/tmp
/dev/sda1 236M 132M 93M 59% /boot
df
は、LVMパーティションが218Gであるのに対し、250Gである必要があることを報告しています。1024で再計算する場合は、232Gです。14Gはどこにありますか?しかし、218-66 = 152でさえ142ではありません!それはまたどこにもない10ギガバイトですか?
その他のutils出力:
bob ~ # pvs
PV VG Fmt Attr PSize PFree
/dev/sda5 mint-vg lvm2 a-- 232,64g 0
bob ~ # pvdisplay
--- Physical volume ---
PV Name /dev/sda5
VG Name mint-vg
PV Size 232,65 GiB / not usable 2,00 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 59557
Free PE 0
Allocated PE 59557
PV UUID 3FA5KG-Dtp4-Kfyf-STAZ-K6Qe-ojkB-Tagr83
bob ~ # fdisk -l /dev/sda
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097b2a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 488396799 243947521 5 Extended
/dev/sda5 501760 488396799 243947520 8e Linux LVM
# sfdisk -l -uM
Disk /dev/sda: 30401 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End MiB #blocks Id System
/dev/sda1 * 1 243 243 248832 83 Linux
/dev/sda2 244+ 238474 238231- 243947521 5 Extended
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 245 238474 238230 243947520 8e Linux LVM
Disk /dev/mapper/mint--vg-root: 30369 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/mapper/mint--vg-root: unrecognized partition table type
No partitions found
Linux Mint 17.3
[〜#〜]更新[〜#〜]
# lvdisplay
--- Logical volume ---
LV Path /dev/mint-vg/root
LV Name root
VG Name mint-vg
LV UUID ew9fDY-oykM-Nekj-icXn-FQ1T-fiaC-0Jw2v6
LV Write Access read/write
LV Creation Host, time mint, 2016-02-18 14:52:15 +0200
LV Status available
# open 1
LV Size 232,64 GiB
Current LE 59557
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
スワップについて。当初はLVMにありました。次に、それを削除し、スワップで使用されたスペース(約12G)でルートパーティションを拡張しました。
PDATE2
# tune2fs -l /dev/mapper/mint--vg-root
tune2fs 1.42.9 (4-Feb-2014)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: 0b5ecf9b-a763-4371-b4e7-01c36c47b5cc
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: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 14491648
Block count: 57952256
Reserved block count: 2897612
Free blocks: 40041861
Free inodes: 13997980
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1010
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Feb 18 14:52:49 2016
Last mount time: Sun Mar 13 16:49:48 2016
Last write time: Sun Mar 13 16:49:48 2016
Mount count: 22
Maximum mount count: -1
Last checked: Thu Feb 18 14:52:49 2016
Check interval: 0 (<none>)
Lifetime writes: 774 GB
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
First Orphan inode: 6160636
Default directory hash: half_md4
Directory Hash Seed: 51743315-0555-474b-8a5a-bbf470e3ca9f
Journal backup: inode blocks
PDATE3(最終)
Jonasのおかげで、スペースの損失が見つかりました
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/mint--vg-root 218G 65G 142G 32% /
# resize2fs /dev/mapper/mint--vg-root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/mapper/mint--vg-root is mounted on /; on-line resizing required
old_desc_blocks = 14, new_desc_blocks = 15
The filesystem on /dev/mapper/mint--vg-root is now 60986368 blocks long.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/mint--vg-root 229G 65G 153G 30% /
これは、resize2fsの実行前後のtune2fsコマンド出力の差分です。
# diff /tmp/tune2fs_before_resize2fs /tmp/tune2fs2_after_resize2fs
13,17c13,17
< Inode count: 14491648
< Block count: 57952256
< Reserved block count: 2897612
< Free blocks: 40041861
< Free inodes: 13997980
---
> Inode count: 15253504
> Block count: 60986368
> Reserved block count: 3018400
> Free blocks: 43028171
> Free inodes: 14759836
21c21
< Reserved GDT blocks: 1010
---
> Reserved GDT blocks: 1009
38c38
< Inode size: 256
---
> Inode size: 256
42c42
< First Orphan inode: 6160636
---
> First Orphan inode: 5904187
いくつかの調査をしましょう。私は以前にその違いに気づきましたが、損失の原因を詳細に確認したことはありません。比較のために私のシナリオを見てください:fdiskは次のパーティションを示しています:
/dev/sda3 35657728 1000214527 964556800 460G 83 Linux
私のファイルシステムはluksコンテナーにあるため、いくつかの損失が発生しますが、それは数MiBにすぎません。 dfショー:
Filesystem Size Used Avail Use% Mounted on
/dev/dm-1 453G 373G 58G 87% /
(luksコンテナは、/ dev/sda3が/ dev/dm-1と一致しない理由でもありますが、実際には同じデバイスであり、間に暗号化があり、LVMはありません。これは、LVMが損失の原因ではないことも示しています。それらも。)
それでは、ファイルシステム自体にその問題について尋ねましょう。 tune2fs -l
を呼び出すと、extファミリファイルシステムに関する多くの興味深い情報が出力され、次のようになります。
root@altair ~ › tune2fs -l /dev/dm-1
tune2fs 1.42.12 (29-Aug-2014)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: 0de04278-5eb0-44b1-9258-e4d7cd978768
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: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 30146560
Block count: 120569088
Reserved block count: 6028454
Free blocks: 23349192
Free inodes: 28532579
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 995
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Wed Oct 14 09:27:52 2015
Last mount time: Sun Mar 13 12:25:50 2016
Last write time: Sun Mar 13 12:25:48 2016
Mount count: 23
Maximum mount count: -1
Last checked: Wed Oct 14 09:27:52 2015
Check interval: 0 (<none>)
Lifetime writes: 1426 GB
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
First Orphan inode: 26747912
Default directory hash: half_md4
Directory Hash Seed: 4723240b-9056-4f5f-8de2-d8536e35d183
Journal backup: inode blocks
それを一瞥すると、最初に目に入るのはReserved blocks
です。これにBlock size
(これも出力から)を掛けると、df Used + AvailとSizeの差が得られます。
453GiB - (373GiB+58GiB) = 22 GiB
6028454*4096 Bytes = 24692547584 Bytes ~= 23 GiB
特にdfの丸めを考慮して十分に近い(-hなしでdfを使用し、計算を繰り返すと、Used + AvailとSizeの違いが説明できない16 MiBのままになる)。予約済みブロックの予約先もtune2fs出力に書き込まれます。根です。 これは、root以外のユーザーがディスクをいっぱいにすることによってシステムを完全に使用不可にすることができず、ディスク領域の数パーセントを未使用にしておくことも断片化の防止に役立つセーフティネットです。
次に、dfによって報告されるサイズとパーティションのサイズの違いについて説明します。これは、iノードを見ると説明できます。 ext4はiノードを事前に割り当てるため、ファイルデータにスペースを使用できません。 Inode count
にInode size
を掛けると、次のようになります。
30146560*256 Bytes = 7717519360 Bytes ~= 7 GiB
453 GiB + 7 GiB = 460 GiB
Iノードは基本的にディレクトリエントリです。詳細についてmkfs.ext4に聞いてみましょう(man mkfs.ext4から):
-i
bytes-per-inode
バイト数とiノードの比率を指定します。 mke2fsは、ディスク上の
bytes-per-inode
バイトのスペースごとにiノードを作成します。bytes-per-inode
比が大きいほど、作成されるiノードの数は少なくなります。通常、この値はファイルシステムのブロックサイズより小さくすべきではありません。その場合、これまで使用できるよりも多くのiノードが作成されるからです。ファイルシステムの作成後にこの比率を変更することはできないことに注意してください。したがって、このパラメーターの正しい値を慎重に決定してください。ファイルシステムのサイズを変更すると、この比率を維持するためにiノードの数が変更されることに注意してください。
さまざまなシナリオで使用するさまざまなプリセットがあります。 Linuxディストリビューションイメージがたくさんあるファイルサーバーでは、たとえば、 -T largefile
または-T largefile4
。 -T
の意味は、これらの例と私のシステムの/etc/mke2fs.conf
で定義されています。
largefile = {
inode_ratio = 1048576
}
largefile4 = {
inode_ratio = 4194304
}
したがって、-T largefile4
を使用すると、の数はデフォルトよりはるかに少なくなります(私の/etc/mke2fs.conf
のデフォルトの比率は16384です)。つまり、ディレクトリエントリ用に予約されているスペースが少なくなり、データ用のスペースが増えます。 iノードが不足すると、新しいファイルを作成できなくなります。既存のファイルシステムのiノードの数を増やす 可能ではないようです 。したがって、平均的なユーザーがiノードを時期尚早に使い果たしないように、デフォルトのiノード数はかなり控えめに選択されています。
私は自分の番号を突っついたときにそれがわかったので、それがあなたにとってうまくいくかどうか(知らない場合)に知らせてください☺.
確認しやすい場所は、論理ボリューム(物理ボリュームほど大きくする必要はありません)です。サイズを確認するには、lvdisplay
を使用します。
そこに違いが見られない場合、通常の説明では、rootが使用するために予約されているスペースがあり、通常のユーザーはdf
に表示しません。
参考文献: