Linux上出現(xiàn)“too many links”這樣的報(bào)錯(cuò),可能是多原因造成的。本節(jié)主要介紹導(dǎo)致這一報(bào)錯(cuò)的兩種情況:
成都創(chuàng)新互聯(lián)公司企業(yè)建站,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
*(1)ext3 文件系統(tǒng),報(bào)錯(cuò)內(nèi)容類似如下:
cannot create directory `/home/data` too many links
*(2)docker存儲(chǔ)驅(qū)動(dòng)overlay,報(bào)錯(cuò)內(nèi)容類似如下:
failed to register layer: link /data/sys/var/docker/overlay/xxxxx: too many links ## 這里使用xxx忽略掉不重要的內(nèi)容
關(guān)于 ext3 的介紹,網(wǎng)上有很多的優(yōu)秀的博客或資料可參考,這里我簡(jiǎn)單說明下:
(1)查看文件系統(tǒng):df -lhT
(2)Linux的kernel代碼中有include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000
和nclude/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000
,ext3文件系統(tǒng)一級(jí)子目錄的個(gè)數(shù)默認(rèn)為31998(個(gè)),準(zhǔn)確地說是32000個(gè)。
(3)不建議在一個(gè)目錄下有太多的文件或者目錄,這回降低文件系統(tǒng)查找文件或目錄的性能。
(4)ext3文件系統(tǒng)下單個(gè)目錄里的最大文件數(shù)無特別的限制,是受限于所在文件系統(tǒng)的inode數(shù)。參考阮神理解inode
(5)ext4 對(duì)目錄個(gè)數(shù)沒有限制。
了解了上面的套路,我們對(duì)于文件系統(tǒng)層次的“too many links”報(bào)錯(cuò),可采用:
(1)將ext3文件系統(tǒng)替換為ext4,注意?數(shù)據(jù)安全,可參考: failed: Too many links 解決
(2)清除無用的目錄或文件
關(guān)于這一塊,可參考我之前的文章Docker存儲(chǔ)驅(qū)動(dòng)由overlay更改為overlay2,文章中給出了兩種方法:
解決上面出現(xiàn)的“too many links” 問題,可以采用下面兩種方法:
(1)臨時(shí)方法:定時(shí)刪除沒用的鏡像和已經(jīng)退出的容器,使用docker system prune。
(2)永久方法:將存儲(chǔ)驅(qū)動(dòng)由 overlay 升級(jí)到 overlay2。
*(1)failed: Too many links 解決
*(2)Docker存儲(chǔ)驅(qū)動(dòng)由overlay更改為overlay2
*(3)ext3文件系統(tǒng)目錄限制問題
*(4)理解inode