linux ext4劃分磁盤分配指定inode數量

因爲服務器上很多小的txt文件,達到上千萬,在磁盤仍剩餘200G的時候,inode節點不足,磁盤無法寫入。

原因是在linux中每個文件都必須有對應的一個inode節點,當小文件過多時,因inode節點與磁盤文件一樣也是佔空間的,並且是獨立於磁盤文件的空間,所以會出現數據磁盤仍有大部分剩餘,但inode已被佔滿的情況,具體細節就不深究。

操作:查看磁盤信息

dumpe2fs -h /dev/vdb

沒有看到inode size的信息,是因爲信息多,向下看:

其中,

  • 每個 inode 大小爲 256byte(注意是每個inode的大小,而不是多大空間分配一個inode),block 大小爲 4k;
  • 根據 block count 和 inode count,我們也可以算出 16k bytes-per-inode( 78643200*4096/ 19660800=16384)16384/1024=16,即每16k空間分配一個inode,1900萬的inode節點並不夠用,所以需要重新分配。

1,第一種分配方法:

 	
mkfs.ext4 -i 8192 /dev/vdb

其中,

-i 是指定每多少空間分配一個inode,這裏指定了8192字節,即每8k空間分配一個inode,那麼此時相當於上一次的分配將多出一倍的inode。

再次查看磁盤信息即可。

dumpe2fs -h /dev/vdb

2,第二種方法:直接指定inode的數量:使用-N參數

1,卸載文件系統
umount /home/data
2,建立文件系統,指定inode節點數
mkfs.ext4 /dev/sdb -N 30000000

兩種方法都需要先卸載文件系統,重新格式化磁盤。所以在磁盤使用伊始應合理規劃,避免後期數據遷移帶來的麻煩。

當然ext3格式化同理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章