欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

集群存儲(chǔ)系統(tǒng)中的負(fù)載平衡的制作方法

文檔序號(hào):7868595閱讀:227來(lái)源:國(guó)知局
專利名稱:集群存儲(chǔ)系統(tǒng)中的負(fù)載平衡的制作方法
技術(shù)領(lǐng)域
本公開內(nèi)容涉及集群存儲(chǔ)系統(tǒng)中的負(fù)載平衡。
背景技術(shù)
企業(yè)和云數(shù)據(jù)中心可以包括數(shù)以萬(wàn)計(jì)的服務(wù)器,其向大量用戶和應(yīng)用提供拍字節(jié)(petabytes)量級(jí)的存儲(chǔ)。此外,隨著云服務(wù)持續(xù)快速增長(zhǎng),正在建立大規(guī)模云存儲(chǔ)系統(tǒng)以向全球數(shù)十億用戶提供數(shù)據(jù)服務(wù)。這些系統(tǒng)的主要目的是提供具有可伸縮性能和高可用性的數(shù)據(jù)存儲(chǔ)系統(tǒng),同時(shí)使操作開銷尤其使在存儲(chǔ)系統(tǒng)中移動(dòng)數(shù)據(jù)的帶寬成本最小化。然而,各種輸入/輸出(I/O)工作負(fù)載可引起服務(wù)器之間的顯著的數(shù)據(jù)失衡,導(dǎo)致形成熱點(diǎn)(hotspot),或者因大量I/O請(qǐng)求而負(fù)載過(guò)重的服務(wù)器/磁盤驅(qū)動(dòng)器。這種熱點(diǎn)會(huì)引起到終端用戶的高度延遲。因此,這些服務(wù)通常每天對(duì)太字節(jié)(terabyte)量級(jí)的數(shù)據(jù)進(jìn)行混洗以平衡各集群上的負(fù)載。此外,在云上建立數(shù)據(jù)庫(kù)的背景下也提出并積極地討論了相同的挑戰(zhàn)。然而,這種解決方案要么沒(méi)有解決動(dòng)態(tài)負(fù)載重配置,要么假設(shè)對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)知道動(dòng)態(tài)數(shù)據(jù)遷移的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)。此外,現(xiàn)有技術(shù)致力于分別解決這些挑戰(zhàn)。為了解決負(fù)載失衡,許多技術(shù)例如基于散列法在集群上隨機(jī)地分布對(duì)象或者對(duì)各個(gè)數(shù)據(jù)對(duì)象進(jìn)行動(dòng)態(tài)布置。然而,適應(yīng)性地重分配對(duì)象涉及對(duì)數(shù)以億計(jì)的對(duì)象的負(fù)載模式的了解。針對(duì)這些模式來(lái)優(yōu)化重配置成本需要脫機(jī)解算機(jī),例如基于背包(knapsack)或線性規(guī)劃的解算機(jī),來(lái)做出遷移決策。然而,因?yàn)檫@種優(yōu)化是固有地昂貴的,因此這些措施適合于小規(guī)模而在系統(tǒng)變得大規(guī)模時(shí)較不有效。同時(shí),例如通過(guò)使用模擬退火或進(jìn)化算法犧牲有效性來(lái)實(shí)現(xiàn)可伸縮性的措施具有重配置成本高的問(wèn)題。

發(fā)明內(nèi)容
以下給出本發(fā)明的簡(jiǎn)要概述,以便提供對(duì)本文所描述的一些方面的基本理解。該概述并不是對(duì)所要求保護(hù)的主題的全面綜述。既不意在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵的或重要的元素,也不意在界定本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化的形式給出所要求保護(hù)的主題的一些概念,以作為對(duì)稍后給出的更加詳細(xì)的描述的序言?!獋€(gè)實(shí)施方式提供了一種用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的方法。該方法包括識(shí)別集群存儲(chǔ)系統(tǒng)內(nèi)的要從其移動(dòng)一定數(shù)量的數(shù)據(jù)對(duì)象的源節(jié)點(diǎn),其中,該源節(jié)點(diǎn)包括具有超過(guò)閾值的總負(fù)載的節(jié)點(diǎn)。該方法還包括選擇要從源節(jié)點(diǎn)移動(dòng)的數(shù)據(jù)對(duì)象,其中,將數(shù)據(jù)對(duì)象選擇為使得源節(jié)點(diǎn)的總負(fù)載不再超過(guò)閾值。該方法還包括基于與源節(jié)點(diǎn)的接近度以及目標(biāo)節(jié)點(diǎn)的總負(fù)載來(lái)確定集群存儲(chǔ)系統(tǒng)內(nèi)的目標(biāo)節(jié)點(diǎn),以及將數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)至目標(biāo)節(jié)點(diǎn)。另一個(gè)實(shí)施方式提供了一種用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的系統(tǒng)。該系統(tǒng)包括源節(jié)點(diǎn),其中,該源節(jié)點(diǎn)是集群存儲(chǔ)系統(tǒng)內(nèi)的具有超過(guò)閾值的第一總負(fù)載的節(jié)點(diǎn)。該系統(tǒng)還包括目標(biāo)節(jié)點(diǎn),其中,該目標(biāo)節(jié)點(diǎn)是集群存儲(chǔ)系統(tǒng)內(nèi)的具有不超過(guò)閾值的第二總負(fù)載的節(jié)點(diǎn)?;谂c源節(jié)點(diǎn)的接近度來(lái)選擇目標(biāo)節(jié)點(diǎn)。該系統(tǒng)還包括負(fù)載平衡系統(tǒng),該負(fù)載平衡系統(tǒng)被配置成:選擇要從源節(jié)點(diǎn)移動(dòng)至目標(biāo)節(jié)點(diǎn)的一定數(shù)量的數(shù)據(jù)對(duì)象,其中,數(shù)據(jù)對(duì)象被選擇為使得源節(jié)點(diǎn)的第一總負(fù)載不再超過(guò)閾值;以及將數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)至目標(biāo)節(jié)點(diǎn)。另一個(gè)實(shí)施方式提供了一種或更多種用于存儲(chǔ)計(jì)算機(jī)可讀指令的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀指令在被一個(gè)或更多個(gè)處理設(shè)備運(yùn)行時(shí)提供負(fù)載平衡系統(tǒng)。計(jì)算機(jī)可讀指令包括下述代碼,該代碼被配置成識(shí)別要從其移動(dòng)一定數(shù)量的數(shù)據(jù)對(duì)象的源節(jié)點(diǎn),其中,源節(jié)點(diǎn)是熱點(diǎn)。該計(jì)算機(jī)可讀指令還包括下述代碼,該代碼被配置成選擇要從源節(jié)點(diǎn)移動(dòng)的數(shù)據(jù)對(duì)象,其中,數(shù)據(jù)對(duì)象被選擇為使得源節(jié)點(diǎn)不再是熱點(diǎn)。此外,該計(jì)算機(jī)可讀指令包括下述代碼,該代碼被配置成:確定目標(biāo)節(jié)點(diǎn),其中,目標(biāo)節(jié)點(diǎn)不是熱點(diǎn)并且位于距離源節(jié)點(diǎn)的預(yù)定范圍內(nèi);以及將數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)至目標(biāo)節(jié)點(diǎn)。提供本概述從而以簡(jiǎn)化的形式對(duì)概念的選擇進(jìn)行介紹;以下還在具體說(shuō)明中進(jìn)一步描述這些概念。本概述并不意在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或本質(zhì)特征,也不意在用來(lái)限制所要求保護(hù)的主題的范圍。


圖1是可以用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的計(jì)算系統(tǒng);圖2是可以針對(duì)其進(jìn)行負(fù)載平衡以實(shí)現(xiàn)高可伸縮性并降低重配置成本的集群存儲(chǔ)系統(tǒng)的實(shí)施方式;圖3是用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的方法的框圖;圖4是用于交疊熱點(diǎn)的不相交的組的分治(divide-and conquer)負(fù)載平衡措施的圖解;以及圖5是示出存儲(chǔ)有適于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的代碼的有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)的框圖。貫穿本公開內(nèi)容和附圖,使用相同的附圖標(biāo)記來(lái)指代類似的部件和特征。100系列的附圖標(biāo)記指代最初存在于圖1中的特征,200系列的附圖標(biāo)記指代最初存在于圖2中的特征,300系列的附圖標(biāo)記指代最初存在于圖3中的特征,等等。
具體實(shí)施例方式本文公開的各種實(shí)施方式闡述了一種用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的方法和系統(tǒng)。可以通過(guò)將特定的數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)遷移至任何數(shù)量的目標(biāo)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)負(fù)載平衡。源節(jié)點(diǎn)可以是“熱點(diǎn)”,其中,熱點(diǎn)是具有超過(guò)預(yù)定閾值的合計(jì)負(fù)載的節(jié)點(diǎn),該合計(jì)負(fù)載例如是每秒鐘的輸入/輸出(I/o)操作的總數(shù)或者每秒鐘傳送的用于讀操作和寫操作的字節(jié)的總數(shù)。此外,可以基于針對(duì)每個(gè)數(shù)據(jù)對(duì)象的大小、請(qǐng)求或I/o操作的數(shù)量或其他標(biāo)準(zhǔn)來(lái)選擇要從源節(jié)點(diǎn)移動(dòng)至目標(biāo)節(jié)點(diǎn)的特定數(shù)據(jù)對(duì)象。可以根據(jù)每個(gè)數(shù)據(jù)對(duì)象的負(fù)載值來(lái)按順序布置數(shù)據(jù)對(duì)象,其中,負(fù)載值指定針對(duì)特定數(shù)據(jù)對(duì)象的I/o請(qǐng)求的數(shù)量??梢韵葘⒕哂凶畲筘?fù)載值的數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)遷移至目標(biāo)節(jié)點(diǎn)??梢砸越敌?,即從最高負(fù)載值至最低負(fù)載值來(lái)繼續(xù)數(shù)據(jù)對(duì)象的遷移,直到源節(jié)點(diǎn)的合計(jì)負(fù)載下降至預(yù)定閾值以下為止。本文公開的系統(tǒng)和方法可以根據(jù)“移動(dòng)操作”來(lái)進(jìn)行數(shù)據(jù)對(duì)象的遷移,其涉及數(shù)據(jù)對(duì)象在兩個(gè)分區(qū)(partition)之間的遷移。這兩個(gè)分區(qū)可以是存儲(chǔ)在兩個(gè)單獨(dú)的節(jié)點(diǎn)內(nèi)的數(shù)據(jù)塊(chunk),其中,數(shù)據(jù)塊可以是具有某預(yù)定大小的信息片段。可以進(jìn)行移動(dòng)操作以使得數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)至最近的合適的目標(biāo)節(jié)點(diǎn)。此外,在各種實(shí)施方式中,可以假設(shè)在移動(dòng)操作之前已經(jīng)進(jìn)行了“交換操作”。交換操作可以涉及對(duì)分區(qū)的主副本和次級(jí)副本的角色進(jìn)行切換,其中,主副本和次級(jí)副本可以位于集群存儲(chǔ)系統(tǒng)內(nèi)的兩個(gè)單獨(dú)的節(jié)點(diǎn)上。作為初步事項(xiàng),一些附圖在一個(gè)或更多個(gè)結(jié)構(gòu)部件的上下文中描述概念,該結(jié)構(gòu)部件不同地稱為功能、模塊、特征、元件等。附圖中示出的各種部件可以以任何方式實(shí)現(xiàn),例如通過(guò)軟件、硬件(例如分立邏輯部件等)、固件等或這些實(shí)現(xiàn)方式的任意組合。在一個(gè)實(shí)施方式中,各種部件可以反映相應(yīng)部件在實(shí)際實(shí)現(xiàn)方式中的使用。在其他實(shí)施方式中,附圖中所示出的任何單個(gè)部件可以由一定數(shù)量的實(shí)際部件來(lái)實(shí)現(xiàn)。附圖中對(duì)任何兩個(gè)或更多個(gè)分離的部件的描繪可以反映由單個(gè)實(shí)際部件執(zhí)行的不同功能。圖1提供了與可以用于實(shí)現(xiàn)附圖所示的功能的一個(gè)系統(tǒng)有關(guān)的細(xì)節(jié)。其他附圖以流程圖的形式對(duì)概念進(jìn)行了描述。以這種形式,某些操作被描述為構(gòu)成以一定順序執(zhí)行的各個(gè)塊。這樣的實(shí)現(xiàn)方式是示例性的而非限制性的。本文所描述的某些塊可以組合在一起并且在單個(gè)操作中執(zhí)行,某些塊可以被分開成多個(gè)部件塊,并且某些塊可以以與本文所示出的順序不同的順序來(lái)執(zhí)行,包括以并行方式執(zhí)行各個(gè)塊。流程圖中所示的塊可以由軟件、硬件、固件、手動(dòng)處理等或者這些實(shí)現(xiàn)方式的任意組合來(lái)實(shí)現(xiàn)。如本文所使用的,硬件可以包括計(jì)算機(jī)系統(tǒng)、分立邏輯部件如專用集成電路(ASIC)等、及其任意組合。關(guān)于術(shù)語(yǔ),短語(yǔ)“被配置成”包括可以將任何類型的功能構(gòu)造成進(jìn)行所標(biāo)識(shí)的操作的任何方式。功能可以被配置成使用例如軟件、硬件、固件等或其任意組合來(lái)執(zhí)行操作。術(shù)語(yǔ)“邏輯”包括用于執(zhí)行任務(wù)的任何功能。例如,流程圖中示出的每個(gè)操作對(duì)應(yīng)于用于執(zhí)行該操作的邏輯??梢允褂美畿浖⒂布?、固件等或其任意組合來(lái)執(zhí)行操作。如本文所使用的,術(shù)語(yǔ)“部件”、“系統(tǒng)”、“客戶端”等意在指與計(jì)算機(jī)有關(guān)的實(shí)體,或者是軟件、硬件(例如在運(yùn)行中)和/或固件或其組合。例如,部件可以是運(yùn)行在處理器上的處理、對(duì)象、可執(zhí)行文件、程序、功能、庫(kù)、子例程和/或計(jì)算機(jī)或軟件與硬件的組合。作為示例,運(yùn)行在服務(wù)器上的應(yīng)用以及服務(wù)器二者都可以是部件。一個(gè)或更多個(gè)部件可以駐留在處理內(nèi)并且部件可以位于一個(gè)計(jì)算機(jī)上和/或分布在兩個(gè)或更多個(gè)計(jì)算機(jī)之間。術(shù)語(yǔ)“處理器”通常理解為指的是硬件部件,如計(jì)算機(jī)系統(tǒng)的處理單元。此外,所要求保護(hù)的主題可以被實(shí)現(xiàn)為下述方法、裝置或產(chǎn)品:其使用標(biāo)準(zhǔn)的編程和/或工程技術(shù)來(lái)產(chǎn)生軟件、固件、硬件或其任意組合,以控制計(jì)算機(jī)來(lái)實(shí)現(xiàn)所公開的主題。本文所使用的術(shù)語(yǔ)“產(chǎn)品”意在包括可從任何非暫態(tài)計(jì)算機(jī)可讀裝置或介質(zhì)訪問(wèn)的計(jì)算機(jī)程序。非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括但不限于磁存儲(chǔ)設(shè)備(例如硬盤、軟盤、磁條及其他)、光盤(例如壓縮盤(⑶)和數(shù)字通用盤(DVD)及其他)、智能卡以及閃存裝置(例如卡、棒和鍵驅(qū)動(dòng)器及其他)。相比之下,計(jì)算機(jī)可讀介質(zhì)通常(即未必是存儲(chǔ)介質(zhì))可以另外包括通信介質(zhì),如用于無(wú)線信號(hào)的傳輸介質(zhì)等。圖1是可以用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的計(jì)算系統(tǒng)100。計(jì)算系統(tǒng)100可以被包括在計(jì)算設(shè)備中,計(jì)算設(shè)備例如是桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)或移動(dòng)設(shè)備以及其他。此外,計(jì)算系統(tǒng)100可以被實(shí)現(xiàn)在服務(wù)器中,其中,服務(wù)器可以包括Web服務(wù)器或云服務(wù)器以及其他。計(jì)算系統(tǒng)100可以包括適于運(yùn)行所存儲(chǔ)的指令的處理器102以及存儲(chǔ)可由處理器102運(yùn)行的指令的存儲(chǔ)器設(shè)備104。處理器102可以是單核處理器、多核處理器、計(jì)算集群或任何數(shù)量的其他配置。存儲(chǔ)器設(shè)備104可以包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存或任何其他合適的存儲(chǔ)器系統(tǒng)。由處理器102運(yùn)行的被存儲(chǔ)的指令可以通過(guò)將特定數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)至任何數(shù)量的目標(biāo)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的方法。處理器102可以通過(guò)總線106連接至一個(gè)或更多個(gè)輸入設(shè)備和輸出設(shè)備。計(jì)算系統(tǒng)100可以包括適于存儲(chǔ)負(fù)載平衡模塊110的存儲(chǔ)設(shè)備108。在各種實(shí)施方式中,負(fù)載平衡模塊110可以與在存儲(chǔ)設(shè)備108上托管的其他模塊或者計(jì)算系統(tǒng)100內(nèi)的控制系統(tǒng)部件交互或配合。此外,在各種實(shí)施方式中,計(jì)算系統(tǒng)100可以是分布式系統(tǒng),而負(fù)載平衡模塊110可以是分布式程序。存儲(chǔ)設(shè)備108可以包括硬盤驅(qū)動(dòng)器、光驅(qū)、指狀驅(qū)動(dòng)器、驅(qū)動(dòng)器陣列或其任意組合。可以包括網(wǎng)絡(luò)接口控制器(NIC) 112以通過(guò)總線106將計(jì)算系統(tǒng)100連接至網(wǎng)絡(luò)114。通過(guò)網(wǎng)絡(luò)114,計(jì)算系統(tǒng)100可以以可通信地耦接至多個(gè)節(jié)點(diǎn)116。在各種實(shí)施方式中,節(jié)點(diǎn)116可以是存儲(chǔ)節(jié)點(diǎn),如商品個(gè)人計(jì)算機(jī)(PC)或服務(wù)器。此外,節(jié)點(diǎn)116可以用于提供對(duì)數(shù)據(jù)的讀訪問(wèn)或?qū)懺L問(wèn)。此外,各個(gè)節(jié)點(diǎn)116還可以通過(guò)網(wǎng)絡(luò)114彼此互連。在一些實(shí)施方式中,計(jì)算系統(tǒng)100可以連接至以生成樹(spanning tree)拓?fù)浣M織的數(shù)以萬(wàn)計(jì)的節(jié)點(diǎn)116,其中,生成樹拓?fù)涫窍率鼍W(wǎng)絡(luò)設(shè)計(jì):其包括節(jié)點(diǎn)116之間的冗余鏈接以在節(jié)點(diǎn)116之間的活動(dòng)鏈接失效的情況下提供自動(dòng)的備份路徑。在一些實(shí)施方式中,監(jiān)測(cè)引擎117可以在節(jié)點(diǎn)116上運(yùn)行并且可以向負(fù)載平衡模塊110提供負(fù)載使用情況和其他度量。在一些實(shí)施方式中,人機(jī)接口(HMI)118可以將計(jì)算系統(tǒng)100連接至任何數(shù)量的用戶接口設(shè)備120,如觸摸屏、揚(yáng)聲器或定點(diǎn)設(shè)備以及其他。計(jì)算系統(tǒng)100還可以通過(guò)總線106鏈接至I/O接口 122,I/O接口 122適于將計(jì)算系統(tǒng)100連接至任何數(shù)量的I/O設(shè)備124。I/O設(shè)備124例如可以包括顯示設(shè)備、外部硬驅(qū)動(dòng)器、通用串行總線(USB)設(shè)備或打印機(jī)以及其他。此外,計(jì)算系統(tǒng)100可以不是在每種情況下都包括本文所公開的所有部件,計(jì)算系統(tǒng)100中可以包括任何數(shù)量的另外的部件。圖2是可以針對(duì)其進(jìn)行負(fù)載平衡以實(shí)現(xiàn)高可伸縮性并降低重配置成本的集群存儲(chǔ)系統(tǒng)200的實(shí)施方式。在各種實(shí)施方式中,集群存儲(chǔ)系統(tǒng)200可以是包括任何數(shù)量的節(jié)點(diǎn)如節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208的復(fù)制的、基于集群的數(shù)據(jù)對(duì)象存儲(chǔ)系統(tǒng)。節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208可以是存儲(chǔ)節(jié)點(diǎn),如商品PC或服務(wù)器。此外,集群存儲(chǔ)系統(tǒng)200可以包括在數(shù)據(jù)中心網(wǎng)絡(luò)中互聯(lián)的數(shù)以萬(wàn)計(jì)的節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208,其中,如關(guān)于圖1討論的,可以以生成樹拓?fù)鋪?lái)組織數(shù)據(jù)中心網(wǎng)絡(luò)。在各種實(shí)施方式中,可以使用任何數(shù)量的網(wǎng)絡(luò)交換機(jī)或路由器210、212、214、216、218和220來(lái)實(shí)現(xiàn)集群存儲(chǔ)系統(tǒng)200中的節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208之間的網(wǎng)絡(luò)連接。此外,取決于具體應(yīng)用,節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208之間的連接可以是無(wú)線連接或有線連接。因?yàn)榭梢砸陨蓸渫負(fù)鋪?lái)組織節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208,所以多個(gè)節(jié)點(diǎn)之間的網(wǎng)絡(luò)距離可以改變。這可能導(dǎo)致不同節(jié)點(diǎn)之間的帶寬連接性的差別。例如,同一框架或集群中的兩個(gè)節(jié)點(diǎn)可能比不同的框架或集群中的兩個(gè)節(jié)點(diǎn)具有更高的帶寬連接性。因此,一個(gè)節(jié)點(diǎn)對(duì)另一個(gè)節(jié)點(diǎn)的接近度影響將數(shù)據(jù)對(duì)象在兩個(gè)節(jié)點(diǎn)之間移動(dòng)的數(shù)據(jù)遷移成本。數(shù)據(jù)可以按單元或分區(qū)或者數(shù)據(jù)塊存儲(chǔ)在節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208中的每個(gè)節(jié)點(diǎn)中。分區(qū)可以是具有一定數(shù)量副本的、具有某個(gè)固定大小的數(shù)據(jù)單元,其中,副本可以是該分區(qū)的相同拷貝。此外,對(duì)于每個(gè)分區(qū),可以有主副本和任何數(shù)量的次級(jí)副本。在各種實(shí)施方式中,因?yàn)閿?shù)據(jù)也存在于該分區(qū)的所有其他副本中,所以副本可以通過(guò)確保分區(qū)的一個(gè)副本的失效將不會(huì)導(dǎo)致數(shù)據(jù)的損失來(lái)實(shí)現(xiàn)故障容差。此外,特定分區(qū)的每個(gè)副本可以被置于單獨(dú)的故障域,例如單獨(dú)的節(jié)點(diǎn)或架(rack)中,從而增加該分區(qū)的故障容差。在各種實(shí)施方式中,集群存儲(chǔ)系統(tǒng)200可以可通信地耦接至任何數(shù)量的客戶端設(shè)備222,其中,客戶端設(shè)備222可以包括移動(dòng)電話、平板電腦、桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、電子閱讀器、電視或媒體播放器及其他??蛻舳嗽O(shè)備222可以用于發(fā)起I/O請(qǐng)求,其中,I/O請(qǐng)求可以包括在集群存儲(chǔ)系統(tǒng)200內(nèi)執(zhí)行讀操作或?qū)懖僮骰蛘呤聞?wù)的請(qǐng)求。因此,總體上,客戶端設(shè)備222可以包括能夠發(fā)起這種I/O請(qǐng)求的任何類型的計(jì)算設(shè)備。此外,來(lái)自客戶端設(shè)備222的I/O請(qǐng)求可以首先被發(fā)送至元數(shù)據(jù)服務(wù)224,如箭頭226所指示的。元數(shù)據(jù)服務(wù)224可以確定哪些數(shù)據(jù)對(duì)象受到從客戶端設(shè)備222接收到的特定I/O請(qǐng)求的影響。此外,元數(shù)據(jù)服務(wù)224可以將每個(gè)數(shù)據(jù)對(duì)象映射到其在集群存儲(chǔ)系統(tǒng)200內(nèi)的構(gòu)成分區(qū)以及將每個(gè)分區(qū)映射至其當(dāng)前的主副本,如箭頭228所指示的。此外,在一些實(shí)施方式中,元數(shù)據(jù)服務(wù)可以周期性地輪詢集群存儲(chǔ)系統(tǒng)200中的每個(gè)節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208,以跟蹤每個(gè)節(jié)點(diǎn)的可用性,如箭頭228所指示的。元數(shù)據(jù)服務(wù)也可以使用租用(lease)來(lái)維持節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208內(nèi)的每個(gè)分區(qū)的副本之間的讀寫一致性。在元數(shù)據(jù)服務(wù)224將每個(gè)數(shù)據(jù)對(duì)象映射到其在集群存儲(chǔ)系統(tǒng)200內(nèi)的構(gòu)成分區(qū)以及對(duì)應(yīng)的主副本之后,元數(shù)據(jù)服務(wù)224可以將與相關(guān)的數(shù)據(jù)對(duì)象有關(guān)的映射信息返回至發(fā)起特定I/O請(qǐng)求的客戶端設(shè)備222,如箭頭228所指示的。客戶端設(shè)備222然后可以通過(guò)訪問(wèn)集群存儲(chǔ)系統(tǒng)200內(nèi)的合適的節(jié)點(diǎn)202、節(jié)點(diǎn)204、節(jié)點(diǎn)206和節(jié)點(diǎn)208來(lái)執(zhí)行由特定的I/O請(qǐng)求指定的讀操作和寫操作,如箭頭230所指示的。根據(jù)一些實(shí)施方式,對(duì)于寫請(qǐng)求,客戶端設(shè)備222可以將消息發(fā)送至集群存儲(chǔ)系統(tǒng)200以指定與要寫入數(shù)據(jù)的期望的分區(qū)有關(guān)的特定分區(qū)標(biāo)識(shí)(ID)以及數(shù)據(jù)的大小。客戶端設(shè)備222然后可以將針對(duì)寫請(qǐng)求的實(shí)際數(shù)據(jù)發(fā)送至集群存儲(chǔ)系統(tǒng)200內(nèi)的期望的分區(qū)。在期望的分區(qū)內(nèi),主副本可以確定寫請(qǐng)求的合適次序并且將寫請(qǐng)求發(fā)送至次級(jí)副本。如果寫請(qǐng)求是有效的,則主副本可以將“接受”消息發(fā)送回客戶端設(shè)備222以便對(duì)寫請(qǐng)求的執(zhí)行進(jìn)行確認(rèn)。圖3是用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的方法300的框圖。根據(jù)方法300,可以通過(guò)將數(shù)據(jù)對(duì)象在兩個(gè)節(jié)點(diǎn)之間進(jìn)行遷移來(lái)實(shí)現(xiàn)負(fù)載平衡。此外,數(shù)據(jù)遷移可以通過(guò)移動(dòng)操作來(lái)實(shí)現(xiàn),該移動(dòng)操作導(dǎo)致數(shù)據(jù)對(duì)象在多個(gè)節(jié)點(diǎn)之間遷移。另外,可以假設(shè)在方法300開始之前已經(jīng)進(jìn)行了合適的交換操作。在一些實(shí)施方式中,交換操作可以用于通過(guò)對(duì)分區(qū)的主副本和次級(jí)副本的角色進(jìn)行切換來(lái)平衡集群存儲(chǔ)系統(tǒng)內(nèi)的負(fù)載,其中,主副本和次級(jí)副本可以位于集群存儲(chǔ)系統(tǒng)內(nèi)的兩個(gè)單獨(dú)的節(jié)點(diǎn)上。方法300可以用于通過(guò)從熱點(diǎn)遷移出一定數(shù)量的數(shù)據(jù)對(duì)象來(lái)使得集群存儲(chǔ)系統(tǒng)中的熱點(diǎn)或源節(jié)點(diǎn)的總負(fù)載最小化。方法300的目標(biāo)可以是使得將特定數(shù)據(jù)對(duì)象從一個(gè)節(jié)點(diǎn)移動(dòng)至另一個(gè)節(jié)點(diǎn)的帶寬成本或數(shù)據(jù)遷移成本最小化。在一些實(shí)施方式中,該目標(biāo)可以如下表示:使Σ i Σ J-XijBij最小化等式I其中,如果第i對(duì)象移動(dòng)至第j節(jié)點(diǎn),則Xij等于1,否則Xij等于0,并且將第i對(duì)象移動(dòng)至第j節(jié)點(diǎn)的帶寬成本是Bu。此外,方法300可以企圖根據(jù)若干約束或條件來(lái)對(duì)集群存儲(chǔ)系統(tǒng)中的熱點(diǎn)上的負(fù)載進(jìn)行平衡。這種平衡過(guò)程可以用于減輕熱點(diǎn)上的過(guò)載。在各種實(shí)施方式中,可以如下表示這些條件:V/:2i Xijh — Σ /es, Hj> ^UjtLir + < C/,等式 2^ :Σ £Κ( , Xij = I,等式 3Viyj e R(Lr)IXii < 0,等式 4Vpj \fq-.Zi€Gv lj€Fq ^ij ^ I,以及等式 5Vl, ¥C|:Eie,^ Xij < 等式 6其中,Cj是第j節(jié)點(diǎn)的負(fù)載能力,Sj是被選擇要從第j節(jié)點(diǎn)移動(dòng)的數(shù)據(jù)對(duì)象的集合,Li是第i對(duì)象的負(fù)載,L”是第j對(duì)象的總負(fù)載,R(i,r)是從第i對(duì)象所屬的節(jié)點(diǎn)起半徑r范圍內(nèi)的節(jié)點(diǎn)的數(shù)量,Gp是要從過(guò)載的源節(jié)點(diǎn)移動(dòng)的具有分區(qū)索引P的被選擇的數(shù)據(jù)的集合,F(xiàn)q是具有同一故障域索引q的節(jié)點(diǎn)的集合,并且如果第q域含有與第i對(duì)象相同的分區(qū),則Iiq等于0,否則Iiq等于I。如等式2所表示的,第一約束是:對(duì)于集群存儲(chǔ)系統(tǒng)中的每個(gè)第j節(jié)點(diǎn),總負(fù)載要保持在預(yù)定閾值即負(fù)載能力&以下。如等式3和等式4所表示的,第二約束是:目標(biāo)節(jié)點(diǎn)要至少在從源節(jié)點(diǎn)起一定距離或半徑r之內(nèi)??梢岳斫獾氖?,如本文所使用的,半徑r可以被認(rèn)為是下述路由器、交換機(jī)等的數(shù)量的代表,其中,數(shù)據(jù)對(duì)象必須通過(guò)這些路由器、交換機(jī)等以到達(dá)目標(biāo)節(jié)點(diǎn)。這通??梢苑从吃趦蓚€(gè)節(jié)點(diǎn)的物理接近性上,但是這樣的物理接近性不是必需的。此外,如等式5和等式6所表示的,第三約束通過(guò)防止具有同一分區(qū)的數(shù)據(jù)對(duì)象被置于同一故障域上,例如在同一節(jié)點(diǎn)或架中,來(lái)確保故障容差。具體地,Gp表示所選擇的數(shù)據(jù)對(duì)象的集合中屬于分區(qū)索引P的所有副本的組。由此,等式5施加約束使得具有同一分區(qū)索引的候選數(shù)據(jù)對(duì)象不能被置于同一故障域上,而等式6施加約束使得候選數(shù)據(jù)對(duì)象不能被置于已經(jīng)具有來(lái)自同一分區(qū)的副本的故障域上。在候選數(shù)據(jù)對(duì)象的集合由具有交疊的搜索區(qū)域的節(jié)點(diǎn)結(jié)合而成的情況下,由等式5和等式6施加的故障容差約束會(huì)特別有用。然而,對(duì)于單個(gè)節(jié)點(diǎn),這些約束顯然成立,因?yàn)楦北痉謪^(qū)的至多一個(gè)拷貝能夠被托管在該節(jié)點(diǎn)上。此外,由等式2至等式6施加的約束可以用于開發(fā)和實(shí)現(xiàn)方法300中的各個(gè)步驟,以下將詳細(xì)討論這些步驟。方法300開始于塊302,在集群存儲(chǔ)系統(tǒng)內(nèi)識(shí)別要從其移動(dòng)一定數(shù)量的數(shù)據(jù)對(duì)象的源節(jié)點(diǎn)??梢愿鶕?jù)負(fù)載平衡系統(tǒng)的實(shí)例來(lái)運(yùn)行方法300,其中,負(fù)載平衡系統(tǒng)被配置成平衡特定集群存儲(chǔ)系統(tǒng)內(nèi)的各節(jié)點(diǎn)上的I/O請(qǐng)求負(fù)載。此外,負(fù)載平衡系統(tǒng)可以是允許包含在特定集群存儲(chǔ)系統(tǒng)內(nèi)的多 個(gè)節(jié)點(diǎn)或服務(wù)器之間的交互的云計(jì)算平臺(tái)中的數(shù)據(jù)管理中間件系統(tǒng)。在各種實(shí)施方式中,源節(jié)點(diǎn)可以是熱點(diǎn),即具有超過(guò)預(yù)定閾值的合計(jì)負(fù)載或總負(fù)載的節(jié)點(diǎn)。特定節(jié)點(diǎn)的總負(fù)載可以是針對(duì)該節(jié)點(diǎn)的每秒的I/o操作的總數(shù)量或者每秒傳送的用于讀操作和寫操作的字節(jié)的總數(shù)量。此外,用于確定節(jié)點(diǎn)是否是熱點(diǎn)的閾值可以被確定為使得節(jié)點(diǎn)的響應(yīng)時(shí)間不增加到特定值或下述吞吐率以上,該吞吐率是依據(jù)在給定的時(shí)間窗口中處理的事務(wù)的數(shù)量是否超過(guò)特定值來(lái)測(cè)量的。此外,在一些實(shí)施方式中,元數(shù)據(jù)服務(wù)可以用于識(shí)別要從其移動(dòng)數(shù)據(jù)對(duì)象的源節(jié)點(diǎn)。元數(shù)據(jù)服務(wù)可以響應(yīng)于來(lái)自一定數(shù)量的客戶端設(shè)備中的任何客戶端設(shè)備的、針對(duì)特定源節(jié)點(diǎn)的預(yù)定數(shù)量的I/o請(qǐng)求的流入來(lái)識(shí)別源節(jié)點(diǎn)。預(yù)定數(shù)量的I/O請(qǐng)求可以被選擇為使得如果針對(duì)特定節(jié)點(diǎn)接收了預(yù)定數(shù)量的I/o請(qǐng)求則該節(jié)點(diǎn)可以被認(rèn)為是熱點(diǎn)。此外,在各種實(shí)施方式中,元數(shù)據(jù)服務(wù)可以通過(guò)將來(lái)自客戶端設(shè)備的進(jìn)入I/o請(qǐng)求映射至集群存儲(chǔ)系統(tǒng)內(nèi)的節(jié)點(diǎn)中的任何節(jié)點(diǎn)(包括源節(jié)點(diǎn)或目標(biāo)節(jié)點(diǎn)或源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)二者)內(nèi)的具體數(shù)據(jù)對(duì)象,來(lái)幫助執(zhí)行方法300。在塊304,可以選擇要從源節(jié)點(diǎn)移動(dòng)的數(shù)據(jù)對(duì)象。在各種實(shí)施方式中,可以對(duì)數(shù)據(jù)對(duì)象進(jìn)行選擇以使得一旦數(shù)據(jù)對(duì)象已從源節(jié)點(diǎn)移走,則源節(jié)點(diǎn)的總負(fù)載將不再超過(guò)閾值。由此,可能期望的是,基于每個(gè)單獨(dú)的數(shù)據(jù)對(duì)象的負(fù)載值來(lái)選擇數(shù)據(jù)對(duì)象。負(fù)載值可以等于針對(duì)源節(jié)點(diǎn)內(nèi)的特定數(shù)據(jù)對(duì)象的I/o請(qǐng)求的數(shù)量。在一些實(shí)施方式中,可以將整數(shù)決策變量分配給源節(jié)點(diǎn)內(nèi)的每個(gè)數(shù)據(jù)對(duì)象。如果整數(shù)決策變量等于I,指示特定數(shù)據(jù)對(duì)象具有高負(fù)載值,則可以將數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移走。如果整數(shù)決策變量等于0,指示特定數(shù)據(jù)對(duì)象具有低負(fù)載值,則數(shù)據(jù)對(duì)象可以保留在源節(jié)點(diǎn)內(nèi)。此外,在各種實(shí)施方式中,可以將實(shí)數(shù)決策變量分配給源節(jié)點(diǎn)內(nèi)的每個(gè)數(shù)據(jù)對(duì)象。實(shí)數(shù)決策變量可以等于O至I之間且包括O和I的任何實(shí)數(shù),其中O指示數(shù)據(jù)對(duì)象具有為O的負(fù)載值。此外,可以根據(jù)數(shù)據(jù)對(duì)象的實(shí)數(shù)決策變量以降序布置數(shù)據(jù)對(duì)象,并且可以選擇首先移動(dòng)具有最高的實(shí)數(shù)決策變量(其指示數(shù)據(jù)對(duì)象具有最大數(shù)量的I/o請(qǐng)求)的數(shù)據(jù)對(duì)象。另外,在一些實(shí)施方式中,可以隨機(jī)選擇要從源節(jié)點(diǎn)移動(dòng)的數(shù)據(jù)對(duì)象。在塊306,可以基于目標(biāo)節(jié)點(diǎn)的總負(fù)載以及目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)的接近度來(lái)確定集群存儲(chǔ)系統(tǒng)內(nèi)的目標(biāo)節(jié)點(diǎn)。例如,目標(biāo)節(jié)點(diǎn)可以是集群存儲(chǔ)系統(tǒng)內(nèi)的具有不超過(guò)預(yù)定閾值的總負(fù)載(即,不是熱點(diǎn))并且在距源節(jié)點(diǎn)某預(yù)定距離或半徑內(nèi)的任何節(jié)點(diǎn)。在一些情況中,可以針對(duì)方法300的特定實(shí)例來(lái)確定多個(gè)目標(biāo)節(jié)點(diǎn),并且可以選擇性地將數(shù)據(jù)對(duì)象移動(dòng)至目標(biāo)節(jié)點(diǎn)中的任何目標(biāo)節(jié)點(diǎn)。最接近源節(jié)點(diǎn)的目標(biāo)節(jié)點(diǎn)可以是優(yōu)選的,這是因?yàn)閿?shù)據(jù)遷移成本隨著目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)之間的距離增大而升高。由此,可以針對(duì)要在其中識(shí)別合適的目標(biāo)節(jié)點(diǎn)的區(qū)域指定從源節(jié)點(diǎn)起的初始半徑。然后,如果不能在初始半徑內(nèi)找到合適的目標(biāo)節(jié)點(diǎn),則可以逐漸增大半徑,直到找到合適的目標(biāo)節(jié)點(diǎn)為止。此外,如上面所討論的,半徑或半徑距離可以被認(rèn)為是下述路由器、交換機(jī)等的數(shù)量的代表,其中,數(shù)據(jù)對(duì)象必須通過(guò)這些路由器、交換機(jī)等以到達(dá)目標(biāo)節(jié)點(diǎn)。這通常反映在兩個(gè)節(jié)點(diǎn)的物理接近性上,但是這種物理接近性不是必需的。 在塊308,可以將數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)至目標(biāo)節(jié)點(diǎn)。在一些實(shí)施方式中,可以通過(guò)選擇性地將特定數(shù)據(jù)對(duì)象移動(dòng)至一定數(shù)量的目標(biāo)節(jié)點(diǎn)中的任何目標(biāo)節(jié)點(diǎn)來(lái)提高方法300的效率。此外,可以根據(jù)從源節(jié)點(diǎn)到合適的目標(biāo)節(jié)點(diǎn)的最短可能路徑來(lái)移動(dòng)或遷移數(shù)據(jù)對(duì)象,這是因?yàn)閿?shù)據(jù)遷移成本隨著數(shù)據(jù)對(duì)象的行進(jìn)距離的增大而升高。
此外,方法300并不意在指示要以任何特定的順序來(lái)運(yùn)行方法300中的各個(gè)步驟,也不意在指示在每種情況下都要存在全部步驟。此外,可以根據(jù)具體應(yīng)用向方法300添加步驟。例如,方法300可以用于并行地識(shí)別一定數(shù)量的具有超過(guò)閾值的總負(fù)載的非交疊源節(jié)點(diǎn)的集合。源節(jié)點(diǎn)的特定集合內(nèi)的源節(jié)點(diǎn)可以彼此在特定的半徑距離內(nèi),即這些源節(jié)點(diǎn)可以具有交疊的搜索半徑。可以選擇要從源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)的一定數(shù)量的數(shù)據(jù)對(duì)象,可以確定距源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合特定搜索半徑內(nèi)的任何數(shù)量的合適的目標(biāo)節(jié)點(diǎn),并且可以將數(shù)據(jù)對(duì)象同時(shí)從源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)至目標(biāo)節(jié)點(diǎn)??梢圆⑿袌?zhí)行負(fù)載平衡系統(tǒng)的多個(gè)實(shí)例,以將數(shù)據(jù)對(duì)象同時(shí)從源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)至所選擇的目標(biāo)節(jié)點(diǎn)。在各種實(shí)施方式中,可以將這種針對(duì)一定數(shù)量的不相交或不交疊的源節(jié)點(diǎn)集合同時(shí)進(jìn)行數(shù)據(jù)遷移的方法稱為“分治”負(fù)載平衡措施。此外,在各種實(shí)施方式中,在對(duì)數(shù)據(jù)對(duì)象的重配置期間和/或在對(duì)應(yīng)的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)內(nèi),對(duì)數(shù)據(jù)對(duì)象的移動(dòng)可能導(dǎo)致與網(wǎng)絡(luò)中前臺(tái)運(yùn)行應(yīng)用的干擾。這可以通過(guò)指定資源帶寬預(yù)算或者通過(guò)經(jīng)由使用傳輸協(xié)議來(lái)將前臺(tái)流量與后臺(tái)流量分離開而減輕。圖4是用于交疊熱點(diǎn)的不相交的組的分治負(fù)載平衡措施的圖解400。圖解400可以表示集群存儲(chǔ)系統(tǒng)內(nèi)的一定數(shù)量的源節(jié)點(diǎn)。集群存儲(chǔ)系統(tǒng)可以包括第一熱點(diǎn)402、第二熱點(diǎn)404、第三熱點(diǎn)406、第四熱點(diǎn)408和第五熱點(diǎn)410。此外,熱點(diǎn)402、404、406、408和410可以分別被包括在具有預(yù)定半徑如半徑422的“鄰域”412、414、416、418和420內(nèi)。預(yù)定半徑可以是用于熱點(diǎn)402、404、406、408和410中的所有熱點(diǎn)的標(biāo)準(zhǔn)半徑或者可以是針對(duì)每個(gè)單獨(dú)的熱點(diǎn)402、404、406、408或410的特定唯一半徑。具有交疊的鄰域的熱點(diǎn)可以被合并到組424和組426中。在各種實(shí)施方式中,第一熱點(diǎn)402和第二熱點(diǎn)404的鄰域412和414分別可以被合并到組424中。此外,第三熱點(diǎn)406的鄰域416、第四熱點(diǎn)408的鄰域418和第五熱點(diǎn)410的鄰域420可以被合并到組426中。然后,負(fù)載平衡系統(tǒng)可以針對(duì)組424和組426并行地執(zhí)行方法300。此外,可以根據(jù)方法300同時(shí)執(zhí)行針對(duì)每個(gè)組424或426內(nèi)的熱點(diǎn)的負(fù)載平衡。在各種實(shí)施方式中,這種分治負(fù)載平衡措施可以在不損失精確度的情況下使得方法300的計(jì)算成本降低。圖5是示出存儲(chǔ)有適于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的代碼的有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)500的框圖。有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)500可以由處理器502通過(guò)計(jì)算機(jī)總線504訪問(wèn)。此外,有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)500可以包括被配置成引導(dǎo)處理器520執(zhí)行當(dāng)前方法的步驟的代碼。本文所討論的各種軟件部件可以被存儲(chǔ)在有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)500上,如圖5所指示的。例如,負(fù)載平衡模塊506可以用于通過(guò)在節(jié)點(diǎn)之間遷移數(shù)據(jù)對(duì)象來(lái)平衡集群存儲(chǔ)系統(tǒng)內(nèi)的特定節(jié)點(diǎn)上的負(fù)載。此外,有形非暫態(tài)計(jì)算機(jī)可讀介質(zhì)500可以包括圖5中未示出的另外的軟件部件。盡管用特定于結(jié)構(gòu)特征和/或方法行為的語(yǔ)言描述了主題,但是要理解的是,所附權(quán)利要求中限定的主題未必限于上述特定特征或行為。而是,作為實(shí)現(xiàn)權(quán)利要求的示例形式公開上述特定特征和行為。附記:附記1.一種用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的方法,包括:識(shí)別所述集群存儲(chǔ)系統(tǒng)內(nèi)的源節(jié)點(diǎn),其中要從所述源節(jié)點(diǎn)移動(dòng)多個(gè)數(shù)據(jù)對(duì)象,其中,所述源節(jié)點(diǎn)包括總負(fù)載超過(guò)閾值的節(jié)點(diǎn);
選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)數(shù)據(jù)對(duì)象被選擇為使得所述源節(jié)點(diǎn)的總負(fù)載不再超過(guò)所述閾值;基于與所述源節(jié)點(diǎn)的接近度以及目標(biāo)節(jié)點(diǎn)的總負(fù)載來(lái)確定所述集群存儲(chǔ)系統(tǒng)內(nèi)的所述目標(biāo)節(jié)點(diǎn);以及將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)。附記2.根據(jù)附記I所述的方法,包括:基于所述多個(gè)目標(biāo)節(jié)點(diǎn)中的每個(gè)目標(biāo)節(jié)點(diǎn)上的總負(fù)載以及所述多個(gè)目標(biāo)節(jié)點(diǎn)中的每個(gè)目標(biāo)節(jié)點(diǎn)與所述源節(jié)點(diǎn)的接近度,將所述多個(gè)數(shù)據(jù)對(duì)象中的任何數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述多個(gè)目標(biāo)節(jié)點(diǎn)中的任何目標(biāo)節(jié)點(diǎn)。附記3.根據(jù)附記I所述的方法,包括:識(shí)別總負(fù)載超過(guò)所述閾值的多個(gè)源節(jié)點(diǎn);將所述多個(gè)源節(jié)點(diǎn)劃分成多個(gè)源節(jié)點(diǎn)集合,其中,所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合包括一個(gè)源節(jié)點(diǎn)或者具有交疊的搜索半徑的源節(jié)點(diǎn)的小子集;選擇要從所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)的多個(gè)數(shù)據(jù)對(duì)象;確定距所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合特定搜索半徑內(nèi)的多個(gè)目標(biāo)節(jié)點(diǎn);以及同時(shí)將所述多個(gè)數(shù)據(jù)對(duì)象從所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)至所述多個(gè)目標(biāo)節(jié)點(diǎn)。附記4.根據(jù)附記I所述的方法,包括:識(shí)別總負(fù)載超過(guò)所述閾值的多個(gè)源節(jié)點(diǎn),其中,所述多個(gè)源節(jié)點(diǎn)彼此相距特定的半徑距離之內(nèi);選擇要從所述多個(gè)源節(jié)點(diǎn)中的每個(gè)源節(jié)點(diǎn)移動(dòng)的多個(gè)數(shù)據(jù)對(duì)象;確定距所述多個(gè)源節(jié)點(diǎn)特定搜索半徑內(nèi)的多個(gè)目標(biāo)節(jié)點(diǎn);以及同時(shí)將所述多個(gè)數(shù)據(jù)對(duì)象從所述多個(gè)源節(jié)點(diǎn)移動(dòng)至所述多個(gè)目標(biāo)節(jié)點(diǎn)。附記5.根據(jù)附記I所述的方法,包括:隨機(jī)選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象。附記6.根據(jù)附記I所述的方法,包括:基于負(fù)載值來(lái)選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,從具有最大負(fù)載值的數(shù)據(jù)對(duì)象開始并繼續(xù)以降序來(lái)選擇所述多個(gè)數(shù)據(jù)對(duì)象。附記7.根據(jù)附記6所述的方法,其中,所述負(fù)載值包括針對(duì)所述源節(jié)點(diǎn)內(nèi)的特定數(shù)據(jù)對(duì)象的輸入/輸出請(qǐng)求的數(shù)量。附記8.根據(jù)附記I所述的方法,其中,將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)包括:通過(guò)指定資源帶寬預(yù)算或者通過(guò)使用傳輸協(xié)議將前臺(tái)流量與后臺(tái)流量分離而使重配置期間的干擾最小化。附記9.根據(jù)附記I所述的方法,包括:基于分配給所述源節(jié)點(diǎn)內(nèi)的每個(gè)數(shù)據(jù)對(duì)象的實(shí)數(shù)決策變量來(lái)選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,所述實(shí)數(shù)決策變量包括在O和I之間或者等于O或I的實(shí)數(shù),并且其中,從具有最大的實(shí)數(shù)決策變量的數(shù)據(jù)對(duì)象開始并繼續(xù)以降序來(lái)選擇要被移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象。附記10.根據(jù)附記I所述的方法,包括:響應(yīng)于來(lái)自多個(gè)客戶端設(shè)備中的任何客戶端設(shè)備的針對(duì)所述源節(jié)點(diǎn)的預(yù)定數(shù)量的輸入/輸出請(qǐng)求的流入、使用元數(shù)據(jù)服務(wù)來(lái)識(shí)別所述集群存儲(chǔ)系統(tǒng)內(nèi)的要從其移動(dòng)所述多個(gè)數(shù)據(jù)對(duì)象的所述源節(jié)點(diǎn)。附記11.一種用于在集群存儲(chǔ)系統(tǒng)中進(jìn)行負(fù)載平衡的系統(tǒng),包括:源節(jié)點(diǎn),其中所述源節(jié)點(diǎn)包括所述集群存儲(chǔ)系統(tǒng)內(nèi)的具有超過(guò)閾值的第一總負(fù)載的節(jié)點(diǎn);目標(biāo)節(jié)點(diǎn),其中所述目標(biāo)節(jié)點(diǎn)包括所述集群存儲(chǔ)系統(tǒng)內(nèi)的具有不超過(guò)所述閾值的第二總負(fù)載的節(jié)點(diǎn),并且其中基于與所述源節(jié)點(diǎn)的接近度來(lái)選擇所述目標(biāo)節(jié)點(diǎn);以及負(fù)載平衡系統(tǒng),其被配置成:選擇要從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)的多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)數(shù)據(jù)對(duì)象被選擇為使得所述源節(jié)點(diǎn)的所述第一總負(fù)載不再超過(guò)所述閾值;以及將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)。附記12.根據(jù)附記11所述的系統(tǒng),其中,所述第一總負(fù)載和所述第二總負(fù)載包括每秒的輸入/輸出操作的總數(shù)量或者每秒鐘傳送的用于讀操作和寫操作的字節(jié)的總數(shù)量。附記13.根據(jù)附記11所述的系統(tǒng),其中,所述目標(biāo)節(jié)點(diǎn)與所述源節(jié)點(diǎn)的接近度包括至少小于特定半徑的從所述目標(biāo)節(jié)點(diǎn)到所述源節(jié)點(diǎn)的距離。附記14.根據(jù)附記13所述的系統(tǒng),其中,逐漸增大所述特定半徑,直到識(shí)別出所述目標(biāo)節(jié)點(diǎn)為止。附記15.根據(jù)附記11所述的系統(tǒng),包括并行地執(zhí)行所述負(fù)載平衡系統(tǒng)的多個(gè)實(shí)例以同時(shí)從多個(gè)源節(jié)點(diǎn)中的每個(gè)源節(jié)點(diǎn)移動(dòng)多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)源節(jié)點(diǎn)包括彼此相距至少預(yù)定距離的不交疊的節(jié)點(diǎn)。附記16.根據(jù)附記11所述的系統(tǒng),其中,所述目標(biāo)節(jié)點(diǎn)和所述源節(jié)點(diǎn)包括通過(guò)網(wǎng)絡(luò)互連的服務(wù)器。附記17.根據(jù)附記11所述的系統(tǒng),其中,所述系統(tǒng)包括元數(shù)據(jù)服務(wù),所述元數(shù)據(jù)服務(wù)被配置成將來(lái)自客戶端設(shè)備的進(jìn)入輸入/輸出請(qǐng)求映射至所述源節(jié)點(diǎn)或所述目標(biāo)節(jié)點(diǎn)或所述源節(jié)點(diǎn)和所述目標(biāo)節(jié)點(diǎn)的任意組合內(nèi)的特定數(shù)據(jù)對(duì)象。附記18.—種或更多種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令在被一個(gè)或更多個(gè)處理設(shè)備運(yùn)行時(shí)提供負(fù)載平衡系統(tǒng),所述計(jì)算機(jī)可讀指令包括代碼,所述代碼被配置成:識(shí)別要從其移動(dòng)多個(gè)數(shù)據(jù)對(duì)象的源節(jié)點(diǎn),其中,所述源節(jié)點(diǎn)包括熱點(diǎn);選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)數(shù)據(jù)對(duì)象被選擇為使得所述源節(jié)點(diǎn)不再是所述熱點(diǎn);確定目標(biāo)節(jié)點(diǎn),其中,所述目標(biāo)節(jié)點(diǎn)不包括熱點(diǎn),并且位于距所述源節(jié)點(diǎn)的預(yù)定范圍內(nèi);以及將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)。附記19.根據(jù)附記18所述的一個(gè)或更多個(gè)非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述熱點(diǎn)包括每秒的輸入/輸出操作的總數(shù)量或者每秒鐘傳送的字節(jié)的總數(shù)量超過(guò)預(yù)定閾值的節(jié)點(diǎn)。附記20.根據(jù)附記18所述的一個(gè)或更多個(gè)非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,距所述源節(jié)點(diǎn)的所述預(yù)定范圍包括至少小于預(yù)定半徑的距所述源節(jié)點(diǎn)的距離。
權(quán)利要求
1.一種用于在集群存儲(chǔ)系統(tǒng)(200)中進(jìn)行負(fù)載平衡的方法(300),包括: 識(shí)別(302)所述集群存儲(chǔ)系統(tǒng)(200)內(nèi)的源節(jié)點(diǎn),其中要從所述源節(jié)點(diǎn)移動(dòng)多個(gè)數(shù)據(jù)對(duì)象,其中,所述源節(jié)點(diǎn)包括總負(fù)載超過(guò)閾值的節(jié)點(diǎn); 選擇(304)要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)數(shù)據(jù)對(duì)象被選擇為使得所述源節(jié)點(diǎn)的總負(fù)載不再超過(guò)所述閾值; 基于與所述源節(jié)點(diǎn)的接近度以及目標(biāo)節(jié)點(diǎn)的總負(fù)載來(lái)確定(306)所述集群存儲(chǔ)系統(tǒng)(200)內(nèi)的所述目標(biāo)節(jié)點(diǎn);以及 將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)(308)至所述目標(biāo)節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的方法(300),包括:基于所述多個(gè)目標(biāo)節(jié)點(diǎn)中的每個(gè)目標(biāo)節(jié)點(diǎn)上的總負(fù)載以及所述多個(gè)目標(biāo)節(jié)點(diǎn)中的每個(gè)目標(biāo)節(jié)點(diǎn)與所述源節(jié)點(diǎn)的接近度,將所述多個(gè)數(shù)據(jù)對(duì)象中的任何數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述多個(gè)目標(biāo)節(jié)點(diǎn)中的任何目標(biāo)節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法(300),包括: 識(shí)別總負(fù)載超過(guò)所述閾值的多個(gè)源節(jié)點(diǎn); 將所述多個(gè)源節(jié)點(diǎn)劃分成多個(gè)源節(jié)點(diǎn)集合,其中,所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合包括一個(gè)源節(jié)點(diǎn)或者具有交疊的搜索半徑的源節(jié)點(diǎn)的小子集; 選擇要從所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)的多個(gè)數(shù)據(jù)對(duì)象; 確定距所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合特定搜索半徑內(nèi)的多個(gè)目標(biāo)節(jié)點(diǎn);以及 同時(shí)將所述多個(gè)數(shù)據(jù)對(duì)象從所述多個(gè)源節(jié)點(diǎn)集合中的每個(gè)源節(jié)點(diǎn)集合移動(dòng)至所述多個(gè)目標(biāo)節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的方法(300),包括: 識(shí)別總負(fù)載超過(guò)所述閾值的多個(gè)源節(jié)點(diǎn),其中,所述多個(gè)源節(jié)點(diǎn)彼此相距特定的半徑距離之內(nèi); 選擇要從所述多個(gè)源節(jié)點(diǎn)中的每個(gè)源節(jié)點(diǎn)移動(dòng)的多個(gè)數(shù)據(jù)對(duì)象; 確定距所述多個(gè)源節(jié)點(diǎn)特定搜索半徑內(nèi)的多個(gè)目標(biāo)節(jié)點(diǎn);以及 同時(shí)將所述多個(gè)數(shù)據(jù)對(duì)象從所述多個(gè)源節(jié)點(diǎn)移動(dòng)至所述多個(gè)目標(biāo)節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的方法(300),包括:基于負(fù)載值來(lái)選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,從具有最大負(fù)載值的數(shù)據(jù)對(duì)象開始并繼續(xù)以降序來(lái)選擇所述多個(gè)數(shù)據(jù)對(duì)象。
6.根據(jù)權(quán)利要求1所述的方法(300),其中,將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)包括:通過(guò)指定資源帶寬預(yù)算或者通過(guò)使用傳輸協(xié)議將前臺(tái)流量與后臺(tái)流量分離而使重配置期間的干擾最小化。
7.根據(jù)權(quán)利要求1所述的方法(300),包括:基于分配給所述源節(jié)點(diǎn)內(nèi)的每個(gè)數(shù)據(jù)對(duì)象的實(shí)數(shù)決策變量來(lái)選擇要從所述源節(jié)點(diǎn)移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象,其中,所述實(shí)數(shù)決策變量包括在O和I之間或者等于O或I的實(shí)數(shù),并且其中,從具有最大的實(shí)數(shù)決策變量的數(shù)據(jù)對(duì)象開始并繼續(xù)以降序來(lái)選擇要被移動(dòng)的所述多個(gè)數(shù)據(jù)對(duì)象。
8.一種用于在集群存儲(chǔ)系統(tǒng)(200)中進(jìn)行負(fù)載平衡的系統(tǒng),包括: 源節(jié)點(diǎn),其中所述源節(jié)點(diǎn)包括所述集群存儲(chǔ)系統(tǒng)(200)內(nèi)的具有超過(guò)閾值的第一總負(fù)載的節(jié)點(diǎn);目標(biāo)節(jié)點(diǎn),其中所述目標(biāo)節(jié)點(diǎn)包括所述集群存儲(chǔ)系統(tǒng)(200)內(nèi)的具有不超過(guò)所述閾值的第二總負(fù)載的節(jié)點(diǎn),并且其中基于與所述源節(jié)點(diǎn)的接近度來(lái)選擇所述目標(biāo)節(jié)點(diǎn);以及負(fù)載平衡系統(tǒng),其被配置成: 選擇要從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)的多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)數(shù)據(jù)對(duì)象被選擇為使得所述源節(jié)點(diǎn)的所述第一總負(fù)載不再超過(guò)所述閾值;以及將所述多個(gè)數(shù)據(jù)對(duì)象從所述源節(jié)點(diǎn)移動(dòng)至所述目標(biāo)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述第一總負(fù)載和所述第二總負(fù)載包括每秒的輸入/輸出操作的總數(shù)量或者每秒鐘傳送的用于讀操作和寫操作的字節(jié)的總數(shù)量。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),包括并行地執(zhí)行所述負(fù)載平衡系統(tǒng)的多個(gè)實(shí)例以同時(shí)從多個(gè)源節(jié)點(diǎn)中的每個(gè)源節(jié)點(diǎn)移動(dòng)多個(gè)數(shù)據(jù)對(duì)象,其中,所述多個(gè)源節(jié)點(diǎn)包括彼此相距至少預(yù)定距離的不交 疊的節(jié)點(diǎn)。
全文摘要
本文公開了一種用于在集群存儲(chǔ)系統(tǒng)(200)中進(jìn)行負(fù)載平衡的方法和系統(tǒng)。該方法(300)包括識(shí)別(302)集群存儲(chǔ)系統(tǒng)(200)內(nèi)的要從其移動(dòng)一定數(shù)量的數(shù)據(jù)對(duì)象的源節(jié)點(diǎn),其中,源節(jié)點(diǎn)包括總負(fù)載超過(guò)閾值的節(jié)點(diǎn)。該方法(300)還包括選擇(304)要從源節(jié)點(diǎn)移動(dòng)的數(shù)據(jù)對(duì)象,其中,數(shù)據(jù)對(duì)象被選擇為使得源節(jié)點(diǎn)的總負(fù)載不再超過(guò)該閾值。該方法(300)還包括基于與源節(jié)點(diǎn)的接近度以及目標(biāo)節(jié)點(diǎn)的總負(fù)載來(lái)確定(306)集群存儲(chǔ)系統(tǒng)(200)內(nèi)的目標(biāo)節(jié)點(diǎn),以及將數(shù)據(jù)對(duì)象從源節(jié)點(diǎn)移動(dòng)(308)至目標(biāo)節(jié)點(diǎn)。
文檔編號(hào)H04L29/08GK103095804SQ201210540008
公開日2013年5月8日 申請(qǐng)日期2012年12月13日 優(yōu)先權(quán)日2011年12月13日
發(fā)明者納文杜·賈殷, 加埃-元·尤 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
八宿县| 东海县| 陆良县| 甘谷县| 广元市| 博湖县| 白朗县| 莱芜市| 石嘴山市| 稻城县| 昭通市| 普安县| 永胜县| 宿州市| 全南县| 陈巴尔虎旗| 泉州市| 佛冈县| 吴川市| 宿州市| 三河市| 永丰县| 大邑县| 巴里| 遵义县| 鱼台县| 台中县| 太仆寺旗| 昌都县| 普安县| 桑日县| 淳安县| 浙江省| 阳江市| 凤凰县| 靖安县| 墨脱县| 蒲江县| 镇康县| 南昌县| 南木林县|