根據(jù)需要來調整inode的節(jié)點數(shù)量
在Linux操作系統(tǒng)中,其文件結構跟微軟操作系統(tǒng)有比較大的差異。在Linux操作系統(tǒng)中,采用的是一種叫做inode的節(jié)點結構。在這個inode節(jié)點中,記錄了文件的類型、大小、權限、所有者、文件連接的數(shù)目、創(chuàng)建時間與更新時間等重要的信息,還有一個比較重要的內容就是指向數(shù)據(jù)塊的指針。一般情況下,如果只是將這個Linux系統(tǒng)當作客戶端或者普通的服務器來處理的話,那么只需要采用年其默認的配置即可。但是,如果要將這個Linux操作系統(tǒng)當作新聞組服務器、論壇服務器等等服務器時,則就不能夠采用默認設置了。系統(tǒng)管理員需要根據(jù)實際情況來調整這個inode節(jié)點的數(shù)量以及其他相關配置。
一、inode節(jié)點數(shù)量與文件存儲的關系。
要了解如何配置inode節(jié)點數(shù)量,那么必須首先需要了解節(jié)點數(shù)量與文件數(shù)量的關系。在微軟操作系統(tǒng)中,只要磁盤分區(qū)還有存儲空間,則就可以存儲文件。但是在Linux操作系統(tǒng)中則不同。在磁盤空間沒有用完之前,用戶也有可能無法存儲新的文件。這主要是因為可以使用的inode節(jié)點已經完了。那么他們之間到底有什么關系呢?其實他們之間還有一個中間者,即數(shù)據(jù)塊,即他們之間的關系是節(jié)點、數(shù)據(jù)塊、文件數(shù)量之間的三角關系。
系統(tǒng)管理員首先需要明白的是,inode節(jié)點的數(shù)量跟數(shù)據(jù)塊有關。但是他們不是簡單的正比例或者反比例的關系。如現(xiàn)在有一個25KB的文件,而數(shù)據(jù)塊的大小則為4KB。則此時這個文件會占用7個數(shù)據(jù)塊,但是只占用了一個inode節(jié)點。另外還有一種比較特殊的情況,如在系統(tǒng)的/proc目錄下的文件實際上并不存在。也就是說并不占用數(shù)據(jù)塊。但是仍然需要占用一個節(jié)點。所以說,數(shù)據(jù)塊跟inode節(jié)點之間沒有存在比例關系。
但是,inode的數(shù)量會決定數(shù)據(jù)塊的使用程度。如在inode節(jié)點數(shù)量小于數(shù)據(jù)塊數(shù)量的情況下,而且用戶存儲的文件都比較小(如不到一個數(shù)據(jù)塊的的大小)。在這種情況下,顯然inode節(jié)點數(shù)量會比數(shù)據(jù)塊要先用光。此時雖然還有空余的磁盤空間,但是由于inode節(jié)點數(shù)量已經用完。沒有多余的節(jié)點可以用來保存文件的相關信息。所以在這種情況下用戶將無法保存新的文件。所以有些用戶會感到疑惑,為什么磁盤空間還有,但是卻無法存儲新的文件。就是這個Inode 節(jié)點在作怪。相反,如果inode節(jié)點數(shù)量比數(shù)據(jù)塊的數(shù)量要多,但是如果用戶存儲的是大文件。在節(jié)點數(shù)量還沒有用完的情況下,硬盤空間就已經用完了。此時也無法保存新的文件。那些實際上不存在的文件除外。
所以說,在部署Linux操作系統(tǒng)的時候,就應該根據(jù)將來系統(tǒng)運行時文件數(shù)據(jù)可能的存儲狀況,來決定數(shù)據(jù)塊的大小與Inode節(jié)點的數(shù)量。從而最大程度的提高硬盤空間的利用率。不過通常情況下,如果LInix操作系統(tǒng)沒有特殊的用途,只是作為普通的客戶端來處理的話,那么只需要采用系統(tǒng)的默認設置即可。
二、在文件系統(tǒng)初始化時設置合適的節(jié)點數(shù)量。
從上面的分析中可以看出,inode節(jié)點數(shù)量跟系統(tǒng)中可以存儲的文件數(shù)量有關。如果inode節(jié)點數(shù)量設置不合適的話,則可能在硬盤空間沒有用完的情況下就無法存儲文件了。雖然這種事情在一般情形下不會發(fā)生,但是在一些特殊的應用中則經常發(fā)生。如系統(tǒng)管理員不過將這臺Linux操作系統(tǒng)當作論壇來使用,則有可能會發(fā)生這種事情。因為通常情況下,論壇服務器的文件存儲有一個特點。論壇服務器上的文件往往都比較小,如大部分文件只需要利用一個數(shù)據(jù)塊來保存即可。同時,其文件的數(shù)量又非常的多。所以,如果將Linux操作系統(tǒng)當作論壇等網站服務器來使用的話,如果采用默認設置的話,則很有可能是inode節(jié)點數(shù)量先用光,而硬盤空間還有剩余。此時新的文件將無法保存。
所以針對論壇服務器這種比較特殊的應用,筆者的建議是將數(shù)據(jù)塊設置的小一點,以減少磁盤的碎片,提高硬盤的利用率。同時,將節(jié)點數(shù)量設置的多一點。如可以先根據(jù)數(shù)據(jù)塊的大小和硬盤容量來計算出可用的數(shù)據(jù)塊數(shù)量。然后將inode節(jié)點的數(shù)量設置為跟這個數(shù)據(jù)塊的數(shù)量相同。如此的話,在最壞的情況下就是節(jié)點數(shù)量同數(shù)據(jù)塊數(shù)量同時用完。而大部分情況下,服務器上總會有一些大文件,如圖片等等,會占用多個數(shù)據(jù)塊來進行存儲。所以此時往往是硬盤空間先用完。故這么設置的話,可以提高硬盤空間的利用率。不會出現(xiàn)那種硬盤空間有剩余卻無法保存新文件的奇怪現(xiàn)象。
不光光是論壇服務器需要這么設置。如果將Linux操作系統(tǒng)當作FTP服務器、郵箱服務器、新聞組服務器等等也都需要進行設置。一般來說,只要服務器上的文件符合兩個特點,即文件數(shù)量多而文件容量比較小,就需要手工調整這個inode節(jié)點數(shù)量,而不能夠采用默認的設置。否則的話,就會出現(xiàn)上面提到的這種異常情況。
如果需要調整inode的數(shù)量,則可以在利用mke2fs等相關的創(chuàng)建文件系統(tǒng)命令的時候進行單獨的設置。這里需要強調的是,要在系統(tǒng)部署之前先確定這個需要的Inode節(jié)點數(shù)量。然后在創(chuàng)建文件系統(tǒng)中指定。當硬盤上已經存儲了文件,此時再來進行調整就為時過晚了,因為重新創(chuàng)建文件系統(tǒng)會清除硬盤上原有的文件。所以就會導致文件的丟失。故筆者建議各位系統(tǒng)管理員,在將Linux操作系統(tǒng)當作服務器來使用之前,需要先了解一下服務器的用途。以及在這個應用下文件存儲的特點。如果其符合文件數(shù)量多但是文件體積小的特點時,則需要考慮更改這個節(jié)點數(shù)量,讓服務器可以存多更多的小體積文件。
#p#
三、查詢節(jié)點的使用情況。
除了需要做好節(jié)點數(shù)量的規(guī)劃外,系統(tǒng)管理員還需要追蹤這個節(jié)點的使用情況。如當發(fā)現(xiàn)有硬盤空間還有剩余但是無法存儲新文件的時候,系統(tǒng)管理員雖然懷疑這可能是節(jié)點數(shù)量不夠所造成的。但是需要找出證據(jù)來證明自己的觀點。此時就需要知道現(xiàn)在系統(tǒng)中的節(jié)點數(shù)量有多少、可用的有多少、已經用了多少等等。在Linix操作系統(tǒng)中提供了一個命令,可以幫助系統(tǒng)管理員來查詢這個節(jié)點的應用情況。系統(tǒng)管理員之需要使用df –i(注意這個可選項必須要帶上),來查詢節(jié)點的使用數(shù)量與使用情況。在shell環(huán)境中執(zhí)行了這個命令后,系統(tǒng)會像管理員提供如下信息:文件系統(tǒng)的名字、當前文件系統(tǒng)總的inode節(jié)點數(shù)量、已經使用的節(jié)點數(shù)量、尚未使用的節(jié)點數(shù)量以及使用的百分比。如果在顯示的結果中,發(fā)現(xiàn)節(jié)點數(shù)量為0的,則表示這個不是Linux操作系統(tǒng)的ext3或者ext2文件系統(tǒng)。此時這個分區(qū)就有可能使光驅或者微軟的FAT等文件系統(tǒng)。
當發(fā)現(xiàn)節(jié)點數(shù)量剩余不多、而硬盤剩余空間還比較多時,系統(tǒng)管理員就需要注意了。如可以通過刪除舊文件來釋放節(jié)點。另外還有一種異常的情況,就是文件明明刪除了,但是某些節(jié)點仍然沒有釋放。在Linux操作系統(tǒng)中有命令可以查詢系統(tǒng)中是否有這種異常的情況。以后若有機會筆者會告訴大家如何維護節(jié)點的異常情況。這里篇幅有限,筆者就不過渡展開。如果沒有可以刪除的文件,而且節(jié)點的使用情況也沒有異常的外,但是磁盤空間還有比較多的剩余,那么處理起來就比較麻煩了。此時系統(tǒng)管理員往往需要先備份分區(qū)上的文件。然后重新格式化這個文件分區(qū),調整這個節(jié)點數(shù)量。然后再將文件復制進去。不過這是一個下下之策了。最理想的情況是,系統(tǒng)管理員根據(jù)自己的工作經驗,在系統(tǒng)部署時就確定合適的節(jié)點數(shù)量,從而省去后續(xù)調整的麻煩。
另外筆者需要提醒大家的是,雖然在inode中存儲了文件的大量信息,但是像文件名等信息卻沒有保存在這個節(jié)點中。就是因為這個特性,所以在文件管理上Linux操作系統(tǒng)要比Windows系統(tǒng)強的多,如可以同時采用符號連接與硬連接等等。硬連接相當于微軟操作系統(tǒng)中的快捷方式。而符號連接則是跟快捷方式截然不同的文件管理模式,其往往幫助管理員來完成一些特殊的任務。
【編輯推薦】