由前端端口和前端控制器組成。前端
前端端口算法
使得主機能鏈接到智能存儲系統,每一個前端端口擁有相應傳輸協議的處理邏輯(SCSI、光纖通道、iSCSI等)。後端
前端控制器緩存
經過數據總線在主機和緩存間傳輸數據。經過命令隊列算法來優化IO處理。服務器
前端命令隊列網絡
經過隊列存儲IO命令,調整執行順序,減小沒必要要的驅動器磁頭移動,改善磁盤性能。性能
常見算法:優化
先進先出算法FIFO:按順序執行,性能最差blog
尋道時間優化算法:根據尋道時間優化隊列
訪問時間優化:綜合考慮尋道時間和旋轉延遲進行優化
注:命令緩存也能夠在磁盤控制器上實現。
基本單位是頁。
物理磁盤訪問最慢。由於尋道時間與旋轉延遲,一般要幾毫秒。過慢致使請求被排隊,帶來響應延遲。
緩存訪問數據只需不到1ms,數據先被存入緩存隨後再寫入磁盤。數據存入緩存後,主機會當即獲得響應。
緩存由數據存儲和標籤RAM組成。
標籤RAM
每一個條目記錄數據保存在緩存哪一個位置以及數據屬於磁盤中的哪一個位置。
髒標誌位:記錄是否已保存到磁盤
時間信息:如最後訪問時間,淘汰好久沒訪問的數據
帶有緩存的讀操做
主機發送讀請求,前端控制器經過標籤RAM查詢數據是否在緩存中。
若是找到了(讀命中),數據直接送入主機,不發生磁盤操做。
不然(緩存未命中),後端控制器訪問磁盤,讀取數據,數據被存入緩存,在經過前端控制器傳入主機。
預讀(預取)
若是請求是順序的,未命中時,將一些還沒被請求到的後續磁盤塊提早讀取到緩存。以使後續數據讀命中。
智能存儲系統提供了固定和可變的預讀長度。
固定長度預讀:適合IO大小統一的操做
可變長度預讀:預讀數倍於主機請求數據的長度。設置最大上限防止大量磁盤操做影響其餘IO操做。
帶有緩存的寫操做
回寫緩存
數據存入緩存,主機獲得當即響應。一段時間後,多個寫操做的數據被一塊兒提交到磁盤。
將寫操做和磁盤的機械延遲分開,寫響應時間加快;但若是故障,未寫入磁盤的數據可能丟失。
直接寫操做
存入緩存後當即寫入磁盤,而後主機獲得響應。
注:有時要跳過緩存,如:要寫入極大量數據時,防止這些數據佔用大量緩存空間,所以選擇直接寫入磁盤。而將緩存用於優化小的、隨機的IO訪問。
緩存實現
專用緩存
讀操做的緩存和寫操做的緩存分別使用單獨的內存空間。
全局緩存
讀寫操做可使用任意空閒的內存。
只需管理一組全局的地址,所以更有效率。
可容許用戶指定讀緩存和寫緩存的比例。
緩存管理
最近最少訪問算法LRU(Least Recently Used)
長時間未訪問的緩存將釋放或標記爲可重用。
最近訪問算法MRU(Most Recently Used)
與LRU相反,最近被使用的緩存會被釋放或標記爲可重用。
刷清操做
緩存寫入數據時,系統必須將髒頁面(已寫入頁面,未寫入磁盤)刷清。
緩存數據保護
防止因電源故障或緩存故障使未寫入磁盤的緩存數據丟失。
緩存鏡像
寫入緩存的數據被保存在相互獨立的內存條的不一樣位置。讀操做不須要(原本就是從磁盤傳入緩存),只有寫操做會被鏡像。
緩存跳躍(緩存保險存儲)
停電時,提供一組物理磁盤在停電時轉儲緩存中的數據。用來轉儲的磁盤稱做跳躍驅動器(保險存儲驅動器)。供電恢復後再從新讀入緩存,再寫回磁盤。
服務器閃存緩存技術
使用主機上的智能緩存軟件和 PCIe 閃
存卡
• 顯著提升應用程序性能
爲讀取密集型工做負載提供性能加速
避免與對存儲陣列的 I/O 訪問關聯的網絡
延遲
• 經過將數據放在服務器上的 PCIe 閃存
中,以智能方式肯定將受益的數據
• 使用最少的 CPU 和內存資源
閃存管理減負到 PCIe 卡上
由後端端口和後端控制器組成。