Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.8. 資料日誌

一般來說,GFS2 只會將 metadata 紀錄至日誌裡。檔案內容則會由核心的定期同步功能寫入,然後清除系統緩衝區。對一個檔案使用 fsync() 呼叫會立即將檔案的資料寫入磁碟中。當所有資料安全地寫入磁碟之後,這呼叫會回傳。
資料日誌會導致 fsync() 時間降低,尤其是小型的檔案,這是因為除了 metadata 之外,檔案資料也會被紀錄到日誌中。當檔案大小增加時,所需時間便會變長。當開啟了資料日誌時,寫入中型和大型檔案的速度會慢上許多。
依賴 fsync() 來同步檔案資料的應用程式,會因為使用資料日誌功能,而改善效能。資料日誌可以在任何已標示旗標的目錄(及其子目錄)中,自動啟用。長度為零的現有檔案,也可以啟用或停用資料日誌功能。
啟用目錄的資料日誌功能會將目錄設定為「繼承 jdata」,這表示在該目錄中建立的所有檔案與目錄皆會被紀錄。您可透過 chattr 指令,啟用或停用一個檔案或目錄上的資料日誌功能。
下列指令可啟用 /mnt/gfs2/gfs2_dir/newfile 檔案上的資料日誌,並檢查旗標是否已正確設置。
[root@roth-01 ~]# chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
以下指令停用 /mnt/gfs2/gfs2_dir/newfile 檔案的資料日誌,並檢查旗標是否已經正確設定。
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
您亦可使用 chattr 指令來設定目錄上的 j 旗標。當您為目錄設定此旗標時,所有在此目錄中建立的檔案與目錄皆會啟用日誌功能。以下指令集會在 gfs2_dir 目錄上設置 j 旗標,然後檢查該旗標是否設定正確。之後,這項指令會在 /mnt/gfs2/gfs2_dir 目錄中建立一個新檔案,稱為 newfile,然後檢查該檔案的 j 旗標是否設定正確。因為該目錄已設定了 j 旗標,因此 newfile 的日誌功能也會被啟用。
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile