Ext3 目前只支持 32,000 个子目录,而 Ext4 本身支持无限数量的子目录,前提是分区inodes数量足够,一个文件需要占用一个inodes,一个15g分区最大支持1500万个inodes,30g就是最大支持3000万个inodes,具体计算为分区大小转换为kb,因为一个inodes至少需要占用1kb,所以在分区或者挂盘的时候,就需要自己指定最大inodes,既然一个inodes占用1kb,一个文件使用一个inodes,而一个文件不止1kb,所以可以说ext4本身就是支持无限量子目录,分区有多大就能存多少。
如何查看linux分区是ext3还是ext4系统?
root@debian78:~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
rootfs rootfs 38G 2.1G 34G 6% /
udev devtmpfs 10M 0 10M 0% /dev
tmpfs tmpfs 202M 212K 202M 1% /run
/dev/disk/by-uuid/c1b3dec9 ext4 38G 2.1G 34G 6% /
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 745M 0 745M 0% /run/shm
如何查看inodes
root@debian78:~# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
rootfs 2514944 33953 2480991 2% /
udev 256029 337 255692 1% /dev
tmpfs 257648 255 257393 1% /run
/dev/disk/by-uuid/c1b3dec9 2514944 33953 2480991 2% /
tmpfs 257648 1 257647 1% /run/lock
tmpfs 257648 2 257646 1% /run/shm
如何计算出分区支持的最多inodes数量呢?
比如500GB硬盘=524288000kb
524288000个inodes,5亿多个。
以下是自定义inodes值,其实正常情况是不需要的。
因为60GB分区默认分配400万个inodes,一个图片100KB算,400万个inodes存满会达到400GB尺寸,已经超过分区本身容量,所以不用特意自定义inodes。
ext4格式最低的bytes-per-inode值为1024 好吧我们根据磁盘大小手动指定Inodes最大数吧
fdisk -l
新的磁盘是/dev/sdb 32g
我们可以看到/dev/sdb 这个盘共有 32212254720 bytes 可用那我们手工计算下他允许的最大的inode数目31457280 好了算出来了我们现在就可以指定Inodes值格盘了
mkfs.ext4 -N 31457280 /dev/sdb
当然你也可以直接用 mkfs.ext4 -i 1024 /dev/sdb mkfs.ext4 -i 2048 /dev/sdb mkfs.ext4 -i 4096 /dev/sdb 这样来格盘调整Inodes值
挂盘
mount /dev/xvdd /home/1
查看Inodes使用数df -i
好了。。是不是已经千万级别了。。基本等于无限。。。
注意更多的Inodes值会占用磁盘的容量大约是百分之一。为了获取更多的可用文件数相信大家也不会在乎那几百M的磁盘空间吧。好了本次教程到此为止。。血的教训啊,吐槽啊ext4 格式下100G的磁盘默认格盘才给了我600w的可用文件数吐血总么可能满足万恶的html文件和缩略图文件的需求呢
网友评论