新聞中心
聯系我們
Contact us
Contact us
- 總部電話010-51727811
- 客服熱線400 779 6696
- 更多聯系信息
本地IO路徑技術詳細解讀(一)
時間:2012-09-25 08:11 來源:飛客數據恢復 作者:飛客數據恢復工程師
我們將以一個字處理應用作為例子,通過跟蹤它的I/O操作過程來分析本地I/O路徑。數據首先由一個用戶產生,或者是直接從鍵盤鍵入,或者由其他應用拷貝而來,或者通過諸如語音識別等其他方法產生。然后,用戶的字處理軟件將給原始數據加上適當的文檔標識和描述碼,由此格式化原始數據。最后產生的結果將作為電子文件形式存儲起來。
隨著用戶工作的進展,新產生的文件被存放到磁盤,這既可以由手工完成,也可以由后臺進程自動完成。字處理程序用一個默認的目錄存放文檔,端用戶不必牽涉進每個存儲操作的細節。盡管端用戶和應用開發者正在存儲他們的數據,但他們卻不必知道任何存儲設備的細節,這一點很重要。例如,對用戶而言,沒有必要知道他們使用的設備地址或物理結構。
文件系統提供了一個方便的辦法,使用它能容易地選擇設備及該設備上的邏輯位置,即它的目錄和名字.上述操作的完成都依賴于提供給字處理應用上述操作的完成都依賴于提供給字處理應用并由它使用的所謂文件服務接口。字處理程序正是使用這個接口發出I/O請求。
隨著用戶工作的進展,新產生的文件被存放到磁盤,這既可以由手工完成,也可以由后臺進程自動完成。字處理程序用一個默認的目錄存放文檔,端用戶不必牽涉進每個存儲操作的細節。盡管端用戶和應用開發者正在存儲他們的數據,但他們卻不必知道任何存儲設備的細節,這一點很重要。例如,對用戶而言,沒有必要知道他們使用的設備地址或物理結構。
文件系統提供了一個方便的辦法,使用它能容易地選擇設備及該設備上的邏輯位置,即它的目錄和名字.上述操作的完成都依賴于提供給字處理應用上述操作的完成都依賴于提供給字處理應用并由它使用的所謂文件服務接口。字處理程序正是使用這個接口發出I/O請求。
1.I/O路徑的操作系統成分
操作系統通常也簡稱為OS,負責把I/O請求由應用操作系統送到設備驅動程序,設備驅動程序最終控制設備的操作,完成這個過程需要利用幾個功能層。雖然本書不討論影響I/O操作的所有可能的OS進程,但是,整個這一章以及本書的其余部分將使用一個確定的模型,并一直延用這個模型。操作系統的三個主要成分是:
系統環境。
文件系統。
卷管理器。
除此之外,文件服務接口和設備服務接口也是OS的一部分,它們分別是應用軟件和設備驅動程序交換I/O請求的編程接口。
當I/O請求到達操作系統時,它被放在系統環境的隊列中。系統環境由操作系統內核和一些進程組成,這些進程為所有的系統功能提供資源調度,系統功能包括應用處理、通信及I/O調度等。爭用資源的進程數量和資源本身的性能決定著系統的總體性能,包括I/O請求的服務。
當資源滿足處理I/O請求的需要時,文件系統將接管這個請求,并首先確定是創建一個文件,還是寫入新的數據?這看上去似乎很簡單,事實上,需要做的事情很多。例如,是否已經存在一個同名的文件?有足夠的存儲空間來存儲這個文件嗎?這個介質是只讀(意味著不可寫)的嗎?對這個目錄、介質或設備有安全和訪問限制嗎?文件名有效嗎?等等。在操作系統成功地把一個文件寫入設備之前,所有這些都必須加以檢驗。
一旦這些檢驗完畢,文件系統就決定將這個文件放在目標設備的哪個地方。這個目標設備既可以是實際設備,也可以是虛擬設備;但在文件系統看來,它們是一回事。雖然文件系統不直接與設備打交道,但它維護磁盤上所有數據的一個完整的映射,包括虛擬設備。文件系統利用這個映射發現自由空間以存儲文件。然后,將應用對文件的原請求轉化為磁盤塊級的I/O操作。當應用向文件存放新的數據時,文件系統將新數據轉化為該文件中特定的一些塊。
在I/O請求離開文件系統之前,文件系統建立相應的元數據,用以描述該文件,它包括確定文件的訪問權限、提供用于系統和存儲管理的信息等。對文件系統發出的文件請求,文件系統不僅將應用中的文件請求轉變為塊I/O操作,也將位置信息和元數據加入這個請求中。
操作系統通常也簡稱為OS,負責把I/O請求由應用操作系統送到設備驅動程序,設備驅動程序最終控制設備的操作,完成這個過程需要利用幾個功能層。雖然本書不討論影響I/O操作的所有可能的OS進程,但是,整個這一章以及本書的其余部分將使用一個確定的模型,并一直延用這個模型。操作系統的三個主要成分是:
系統環境。
文件系統。
卷管理器。
除此之外,文件服務接口和設備服務接口也是OS的一部分,它們分別是應用軟件和設備驅動程序交換I/O請求的編程接口。
當I/O請求到達操作系統時,它被放在系統環境的隊列中。系統環境由操作系統內核和一些進程組成,這些進程為所有的系統功能提供資源調度,系統功能包括應用處理、通信及I/O調度等。爭用資源的進程數量和資源本身的性能決定著系統的總體性能,包括I/O請求的服務。
當資源滿足處理I/O請求的需要時,文件系統將接管這個請求,并首先確定是創建一個文件,還是寫入新的數據?這看上去似乎很簡單,事實上,需要做的事情很多。例如,是否已經存在一個同名的文件?有足夠的存儲空間來存儲這個文件嗎?這個介質是只讀(意味著不可寫)的嗎?對這個目錄、介質或設備有安全和訪問限制嗎?文件名有效嗎?等等。在操作系統成功地把一個文件寫入設備之前,所有這些都必須加以檢驗。
一旦這些檢驗完畢,文件系統就決定將這個文件放在目標設備的哪個地方。這個目標設備既可以是實際設備,也可以是虛擬設備;但在文件系統看來,它們是一回事。雖然文件系統不直接與設備打交道,但它維護磁盤上所有數據的一個完整的映射,包括虛擬設備。文件系統利用這個映射發現自由空間以存儲文件。然后,將應用對文件的原請求轉化為磁盤塊級的I/O操作。當應用向文件存放新的數據時,文件系統將新數據轉化為該文件中特定的一些塊。
在I/O請求離開文件系統之前,文件系統建立相應的元數據,用以描述該文件,它包括確定文件的訪問權限、提供用于系統和存儲管理的信息等。對文件系統發出的文件請求,文件系統不僅將應用中的文件請求轉變為塊I/O操作,也將位置信息和元數據加入這個請求中。
注意元數據是一個很有趣的論題,對存儲工業有著重要的意義。隨著數據量的持續增長,其管理將變得越來越困難。元數據是精確地描述文件內容的文件,存儲和數據管理系統正是利用它來管理數據的。備份即利用元數據的一個應用例子,它為管理員管理他們的系統提供了極大的方便。
在文件系統已經確定文件存放位置以后,操作系統給卷管理器發送I/O請求。按照所管理的設備配置,卷管理器處理文件系統的I/O請求。這過程就像把這個請求發送給一個設備那樣簡單,或許它還涉及到為多個設備子系統產生多個請求。卷管理器由單一的文件系統I/O請求產生兩個請求的例子。
在文件系統已經確定文件存放位置以后,操作系統給卷管理器發送I/O請求。按照所管理的設備配置,卷管理器處理文件系統的I/O請求。這過程就像把這個請求發送給一個設備那樣簡單,或許它還涉及到為多個設備子系統產生多個請求。卷管理器由單一的文件系統I/O請求產生兩個請求的例子。