• <cite id="7326f"></cite>
    <sub id="7326f"></sub>

  • <legend id="7326f"></legend>
    <thead id="7326f"></thead>

  • 午夜免费福利小电影,日韩精品亚洲专在线电影,最新偷拍一区二区三区,国产精品多p对白交换绿帽,澳门永久av免费网站,亚洲国产日韩a在线播放,亚洲国产精品高清线久久,日日噜噜夜夜狠狠视频

    Linux日志式文件系統面面觀

    時間:2021-04-13 14:28:59 日志日記

    關于Linux日志式文件系統面面觀

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

    關于Linux日志式文件系統面面觀

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

      有這幾種可能:

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

      *在你保存文件之前系統崩潰。你會丟失你所有的工作內容,但是老版本的文檔還會存在。

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

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

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

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

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

      什么是日志式文件系統

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

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

      根據日志文件系統實現技術的不同,寫入日志區的信息是不完全一樣的。某些實現技術僅僅寫文件系統元數據,而其他則會記錄所有的寫操作到日志中。

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

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

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

      目前Linux環境下的日志文件系統

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

      安裝ext3

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

      ext3從 2.2.19開始是作為一個補丁方式存在的。如果希望對內核添加對ext3文件系統的支持,就需要使用補丁,可以得到補丁程序,一共需要如下文件:

      * ext3-0.0.7a.tar.bz2:內核補丁

      * 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

      首先對內核添加SGI的kdb內核調試器補丁,第二個是ext3文件系統補丁。下來就需要配置內核,對文件系統部分的"Enable Second extended fs development code"回答Yes。然后編譯。

      內核編譯安裝以后,需要安裝e2fsprogs軟件套件:

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

      cd e2fsprogs-1.21

      ./configure

      make

      make check

      make install

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

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

      mke2fs -j /dev/xxx

      這里/dev/xxx是希望創建ext3文件系統的新分區。-j參數表示創建ext3而不是ext2文件系統。可以使用參數"-Jsize="來指定希望的日志區大小(n單位為M)。

      升級一個已有的ext2,使用tune2fs就可以了:

      tune2fs -j /dev/xxx

      你可以對正在加載的文件系統和沒有加載的文件系統進行升級操作。如果當前文件系統正在被加載,則文件.journal會在文件系統加載點的所在目錄被創建。如果是升級一個當時沒有加載的文件系統,則使用隱含的系統inode來記錄日志,這時候文件系統的所有內容都會被保留不被破壞。

      你可以使用下面的命令加載ext3文件系統:

      mount -t ext3 /dev/xxx /mount_dir

      由于ext3實際上是帶有日志功能的ext2文件系統 ,因此一個ext3文件系統可以以ext2的方式被加載。

      安裝XFS文件系統

      如果需要從技術方面了解XFS文件系統,請參考SGI的XFS文件系統和SGI信息頁面。也可以參考FAQ。

      XFS是一個SGI開發的linux環境下的日志文件系統,它是一個成熟的技術,最初是使用在IRIX系統上的文件系統。XFS遵循GPL版權申明。目前xfs文件系統最新版本是1.02。下載得到對內核xfs文件系統支持補丁或者直接下載RPM包方式的內核,下面我們就以補丁方式說明如何對2.4.14內核使用xfs。首先下載如下內容

      patch-2.4.14-xfs-1.0.2.bz2

      patch-2.4.14-xfs-1.0.2-kdb.bz2

      拷貝Linux內核linux-2.4.2.tar.bz2到 /usr/src目錄下,修改老的內核目錄名,然后解壓新內核:

      mv linux linux-old

      tar -Ixf inux-2.4.2.tar.bz2

      拷貝每個每個補丁到內核源碼目錄下(例如:/usr/src/linux),并打補丁:

      zcat patch-2.4.14-xfs-1.0.2.bz2 | patch -p1

      zcat patch-2.4.14-xfs-1.0.2-kdb.bz2 | patch -p1

      然后配置內核,打開文件系統部分的內核選項:"XFS filesystem support" (CONFIG_XFS_FS)和"Page Buffer support" (CONFIG_PAGE_BUF)。同時需要升級下面這些系統工具到下面或更高的版本:

      modutils-2.4.0

      autoconf-2.13

      e2fsprogs-devel-1.18

      安裝新內核并重啟服務器。

      然后下載xfs工具。這個軟件包包括下面的命令來處理文件系統,使用下面的命令來安裝該軟件包::

      tar -zxf xfsprogs-1.2.0.src.tar.gz

      cd xfsprogs-1.2.0

      make configure

      make

      make install

      安裝這些命令以后,就可以創建新的XFS文件系統:

      mkfs -t xfs /dev/xxx

      如果xxx是一個已經存在的文件系統,那么就需要使用"-f"參數來創建新分區,但是記得這將會破壞該分區的所有數據。

      mkfs -t xfs -f /dev/xxx

      創建以后就可以使用基于下面的命令加載新文件系統:

      mount -t xfs /dev/xxx /mount_dir

      安裝ReiserFS文件系統

      如果希望更多地從技術方面了解reiserFS文件系統,請參考NAMESYS和FAQ。

      ReiserFS文件系統從2.4.1-pre4開始就是Linux內核的正式支持的文件系統了。為了使用reiserFS文件系統那你首先需要在系統上安裝文件系統支持工具(如:創建ReiserFS文件系統的mkreiserfs工具)。最新的ReiserFS文件系統版本可以以補丁的方式添加到2.2.x或者2.4.x內核中。這里我們以2.2.19為例:

      第一步,首先下在內核源碼,并下在ReiserFS文件系統的2.2.19補丁 ,目前補丁最新版本是linux-2.2.19-reiserfs-3.5.34-patch.bz2。同時應該下載工具軟件包:reiserfsprogs-3.x.0j.tar.gz。

      然后解壓內核源碼和補丁包到/usr/src中:

      tar -Ixf linux-2.2.19.tar.bz2

      bzcat linux-2.2.19-reiserfs-3.5.34-patch.bz2 | patch -p0

      編譯內核支持reiserfs,安裝內核。然后安裝文件系統工具軟件:

      cd /usr/src/linux/fs/reiserfs/utils

      make

      make install

      安裝新內核并重新啟動。現在就可以創建新的reiserfs文件系統,并加載:

      mkreiserfs /dev/xxxx

      mount -t reiserfs /dev/xxx /mount_dir

      文件系統性能測試

      測試環境使用的計算機環境如下:Pentium III - 16 Mb RAM - 2 Gb HD,操作系統為RedHat6.2。所有的文件系統都能正常工作,所以就進行benchmark分析來對它們進行性能比較。首先我直接拔掉系統電源以模擬系統掉電情況,以測試日志文件系統恢復過程。所有的文件系統都成功地經過了文件掃描檢測階段,在數秒以后系統都經過了掃描然后正常啟動了系統。

      下一步就采用了bonnie++性能測試程序進行測試,這個程序對一個文件進行數據庫類型的訪問,進行了創建、讀和刪除小文件,這些操作對于Squid、INN或者Maildir格式的郵件服務器程序(qmail)是最常見的操作。性能測試命令為:

      bonnie++ -d/work1 -s10 -r4 -u0

      其對加載在/work1目錄下的文件系統進行了10Mb(-s10)的測試。因此在執行測試之前必須創建適當類型的文件系統并加載到目錄/work1下。其他的參數指定內存大小(-r4)的M數,和以root身份運行測試程序,測試結果如下:

      每種測試都有兩組數據:文件系統速度(K/sec)和CPU占用率(%CPU)。速度越高,文件系統越好。而對于CPU率來說,數字越小性能越好。可以看到Reiserfs文件系統在文件操作方面(Sequential Create和Random Create部分的) 的性能最好,超出其他文件系統10倍之多。在其他方面(Sequential Output和Sequential Input)則和其他文件系統性能不相上下。對于其他文件系統則沒有特別明顯的區別。XFS性能接近ext2文件系統,ext3文件系統則比ext2要稍微慢上一些(因為記錄日志需要一些額外的時間)。 最后使用從得到的性能測試程序mongo,并對其進行了修改以對三種日志文件系統進行測試。這里在mongo.pl程序中添加了添加了加載xfs和ext3文件系統的命令,并對其進行格式化處理,然后就開始性能測試分析。 該腳本格式劃分區/dev/xxxx,加載其并在每個階段運行指定數目的進程:創建、拷貝、符號連接處理、讀、顯示文件狀態信息、重命名和刪除文件。同時,該程序在創建和拷貝階段以后會計算分段數(fragmentation)。

      Fragm = number_of_fragments / number_of_files

      可以在結果文件中得到同樣的測試比較結果:

      log - 原始結果

      log.tbl - 比較程序的輸出結果

      log_table - 表格式的結果

      下面的命令進行測試:

      mongo.pl ext3 /dev/hda3 /work1 logext3 1

      如果要測試其他文件系統,就需要把上面命令的參數中的ext3修改為reiserfs或xfs。其他參數分別為要加載的分區,加載路徑,保存測試結果的文件名及啟動的進程數。

      下面的表格是測試結果。數據單位為秒。值越低性能越好。第一個表格測試使用的數據塊大小為100字節,第二個表格為1000字節,最后一個為10000字節

      從上面的表格可以看到ext3在狀態刪除和重命名方面要性能更好一些,而ReiserFS文件系統在文件創建和拷貝性能表現更出色。同時也可以看到reiserFS正如其技術文檔提到的其在小文件處理方面性能相當出色。

      結論

      目前Linux至少有兩個健壯可靠的日志文件系統可供選擇(XFS和reiserFS),其都得到了廣泛的應用。例如Mandrake8.1就默認支持reiserFS文件系統。

      從性能測試的結果可以看到,reiserFS是最好的選擇。

    【Linux日志式文件系統面面觀】相關文章:

    用Swatch做Linux日志分析07-02

    在Linux下如何清除系統日志07-02

    linux系統中查看日志方法07-02

    關于linux自動清理日志的方法分享06-23

    Linux系統日志子系統詳解06-23

    Linux如何安裝使用logwatch以便處理日志禁止06-23

    Linux系統下nginx日志每天定時切割的腳本寫法06-23

    生活面面觀06-11

    查崗式愛情查了誰的愛情崗日志06-13

    主站蜘蛛池模板: 成人精品天堂一区二区三区| 亚洲欧美日韩成人综合一区| 亚洲成在人网av天堂| 亚洲婷婷综合色高清在线| 麻豆国产黄色一级免费片| 日本欧美视频在线观看三区| 日本在线不卡一区| 久久99精品久久久久久久久久| 国产精品久久久久影院亚瑟| 中文字幕亚洲制服在线看| 男女啪祼交视频| 亚洲精品综合久久中文字幕 | 婷婷伊人綜合中文字幕小说| 国产二区三区不卡免费| 亚洲国产亚洲综合在线尤物| 亚洲第一页中文字幕| 精品国产性色av网站| 久久伊99综合婷婷久久伊| 亚洲中久无码永久在线观看软件 | 亚洲精品成人综合色在线| 久久福利导航| 美女高潮黄又色高清视频免费| 香格里拉县| 国产精品理论片在线观看| 亚洲欧洲人妻| 国产一区二区黄色在线观看| 国产菊眼屁股无码免费| 精品久久国产字幕高潮| 青草国产精品久久久久久久久| 国产成人欧美日韩在线电影| 99精品国产综合久久久久五月天| 亚洲国产区男人本色| 九九热视频在线播放| 婷婷色综合成人成人网小说| 国产精品中文字幕日韩| 国产婬妇无码无遮挡A片在线观看| 久久久精品人妻一区二区三区| 国产精品一区二区在线影院| 成在人线a免费观看影院| 97无码人妻福利免费公开在线视频 | 熟女二区|