向網絡中的主機分配路徑的方法和系統的製作方法
2023-10-07 01:37:34 1
專利名稱:向網絡中的主機分配路徑的方法和系統的製作方法
技術領域:
本發明涉及一種用於使用負載均衡以向網絡中的主機分配路徑的方法、系統和程序。
背景技術:
存儲網絡中的主機系統可以通過多條路徑與存儲控制器通信。從主機到存儲控制器的路徑可以包括一個或多個中介交換機,以便交換機可以提供從主機埠到多個存儲控制器埠的多條路徑。
在現有技術中,每個主機可以確定直接或者通過交換機的不同路徑,其中這些路徑可以用來訪問由存儲控制器管理的卷。這些主機可以各自應用負載均衡算法,以確定路徑,以便用來將被定向到由存儲控制器管理的卷的I/O請求傳送到存儲控制器。該方案的一個缺點是如果不同的主機使用相同的負載均衡算法來單獨執行負載均衡,則它們可能集體地使存儲網絡的一部分超負載而使該網絡的其它部分利用不足。
因此,在本技術領域內需要用於向網絡環境中的主機分配路徑的改進技術。
發明內容
本發明提供一種用於使用負載均衡以向網絡中的主機分配路徑的方法、系統和程序。從主機接收主機路徑利用率(usage)信息,其表示到目標設備的路徑的主機利用率。執行負載均衡算法,以使用所接收的主機路徑利用率信息,以均衡主機的路徑利用的方式,向主機分配路徑,以便用來與目標設備通信。
圖1示出了網絡計算環境的實施例。
圖2a和2b示出了路徑可以如何將主機連接到存儲群集的實施例。
圖3示出了向網絡中的主機分配路徑以便用來存取存儲控制器的操作的實施例。
圖4示出了主機向網絡管理器傳達的路徑利用率信息的實施例。
圖5和6示出了執行負載均衡算法的操作的實施例。
具體實施例方式
圖1示出了網絡計算環境的實施例。存儲控制器2在網絡6上接收來自主機系統4a、4b...4n的輸入/輸出(I/O)請求,其被定向到各自被配置成具有一個或多個卷10a、10b(例如,邏輯單元號、邏輯設備等)的存儲設備8a、8b。存儲控制器2包括多個適配器12a、12b...12n,其中每個包括一個或多個埠,其中每個埠提供到存儲控制器2的端點。存儲控制器包括處理器複合體14;高速緩存16,用來緩存關於存儲設備8a、8b的I/O請求和數據;以及存儲管理軟體18,用來執行存儲管理相關操作,並且處理對卷10a、10b的I/O請求。存儲控制器2可以包括不同能力範圍(power boundary)的多個處理群集,以提供冗餘。主機4a、4b...4n包括I/O管理器26a、26b...26n程序,以管理在網絡6上I/O請求向適配器12a、12b...12n的傳送。在特定實施例中,該環境還可以包括管理器系統28,其包括網絡管理器程序30,以協調主機4a、4b...4n對存儲群集的存取,從而優化操作。
主機4a、4b...4n和管理器系統28可以在相對於網絡6的帶外網絡32上通信。主機4a、4b...4n可以在存儲網絡6如存儲區域網(SAN)上將I/O請求傳達到存儲控制器2,並且主機4a、4b...4n和管理器系統28可以在單獨的帶外網絡32如區域網(LAN)上相互之間傳達管理信息。主機4a、4b...4n可以在帶外網絡32上將其存儲網絡6拓撲結構信息傳達到管理器系統28,並且管理器系統28可以在帶外網絡32上與主機4a、4b...4n通信,以分配主機4a、4b...4n路徑,以便用來存取存儲控制器2。可選地,主機4a、4b...4n、管理器系統28和存儲控制器2可以在單個網絡例如網絡6上傳達I/O請求和協調相關信息。
存儲控制器2可以包括在本技術領域內公知的適合存儲控制器或伺服器,例如國際商業機器(IBM)企業級存儲伺服器(ESS)(企業級存儲伺服器和IBM是IBM的註冊商標)。可選地,存儲控制器2可以包括與高端企業級存儲伺服器相對的低端存儲伺服器。主機4a、4b...4n可以包括在本技術領域內公知的計算設備,例如伺服器、大型機、工作站、個人計算機、手持計算機、膝上型計算機、電話設備、網絡設備等。存儲網絡6可以包括存儲區域網(SAN)、區域網(LAN)、內聯網、網際網路、廣域網(WAN)等。帶外網絡32可以與存儲網絡6獨立,並且使用諸如LAN的網絡技術。存儲設備8a、8b可以包括存儲設備陣列,例如僅僅一堆盤(JBOD)、直接存取存儲設備(DASD)、獨立盤冗餘陣列(RAID)陣列、虛擬化設備、磁帶存儲設備、快閃記憶體等。
每個主機4a、4b...4n可以具有多條通過單獨的適配器(以及可能的交換機)到存儲控制器2的單獨路徑,以便如果一條路徑不能到達存儲控制器2,則主機4a、4b...4n可以繼續在其它路徑和適配器上存取存儲設備8a...8n。每個適配器可以包括多個埠,其提供多個存取端點。此外,在主機4a、4b...4n和存儲控制器2之間可能存在一級或多級交換機,以擴大從一個主機端點(埠)到存儲控制器2上的多個端點(例如,適配器埠)的路徑的數目。
圖2a和2b示出了圖1中的主機4a和4b與群集12a、12b可以如何連接的不同配置。圖2a示出了主機4a、4b如何各自具有多個適配器以提供到存儲控制器54中的存儲群集12a、12b的單獨路徑的一個配置,其中在每個主機4a、4b中存在到每個存儲群集12a、12b的單獨路徑。
圖2b示出了可選配置,其中每個主機4a、4b具有到每個交換機62a、62b的一條路徑,並且每個交換機62a、62b提供到每個存儲群集12a、12b的單獨路徑,從而向每個主機4a、4b提供到每個存儲群集12a、12b的附加路徑。
圖3示出了在管理器系統28的網絡管理器30程序中實現以向主機4a、4b...4n分配路徑以便用來存取存儲控制器2的操作的實施例。管理器系統28啟動均衡對路徑的主機分配的操作(在塊100)。可以周期性地執行該操作,以更新主機路徑分配,從而允許針對改變後的網絡條件的重新均衡。網絡管理器30從多個主機4a、4b...4n中的每個接收每個主機在到存儲控制器2的每條路徑上所具有的I/O數(在塊102)。I/O數可以包括主機在路徑上未決(即,已被發送但是尚未完成)的I/O數、每單位時間傳送的I/O數等。
圖4提供了主機4a、4b...4n可以針對主機用來與存儲控制器2通信的每條路徑傳送到管理器系統28的信息的實施例。對於每條路徑,主機路徑利用率信息130包括主機標識符132;主機埠134,提供路徑的主機端點;存儲控制器埠136,提供路徑的存儲控制器端點(其也可以包括中介交換機);路徑利用率138,其可以包括未決的或者測量時間段內的I/O數;以及I/O被定向的卷140。主機4a、4b...4n可以使用一條路徑來存取多個卷10a、10b。主機4a、4b...4n可以將附加和不同類型的信息傳送到管理器系統28,以協調操作。
回到圖3,網絡管理器30還接收關於在每條路徑上使用的當前帶寬和每條路徑上的總可用帶寬的信息(在塊104)。可以通過查詢網絡6中的交換機或其它設備來提供路徑利用率和帶寬信息。網絡管理器30確定每個主機在每條路徑上所具有的I/O比例,其可以通過對所有主機在共享路徑上所具有的總I/O進行求和然後確定路徑上的總I/O的每個主機百分比來確定(在塊106)。網絡管理器30以主機在路徑上所具有的I/O比例和路徑的當前帶寬利用率的函數,確定每條路徑上的主機帶寬利用率(在塊108)。如果對於路徑提供了子路徑信息,則網絡管理器30可以進一步考慮路徑的每條子路徑上的主機帶寬利用率。每條子路徑包括共享交換機上的端點和另一交換機上的端點、或者存儲控制器2埠。這樣,網絡管理器30可以考慮交換機之間或者交換機和存儲控制器2之間的每條子路徑上的I/O的每個主機的份額。網絡管理器30使用每條路徑或子路徑上的主機帶寬利用率執行負載均衡算法,以向路徑分配主機,以便均衡到由存儲控制器管理的卷的每條子路徑上的主機路徑利用率(在塊110)。網絡管理器30可以使用在本技術領域內公知的負載均衡算法,其考慮節點之間的點及其I/O利用率權重,確定節點之間的最優路徑分配,以均衡帶寬利用率。網絡管理器30可以向每個主機傳達主機用來通過存儲控制器存取存儲設備的至少一條路徑的分配(在塊112)。向主機傳達的路徑信息可以包括主機端點(埠)和存儲控制器端點(埠),以用來與存儲控制器2通信。此外,負載均衡算法可以針對每個主機和每個捲來提供最優路徑分配。網絡管理器30因而可以向每個主機4a、4b...4n傳達每個主機可以用來存取卷的路徑的分配。
在特定實施例中,路徑分配可以包括主機用來存取存儲控制器/卷的優選路徑。在一個實施例中,如果主機未被分配用來存取卷的路徑,則主機不可使用未被分配的路徑。可選地,在出故障的情況下,主機可以使用未被分配的路徑。在另外實施例中,對於不同的操作環境,不同的策略可能是適當的。例如,如果存儲網絡6健康,即所有或大部分路徑可用,則可以向主機分配路徑,使得除非主機別無選擇,否則它們不能使用未被分配的路徑。相反,如果網絡6具有眾多出故障的路徑,則以較低服務質量級別操作或者駐留較不重要的應用的特定主機可能被迫停止I/O,以對被視為具有較大優先級或重要性的那些主機提供連續存取,從而關鍵性I/O的性能不受影響。
圖5示出了在圖3的塊110由網絡管理器30執行以執行負載均衡操作的操作實施例。當啟動負載均衡算法(在塊150)時,網絡管理器30在計算機可讀存儲器中形成圖或映射圖,其提供網絡6內的主機節點和卷之間的路徑中的所有主機節點、連接到主機節點的交換機節點、交換機節點、存儲控制器節點、以及可通過存儲控制器節點存取的卷的計算機實現表示(在塊152)。通過網絡管理器30向主機4a、4b...4n查詢主機路徑利用率信息,或者主機4a、4b...4n自動地傳送該信息,可以形成該圖。類似地,通過網絡管理器30查詢網絡32的帶外網絡或者網絡6的帶內網絡中的交換機,可以獲得關於交換機和路徑帶寬利用率以及最大可能帶寬的信息。然後,網絡管理器30執行負載均衡算法,如多路徑負載均衡算法,以向每個主機分配路徑以便使用(在塊154)。如同所述,網絡管理器30可以使用在本技術領域內公知的路徑負載均衡算法,其處理節點圖,以確定向主機的路徑分配以便用來存取存儲設備中的卷。該圖可以包括節點、頂點和邊的圖或網,然後應用標準分區和流優化算法,以確定最優的對路徑的主機負載均衡。在另外實施例中,管理器可以向特定主機、卷、或其它網絡(例如,SAN)組件分配較大的權重,以分配或表示使用特定網絡組件的優先權。
在另外的實施例中,每個主機4a、4b...4n可以被分配到特定服務質量級別。服務質量級別為主機保證一定量的路徑冗餘和帶寬。這樣,高服務質量級別(例如,鉑金、金)可以保證以高帶寬級別分配多條路徑、以及沒有單故障點,而較低服務質量級別可以保證較少的帶寬以及較少的冗餘或者沒有冗餘。
圖6示出了在圖3的塊110由網絡管理器30執行以執行負載均衡操作從而考慮主機4a、4b...4n的不同服務質量級別的操作的附加實施例。當啟動負載均衡算法(在塊200)時,網絡管理器30確定網絡中的所有可用節點的當前集合,包括主機和存儲控制器端點節點之間的路徑中的主機節點、交換機節點、存儲控制器節點,以及可通過存儲控制器節點存取的卷(在塊202)。然後,網絡管理器30針對主機4a、4b...4n和/或卷10a、10b...10n被分配的每個服務質量級別,執行塊204到214的操作循環。如同所述,服務質量級別可以指定冗餘路徑數、單故障點級別、以及帶寬。網絡管理器30可以從最高服務質量級別開始在塊204到214考慮服務質量級別,並且在每個後繼迭代,考慮下一個較低的服務質量級別。對於每個服務質量級別i,網絡管理器30確定被分配到服務質量級別i的所有主機4a、4b...4n和/或卷10a、10b...10n(在塊206)。形成網絡節點圖,其包括在所確定的主機和存儲控制器端點節點之間的所有可用節點的當前集合中所有確定的主機節點、交換機節點、以及存儲控制器節點(在塊208)。對於最高服務質量,可用節點的當前集合包括網絡中的所有路徑。網絡管理器30執行負載均衡算法,以處理該圖,從而向被分配到服務質量i的每個所確定主機分配預定數目的路徑以便使用(在塊210)。從可用節點的當前集合中刪除被分配給所確定的主機或卷的路徑(例如,一個或多個交換機節點和存儲控制器節點)或者路徑帶寬(在塊212)。然後,控制回到塊206(在塊214),以針對較小的可用路徑集合,即交換機和存儲控制器節點,考慮為其分配路徑的次高服務質量級別。
通過圖6的操作,每個服務質量級別與路徑組相關聯,使得被分配到該服務質量級別的主機可以利用該級別的組中的那些路徑。在一個實施例中,較低服務質量級別中的主機不可使用被分配到較高服務質量級別的路徑組。然而,被分配到一個服務質量級別的主機可以使用被分配到較低服務質量級別的路徑組中的路徑。在另一實施例中,主機被分配路徑或其它網絡組件上的帶寬的不多於指定部分,並且必須將它們限制成不超過所示閾值。
所述實施例提供了這樣的技術,其用於通過讓網絡管理器執行關於所有主機和到目標設備的路徑的負載均衡,對存儲網絡中的主機之間的路徑分配進行負載均衡,然後傳達主機的路徑分配以便用來存取目標設備。
附加實施例細節所述操作可以被實現為使用標準編程和/或工程技術來生產軟體、固件、硬體或其任何組合的方法、設備或產品。所述操作可以被實現為在「計算機可讀介質」中維護的代碼,其中處理器可以從計算機可讀介質讀取並執行代碼。計算機可讀介質可以包括諸如磁存儲介質(例如,硬碟驅動器、軟盤、磁帶等)、光學存儲裝置(CD-ROM、DVD、光碟等)、易失性和非易失性存儲器裝置(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、快閃記憶體、固件、可編程邏輯電路等)等的介質。實現所述操作的代碼可以在硬體邏輯電路中實現(例如,集成電路晶片、可編程門陣列(PGA)、專用集成電路(ASIC)等)。另外,實現所述操作的代碼可以在「傳輸信號」中實現,其中傳輸信號可以通過空間或者通過諸如光纖、銅線等的傳輸介質來傳播。在其中編碼了代碼或邏輯的傳輸信號還可以包括無線信號、衛星傳輸、無線電波、紅外線信號、藍牙等。在其中編碼了代碼或邏輯的傳輸信號能夠由發射站發射並且由接收站接收,其中可以對在傳輸信號中編碼的代碼或邏輯進行解碼,並且將其存儲在接收和發射站或設備的硬體或計算機可讀介質中。「產品」包括可以在其中實現代碼的計算機可讀介質、硬體邏輯和/或傳輸信號。在其中編碼了實現所述操作實施例的代碼的裝置可以包括計算機可讀介質或硬體邏輯。當然,本領域的技術人員將認識到,可以對該配置進行很多修改,而不背離本發明的範圍,並且產品可以包括在本技術領域內公知的適合信息承載介質。
所述實施例討論了優化主機4a、4b...4n與一個存儲控制器2之間的路徑。在另外實施例中,優化和負載均衡可以被擴展成在多個主機和多個存儲控制器以及不同存儲控制器上的卷之間均衡路徑。
除非另外特別指出,術語「實施例(an embodiment)」、「實施例(embodiment)」、「多個實施例(embodiments)」、「本實施例(theembodiment)」、「這些實施例(the embodiments)」、「一個或多個實施例」、「「一些實施例」、以及「一個實施例」意味著「本發明的一個或多個(而非全部)實施例」。
除非另外特別指出,術語「包括(including)」、「包括(comprising)」、「具有(having)」及其變化形式意味著「包括但不限於」。
除非另外特別指出,項目的枚舉列表不意味著這些項目中的任何或所有項目是互斥的。
除非另外特別指出,術語「一個(a)」、「一個(an)」和「該(the)」意味著「一個或多個」。
除非另外特別指出,相互通信的設備無需處於連續的相互通信。另外,相互通信的設備可以直接地或通過一個或多個中介物間接地通信。
具有相互通信的若干組件的實施例的描述並不意味著需要所有這樣的組件。相反,描述了各種可選組件是為了說明本發明的各種可能實施例。
此外,雖然可以按照順序描述處理步驟、方法步驟、算法等,但是這些處理、方法和算法可以被配置成以替代次序工作。換句話說,可以描述的任何步驟順序或次序不一定表示以該次序執行步驟的要求。這裡所述的處理步驟可以以任何實際次序執行。此外,可以同時執行一些步驟。
當這裡描述了單個設備或物品時,應當容易地清楚,可以使用多於一個設備/物品(無論它們是否協作)來代替單個設備/物品。類似地,當這裡描述了多於一個設備或物品(無論它們是否協作)時,應當容易地清楚,可以使用單個設備/物品來代替該多於一個設備或物品,或者可以使用不同數目的設備/物品來代替所示數目的設備或程序。設備的功能性和/或特徵可以可選地由未被顯式地描述為具有這樣的功能性/特徵的一個或多個其它設備實施。這樣,本發明的其它實施例無需包括設備本身。
圖3、5和6的所示操作示出了以特定次序發生的特定事件。在可選實施例中,可以以不同的次序執行、修改或刪除特定操作。此外,可以將步驟添加到上述邏輯,並且仍然遵循所述實施例。此外,可以順序地發生這裡描述的操作,或者可以並行地處理特定操作。另外,可以由單個處理單元或者由分布式處理單元執行操作。
本發明的各個實施例的前面描述是為了說明和描述的目的而提供的。它不意欲是窮盡性的,或者將本發明局限於所公開的確切形式。鑑於上面教導,很多修改和變化是可能的。本發明的範圍不意欲由本詳細描述限制,而是由所附權利要求限制。上面說明書、示例和數據提供了本發明的組成的製造和使用的完整描述。由於可以產生本發明的很多實施例而不脫離本發明的精神和範圍,因此本發明居於所附權利要求之內。
權利要求
1.一種方法,包括從主機接收主機路徑利用率信息,其表示到目標設備的路徑的主機利用率;以及使用所接收的主機路徑利用率信息執行負載均衡算法,從而以均衡主機的路徑利用的方式,向主機分配路徑,以便用來與目標設備通信。
2.如權利要求1所述的方法,還包括接收到目標設備的路徑上的路徑帶寬利用率,其中負載均衡算法使用所接收的路徑帶寬利用率和主機路徑利用率信息來向主機分配路徑;以及向每個主機傳達主機用來存取目標設備的至少一條路徑的分配。
3.如權利要求2所述的方法,其中接收路徑利用率信息包括從主機接收主機在路徑上所具有的輸入/輸出請求數,其中從主機到目標設備的路徑中的至少一個交換機接收路徑上的路徑帶寬利用率,還包括針對每個主機和由該主機使用的路徑,作為該主機在該路徑上所具有的I/O請求的比例和該路徑上的路徑帶寬利用率的函數,確定該路徑上的主機帶寬利用率,其中負載均衡算法向路徑分配主機,以均衡路徑的主機帶寬利用率。
4.如權利要求1所述的方法,其中目標設備包括存儲控制器,其提供對在其中配置了多個卷的存儲設備的訪問,其中主機提供存儲設備中的每個卷的路徑利用率信息,其中負載均衡算法基於每個卷而對路徑利用率進行均衡,並且其中分配表示主機用來存取特定卷的至少一條路徑的分配。
5.如權利要求1所述的方法,還包括維護主機的服務質量信息,其中負載均衡算法將主機分配到多個組之一,其中每個組包括用來存取目標設備的至少一條路徑,其中每個組與一個服務質量級別相關聯,並且為與該服務質量級別相關聯的主機提供至少一條路徑,以便使用。
6.如權利要求5所述的方法,其中所傳達的至少一個主機的分配表示該主機不能用來存取目標設備的至少一條路徑,以為與比該主機的服務質量級別更高的服務質量級別相關聯的主機保留路徑。
7.如權利要求1所述的方法,其中執行負載均衡算法還包括定義圖,其表示網絡中的所有主機節點、主機節點和目標設備節點之間的交換機節點、以及目標設備節點,其中路徑包括主機節點之一和目標設備節點之一,並且其中負載均衡算法處理該圖以確定路徑向主機的分配。
8.如權利要求1所述的方法,其中主機中的每一個被分配到多個服務質量級別中的一個,並且其中執行負載均衡算法包括通過關於可用路徑或帶寬以及被分配到迭代的服務質量的主機的負載均衡,從最高服務質量級別開始到最低質量級別,針對每個服務質量級別,執行負載均衡的迭代,其中在每個後續迭代,從考慮分配的可用路徑中刪除在先前迭代期間向主機分配的路徑。
9.一種與多個主機通信的系統,其中主機在到目標設備的網絡路徑上通信,包括處理器;以及計算機可讀介質,包括由處理器執行以執行操作的代碼,該操作包括從主機接收主機路徑利用率信息,其表示到目標設備的路徑的主機利用率;以及使用所接收的主機路徑利用率信息執行負載均衡算法,從而以均衡主機的路徑利用的方式,向主機分配路徑,以便用來與目標設備通信。
10.如權利要求9所述的系統,其中該操作還包括接收到目標設備的路徑上的路徑帶寬利用率,其中負載均衡算法使用所接收的路徑帶寬利用率和主機路徑利用率信息來向主機分配路徑;以及向每個主機傳達主機用來存取目標設備的至少一條路徑的分配。
11.如權利要求10所述的系統,其中接收路徑利用率信息包括從主機接收主機在路徑上所具有的輸入/輸出請求數,其中從主機到目標設備的路徑中的至少一個交換機接收路徑上的路徑帶寬利用率,並且其中該操作還包括針對每個主機和由該主機使用的路徑,作為該主機在該路徑上所具有的I/O請求的比例和該路徑上的路徑帶寬利用率的函數,確定該路徑上的主機帶寬利用率,其中負載均衡算法向路徑分配主機,以均衡路徑的主機帶寬利用率。
12.如權利要求9所述的系統,其中目標設備包括存儲控制器,其提供對在其中配置了多個卷的存儲設備的訪問,其中主機提供存儲設備中的每個卷的路徑利用率信息,其中負載均衡算法基於每個卷而對路徑利用率進行均衡,並且其中向每個主機傳達的分配表示主機用來存取特定卷的至少一條路徑的分配。
13.如權利要求9所述的系統,其中該操作還包括維護主機的服務質量信息,其中負載均衡算法將主機分配到多個組之一,其中每個組包括用來存取目標設備的至少一條路徑,其中每個組與一個服務質量級別相關聯,並且為與該服務質量級別相關聯的主機提供至少一條路徑,以便使用。
14.如權利要求9所述的系統,其中主機中的每一個被分配到多個服務質量級別中的一個,並且其中執行負載均衡算法包括通過關於可用路徑或帶寬以及被分配到迭代的服務質量的主機的負載均衡,從最高服務質量級別開始到最低質量級別,針對每個服務質量級別,執行負載均衡的迭代,其中在每個後續迭代,從考慮分配的可用路徑中刪除在先前迭代期間向主機分配的路徑。
15.一種方法,包括從主機接收主機路徑利用率信息,其表示到目標設備的路徑的主機利用率;接收到目標設備的路徑上的路徑帶寬利用率;使用所接收的主機路徑利用率信息和所接收的路徑帶寬利用率,執行負載均衡算法,從而以均衡主機的路徑利用的方式,向主機分配路徑,以便用來與目標設備通信;以及向每個主機傳達主機用來存取目標設備的至少一條路徑的分配。
全文摘要
本發明提供一種用於使用負載均衡以向網絡中的主機分配路徑的方法、系統和程序。從主機接收主機路徑利用率信息,其表示到目標設備的路徑的主機利用率。執行負載均衡算法,以使用所接收的主機路徑利用率信息,以均衡主機的路徑利用的方式,向主機分配路徑,以便用來與目標設備通信。
文檔編號H04L29/08GK1968285SQ200610153910
公開日2007年5月23日 申請日期2006年9月12日 優先權日2005年11月14日
發明者蒂末希·查爾斯·派伯爾 申請人:國際商業機器公司