inode 資料塊 磁碟容量

2021-09-20 20:29:22 字數 3233 閱讀 4792

在linux作業系統中,其檔案結構跟微軟作業系統有比較大的差異。在linux作業系統中,採用的是一種叫做inode的節點結構。在這個inode節點中,記錄了檔案的型別、大小、許可權、所有者、檔案連線的數目、建立時間與更新時間等重要的資訊,還有乙個比較重要的內容就是指向資料塊的指標。一般情況下,如果只是將這個linux系統當作客戶端或者普通的伺服器來處理的話,那麼只需要採用年其預設的配置即可。但是,如果要將這個linux作業系統當作新聞組伺服器、論壇伺服器等等伺服器時,則就不能夠採用預設設定了。系統管理員需要根據實際情況來調整這個inode節點的數量以及其他相關配置。

一、inode節點數量與檔案儲存的關係。

要了解如何配置inode節點數量,那麼必須首先需要了解節點數量與檔案數量的關係。在微軟作業系統中,只要磁碟分割槽還有儲存空間,則就可以儲存檔案。但是在linux作業系統中則不同。在磁碟空間沒有用完之前,使用者也有可能無法儲存新的檔案。這主要是因為可以使用的inode節點已經完了。那麼他們之間到底有什麼關係呢?其實他們之間還有乙個中間者,即資料塊,即他們之間的關係是節點、資料塊、檔案數量之間的三角關係。

系統管理員首先需要明白的是,inode節點的數量跟資料塊有關。但是他們不是簡單的正比例或者反比例的關係。如現在有乙個25kb的檔案,而資料塊的大小則為4kb。則此時這個檔案會占用7個資料塊,但是只占用了乙個inode節點。另外還有一種比較特殊的情況,如在系統的/proc目錄下的檔案實際上並不存在。也就是說並不占用資料塊。但是仍然需要占用乙個節點。所以說,資料塊跟inode節點之間沒有存在比例關係。

但是,inode的數量會決定資料塊的使用程度。如在inode節點數量小於資料塊數量的情況下,而且使用者儲存的檔案都比較小(如不到乙個資料塊的的大小)。在這種情況下,顯然inode節點數量會比資料塊要先用光。此時雖然還有空餘的磁碟空間,但是由於inode節點數量已經用完。沒有多餘的節點可以用來儲存檔案的相關資訊。所以在這種情況下使用者將無法儲存新的檔案。所以有些使用者會感到疑惑,為什麼磁碟空間還有,但是卻無法儲存新的檔案。就是這個inode 節點在作怪。相反,如果inode節點數量比資料塊的數量要多,但是如果使用者儲存的是大檔案。在節點數量還沒有用完的情況下,硬碟空間就已經用完了。此時也無法儲存新的檔案。那些實際上不存在的檔案除外。

所以說,在部署linux作業系統的時候,就應該根據將來系統執行時檔案資料可能的儲存狀況,來決定資料塊的大小與inode節點的數量。從而最大程度的提高硬碟空間的利用率。不過通常情況下,如果linix作業系統沒有特殊的用途,只是作為普通的客戶端來處理的話,那麼只需要採用系統的預設設定即可。

二、在檔案系統初始化時設定合適的節點數量。

從上面的分析中可以看出,inode節點數量跟系統中可以儲存的檔案數量有關。如果inode節點數量設定不合適的話,則可能在硬碟空間沒有用完的情況下就無法儲存檔案了。雖然這種事情在一般情形下不會發生,但是在一些特殊的應用中則經常發生。如系統管理員不過將這台linux作業系統當作論壇來使用,則有可能會發生這種事情。因為通常情況下,論壇伺服器的檔案儲存有乙個特點。論壇伺服器上的檔案往往都比較小,如大部分檔案只需要利用乙個資料塊來儲存即可。同時,其檔案的數量又非常的多。所以,如果將linux作業系統當作論壇等**伺服器來使用的話,如果採用預設設定的話,則很有可能是inode節點數量先用光,而硬碟空間還有剩餘。此時新的檔案將無法儲存。

所以針對論壇伺服器這種比較特殊的應用,筆者的建議是將資料塊設定的小一點,以減少磁碟的碎片,提高硬碟的利用率。同時,將節點數量設定的多一點。如可以先根據資料塊的大小和硬碟容量來計算出可用的資料塊數量。然後將inode節點的數量設定為跟這個資料塊的數量相同。如此的話,在最壞的情況下就是節點數量同資料塊數量同時用完。而大部分情況下,伺服器上總會有一些大檔案,如等等,會占用多個資料塊來進行儲存。所以此時往往是硬碟空間先用完。故這麼設定的話,可以提高硬碟空間的利用率。不會出現那種硬碟空間有剩餘卻無法儲存新檔案的奇怪現象。

不光光是論壇伺服器需要這麼設定。如果將linux作業系統當作ftp伺服器、郵箱伺服器、新聞組伺服器等等也都需要進行設定。一般來說,只要伺服器上的檔案符合兩個特點,即檔案數量多而檔案容量比較小,就需要手工調整這個inode節點數量,而不能夠採用預設的設定。否則的話,就會出現上面提到的這種異常情況。

如果需要調整inode的數量,則可以在利用mke2fs等相關的建立檔案系統命令的時候進行單獨的設定。

這裡需要強調的是,要在系統部署之前先確定這個需要的inode節點數量。然後在建立檔案系統中指定。當硬碟上已經儲存了檔案,此時再來進行調整就為時過晚了,因為重新建立檔案系統會清除硬碟上原有的檔案。所以就會導致檔案的丟失。

故筆者建議各位系統管理員,在將linux作業系統當作伺服器來使用之前,需要先了解一下伺服器的用途。以及在這個應用下檔案儲存的特點。如果其符合檔案數量多但是檔案體積小的特點時,則需要考慮更改這個節點數量,讓伺服器可以存多更多的小體積檔案。

三、查詢節點的使用情況。

除了需要做好節點數量的規劃外,系統管理員還需要追蹤這個節點的使用情況。如當發現有硬碟空間還有剩餘但是無法儲存新檔案的時候,系統管理員雖然懷疑這可能是節點數量不夠所造成的。但是需要找出證據來證明自己的觀點。此時就需要知道現在系統中的節點數量有多少、可用的有多少、已經用了多少等等。在linix作業系統中提供了乙個命令,可以幫助系統管理員來查詢這個節點的應用情況。系統管理員之需要使用df –i(注意這個可選項必須要帶上),來查詢節點的使用數量與使用情況。在shell環境中執行了這個命令後,系統會像管理員提供如下資訊:檔案系統的名字、當前檔案系統總的inode節點數量、已經使用的節點數量、尚未使用的節點數量以及使用的百分比。如果在顯示的結果中,發現節點數量為0的,則表示這個不是linux作業系統的ext3或者ext2檔案系統。此時這個分割槽就有可能使光碟機或者微軟的fat等檔案系統。

當發現節點數量剩餘不多、而硬碟剩餘空間還比較多時,系統管理員就需要注意了。如可以通過刪除舊檔案來釋放節點。另外還有一種異常的情況,就是檔案明明刪除了,但是某些節點仍然沒有釋放。在linux作業系統中有命令可以查詢系統中是否有這種異常的情況。以後若有機會筆者會告訴大家如何維護節點的異常情況。這裡篇幅有限,筆者就不過渡展開。如果沒有可以刪除的檔案,而且節點的使用情況也沒有異常的外,但是磁碟空間還有比較多的剩餘,那麼處理起來就比較麻煩了。此時系統管理員往往需要先備份分割槽上的檔案。然後重新格式化這個檔案分割槽,調整這個節點數量。然後再將檔案複製進去。不過這是乙個下下之策了。最理想的情況是,系統管理員根據自己的工作經驗,在系統部署時就確定合適的節點數量,從而省去後續調整的麻煩。

另外筆者需要提醒大家的是,雖然在inode中儲存了檔案的大量資訊,但是像檔名等資訊卻沒有儲存在這個節點中。就是因為這個特性,所以在檔案管理上linux作業系統要比windows系統強的多,如可以同時採用符號連線與硬連線等等。硬連線相當於微軟作業系統中的快捷方式。而符號連線則是跟快捷方式截然不同的檔案管理模式,其往往幫助管理員來完成一些特殊的任務

svc op 磁碟Inode詳解 重要

另一篇白話總結 理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組成的 ...

RAID5容量計算方式 單塊磁碟容量 (n 1

2017 02 07 15 05 37 raid 5因為要容錯 並行讀取,就是少乙個碟符的容量 容錯備份用了 話說raid 0更是減少一半碟符容量。具體的懶得自己打了,copy過來了 raid5的可用磁碟數為 n 1.也就是說磁碟做raid5後系統可使用容量為 單塊磁碟容量 n 1 所以你4塊盤的r...

磁碟容量的計算

chs cylinder head sector track,示意圖如下 cylinder柱面數表示硬碟每面盤面上有幾條磁軌,編號是從0開始,最大為1023,表示有1024個磁軌。head磁頭數表示磁碟共有幾個磁頭,也就是幾面盤面,編號從0開始,最大為255,表示有256個磁頭。sector tra...