在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux日志文件系統(tǒng)面面觀

            Linux日志文件系統(tǒng)面面觀

            作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

            文件系統(tǒng)是用來管理和組織保存在磁盤驅(qū)動器上的數(shù)據(jù)的系統(tǒng)軟件,其實現(xiàn)了數(shù)據(jù)完整性的保證,也就是保證寫入磁盤的數(shù)據(jù)和隨后讀出的內(nèi)容的一致性。除了保存以文件方式存儲的數(shù)據(jù)以外,一個文件系統(tǒng)同樣存儲和管理關(guān)于文件和文件系統(tǒng)自身的一些重要信息(例如:日期時間、屬主、訪問權(quán)限、文件大小和存儲位置等等)。這些信息通常被稱為元數(shù)據(jù)(metadata)。

            本文引用地址:http://www.biyoush.com/article/201610/305406.htm

            由于為了避免磁盤訪問瓶頸效應(yīng),一般文件系統(tǒng)大都以異步方式工作,因此如果磁盤操作被突然中斷可能導(dǎo)致數(shù)據(jù)被丟失。例如如果出現(xiàn)這種情況:如果當(dāng)你處理一個在linux的ext2文件系統(tǒng)上的文檔,突然機器崩潰會出現(xiàn)什么情況?

            有這幾種可能:

            當(dāng)你保存文件以后,系統(tǒng)崩潰。這是最好的情況,你不會丟失任何信息。只需要重新啟動計算機然后繼續(xù)工作。

            在你保存文件之前系統(tǒng)崩潰。你會丟失你所有的工作內(nèi)容,但是老版本的文檔還會存在。

            當(dāng)正在將保存的文檔寫入磁盤時系統(tǒng)崩潰。這是最糟的情況:新版文件覆蓋了舊版本的文件。這樣磁盤上只剩下一個部分新部分舊的文件。如果文件是二進制文件那么就會出現(xiàn)不能打開文件的情況,因為其文件格式和應(yīng)用所期待的不同。

            在最后這種情況下,如果系統(tǒng)崩潰是發(fā)生在驅(qū)動器正在寫入元數(shù)據(jù)時,那么情況可能更糟。這時候就是文件系統(tǒng)發(fā)生了損壞,你可能會丟失整個目錄或者整個磁盤分區(qū)的數(shù)據(jù)。

            linux標(biāo)準(zhǔn)文件系統(tǒng)(ext2fs)在重新啟動時會通過調(diào)用文件掃描工具fsck試圖恢復(fù)損壞的元數(shù)據(jù)信息。由于ext2文件系統(tǒng)保存有冗余的關(guān)鍵元數(shù)據(jù)信息的備份,因此一般來說不大可能出現(xiàn)數(shù)據(jù)完全丟失。系統(tǒng)會計算出被損壞的數(shù)據(jù)的位置,然后或者是通過恢復(fù)冗余的元數(shù)據(jù)信息,或者是直接刪除被損壞或是元數(shù)據(jù)信息損毀的文件。

            很明顯,要檢測的文件系統(tǒng)越大,檢測過程費時就越長。對于有幾十個G大小的分區(qū),可能會花費很長時間來進行檢測。由于Linux開始用于大型服務(wù)器中越來越重要的應(yīng)用,因此就越來越不能容忍長時間的當(dāng)機時間。這就需要更復(fù)雜和精巧的文件系統(tǒng)來替代ext2.

            因此就出現(xiàn)了日志式文件系統(tǒng)(journalling filesystems)來滿足這樣的需求。

            什么是日志式文件系統(tǒng)

            這里僅僅對日志式文件系統(tǒng)進行簡單的說明。如果需要更深入的信息請參考文章日志式文件系統(tǒng),或者是日志式文件系統(tǒng)介紹。

            大多數(shù)現(xiàn)代文件系統(tǒng)都使用了來自于數(shù)據(jù)庫系統(tǒng)中為了提高崩潰恢復(fù)能力而開發(fā)的日志技術(shù)。磁盤事務(wù)在被真正寫入到磁盤的最終位置以前首先按照順序方式寫入磁盤中日志區(qū)(或是log區(qū))的特定位置。

            根據(jù)日志文件系統(tǒng)實現(xiàn)技術(shù)的不同,寫入日志區(qū)的信息是不完全一樣的。某些實現(xiàn)技術(shù)僅僅寫文件系統(tǒng)元數(shù)據(jù),而其他則會記錄所有的寫操作到日志中。

            現(xiàn)在,如果崩潰發(fā)生在日志內(nèi)容被寫入之前發(fā)生,那么原始數(shù)據(jù)仍然在磁盤上,丟失的僅僅是最新的更新內(nèi)容。如果當(dāng)崩潰發(fā)生在真正的寫操作時(也就是日志內(nèi)容已經(jīng)更新),日志文件系統(tǒng)的日志內(nèi)容則會顯示進行了哪些操作。因此當(dāng)系統(tǒng)重啟時,它能輕易根據(jù)日志內(nèi)容,很快地恢復(fù)被破壞的更新。

            在任何一種情況下,都會得到完整的數(shù)據(jù),不會出現(xiàn)損壞的分區(qū)的情況。由于恢復(fù)過程根據(jù)日志進行,因此整個過程會非常快只需要幾秒鐘時間。

            應(yīng)該注意的是使用日志文件系統(tǒng)并不意味著完全不需要使用文件掃描工具fsck了。隨機發(fā)生的文件系統(tǒng)的硬件和軟件錯誤是根據(jù)日志是無法恢復(fù)的,必須借助于fsck工具。

            目前Linux環(huán)境下的日志文件系統(tǒng)

            在下面的內(nèi)容里將討論三種日志文件系統(tǒng):第一種是ext3,由Linux內(nèi)核Stephen Tweedie開發(fā)。ext3是通過向ext2文件系統(tǒng)上添加日志功能來實現(xiàn)的,目前是redhat7.2的默認(rèn)文件系統(tǒng);Namesys開發(fā)的ReiserFs日志式文件系統(tǒng),可以從www.namesys.com下載,目前Mandrake8.1采用該日志式文件系統(tǒng)。SGI在2001年三月發(fā)布了XFS日志式文件系統(tǒng)??梢栽? oss.sgi.com/projects/xfs/下載。下面將對這三種日志文件系統(tǒng)采用不同的工具進行檢測和性能測試。

            安裝ext3

            關(guān)于ext3文件系統(tǒng)技術(shù)方面的問題請參考Dr. Stephen Tweedie的論文和訪談。ext3日志式文件系統(tǒng)直接來自于其祖先ext2文件系統(tǒng)。其具有完全向后兼容的關(guān)鍵特性,實際上其僅僅是在ext2日志式文件系統(tǒng)上添加了日志功能。其最大的缺點是沒有現(xiàn)代文件系統(tǒng)所具有的能提高文件數(shù)據(jù)處理速度和解壓的高性能。

            ext3從 2.2.19開始是作為一個補丁方式存在的。如果希望對內(nèi)核添加對ext3文件系統(tǒng)的支持,就需要使用補丁,可以從ftp.linux.org.uk/pub/linux/sct/fs/jfs或ftp.kernel.org/pub/linux/kernel/people/sct/ext3得到補丁程序,一共需要如下文件:

            * ext3-0.0.7a.tar.bz2:內(nèi)核補丁

            * e2fsprogs-1.21-WIP-0601.tar.bz2 支持ext3的e2fsprogs程序套件

            拷貝linux-2.2.19.tar.bz2和ext3-0.0.7a.tar.bz2到/usr/src目錄下,進行解壓:

            mv linux linux-old

            tar -Ixvf linux-2.2.19.tar.bz2

            tar -Ixvf ext3-0.0.7a.tar.bz2

            cd linux

            cat ……/ext3-0.0.7a/linux-2.2.19.kdb.diff | patch -sp1

            cat ……/ext3-0.0.7a/linux-2.2.19.ext3.diff | patch -sp1

            首先對內(nèi)核添加SGI的kdb內(nèi)核調(diào)試器補丁,第二個是ext3文件系統(tǒng)補丁。下來就需要配置內(nèi)核,對文件系統(tǒng)部分的Enable Second extended fs development code回答Yes.然后編譯。

            內(nèi)核編譯安裝以后,需要安裝e2fsprogs軟件套件:

            tar -Ixvf e2fsprogs-1.21-WIP-0601.tar.bz2

            cd e2fsprogs-1.21

            。/configure

            make

            make check

            make install

            下來要做的工作就是在分區(qū)上創(chuàng)建一個ext3文件系統(tǒng),使用新內(nèi)核重新啟動,這時候你有兩種選擇創(chuàng)建新的日志文件系統(tǒng)或者對一個已有的ext2文件系統(tǒng)升級到ext3日志文件系統(tǒng)。

            對于需要創(chuàng)建新ext3文件系統(tǒng)的情況下,只需要使用安裝的e2fsprogs軟件包中的mke2fs命令加-f參數(shù)就可以創(chuàng)建新的ext3文件系統(tǒng):

            mke2fs -j /dev/xxx


            上一頁 1 2 3 下一頁

            關(guān)鍵詞:

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉