日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

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


二、超級塊,文件系統(tǒng)的心臟 。
如果說inode塊是Unix操作系統(tǒng)中文件的核心,那么超級塊就是文件系統(tǒng)的心臟 。啟動Unix操作系統(tǒng)后,發(fā)現(xiàn)某個文件系統(tǒng)無法使用,很有可能就是超級塊出現(xiàn)了問題 。為什么這個超級塊有這么大的作用呢?主要是因為在超級塊中保存了全局文件信息,如硬盤已用空間、數(shù)據(jù)塊可用空間、inode結(jié)點信息等等 。做一個形象的比喻,這個超級塊就好像是企業(yè)的資產(chǎn)負(fù)債表,一個文件系統(tǒng)中有哪些資源都記錄在這個表中 。
當(dāng)操作系統(tǒng)啟動后,系統(tǒng)內(nèi)核會把超級塊中的內(nèi)容復(fù)制到內(nèi)存中,并周期性的利用內(nèi)存里的最新內(nèi)容去更新硬盤上的超級塊中的內(nèi)容 。由于這個更新存在一個時間差,為此內(nèi)存中的超級塊信息與硬盤中的超級塊信息往往只有在開機與關(guān)機的某個特定時刻是同步的;而在其他時間都是不同步的 。假設(shè)當(dāng)操作系統(tǒng)意外當(dāng)機或者因為斷電而造成的意外事故時,內(nèi)存中的超級塊信息沒有及時保存到硬盤中,此時文件系統(tǒng)的完整性就會受到破壞 。輕者導(dǎo)致剛建立的丟失,重則的話會導(dǎo)致文件系統(tǒng)癱瘓 。遇到這種情況時,系統(tǒng)工程師往往需要利用系統(tǒng)提供的sync命令在系統(tǒng)出現(xiàn)故障的那一刻把內(nèi)存里的內(nèi)容復(fù)制到磁盤上 。這個過程往往操作系統(tǒng)會自動完成,這也正是因為為什么Unix操作系統(tǒng)要比Windows操作系統(tǒng)穩(wěn)定的一個重要原因 。當(dāng)操作系統(tǒng)重新啟動的過程中,系統(tǒng)內(nèi)核會對兩者進行比較,根據(jù)他們之間的差異,給文件系統(tǒng)打上干凈或者臟的標(biāo)簽 。這個信息也是存儲在文件系統(tǒng)的超級塊中 。
可見超級塊如果發(fā)生損壞的話,對于文件系統(tǒng)的破壞性非常的大 。輕者的話導(dǎo)致某個文件系統(tǒng)無法掛載,重則的話導(dǎo)致整個操作系統(tǒng)崩潰 。在Unix操作系統(tǒng)中,除了可以利用sync命令來保證硬盤上的內(nèi)容決不會比內(nèi)存里的內(nèi)容更新之外,還提供了一個很有利的措施來保證其的安全性 。其實,這個技術(shù)很早就有,只是一開始并沒有用在超級塊的管理中 。這個技術(shù)就是跟磁盤陣列類似 。操作系統(tǒng)會將多個超級塊內(nèi)容保存到硬盤中的不同區(qū)域 。當(dāng)其中一個超級塊出現(xiàn)問題時,操作系統(tǒng)會自動采用另外一個超級塊 。等到系統(tǒng)運行正常后,系統(tǒng)內(nèi)容就會把可用的超級塊去替換那個故障的超級塊 。為此除非所有的超級塊都損壞了,否則的話,只要有一個超級塊是可用的,那么文件系統(tǒng)與操作系統(tǒng)就可以正常掛載與啟動 。這種安全機制在很大程度上提高了超級塊的安全性,系統(tǒng)了Unix操作系統(tǒng)的穩(wěn)定性 ?,F(xiàn)在大部分的Unix操作系統(tǒng)(包括Linux操作系統(tǒng))已經(jīng)實現(xiàn)了類似的安全機制 。
另外系統(tǒng)工程師需要了解在超級塊中到底保存了哪些信息 。這對于以后遇到問題時查找問題原因有一定的故障 。根據(jù)筆者的了解,在超級塊中保存了如下有用的信息 。一是保存了文件系統(tǒng)的大小以及所用酷塊的大小;二是保存了可用數(shù)據(jù)庫的數(shù)量和部分可以及時分配的空閑數(shù)據(jù)塊列表;三是最近一次的更新時間與文件系統(tǒng)的狀態(tài);四是空閑Inode結(jié)點的個數(shù)和部分可以及時使用的inode結(jié)點列表 。有時候在Unix操作系統(tǒng)上進行應(yīng)用程序開發(fā)也需要用到這些信息 。
最后筆者需要強調(diào)一點,超級塊損壞的最大殺手仍然是意外斷電或者其他原因的意外當(dāng)機 。因為此時內(nèi)存中的超級塊信息無法及時更新到硬盤中 。為此就出現(xiàn)了內(nèi)存與超級塊中內(nèi)容不一致的地方,從而會導(dǎo)致系統(tǒng)啟動時的一系列故障 。為此在Unix服務(wù)器上部署一個UPS是非常重要的 。這雖然是一個老生常談的方法,但是卻非常有效 。

推薦閱讀