【LINUX 學習】Ext3 的三種日誌記錄方式
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 。
[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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring學習日記01_IOC_xml的三種注入方式SpringXML
- 記錄 | 實習日誌 9
- 日誌記錄 PHP下往linux目錄下寫日誌PHPLinux
- 獲得資料庫操作日誌的三種方式資料庫
- php日誌,記錄日誌PHP
- 一種簡化操作日誌記錄方案
- Python模組學習:logging 日誌記錄Python
- Linux的學習日記Linux
- Vue 學習記錄三Vue
- 日誌記錄器
- 使用配置檔案方式記錄Python程式日誌Python
- 第12章 管理資料庫日誌記錄方式資料庫
- Go學習筆記-Zap日誌Go筆記
- struts 日誌包(學習筆記)筆記
- 爬蟲學習日記(三)爬蟲
- 學習日誌
- angular學習筆記(三)-檢視繫結資料的兩種方式Angular筆記
- Laravel sql 日誌記錄LaravelSQL
- secureCRT記錄操作日誌Securecrt
- 記錄日誌檔案
- PHP日誌記錄方法PHP
- oracle日誌操作記錄Oracle
- 【乾貨分享】Linux系統日誌的三種型別!Linux型別
- 使用 .NET Core 的日誌記錄
- 一個 JSer 的 Dart 學習日誌(三):類JSDart
- 【轉】oracle學習筆記(三)之檢查Oracle的告警日誌檔案Oracle筆記
- linux_scritp_apache日誌中IP地址記錄LinuxApache
- java學習記錄第三週Java
- 大一暑假學習記錄(三)
- 另一種列印輸出日誌資訊的方式
- Oracle補充日誌及日誌記錄規則Oracle
- Laravel8學習筆記-日誌元件Laravel筆記元件
- redo日誌檔案學習筆記(一)筆記
- 日誌框架學習框架
- db2不記錄日誌插入記錄DB2
- Vipper日誌庫的學習
- 記錄騰訊雲使用日誌
- mysql開啟日誌記錄MySql