0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

怎么去解決服務器存儲inode耗盡的問題呢?

dyquk4xk2p3d ? 來源:良許Linux ? 2023-09-19 11:38 ? 次閱讀

明明硬盤只用了 30% 左右的空間,但是卻無法寫入文件。使用df -iT命令查看文件系統(tǒng)使用情況時,發(fā)現(xiàn)根目錄的 inode 使用率竟然是 100%。后來通過聊天得知,原來他的服務器主要用于存儲 1KB 左右的小文件,這一下就破案了。

inode 主要用來記錄文件的屬性,及此文件的數(shù)據(jù)所在的塊編號。每一個文件會占用一個 inode,因此如果都是小文件的話,那么就會出現(xiàn) inode 已經(jīng)耗盡,但文件系統(tǒng)還有很大的空閑空間,從而無法寫入新文件。

如何獲得更多的 inode

其實在創(chuàng)建 ext4 文件系統(tǒng)時,我們可以使用-T small參數(shù)來獲得更多的 inode,從而優(yōu)化對小文件的存儲。接下來我們通過一個示例來看看效果。

這是兩塊相同大小的硬盤:

root@debian:~# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS

sdb 8:16 0 1G 0 disk

└─sdb1 8:17 0 1023M 0 part

sdc 8:32 0 1G 0 disk

└─sdc1 8:33 0 1023M 0 part

首先使用默認參數(shù)給/dev/sdb1創(chuàng)建文件系統(tǒng):

root@debian:~# /sbin/mkfs.ext4 /dev/sdb1

mke2fs 1.47.0 (5-Feb-2023)

Creating filesystem with 261888 4k blocks and 65536 inodes

Filesystem UUID: 8935c902-df71-4808-b547-c85b6fd37a46

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

Allocating group tables: done

Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

從輸出中可見,該文件系統(tǒng)有 261888 個 4KB 大小的塊和 65536 個 inode。

然后使用-T參數(shù)對/dev/sdc1創(chuàng)建文件系統(tǒng):

root@debian:~# /sbin/mkfs.ext4 -T small /dev/sdc1

mke2fs 1.47.0 (5-Feb-2023)

Creating filesystem with 1047552 1k blocks and 262144 inodes

Filesystem UUID: f521096d-a5a1-41c9-bbf7-e6102e74e87a

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,

1024001

Allocating group tables: done

Writing inode tables: done

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

從輸出中可見,該文件系統(tǒng)有 1047552 個 1KB 大小的塊和 262144 個 inode。

也可以通過以下方式對比兩個文件系統(tǒng)的 inode 數(shù)量:

root@debian:~# mkdir default small

root@debian:~# mount /dev/sdb1 default/

root@debian:~# mount /dev/sdc1 small/

root@debian:~# df -iT

Filesystem Type Inodes IUsed IFree IUse% Mounted on

/dev/sdb1 ext4 65536 11 65525 1% /root/default

/dev/sdc1 ext4 262144 11 262133 1% /root/small

從以上示例中我們可以看出,在使用-T small參數(shù)后,inode 數(shù)量多了近 20 萬個!

注意:這樣做也是有代價的。在使用默認參數(shù)創(chuàng)建 ext4 文件系統(tǒng)時,默認數(shù)據(jù)塊大小為 4KB,而使用-T small參數(shù)后,數(shù)據(jù)塊大小為 1KB。這就意味著我們存儲一個同樣大小的文件,使用-T small參數(shù)創(chuàng)建的文件系統(tǒng)存儲該數(shù)據(jù)時,占用的數(shù)據(jù)塊更多,數(shù)據(jù)更分散,如果文件較大,會直接影響文件的讀取速度

mke2fs(mkfs.ext4)的-T參數(shù)指定了如何使用該文件系統(tǒng),以便mke2fs可以為該用途選擇最佳的文件系統(tǒng)參數(shù),其支持的使用類型在配置文件 /etc/mke2fs.conf 中定義,可以使用逗號分隔指定一個或多個使用類型

inode 不足的解決方法

當你已有的文件系統(tǒng)上出現(xiàn) inode 不足的問題時,除了備份數(shù)據(jù)、重建分區(qū)并恢復分區(qū)數(shù)據(jù)外,還有兩種臨時解決方案:

1、刪除文件大小為 0 的空文件,可以使用如下命令查找:

find PATH -name "*" -type f -size 0c

注意:使用-size參數(shù)時,不要用-size 1k,這個表示占用空間為 1KB,而不是文件大小為 1KB,應該使用-size 1024c才表示文件大小為 1KB。

2、可以定期對歷史小文件進行打包、歸檔,以減少文件數(shù)量。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7366

    瀏覽量

    163091

原文標題:如何解決服務器存儲 inode 耗盡的問題

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    客戶端模式是什么?服務器模式又是什么

    客戶端模式是什么?服務器模式又是什么?怎樣編寫一種服務器模式程序?
    發(fā)表于 02-22 07:44

    存儲服務器的作用

    本視頻主要詳細介紹了存儲服務器的作用,分別是文件共享、數(shù)據(jù)備份、網(wǎng)絡打印、多媒體文件共享、媒體服務器、Web服務器、FTP服務器、iTune
    的頭像 發(fā)表于 01-06 10:12 ?1.4w次閱讀

    存儲服務器和普通服務器區(qū)別

    本文主要闡述了存儲服務器和普通服務器區(qū)別。
    發(fā)表于 05-06 15:12 ?5139次閱讀

    存儲服務器怎么配置_存儲服務器的作用

    在配置存儲服務器錄像之前請先確認4200客戶端和存儲服務器都已經(jīng)安裝,即有 電腦 上有兩個圖標生成安裝軟件時,勾選安裝存儲
    發(fā)表于 05-06 15:18 ?5104次閱讀

    存儲要用服務器

    存儲要不要用服務器?這要看你選用的云存儲是什么類型的產(chǎn)品,如果是西部數(shù)碼的云盤這種,可以不用服務器,作獨立硬盤使用,也可以跟云服務器掛載使
    發(fā)表于 05-12 10:35 ?2060次閱讀

    解析存儲服務器之間的區(qū)別和優(yōu)勢

    當我們聊到存儲服務器的高可用性時,我們通常會想到多控制或雙活動存儲服務器技術。在存儲
    發(fā)表于 08-06 09:12 ?1776次閱讀

    什么是NAS網(wǎng)絡存儲服務器_NAS存儲的特點

    在這個數(shù)據(jù)爆炸的時代,數(shù)據(jù)的快速增長無疑給中小企業(yè)和專業(yè)人士帶來了前所未有的挑戰(zhàn)。即使在云存儲的情況下,數(shù)據(jù)丟失的風險也非常高。因此,許多公司開始轉(zhuǎn)向NAS網(wǎng)絡存儲服務器。那為什么NAS網(wǎng)絡
    發(fā)表于 10-10 16:00 ?1.1w次閱讀

    一文知道存儲存儲服務器的區(qū)別

    隨著科技的發(fā)展,現(xiàn)在很多企業(yè)為了節(jié)省成本可能不會選擇購買存儲服務器了,在這群用戶中可能會去選擇存儲,那存儲存儲
    發(fā)表于 10-23 15:20 ?4120次閱讀

    服務器有什么作用?存儲服務器和普通服務器到底有什么區(qū)別

    服務器是現(xiàn)代重要設備之一,即使是普通人,每天在使用筆記本的時候也都在同服務器打交道。為增進大家對服務器的了解,本文將對服務器的作用、存儲
    發(fā)表于 11-14 10:30 ?6002次閱讀

    Redis服務器的內(nèi)存耗盡后,Redis會如何處理

    作為一臺服務器來說,內(nèi)存并不是無限的,所以總會存在內(nèi)存耗盡的情況,那么當 Redis 服務器的內(nèi)存耗盡后,如果繼續(xù)執(zhí)行請求命令,Redis 會如何處理
    的頭像 發(fā)表于 03-08 09:26 ?481次閱讀

    存儲服務器

    存儲服務器存儲是一種網(wǎng)上在線存儲(英語:Cloud storage)的模式,即把數(shù)據(jù)存放在通常由第三方托管的多臺虛擬服務器,而非專屬的
    發(fā)表于 04-13 13:52 ?974次閱讀

    存儲服務器怎么配置

    存儲服務器的配置取決于您的需求和預算。一般來說,存儲服務器需要具備大容量、高可用性和可擴展性,因此需要考慮以下幾個方面: 1、存儲介質(zhì):
    的頭像 發(fā)表于 04-17 16:20 ?3392次閱讀

    存儲服務器怎么搭建?

      搭建存儲服務器需要根據(jù)我們的需求和環(huán)境選擇合適的硬件和軟件,并進行相應的配置。那么存儲服務器怎么搭建?
    的頭像 發(fā)表于 10-31 16:51 ?2581次閱讀

    存儲服務器怎么配置

    存儲服務器配置是一個復雜的過程,涉及到硬件、軟件、網(wǎng)絡等多個方面。 云存儲服務器配置概述 云存儲是一種基于互聯(lián)網(wǎng)的
    的頭像 發(fā)表于 07-02 09:15 ?382次閱讀

    存儲服務器有哪些類型

    存儲服務器是現(xiàn)代信息技術的重要組成部分,它們?yōu)楦鞣N規(guī)模的企業(yè)和個人提供了靈活、可擴展和成本效益高的存儲解決方案。在本文中,我們將詳細介紹云存儲服務
    的頭像 發(fā)表于 07-02 09:17 ?336次閱讀