由于阿里云上的ssd的都有吞吐量的限制,而且都很低,于是没办法,只能用lvm条带的方式去进行。可这次加完16块盘后发现,怎么磁盘空间少了200多G,准确的说是240G。 本来以为是lvm条带导致的,但是看了下lvm里面的大小是正确的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 --- Logical volume --- LV Path /dev/data/es LV Name es VG Name data LV UUID wuvsNO-Sgc2-TrAA-jfPu-K4KC-Teii-wUyfDK LV Write Access read /write LV Creation host, time abc-es37, 2018-12-27 19:32:40 +0800 LV Status available LV Size <4.69 TiB Current LE 1228784 Segments 4 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0
首先我们看到的是这里是4993286504KB,约等于是4.65TB,但是上面lvdisplay明明是4.69TB啊,这少了40G啊。 其次我们用df看的时候Used+Avail就是跟总的有240G的差距,这个盘要小还好说,但是现在都差了240G了,这个就实在说不过去了。
1 2 3 4 5 6 7 8 9 Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda1 41152832 4116164 34923184 11% / devtmpfs 32892716 0 32892716 0% /dev tmpfs 32903348 0 32903348 0% /dev/shm tmpfs 32903348 648 32902700 1% /run tmpfs 32903348 0 32903348 0% /sys/fs/cgroup /dev/mapper/data-apps 4993286504 4104325072 637290088 87% /data tmpfs 6580672 0 6580672 0% /run/user/1000
我们知道Linux下的文件系统都有inode的概念,那必定有部分空间是给inode使用的。在ext4文件系统中,一个inode是256byte。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 tune2fs 1.42.9 (28-Dec-2013) Filesystem volume name: <none> Last mounted on: /data Filesystem UUID: b92bbda3-30d7-4231-8234-f2a9e3ca89e8 Filesystem magic number: 0xEF53 Filesystem revision Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit 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: 157286400 Block count: 1258274816 Reserved block count: 62913740 Free blocks: 229683365 Free inodes: 157214565 First block: 0 Block size: 4096 Fragment size: 4096 Group descriptor size: 64 Reserved GDT blocks: 1024 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 4096 Inode blocks per group: 256 RAID stride: 16 RAID stripe width: 64 Flex block group size: 16 Filesystem created: Thu Dec 27 19:32:50 2018 Last mount time: Tue Jan 1 15:19:37 2019 Last write time: Tue Jan 1 15:19:37 2019 Mount count: 3 Maximum mount count: -1 Last checked: Thu Dec 27 19:32:50 2018 Check interval: 0 (<none>) Lifetime writes: 5789 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 Default directory hash : half_md4 Directory Hash Seed: 681bcdd9-8371-4641-a850-4e1d6f23c143 Journal backup: inode blocks
通过上面信息可以很容易计算出来是37.5G的空间给了inode。这就是lvdisplay和df看到total里面的差距。 那剩下的就是Total和Used+Available之间的差距。答案就是Reserved block里,这个是文件系统预留的大小,防止磁盘真的满了无法进行任何操作了。这个默认是给了5%的空间。 好了这2个加起来就是276.5
这样我们算出来,这个4.69TB的磁盘大概有276GB磁盘空间是不能使用的。其中37.5G因为inode原因,这个除非调整inode大小,不然肯定没法用了,那就调整磁盘保留空间的大小,默认是5%,那就改成1%吧。
好了,这下应该就差不多满意了。