本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種管理路徑信息的方法和裝置。
背景技術(shù):
當(dāng)前存儲區(qū)域網(wǎng)絡(luò)(storageareanetwork,san)中包括一臺存儲陣列,多個主機(jī)和一個或多個交換機(jī),該存儲陣列包括多個存儲端口,多個主機(jī)中的每個主機(jī)包括多個讀寫端口,該一個或多個交換機(jī)包括多個交換端口;其中,一個讀寫端口、一個交換機(jī)端口和一個存儲端口可以組成一個讀寫路徑,因此,一個主機(jī)可以包括多條讀寫路徑。
當(dāng)san中的某個主機(jī)在存儲陣列中進(jìn)行讀寫操作時,該主機(jī)需要為該讀寫請求從該主機(jī)包括的多條讀寫路徑中選擇一條讀寫路徑,具體選擇過程可以為:該主機(jī)確定目標(biāo)讀寫端口和目標(biāo)存儲端口,統(tǒng)計經(jīng)過該目標(biāo)讀寫端口和目標(biāo)存儲端口的每條讀寫路徑的讀寫操作的排隊數(shù)目,根據(jù)每條讀寫路徑的排隊數(shù)目,選擇一條排隊數(shù)目最小的讀寫路徑。
現(xiàn)有技術(shù)至少存在以下問題:
由于多個主機(jī)共用交換機(jī)的多個交換端口,并且該主機(jī)只能獲知自己在各條讀寫路徑的讀寫操作的排隊數(shù)目,因此,選擇的讀寫路徑可能存在大量該san中除該主機(jī)之外的其他主機(jī)的讀寫操作,導(dǎo)致通過選擇的讀寫路徑進(jìn)行讀寫操作的延時較大。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明提供了一種管理路徑信息的方法和裝置。技術(shù)方案如下:
第一方面,本發(fā)明提供了一種管理路徑信息的方法,所述方法包括:
獲取存儲區(qū)域網(wǎng)絡(luò)san中的每個主機(jī)的讀寫路徑的物理路徑信息,所述物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;
根據(jù)所述每個主機(jī)的讀寫路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;
如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。
在本發(fā)明實施例中,由于對存在競爭關(guān)系的讀寫路徑進(jìn)行了調(diào)整,調(diào)整后的讀寫路徑不存在競爭關(guān)系,從而通過調(diào)整后的讀寫路徑進(jìn)行讀寫操作時延時較少,因此,本發(fā)明可以縮短延時。
在一種可能的設(shè)計中,所述獲取存儲區(qū)域網(wǎng)絡(luò)san中的每個主機(jī)的讀寫路徑的物理路徑信息,包括:
獲取san中的每個主機(jī)的讀寫端口和所述san中的存儲陣列的存儲端口;
根據(jù)所述每個主機(jī)的讀寫端口和所述存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取所述每個主機(jī)的讀寫路徑的物理路徑信息。
在本發(fā)明實施例中,存儲讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取所述每個主機(jī)的讀寫路徑的物理路徑信息,從而根據(jù)每個主機(jī)的讀寫端口和存儲陣列的存儲端口,可以獲取每個主機(jī)的讀寫路徑的物理路徑信息,該物理路徑信息可以很好地描述多主機(jī)組網(wǎng)下的組網(wǎng)信息,并且可以從這個物理路徑信息中識別出多主機(jī)組網(wǎng)的端口競爭關(guān)系。
在另一種可能的設(shè)計中,所述根據(jù)所述每個主機(jī)的讀寫路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑是否存在競爭關(guān)系,包括:
根據(jù)所述每個主機(jī)的讀寫路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;
根據(jù)所述每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口;
如果存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,確定所述每個主機(jī)的讀寫路徑存在競爭關(guān)系。
在本發(fā)明實施例中,通過判斷不同物理路徑信息中的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口是否相同就可以等效識別出不同主機(jī)之間是否存在讀寫路徑競爭關(guān)系。
在另一種可能的設(shè)計中,所述根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫 路徑進(jìn)行調(diào)整,包括:
獲取存在競爭關(guān)系的多個讀寫路徑;
從所述多個讀寫路徑中選擇部分讀寫路徑,將所述部分讀寫路徑設(shè)置為不可用狀態(tài)。
在本發(fā)明實施例中,端設(shè)計一種單一端口負(fù)載算法,既是保證主機(jī)上負(fù)載io的路徑獨占交換機(jī)端口,從而消除競爭關(guān)系,
在另一種可能的設(shè)計中,所述根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整,包括:
獲取存在競爭關(guān)系的多個讀寫路徑中的每個讀寫路徑的質(zhì)量參數(shù);
根據(jù)所述每個讀寫路徑的質(zhì)量參數(shù),從所述多個讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量參數(shù)條件的讀寫路徑;
根據(jù)負(fù)載均衡策略,對所述選擇的讀寫路徑進(jìn)行調(diào)整。
在本發(fā)明實施例中,控制終端也可以不是只要有競爭關(guān)系就開始實施調(diào)整,而是當(dāng)存在競爭關(guān)系的讀寫路徑的質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量條件時才開始實施策略調(diào)整,也即以下第二種實現(xiàn)方式,第二種實現(xiàn)方式在性能要求不高的場景下可以暫時不進(jìn)行策略調(diào)整,減少控制終端的負(fù)擔(dān)。
第二方面,本發(fā)明提供了一種管理路徑信息的裝置,所述裝置包括:
獲取模塊,用于獲取存儲區(qū)域網(wǎng)絡(luò)san中的每個主機(jī)的讀寫路徑的物理路徑信息,所述物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;
確定模塊,用于根據(jù)所述每個主機(jī)的讀寫路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;
調(diào)整模塊,用于如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。
在一種可能的設(shè)計中,所述獲取模塊,還用于獲取san中的每個主機(jī)的讀寫端口和所述san中的存儲陣列的存儲端口;根據(jù)所述每個主機(jī)的讀寫端口和所述存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取所述每個主機(jī)的讀寫路徑的物理路徑信息。
在另一種可能的設(shè)計中,所述確定模塊,還用于根據(jù)所述每個主機(jī)的讀寫 路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)所述每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口;如果存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,確定所述每個主機(jī)的讀寫路徑存在競爭關(guān)系。
在另一種可能的設(shè)計中,所述調(diào)整模塊,還用于獲取存在競爭關(guān)系的多個讀寫路徑;從所述多個讀寫路徑中選擇部分讀寫路徑,將所述部分讀寫路徑設(shè)置為不可用狀態(tài)。
在另一種可能的設(shè)計中,所述調(diào)整模塊,還用于獲取存在競爭關(guān)系的多個讀寫路徑中的每個讀寫路徑的質(zhì)量參數(shù);根據(jù)所述每個讀寫路徑的質(zhì)量參數(shù),從所述多個讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量參數(shù)條件的讀寫路徑;根據(jù)負(fù)載均衡策略,對所述選擇的讀寫路徑進(jìn)行調(diào)整。
第三方面,本發(fā)明提供了一種管理路徑信息的裝置,所述裝置包括:處理器和存儲器;
所述存儲器用于存儲管理路徑信息的程序代碼以及所述處理器產(chǎn)生的數(shù)據(jù);
所述處理器,用于獲取存儲區(qū)域網(wǎng)絡(luò)san中的每個主機(jī)的讀寫路徑的物理路徑信息,所述物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;
所述處理器,還用于根據(jù)所述每個主機(jī)的讀寫路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;
所述處理器,還用于如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。
在一種可能的設(shè)計中,所述處理器,還用于獲取san中的每個主機(jī)的讀寫端口和所述san中的存儲陣列的存儲端口;根據(jù)所述每個主機(jī)的讀寫端口和所述存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取所述每個主機(jī)的讀寫路徑的物理路徑信息。
在另一種可能的設(shè)計中,所述處理器,還用于根據(jù)所述每個主機(jī)的讀寫路徑的物理路徑信息,確定所述每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)所述每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口, 確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口;如果存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,確定所述每個主機(jī)的讀寫路徑存在競爭關(guān)系。
在另一種可能的設(shè)計中,所述處理器,還用于獲取存在競爭關(guān)系的多個讀寫路徑;從所述多個讀寫路徑中選擇部分讀寫路徑,將所述部分讀寫路徑設(shè)置為不可用狀態(tài)。
在另一種可能的設(shè)計中,所述處理器,還用于獲取存在競爭關(guān)系的多個讀寫路徑中的每個讀寫路徑的質(zhì)量參數(shù);根據(jù)所述每個讀寫路徑的質(zhì)量參數(shù),從所述多個讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量參數(shù)條件的讀寫路徑;根據(jù)負(fù)載均衡策略,對所述選擇的讀寫路徑進(jìn)行調(diào)整。
在本發(fā)明實施例中,獲取san中的每個主機(jī)的讀寫路徑的物理路徑信息,物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。由于對存在競爭關(guān)系的讀寫路徑進(jìn)行了調(diào)整,調(diào)整后的讀寫路徑不存在競爭關(guān)系,從而通過調(diào)整后的讀寫路徑進(jìn)行讀寫操作時延時較少,因此,本發(fā)明可以縮短延時。
附圖說明
圖1是本發(fā)明實施例提供的一種san的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例提供的一種控制終端的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例提供的一種管理路徑信息的方法流程圖;
圖4是本發(fā)明實施例提供的一種管理路徑信息的裝置結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。
參見圖1,本發(fā)明實施例提供了一種san,該san中包括一臺或多臺存儲陣列101,控制終端102,多個主機(jī)103,一個或多個交換機(jī)104,該多個主機(jī)中的每個主機(jī)103包括多個讀寫端口;一個或多個交換機(jī)104包括多個交換端 口,存儲陣列101包括多個存儲端口。
一個讀寫端口、一個交換機(jī)104端口和一個存儲端口可以組成一個讀寫路徑,因此,一個主機(jī)103可以包括多條讀寫路徑。
在本發(fā)明實施例中新增控制終端102,控制終端102用于周期性獲取san中的每個主機(jī)103包括的每條讀寫路徑的物理路徑信息,該物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)104標(biāo)識和交換機(jī)104目標(biāo)端口。
控制終端102還用于根據(jù)每條讀寫路徑的物理路徑信息中的交換機(jī)104標(biāo)識和交換機(jī)104目標(biāo)端口可以唯一確定每條讀寫路徑經(jīng)過的交換機(jī)端口。
控制終端102還用于根據(jù)每條讀寫路徑經(jīng)過的交換機(jī)端口,確定是否存在至少兩條讀寫路徑經(jīng)過同一個交換機(jī)端口,如果確定存在至少兩條讀寫路徑經(jīng)過同一個交換機(jī)端口,確定該至少兩條讀寫路徑存在競爭關(guān)系,然后根據(jù)負(fù)載均衡策略,對該至少兩條讀寫路徑進(jìn)行調(diào)整。
主機(jī)103用于接收讀寫請求,并從該主機(jī)103調(diào)整后的多條讀寫路徑中選擇一條讀寫路徑;并通過該選擇的讀寫路徑經(jīng)過的交換端口,在存儲陣列101中進(jìn)行讀寫操作。主機(jī)103在選擇讀寫路徑時,遵循負(fù)載均衡原則,也即該主機(jī)103從調(diào)整后的讀寫路徑中,為該讀寫請求選擇一條當(dāng)前排隊數(shù)目最小的讀寫路徑。
交換機(jī)104用于將讀寫請求中包括的數(shù)據(jù)發(fā)送給存儲陣列101。
存儲陣列101用于存儲數(shù)據(jù)。
需要說明的是,控制終端102可以獨立于主機(jī)103、交換機(jī)104和存儲陣列101,也可以部署在主機(jī)103中、交換機(jī)104或者存儲陣列101中。在本發(fā)明實施例中對控制終端102的部署位置不作具體限定。
在本發(fā)明實施例中,由于調(diào)整后的讀寫路徑不存在競爭關(guān)系,從而通過調(diào)整后的讀寫路徑進(jìn)行讀寫操作時延時較少,因此,本發(fā)明可以縮短延時。
參見圖2,圖2是本發(fā)明實施例提供的一種控制終端的結(jié)構(gòu)框圖,控制終端可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個或一個以上處理器201和存儲器202。
存儲器202用于存儲管理路徑信息的程序代碼以及處理器301產(chǎn)生的數(shù)據(jù);
處理器201用于獲取存儲區(qū)域網(wǎng)絡(luò)san中的每個主機(jī)的讀寫路徑的物理路 徑信息,物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;
處理器201,還用于根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;
處理器201,還用于如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。
可選的,控制終端除了包括上述處理器201和存儲器202外,還可以包括其他部件。例如,還可以包括一個或一個以上存儲應(yīng)用程序203或數(shù)據(jù)204的存儲介質(zhì)205(例如一個或一個以上海量存儲設(shè)備)。其中,存儲器202和存儲介質(zhì)205可以是短暫存儲或持久存儲。存儲在存儲介質(zhì)205的程序可以包括一個或一個以上模塊(圖示沒標(biāo)出),每個模塊可以包括功率分配的裝置中的一系列指令操作。更進(jìn)一步地,處理器201可以設(shè)置為與存儲介質(zhì)205通信,在控制終端上執(zhí)行存儲介質(zhì)205中的一系列指令操作。
控制終端還可以包括一個或一個以上電源206,一個或一個以上有線或無線網(wǎng)絡(luò)接口207,一個或一個以上輸入輸出接口208,一個或一個以上鍵盤209,和/或,一個或一個以上操作系統(tǒng)210,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。
在本發(fā)明中控制終端包括處理器201還可以具有以下功能:
處理器201,還用于獲取san中的每個主機(jī)的讀寫端口和san中的存儲陣列的存儲端口;根據(jù)每個主機(jī)的讀寫端口和存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取每個主機(jī)的讀寫路徑的物理路徑信息。
處理器201,還用于根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口;如果存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,確定每個主機(jī)的讀寫路徑存在競爭關(guān)系。
處理器201,還用于獲取存在競爭關(guān)系的多個讀寫路徑;從多個讀寫路徑中選擇部分讀寫路徑,將部分讀寫路徑設(shè)置為不可用狀態(tài)。
處理器201,還用于獲取存在競爭關(guān)系的多個讀寫路徑中的每個讀寫路徑的 質(zhì)量參數(shù);根據(jù)每個讀寫路徑的質(zhì)量參數(shù),從多個讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量參數(shù)條件的讀寫路徑;根據(jù)負(fù)載均衡策略,對選擇的讀寫路徑進(jìn)行調(diào)整。
在本發(fā)明實施例中,獲取san中的每個主機(jī)的讀寫路徑的物理路徑信息,物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。由于對存在競爭關(guān)系的讀寫路徑進(jìn)行了調(diào)整,調(diào)整后的讀寫路徑不存在競爭關(guān)系,從而通過調(diào)整后的讀寫路徑進(jìn)行讀寫操作時延時較少,因此,本發(fā)明可以縮短延時。
參見圖3,本發(fā)明實施例提供了一種管理路徑信息的方法,該方法的執(zhí)行主體可以為控制終端,或者任一部署控制終端的設(shè)備,例如,部署控制終端的主機(jī),或者部署控制終端的交換機(jī),或者部署控制終端的存儲陣列等。在本發(fā)明實施例中,以執(zhí)行主體為控制終端為例進(jìn)行說明。其中,該方法包括:
步驟301:控制終端獲取san中的每個主機(jī)的讀寫路徑的物理路徑信息。
san中包括多個主機(jī),多個主機(jī)中的每個主機(jī)包括多條讀寫路徑,控制終端每隔預(yù)設(shè)時長獲取一次每個主機(jī)包括的每條讀寫路徑的物理路徑信息,該物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口。
在本發(fā)明實施例中,定義了一種新的物理路徑描述機(jī)制,將原來的i(initiatorid,目標(biāo)讀寫端口的端口標(biāo)識)-t(targetid,目的存儲端口的端口標(biāo)識)描述的物理路徑信息,改進(jìn)成i-s-st(switchtargetid,交換機(jī)標(biāo)識)-t(targetid,交換機(jī)目標(biāo)端口的端口標(biāo)識)描述的物理路徑信息,i-s-st-t的描述方法很好地詮釋了在真實主機(jī)環(huán)境下的物理抽象。并且,通過判斷不同物理路徑信息中的s-st-t是否相同就可以等效識別出不同主機(jī)之間是否存在讀寫路徑競爭關(guān)系。
本步驟可以通過以下步驟(1)和(2)實現(xiàn),包括:
(1):控制終端獲取san中的每個主機(jī)的讀寫端口和san中的存儲陣列的存儲端口;
控制終端獲取san中的每個主機(jī)的當(dāng)前使用的讀寫端口以及主機(jī)當(dāng)前使用san中的存儲陣列的存儲端口。
(2):控制終端根據(jù)每個主機(jī)的讀寫端口和存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取每個主機(jī)的讀寫路徑的物理路徑信息。
在本步驟中,控制終端中存儲讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系,則控制終端根據(jù)每個主機(jī)的讀寫端口和存儲陣列的存儲端口,從已存儲的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取每個主機(jī)的讀寫路徑的物理路徑信息?;蛘?,
交換機(jī)中存儲讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系,控制終端從交換機(jī)中存儲的讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取每個主機(jī)的讀寫路徑的物理路徑信息。
在交換機(jī)中新增switchagent模塊,該switchagent模塊用于負(fù)責(zé)命令的解析處理,交換機(jī)會維護(hù)zone域信息,在zone域中維護(hù)著從讀寫端口到交換機(jī)到交換機(jī)到交換機(jī)目標(biāo)端口的路由數(shù)據(jù),也即在zone域存儲讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系。
則本步驟可以為:
控制終端向交換機(jī)發(fā)送查詢命令,該查詢命令攜帶每個主機(jī)的讀寫端口和存儲陣列的存儲端口;交換機(jī)接收控制終端發(fā)送的查詢命令,并從該查詢命令中獲取每個主機(jī)的讀寫端口和存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取每個主機(jī)的讀寫路徑的物理路徑信息,向控制終端發(fā)送每個主機(jī)的讀寫路徑的物理路徑信息;控制終端接收交換機(jī)發(fā)送的每個主機(jī)的讀寫路徑的物理路徑信息。
例如,該san中包括兩個主機(jī),分別為host1和host2,host1包括4個讀寫端口,分別為path1,path2,path3,path4;host2包括四個讀寫端口,分別為path1,path2,path3,path4;控制終端獲取每個主機(jī)的每個端口的讀寫路徑的物理路徑信息分別為:
host1:path1:i-s-st-t(0-0-0-0)
host1:path2:i-s-st-t(0-0-1-1)
host1:path3:i-s-st-t(1-1-0-0)
host1:path4:i-s-st-t(1-1-1-1)
host2:path1:i-s-st-t(2-1-0-0)
host2:path2:i-s-st-t(2-1-1-1)
host2:path3:i-s-st-t(1-0-0-0)
host2:path4:i-s-st-t(1-0-1-1)
預(yù)設(shè)時長可以根據(jù)需要進(jìn)行設(shè)置并更改,在本發(fā)明實施例中對預(yù)設(shè)時長不作具體限定;例如,預(yù)設(shè)時長為10s等。
步驟302:控制終端根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口。
對于任意一條讀寫路徑的物理路徑信息,控制終端可以從該讀寫路徑的物理路徑信息中獲取該讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口。
例如,一條讀寫路徑的物理路徑信息為i-s-st-t(1-0-1-1),則控制終端從該物理路徑信息中獲取該讀寫路徑對應(yīng)的交換機(jī)標(biāo)識為s(0),交換機(jī)目標(biāo)端口為st(1)。
步驟303:控制終端根據(jù)每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口。
控制終端根據(jù)每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定每個主機(jī)的讀寫路徑經(jīng)過的交換機(jī)端口;根據(jù)每個主機(jī)的讀寫路徑經(jīng)過的交換機(jī)端口,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口。
需要說明的是,在本步驟中可能存在多組經(jīng)過同一個交換機(jī)端口的讀寫路徑,多組經(jīng)過同一個交換機(jī)端口的讀寫路徑中的每組經(jīng)過同一個交換機(jī)端口的讀寫路徑至少包括兩條讀寫路徑,且該兩條讀寫路徑分別屬于不同的主機(jī)。也即本步驟可以為:
控制終端根據(jù)每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定是否存在多個主機(jī)的讀寫路徑經(jīng)過同一個交換機(jī)端口。
在本步驟中,控制終端也可以直接根據(jù)san中包括的每條讀寫路徑對應(yīng)的s-st是否相同,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口;如果存在任意兩條讀寫路徑對應(yīng)的s-st相同,確定該任意兩條讀寫路徑經(jīng)過同一個交換機(jī)端口。
如果任意兩條讀寫路徑對應(yīng)的s-st都不相同,則控制終端確定不存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口。
需要說明的是,在本步驟中,控制終端還可以確定是否存在多條讀寫路徑 經(jīng)過同一個存儲端口;或者,控制終端還可以確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口和同一個存儲端口。
控制終端確定是否存在多條讀寫路徑經(jīng)過同一個存儲端口的步驟可以為:
控制終端根據(jù)多條讀寫路徑中的每條讀寫路徑的物理路徑信息,獲取每條讀寫路徑經(jīng)過的存儲端口,根據(jù)每條讀寫路徑經(jīng)過的存儲端口,確定是否存在多條讀寫路徑經(jīng)過同一個存儲端口。
例如,由于host1path1與host2path3對應(yīng)的s-st-t相同、host1path2與host2path4對應(yīng)的s-st-t相同、host1path3與host2path1對應(yīng)的s-st-t相同、host1path4與host2path2對應(yīng)的s-st-t相同,則確定host1path1與host2path3經(jīng)過同一個交換機(jī)端口、host1path2與host2path4經(jīng)過同一個交換機(jī)端口、host1path3與host2path1經(jīng)過同一個交換機(jī)端口、host1path4與host2path2經(jīng)過同一個交換機(jī)端口。
在本發(fā)明實施例中,提出了一種新的物理路徑抽象信息描述結(jié)構(gòu),在這個結(jié)構(gòu)中增加了交換機(jī)的相關(guān)信息,通過這個結(jié)構(gòu)可以很好地描述多主機(jī)組網(wǎng)下的組網(wǎng)信息,這樣可以從這個物理路徑信息中識別出多主機(jī)組網(wǎng)的端口競爭關(guān)系。
步驟304:如果存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,控制終端確定每個主機(jī)的讀寫路徑存在競爭關(guān)系。
如果san中至少兩個主機(jī)的讀寫路徑經(jīng)過同一個交換機(jī)端口,控制終端確定該至少兩個主機(jī)的讀寫路徑存在競爭關(guān)系。
進(jìn)一步地,如果不存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,控制終端確定每個主機(jī)的讀寫路徑不存在競爭關(guān)系。
例如,由于host1path1與host2path3、host1path2與host2path4、host1path3與host2path1、host1path4與host2path2分別經(jīng)過同一個交換機(jī)端口,控制終端確定出host1path1與host2path3存在競爭關(guān)系、host1path2與host2path4存在競爭關(guān)系、host1path3與host2path1存在競爭關(guān)系、host1path4與host2path2存在競爭關(guān)系。
步驟305:控制終端根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。
控制終端設(shè)計一種單一端口負(fù)載算法,既是保證主機(jī)上負(fù)載io的路徑獨占 交換機(jī)端口,從而消除競爭關(guān)系,也即以下第一種實現(xiàn)方式;控制終端也可以不是只要有競爭關(guān)系就開始實施調(diào)整,而是當(dāng)存在競爭關(guān)系的讀寫路徑的質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量條件時才開始實施策略調(diào)整,也即以下第二種實現(xiàn)方式,第二種實現(xiàn)方式在性能要求不高的場景下可以暫時不進(jìn)行策略調(diào)整,減少控制終端的負(fù)擔(dān)。
對于第一種實現(xiàn)方式,本步驟可以為:
獲取存在競爭關(guān)系的多個讀寫路徑;從多個讀寫路徑中選擇部分讀寫路徑,將部分讀寫路徑設(shè)置為不可用狀態(tài)。
例如,存在多組存在競爭關(guān)系的讀寫路徑,從多組存在競爭關(guān)系的讀寫路徑中的每組存在競爭關(guān)系的讀寫路徑中選擇部分讀寫路徑,將每組存在競爭關(guān)系的讀寫路徑中選擇的部分讀寫路徑設(shè)置為不可用狀態(tài),而每組存在競爭關(guān)系的讀寫路徑中除選擇的讀寫路徑之外的未選擇的讀寫路徑仍為可用狀態(tài)。
例如,一組存在競爭關(guān)系的讀寫路徑中包括2條讀寫路徑,則可以將其中一條的讀寫路徑設(shè)置為不可用狀態(tài),而2條讀寫路徑中的另一條讀寫路徑仍為可用狀態(tài)。
再如,一組存在競爭關(guān)系的讀寫路徑中包括3條讀寫路徑,則可以將其中1條(或2條)的讀寫路徑設(shè)置為不可用狀態(tài),而3條讀寫路徑中的另2條(或1條)讀寫路徑仍為可用狀態(tài)。
例如,在步驟304中控制終端確定出host1path1與host2path3、host1path2與host2path4、host1path3與host2path1、host1path4與host2path2分別存在競爭關(guān)系。將s-st-t(0-0-0)端口提供給hostpath1負(fù)載使用,將s-st-t(0-1-1)端口提供給host1path2負(fù)載使用,將s-st-t(1-0-0)端口提供給host2path1負(fù)載使用,將s-st-t(0-1-1)端口提供給host2path2負(fù)載使用。
這樣host1在path1、path2負(fù)載io,host2在path1、path2負(fù)載io,保證各自獨占端口,避免了競爭,以host1為例,由于路徑path1,path2獨占端口,負(fù)載的隊列深度數(shù)據(jù)是準(zhǔn)確的,因此可以做到真正的負(fù)載均衡,如果一個端口的速率為8g,那么host1可以利用8g*2=16g的帶寬。
對于第二種實現(xiàn)方式,本步驟可以通過以下步驟(1)至(3)實現(xiàn),包括:
(1):獲取存在競爭關(guān)系的多個讀寫路徑中的每個讀寫路徑的質(zhì)量參數(shù);
如果存在多組存在競爭關(guān)系的讀寫路徑,則對于多組存儲競爭關(guān)系的讀寫 路徑中的每組存儲競爭關(guān)系的讀寫路徑,獲取該組存儲競爭關(guān)系的讀寫路徑中的每個讀寫路徑的質(zhì)量參數(shù)。
質(zhì)量參數(shù)可以為帶寬利用率和/或波動率大小。
(2):根據(jù)每個讀寫路徑的質(zhì)量參數(shù),從多個讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量參數(shù)條件的讀寫路徑;
如果存在多組存在競爭關(guān)系的讀寫路徑,從多組存在競爭關(guān)系的讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量條件的一組或多組存在競爭關(guān)系的讀寫路徑。
預(yù)設(shè)質(zhì)量參數(shù)條件可以為帶寬利用率不小于預(yù)設(shè)利用率和/或波動率不大于預(yù)設(shè)波動率。
預(yù)設(shè)利用率和預(yù)設(shè)波動率都可以根據(jù)需要進(jìn)行設(shè)置并更改,在本發(fā)明實施例中,對預(yù)設(shè)利用率和預(yù)設(shè)波動率都不作具體限定;例如,預(yù)設(shè)利用率為20%,預(yù)設(shè)波動率可以為70%等。
(3):根據(jù)負(fù)載均衡策略,對選擇的讀寫路徑進(jìn)行調(diào)整。
根據(jù)負(fù)載均衡策略,將選擇的讀寫路徑中的部分路徑設(shè)置為不可用狀態(tài)。
進(jìn)一步地,當(dāng)主機(jī)接收到讀寫請求時,主機(jī)根據(jù)該讀寫請求的目標(biāo)讀寫端口和目標(biāo)存儲端口,從經(jīng)過該目標(biāo)讀寫端口和目標(biāo)存儲端口且狀態(tài)為可用狀態(tài)的讀寫路徑中選擇一條排隊數(shù)據(jù)最小(負(fù)載最輕)的讀寫路徑,通過該選擇的讀寫路徑,對該讀寫請求進(jìn)行讀寫操作。
在本發(fā)明實施例中,獲取san中的每個主機(jī)的讀寫路徑的物理路徑信息,物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。由于對存在競爭關(guān)系的讀寫路徑進(jìn)行了調(diào)整,調(diào)整后的讀寫路徑不存在競爭關(guān)系,從而通過調(diào)整后的讀寫路徑進(jìn)行讀寫操作時延時較少,因此,本發(fā)明可以縮短延時。
本發(fā)明實施例提供了一種管理路徑信息的裝置,該裝置應(yīng)用在控制終端中,參見圖4,其中,該裝置包括:獲取模塊401,確定模塊402,調(diào)整模塊403。
獲取模塊401,用于獲取存儲區(qū)域網(wǎng)絡(luò)san中的每個主機(jī)的讀寫路徑的物理路徑信息,物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和 交換機(jī)目標(biāo)端口;
確定模塊402,用于根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;
調(diào)整模塊403,用于如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。
可選的,獲取模塊401,還用于獲取san中的每個主機(jī)的讀寫端口和san中的存儲陣列的存儲端口;根據(jù)每個主機(jī)的讀寫端口和存儲陣列的存儲端口,從讀寫端口、存儲端口和物理路徑信息的對應(yīng)關(guān)系中獲取每個主機(jī)的讀寫路徑的物理路徑信息。
可選的,確定模塊402,還用于根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)每個主機(jī)的讀寫路徑對應(yīng)的交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口,確定是否存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口;如果存在多條讀寫路徑經(jīng)過同一個交換機(jī)端口,確定每個主機(jī)的讀寫路徑存在競爭關(guān)系。
可選的,調(diào)整模塊403,還用于獲取存在競爭關(guān)系的多個讀寫路徑;從多個讀寫路徑中選擇部分讀寫路徑,將部分讀寫路徑設(shè)置為不可用狀態(tài)。
可選的,調(diào)整模塊403,還用于獲取存在競爭關(guān)系的多個讀寫路徑中的每個讀寫路徑的質(zhì)量參數(shù);根據(jù)每個讀寫路徑的質(zhì)量參數(shù),從多個讀寫路徑中選擇質(zhì)量參數(shù)不滿足預(yù)設(shè)質(zhì)量參數(shù)條件的讀寫路徑;根據(jù)負(fù)載均衡策略,對選擇的讀寫路徑進(jìn)行調(diào)整。
在本發(fā)明實施例中,獲取san中的每個主機(jī)的讀寫路徑的物理路徑信息,物理路徑信息包括目標(biāo)讀寫端口、目標(biāo)存儲端口、交換機(jī)標(biāo)識和交換機(jī)目標(biāo)端口;根據(jù)每個主機(jī)的讀寫路徑的物理路徑信息,確定每個主機(jī)的讀寫路徑是否存在競爭關(guān)系;如果存在競爭關(guān)系,根據(jù)負(fù)載均衡策略,對存在競爭關(guān)系的讀寫路徑進(jìn)行調(diào)整。由于對存在競爭關(guān)系的讀寫路徑進(jìn)行了調(diào)整,調(diào)整后的讀寫路徑不存在競爭關(guān)系,從而通過調(diào)整后的讀寫路徑進(jìn)行讀寫操作時延時較少,因此,本發(fā)明可以縮短延時。
需要說明的是:上述實施例提供的管理路徑信息的裝置在管理路徑信息時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上 述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的管理路徑信息的裝置與管理路徑信息的方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。