linux文件系統的日志隔離
1.ext3文件系統在ext2的基礎上添加了日志功能,如同數據庫一樣用日志來保證數據的一致性。
ext2:前寫block,後寫inode!
ext3:增添了日志區(有利於數據一致性),先寫inode! 等數據寫到文件系統後,清除日志
2. 然而像oracle,mysql這樣的大型數據都是基於日志文件,可以做到日志數據分離,即保證了數據的一致性又保證了效率。ext3這種文件系統默認都是內含的,小型服務器不做考慮,若是大型服務器,一方面是磁盤I/0慢,另一方面直接影響數據寫入和讀取的效率,因此建立數據區與日志區隔離,即減小I/O負擔,加快數據寫入效率,同時方便恢復
下面我給出日志區隔離的步驟:
1> umount 卸載分區,確保分區未使用
2> dumpe2fs /dev/sda1 | egrep -i (journal|size) 查看信息
3> tune2fs -O ^has_journal /dev/sda1 去掉內部默認的日志功能
4> mke2fs -O journal_dev -b 1024 /dev/sda5 格式化一個日志設備
5> tune2fs -j -J device=/dev/sda5 /dev/sda1 將日志設備添加到分區上
3. 用戶還可以自己指定日志同步到文件系統的頻率:
mount -o commit=15 日志同步到文件的間隔,可能數據丟失
4. 日志型文件系統的工作模式:不同的工作模式,效率不同,數據安全性不同
data=ordered 默認只有元數據寫入日志區
data=journal 數據,元數據都寫入日志區
data=writeback 只有元數據寫入,但是不保證提交的次序