?? unix系統管理-第九章:修復文件系統.txt
字號:
UNIX系統管理-第九章:修復文件系統
目標
完成這一章,你將能做以下事情:
理解文件系統是如何進行更新操作的
理解sync是如何預防文件系統錯誤
列出文件系統錯誤的三個原因
使用fsck檢查和修補文件系統
文件系統的維護
日常的維護
-檢查文件系統的一致性
-執行文件系統備份
-監控磁盤的使用情況
系統管理員的一個主要的職責就是保護用戶的數據的安全。由于UNIX中數據通過文件系統的方式存儲,系統會強制性檢查文件系統的存儲環境是否出現問題。文件系統的完整性十分重要,系統管理員可以做許多工作來保護文件系統的完整性。
這一章,我們會學習如何使用fsck工具來檢查和維護文件系統的完整性。在開始之前,我們需要了解文件系統的更新是如何發生的。
文件系統的更新
當一個文件系統裝載后,它的超級塊被拷貝到內存中。當拷貝完成之后,文件系統的標記被置為"dirty"。所有的對超級塊的更改首先要去更改這個拷貝。當一個SYNC的系統調用使用的時候,磁盤上的拷貝才會被更新。當一個文件系統被卸載的時候,所有的在內存中的數據會被寫回到磁盤上,文件系統的標記被置為"clean"。
所有的對metadata進行的修改首先是修改其在內存中的拷貝,然后才會被寫到磁盤上去。一些metadata的修改是立即寫到磁盤上,其它的則是在調用sync的時候才會被寫到磁盤上。
舉一個例子:rm myfile命令會引起以下的一些改變:
1.myfile的目錄的條目被清除。
2.用來描述myfile的inode被釋放
3.用來索引剩余數據塊和剩余inode的映射圖被更新
4.超級塊中的剩余數據塊的數量和inode的數量被更新
不幸的是,不是所有的metadata數據都是連續地存儲在磁盤上的,所以它會進行一系列的寫操作來完成這些處理過程,如果在進行這些過程中系統突然崩潰,就會使metadata數據產生不一致。例如:如果myfile的目錄條目已經被清除,但是inode還沒有被釋放,結果就是一個inode有一個鏈接,但是并沒有目錄結構指向這個inode。這就是不一致的metadata。
內存緩沖區
用戶寫數據的時候,實際上并不立即發生寫磁盤的動作,數據會被拷貝到一個內存的緩沖區里。這個操作非??欤瑪祿琲node信息一起,會在以后的一些時間被寫到磁盤上,通常是在緩沖區滿的時候和新需要清除一下緩沖空間的時候。如果系統在還沒有將緩沖區中的信息寫到磁盤上去之前,系統關閉。文件系統的一致性就會被破壞。如果你察覺文件系統已經被破壞,你應該停止當前的工作。
使用緩沖區的優點和缺點:
使用緩沖區可以對磁盤進行均勻的存取,因為內核不需要知道磁盤I/O的產生的原因,內核只會將緩沖區中的數據寫到磁盤,而不用去關心緩沖區數據的組成。從磁盤I/O的觀點來看,使用緩沖區,系統的設計會更簡單。
通過使用緩沖區,應用程序會很容易地移植到其它的UNIX系統上去,因為不同的UNIX機器的磁盤I/O也許會不同,但是程序不需要了解這些。它們只是寫到緩沖區,而不用去考慮磁盤的設置方式。
使用緩沖區可以減少對磁盤的讀寫,這會提高整個系統的響應時間,換句話說,系統運行更快了。
重復利用緩沖區中的數據文件也能夠加速系統的響應。
刷新緩沖區
sync
將緩沖區的內容寫到磁盤
保持文件系統為最新
通常是通過syncer守護進程來激活
syncer
syncer是在系統啟動的過程中自動啟動。
syncer程序的語法為:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -