本發明涉及計算機領域,具體地說是一種主機端與存儲端協同的多控IO調度方法。
背景技術:數據中心中存儲系統與服務器之間單通道帶寬具有局限性,這使得服務器不能夠充分利用存儲系統高效的數據處理能力。目前,采用的解決的方案是采用多鏈路聚合的方式,通過服務器與存儲系統之間多條路徑同時進行數據傳輸,以增加整體系統的吞吐能力。此方案,一方面可以突破單鏈路帶寬限制;另一方面,通過多條絕對物理的路徑進行數據傳輸,起到了提高可靠性的作用,即,當一條鏈路的某個或者多個元素(如適配卡、連接線、存儲控制器等)出現故障時,整體系統依然正常運行。由于環境及設備條件的限制,存儲系統與服務器之間的多條路徑在吞吐率方面并非絕對對稱。因此,如果使得數據IO在路徑間進行均衡調度是面臨的最大的問題。傳統的多路徑組件采用單機結構,通過當前的路徑的性能代替將來的性能特征,并通過加權或輪循等方式進行靜態調度。在這種形式下,當由于外部環境發生變化導致路徑的吞吐能力動態進行改變時,無法抓住這個時機提高系統吞吐能力;同時,也無法在某條路徑負載過大時,進行適時均衡。同時,傳統IO調度算法也有其局限性,其基本思想時以路徑當前的性能狀態代替將來的路徑狀態,而非預測將來狀態。事實上,當前的狀態和將來狀態是非線性的,單純以當前的狀態,特別是以當前某點的狀態代替將來的狀態,將導致相當大的調度誤差,特別是在性能波動較大的應用或系統中,此局限性會更加明顯。本案通過存儲自身預測其吞吐并由服務端調度的策略,解決上述局限性。
技術實現要素:本發明的目的是提供一種主機端與存儲端協同的多控IO調度方法,用于解決現有多路徑調度組件在復雜環境下調度不均衡的問題。本發明的目的是按以下方式實現的,多路徑調度組件與傳統調度組件的區別在于分布結構的不同,物理上分為服務端的多路徑組件和存儲控制器的路徑調度組件,其中,多路徑組件部署在文件系統和網絡存儲驅動之間,用于從文件系統端接收IO請求,并將請求進行隊列化,其隊列化的個體策略依賴于所述存儲控制器的路徑調度組件的決策和自身路徑決策結合,所述策略區別于傳統的策略在于動態調整IO隊列,以使系統吞吐始終處于均衡狀態,所述路徑調度組件有兩方面的工作,一方面,等時多點收集存儲系統各控制器的可量化性能測量指標形成歷史參考值,并根據參考值采用智能化預測算法對將來路徑性能進行評價,傳遞到服務端用于路徑評價和決策;另一方面,鏈路出現故障時,會及時得到通知并嘗試自修復;多路徑組件包括通信模塊、IO隊列均衡模塊、IO執行模塊三個子模塊;路徑調度組件包括通信模塊、壓力預測模塊、特征量化收集模塊、路徑修復模塊四個子模塊;所述多路徑組件中,通信模塊用于與路徑調度組件中的通信模塊協同服務器與存儲系統間的專用于多路徑調度的信道,并進行必要的信息傳遞,其所采用的通信協議不限于TCP/IP協議和信道;所述IO隊列均衡模塊用來接收上層邏輯傳遞下來的IO請求,并將其隊列化,其具體做法是,將IO請求按照一定的策略均衡到多個隊列中,每條鏈路將對應一個隊列;所述IO執行模塊用于將IO隊列傳遞對應鏈路進行執行,由于IO隊列由鏈路專有,多鏈路可并行執行IO操作,與此同時,所述IO執行模塊在執行IO操作時,可根據IO命令是否超時的特征判斷路徑是否建康;所述路徑調度組件中,通信模塊用于與多路徑組件通信模塊協同;所述特征量化收集模塊與部署于同一系統不同控制器的同名模塊借助于存儲系統內聯通道進行相互通信,并收集各個控制器的性能量化數據,包括采用CPU負載、內存負載、IO負載信息形成的評價值代替,并形成一定長度的等時定點采集的歷史序列;所述壓力預測模塊使用特征量化收集模塊收集的各控制器性能量化數據預測將來其控制器的性能值,并采用智能預測算法進行集中評測;所述路徑修復模塊在控制器對應路徑出現故障時嘗試自修復;智能預測算法基于灰色動態模型實現,將性能特征值序列化,并使用GM(1,1)模型進行預測,所述特征量化收集模塊收集的性能特征信息歷史值可構建成數列:H(0)={H(0)(1),H(0)(2),H(0)(3),...,H(0)(N)}(1)其中N可配置。對數列(1)進行累加,得到H(1)={H(1)(1),H(1)(2),H(1)(3),...,H(1)(N)}(2)其中,構造成矩陣B與常數量:YN=[H(0)(2),H(0)(3),...H(0)(N)]T。進而求出灰參:進而根據GM(1,1)模型,計算出將來控制器性能預測值。負載均衡流程如下:步驟101:特征量化收集模塊收集量化負載信息,負載可參考信息包括但不限于CPU負載、IO負載、內存負載,并將其根據需要的算法形成可參考的特定值,包括采用加權平均方式;步驟102:壓力預測模塊進行壓力預測,壓力預測采用的基本策略是將特征量化值的歷史序列進行G(1,1)模型預測;步驟103:壓力預測模塊形成壓力分級;步驟104:壓力預測模塊將分級信息傳遞給IO均衡模塊;步驟105:壓力均衡模塊將IO隊列重新均衡;路徑智能恢復流程如下:步驟201:IO執行模塊執行命令超時,在本步驟中的真實目的是為了判斷IO路徑是否是健康路徑,最直接的判斷方式是通過IO超時或者出錯進行判斷;步驟202:IO隊列均衡模塊對隊列進行重新均衡,其目的是,將出錯的IO隊列清空,并將未決的IO請求均衡到其它指令中;步驟203:IO隊列通知路徑調度組件進行路徑自修復。采用分布式的多路徑均衡部署,所述分布式是指系統部署包括多路徑組件和路徑調度組件兩個部分,所述路徑調度組件采用基于灰度預測的調度方法,其思想是將歷史特征值基于時間序列化,并采用G(1,1)模型進行預測。所述多路徑組件用于路徑IO的智能調度,其調度策略不僅取決于自身檢測特征,還包括所述路徑調度組件預測的特征。本發明的有益效果是:本發明的的多路徑調度組件區別...