【LINUX 學習】Ext3 的三種日誌記錄方式

楊奇龍發表於2010-12-08

Ext3 提供三種資料日誌記錄方式: data=writeback 、 data=ordered  (預設) data=journal。
1 data=writeback 方式
data=writeback方式下,ext3根本不執行任何形式的資料日誌記錄,提供給您的是和在XFS,JFS和 ReiserFS檔案系統中找到的類似的日誌記錄(僅後設資料)。這會讓最近修改的檔案在出現意外的重新引導事件中被毀壞。如果不考慮這個缺點, data=writeback 方式在大多數情況下應該能夠提供最佳的ext3效能。
2 data=ordered 方式
  data=ordered方式下,ext3只是正式記錄後設資料,而在邏輯上將後設資料和資料塊分組到稱為事務的單個單元中。到了將新的後設資料寫到磁碟上的時候, 首先寫的是相關的資料塊。
   data=ordered方式有效地解決了在 data=writeback 方式下和大多數其它日誌記錄檔案系統中發現的毀壞問題,而這是在不需要完整資料日誌記錄的情況下做到的。一般說來,data=ordered ext3檔案系統執行的速度比data=writeback檔案系統執行的速度稍微慢一些,但比對應的完整資料日誌記錄還是要快出許多。
將資料附加到檔案時,data=ordered方式提供了ext3完整資料日誌記錄方式提供的所有完整性保證。
    不過,如果正在覆蓋某一部分檔案,而此時系統崩潰,那麼有可能所寫的區將包含原始塊和在其中散佈了更新塊的組合。這是因為 data=ordered 不提供首先覆蓋哪一個資料塊的保證,因此不能假設只是因為更新了被覆蓋的塊 x,也就更新了被覆蓋的塊 x-1。
   data=ordered讓寫操作順序由硬碟的寫快取記憶體決定。這個限制並不經常具有負面影響,因為附加的檔案一般比覆蓋的檔案更普遍。出於這個原因,data=ordered 方式是對完整資料日誌記錄的一個很好的更高效能的替代。

3 data=journal 方式
data=journal 方式提供了完整資料和後設資料日誌記錄。所有新資料首先寫入日誌,然後再寫入它的最終位置。在崩潰情況下,可以重放日誌,使資料和後設資料處於一致的狀態。

要指定日誌方式,可以使用如下方式:
1 向/etc/fstab的選項節新增適當的字串例如 data=journal
2 在呼叫 mount 時直接指定 -o data=journal 命令列選項。
如果您願意指定用於根檔案系統的資料日誌記錄方法data=ordered是預設值,則可以使用名為 rootflags 的特殊核心引導選項。因此,要將根檔案系統置於完整資料日誌記錄方式下,則向核心引導選項新增rootflags=data=journal 。

如果我們想要檢視某一個磁碟對應的檔案系統的日誌方式應該怎麼查詢,這裡可以透過dmesg 命令:
[root@rac4 ~]# dmesg | grep -B 1 "mounted filesystem" 
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
--
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
--
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with journal data mode.
--
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with writeback data mode.
用dmesg這個工具來檢視一些硬體的資訊,命令記錄對所以檔案系統mount的資訊,對/home/yang 進行mount和umount操作,會在dmesg 命令輸出中顯示出來!
[root@rac4 yang]# mount -o data=journal /dev/sdb1 /home/yang
[root@rac4 yang]# df -h
檔案系統              容量  已用 可用 已用% 掛載點
/dev/sda3              26G   12G   13G  48% /
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm
/dev/sdb1              20G  173M   19G   1% /home/yang
[root@rac4 yang]# df -h
檔案系統              容量  已用 可用 已用% 掛載點
/dev/sda3              26G   12G   13G  48% /
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm
[root@rac4 yang]# mount -o data=writeback  /dev/sdb1 /home/yang       
[root@rac4 yang]# df -h
檔案系統              容量  已用 可用 已用% 掛載點
/dev/sda3              26G   12G   13G  48% /
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm
/dev/sdb1              20G  173M   19G   1% /home/yang

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-681162/,如需轉載,請註明出處,否則將追究法律責任。

相關文章