国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

深度解析Unix中inode塊與超級(jí)塊

瀏覽:64日期:2024-06-15 09:26:37

雖然Unix操作系統(tǒng)要比Windwos系統(tǒng)要穩(wěn)定。但是Unix操作系統(tǒng)有時(shí)候也會(huì)有鬧脾氣罷工的時(shí)候。這主要是因?yàn)閁nix操作系統(tǒng)中inode塊與超級(jí)塊在作怪。那么這兩個(gè)塊在Unix操作系統(tǒng)中到底占據(jù)了什么位置呢?

一、inode塊,Unix文件的核心。

首先需要明白的是,在Unix操作系統(tǒng)中的任何資源都被當(dāng)作文件來管理。如目錄、光驅(qū)、終端設(shè)備等等,都被當(dāng)作是一種文件。從這方面來說,Unix操作系統(tǒng)中的所有的目錄、硬件設(shè)備跟普通文件一樣,具有共同的屬性。而這些屬性的話,就是保存在inode塊中。

Inode塊中保存了一個(gè)文件系統(tǒng)中的全部Inode節(jié)點(diǎn)。也就是說,當(dāng)系統(tǒng)創(chuàng)建了一個(gè)文件(或者添加了一個(gè)新設(shè)備)時(shí),系統(tǒng)就會(huì)從這個(gè)塊中給這個(gè)文件分配一個(gè)Inode結(jié)點(diǎn)。在這個(gè)結(jié)點(diǎn)中存儲(chǔ)了這個(gè)文件的大部分屬性,如創(chuàng)建、修改時(shí)間等等。但是需要注意的是,有兩個(gè)屬性不包含在這個(gè)inode結(jié)點(diǎn)中,分別為文件名與結(jié)點(diǎn)號(hào)。這主要是因?yàn)閕node節(jié)點(diǎn)按順序排列,所以系統(tǒng)內(nèi)核就可以采用簡(jiǎn)單的算法,就可以得出inode節(jié)點(diǎn)號(hào)。通過系統(tǒng)提供的ls命令顯示文件或者目錄信息的時(shí)候,就需要用到這個(gè)結(jié)點(diǎn)中的信息。Ls命令為了確定一個(gè)文件的Inode節(jié)點(diǎn)需要查找它所在的目錄,然后讀取它的Inode 結(jié)點(diǎn),并根據(jù)inode節(jié)點(diǎn)得到文件的屬性。正常情況下,這個(gè)節(jié)點(diǎn)號(hào)不會(huì)出現(xiàn)什么問題。但是如果由于意外斷電或者其他原因的話,有可能會(huì)發(fā)生一些故障。如可能一個(gè)inode結(jié)點(diǎn)在系統(tǒng)中已經(jīng)被創(chuàng)建,但是其沒有被正常使用,或者可能塊號(hào)超出了范圍。這些故障會(huì)給操作系統(tǒng)留下安全隱患。為此當(dāng)出現(xiàn)意外關(guān)機(jī)或者其他意外事件時(shí),最好系統(tǒng)工程師能夠利用fsck系統(tǒng)命令來修復(fù)inode結(jié)點(diǎn)中的錯(cuò)誤。

另外需要注意的是,在inode結(jié)點(diǎn)中還存儲(chǔ)著一個(gè)重要的信息,就是保存了一個(gè)包含13-15位指針元素的數(shù)組,這些指針是磁盤塊區(qū)的地址。這些指針非常的重要。操作系統(tǒng)就是依靠這些指針在硬盤上定位相關(guān)的文件,并讀取它。如上所述,因?yàn)橐恍┮馔獾牟僮饕矔?huì)使得這個(gè)指針地址出現(xiàn)錯(cuò)誤。有時(shí)候這會(huì)非常的嚴(yán)重。如一些文件無法讀取等等。如果這些文件不幸的是系統(tǒng)的一些配置文件,那么就會(huì)導(dǎo)致系統(tǒng)的崩潰。如果這些指針地址出現(xiàn)錯(cuò)誤,則文件名仍然會(huì)顯示在操作系統(tǒng)中。但是如果用戶試著去打開這些文件時(shí),系統(tǒng)卻會(huì)告知無法打開這些文件。如果遇到這種情況該這么辦呢?此時(shí)系統(tǒng)工程師就需要手工運(yùn)行fsck命令。如果這個(gè)文件損壞的不是很嚴(yán)重,那么操作系統(tǒng)內(nèi)內(nèi)核會(huì)為其再建立一個(gè)鏈接。但是如果原文件損壞的比較厲害了,無法再重新讀取。則系統(tǒng)會(huì)建立用戶刪除這個(gè)文件(從硬盤中刪除)。

由于一些文件的屬性(如建立修改時(shí)間等等)都保存在Inode結(jié)點(diǎn)中,為此一些命令在獲取這些屬性的時(shí)候,是不需要打開文件的。如現(xiàn)在系統(tǒng)工程師在編寫一個(gè)文件備份程序,就需要用到inode節(jié)點(diǎn)中的修改時(shí)間截這個(gè)屬性。此時(shí)可以利用相關(guān)的命令直接從inode結(jié)點(diǎn)中去獲取,而不需要打開對(duì)應(yīng)的文件去得知這個(gè)信息。為此在Unix操作系統(tǒng)中文件備份程序的執(zhí)行效率會(huì)比較高,實(shí)現(xiàn)起來也相對(duì)簡(jiǎn)單一點(diǎn)。

從上面的這些分析中可以看到,inode結(jié)點(diǎn)是Unix操作系統(tǒng)中文件的核心,也是操作系統(tǒng)與硬盤中存儲(chǔ)的數(shù)據(jù)打交道的一個(gè)中介者。如果這個(gè)結(jié)點(diǎn)信息出現(xiàn)錯(cuò)誤的話,那么硬盤中存儲(chǔ)的數(shù)據(jù)塊就好像是無主的流浪者,無法被用戶所采用。另外我們平時(shí)刪除文件,其實(shí)只是刪除了這個(gè)聯(lián)系。所以通過一線恢復(fù)工具仍然可以恢復(fù)被刪除了的文件。如果需要真正刪除文件的話,就需要格式化硬盤(低格)或者復(fù)制大文件把其覆蓋掉。只有如此硬盤中存儲(chǔ)的數(shù)據(jù)塊才會(huì)被真正的刪除掉。最后需要說明的是,按照正常的關(guān)機(jī)程序來關(guān)閉Unix操作系統(tǒng),是保護(hù)inode結(jié)點(diǎn)信息的最好措施。突然斷電或者其他意外事故,是inode結(jié)點(diǎn)的最大殺手。

二、超級(jí)塊,文件系統(tǒng)的心臟。

如果說inode塊是Unix操作系統(tǒng)中文件的核心,那么超級(jí)塊就是文件系統(tǒng)的心臟。啟動(dòng)Unix操作系統(tǒng)后,發(fā)現(xiàn)某個(gè)文件系統(tǒng)無法使用,很有可能就是超級(jí)塊出現(xiàn)了問題。為什么這個(gè)超級(jí)塊有這么大的作用呢?主要是因?yàn)樵诔?jí)塊中保存了全局文件信息,如硬盤已用空間、數(shù)據(jù)塊可用空間、inode結(jié)點(diǎn)信息等等。做一個(gè)形象的比喻,這個(gè)超級(jí)塊就好像是企業(yè)的資產(chǎn)負(fù)債表,一個(gè)文件系統(tǒng)中有哪些資源都記錄在這個(gè)表中。

當(dāng)操作系統(tǒng)啟動(dòng)后,系統(tǒng)內(nèi)核會(huì)把超級(jí)塊中的內(nèi)容復(fù)制到內(nèi)存中,并周期性的利用內(nèi)存里的最新內(nèi)容去更新硬盤上的超級(jí)塊中的內(nèi)容。由于這個(gè)更新存在一個(gè)時(shí)間差,為此內(nèi)存中的超級(jí)塊信息與硬盤中的超級(jí)塊信息往往只有在開機(jī)與關(guān)機(jī)的某個(gè)特定時(shí)刻是同步的;而在其他時(shí)間都是不同步的。假設(shè)當(dāng)操作系統(tǒng)意外當(dāng)機(jī)或者因?yàn)閿嚯姸斐傻囊馔馐鹿蕰r(shí),內(nèi)存中的超級(jí)塊信息沒有及時(shí)保存到硬盤中,此時(shí)文件系統(tǒng)的完整性就會(huì)受到破壞。輕者導(dǎo)致剛建立的丟失,重則的話會(huì)導(dǎo)致文件系統(tǒng)癱瘓。遇到這種情況時(shí),系統(tǒng)工程師往往需要利用系統(tǒng)提供的sync命令在系統(tǒng)出現(xiàn)故障的那一刻把內(nèi)存里的內(nèi)容復(fù)制到磁盤上。這個(gè)過程往往操作系統(tǒng)會(huì)自動(dòng)完成,這也正是因?yàn)闉槭裁碪nix操作系統(tǒng)要比Windows操作系統(tǒng)穩(wěn)定的一個(gè)重要原因。當(dāng)操作系統(tǒng)重新啟動(dòng)的過程中,系統(tǒng)內(nèi)核會(huì)對(duì)兩者進(jìn)行比較,根據(jù)他們之間的差異,給文件系統(tǒng)打上干凈或者臟的標(biāo)簽。這個(gè)信息也是存儲(chǔ)在文件系統(tǒng)的超級(jí)塊中。

可見超級(jí)塊如果發(fā)生損壞的話,對(duì)于文件系統(tǒng)的破壞性非常的大。輕者的話導(dǎo)致某個(gè)文件系統(tǒng)無法掛載,重則的話導(dǎo)致整個(gè)操作系統(tǒng)崩潰。在Unix操作系統(tǒng)中,除了可以利用sync命令來保證硬盤上的內(nèi)容決不會(huì)比內(nèi)存里的內(nèi)容更新之外,還提供了一個(gè)很有利的措施來保證其的安全性。其實(shí),這個(gè)技術(shù)很早就有,只是一開始并沒有用在超級(jí)塊的管理中。這個(gè)技術(shù)就是跟磁盤陣列類似。操作系統(tǒng)會(huì)將多個(gè)超級(jí)塊內(nèi)容保存到硬盤中的不同區(qū)域。當(dāng)其中一個(gè)超級(jí)塊出現(xiàn)問題時(shí),操作系統(tǒng)會(huì)自動(dòng)采用另外一個(gè)超級(jí)塊。等到系統(tǒng)運(yùn)行正常后,系統(tǒng)內(nèi)容就會(huì)把可用的超級(jí)塊去替換那個(gè)故障的超級(jí)塊。為此除非所有的超級(jí)塊都損壞了,否則的話,只要有一個(gè)超級(jí)塊是可用的,那么文件系統(tǒng)與操作系統(tǒng)就可以正常掛載與啟動(dòng)。這種安全機(jī)制在很大程度上提高了超級(jí)塊的安全性,系統(tǒng)了Unix操作系統(tǒng)的穩(wěn)定性。現(xiàn)在大部分的Unix操作系統(tǒng)(包括Linux操作系統(tǒng))已經(jīng)實(shí)現(xiàn)了類似的安全機(jī)制。

另外系統(tǒng)工程師需要了解在超級(jí)塊中到底保存了哪些信息。這對(duì)于以后遇到問題時(shí)查找問題原因有一定的故障。根據(jù)筆者的了解,在超級(jí)塊中保存了如下有用的信息。一是保存了文件系統(tǒng)的大小以及所用酷塊的大小;二是保存了可用數(shù)據(jù)庫的數(shù)量和部分可以及時(shí)分配的空閑數(shù)據(jù)塊列表;三是最近一次的更新時(shí)間與文件系統(tǒng)的狀態(tài);四是空閑Inode結(jié)點(diǎn)的個(gè)數(shù)和部分可以及時(shí)使用的inode結(jié)點(diǎn)列表。有時(shí)候在Unix操作系統(tǒng)上進(jìn)行應(yīng)用程序開發(fā)也需要用到這些信息。

最后筆者需要強(qiáng)調(diào)一點(diǎn),超級(jí)塊損壞的最大殺手仍然是意外斷電或者其他原因的意外當(dāng)機(jī)。因?yàn)榇藭r(shí)內(nèi)存中的超級(jí)塊信息無法及時(shí)更新到硬盤中。為此就出現(xiàn)了內(nèi)存與超級(jí)塊中內(nèi)容不一致的地方,從而會(huì)導(dǎo)致系統(tǒng)啟動(dòng)時(shí)的一系列故障。為此在Unix服務(wù)器上部署一個(gè)UPS是非常重要的。這雖然是一個(gè)老生常談的方法,但是卻非常有效。

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 日韩欧美在线一区二区三区 | 成人免费一级在线播放 | 在线毛片网站 | 国产欧美视频一区二区三区 | 成人在线免费观看 | 理论片我不卡在线观看 | 日韩欧美一级毛片视频免费 | a级毛片免费看 | 国产v片成人影院在线观看 国产v片在线播放免费观 | 成人做爰在线视频 | a级毛片毛片免费观看久潮喷 | 日本加勒比在线观看 | 日韩精品免费一区二区 | 特级a级毛片 | 黄色片亚洲 | 免费看欧美成人性色生活片 | 中文国产成人精品久久无广告 | 九九在线偷拍视频在线播放 | 手机看片国产免费永久 | 欧美性色生活片天天看99 | 欧美日韩一区二区三区四区在线观看 | 欧美性色生活免费观看 | 国产一区曰韩二区欧美三区 | 免费a级黄毛片 | 成人在线一区二区 | 国产精品yjizz视频网一二区 | 国产一区二三区 | 波多野结衣一区二区三区在线观看 | 91国内精品视频 | 日韩 国产 欧美视频一区二区三区 | 国产精选一区二区 | 欧美成人手机在线 | 国产a级三级三级三级 | 成人免费在线视频 | 在线观看一区二区三区视频 | 一区二区三区四区产品乱码伦 | 成年人网站在线 | 欧美成年人网站 | 亚洲一级理论片 | 牛人盗摄一区二区三区视频 | 午夜性刺激免费视频 |