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文件和縮略圖文件的需求呢