一種負載均衡方法及裝置的制造方法
【技術領域】
[0001]本發明涉及存儲技術領域,尤其涉及一種負載均衡方法及裝置。
【背景技術】
[0002]存儲系統一般包括多個RAID (Redundant Arrays of Independent Disks,磁盤陣列),每個 RAID 包含一組 disk(磁盤)。存儲系統的 1PS (Input/Output Operat1ns PerSecond,每秒輸入輸出操作的次數)是下面所有disk的總和,所以要達到系統最高的1PS能力,就要將10 (輸入輸出)分散到每個disk上。
[0003]存儲系統都使用cache (緩存)來將小的10在cache中拼為大塊10往下flush (刷新寫緩存)。在包含多個RAID的存儲系統中,如何均衡的在每個RAID上生成flush 10 (緩存回寫的數據流),決定了 flush 10能否均衡到每個disk上。
[0004]—般由cache生成的“臟數據” flush 10,都是選擇全局的、拼數據大的、非hot的條帶往下flush。這個過程要兼顧多個RAID的負載均衡,才能做好10在底層所有disk上的負載均衡。
[0005]現有的負載均衡方法中,cache生成的flush 10是從全局選取最好(拼數據大、非hot)的條帶往下flush。
[0006]通過上述描述可見,現有的負載均衡方法沒有考慮每個RAID實際的10能力不同。
【發明內容】
[0007]本發明提供了一種負載均衡方法及裝置,能夠提高存儲系統的1PS能力。
[0008]本發明提供了一種負載均衡方法,包括:
[0009]S1:獲取每個磁盤陣列RAID的最大負載權值;
[0010]S2:獲取每個RAID的實際負載值;
[0011]S3:根據所述每個RAID的最大負載權值和每個RAID的實際負載值計算出每個RAID的分配權值;
[0012]S4:根據當前調度點可生成的flush 10總數和所述每個RAID的分配權值計算出分配給每個RAID的flush 10的個數。
[0013]進一步地,還包括:預先設置第一 RAID負載表,所述第一 RAID負載表中包括:所述每個RAID的最大負載權值;
[0014]所述SI包括:從所述第一 RAID負載表中獲取每個RAID的最大負載權值。
[0015]進一步地,還包括:預先設置第二 RAID負載表,所述第二 RAID負載表中包括:所述每個RAID的實際負載值;
[0016]所述S2包括:從所述第二 RAID負載表中獲取每個RAID的實際負載值。
[0017]進一步地,還包括:預先設置第三RAID負載表,所述第三RAID負載表中包括:所述每個RAID的最大負載權值和所述每個RAID的實際負載值;
[0018]所述SI包括:從所述第三RAID負載表中獲取每個RAID的最大負載權值;
[0019]所述S2包括:從所述第三RAID負載表中獲取每個RAID的實際負載值。
[0020]進一步地,所述SI包括:
[0021]獲取每個RAID的每秒輸入輸出操作的次數1PS ;
[0022]根據每個RAID的1PS計算出所有RAID的總1PS ;
[0023]根據每個RAID的1PS和所述總1PS計算出每個RAID的最大負載權值。
[0024]另一方面,本發明提供了一種負載均衡裝置,包括:
[0025]第一獲取單元,用于獲取每個磁盤陣列RAID的最大負載權值;
[0026]第二獲取單元,用于獲取每個RAID的實際負載值;
[0027]第一計算單元,用于根據所述每個RAID的最大負載權值和每個RAID的實際負載值計算出每個RAID的分配權值;
[0028]第二計算單元,用于根據當前調度點可生成的flush 1總數和所述每個RAID的分配權值計算出分配給每個RAID的flush 1的個數。
[0029]進一步地,還包括:第一存儲單元,用于存儲第一 RAID負載表,所述第一 RAID負載表中包括:所述每個RAID的最大負載權值;
[0030]所述第一獲取單元,具體用于從所述第一 RAID負載表中獲取每個RAID的最大負載權值。
[0031]進一步地,還包括:第二存儲單元,用于存儲第二 RAID負載表,所述第二 RAID負載表中包括:所述每個RAID的實際負載值;
[0032]所述第二獲取單元,具體用于從所述第二 RAID負載表中獲取每個RAID的實際負載值。
[0033]進一步地,還包括:第三存儲單元,用于存儲第三RAID負載表,所述第三RAID負載表中包括:所述每個RAID的最大負載權值和所述每個RAID的實際負載值;
[0034]所述第一獲取單元,具體用于從所述第三RAID負載表中獲取每個RAID的最大負載權值;
[0035]所述第二獲取單元,具體用于從所述第三RAID負載表中獲取每個RAID的實際負載值。
[0036]進一步地,所述第一獲取單元包括:
[0037]獲取子單元,用于獲取每個RAID的每秒輸入輸出操作的次數1PS ;
[0038]第一計算子單元,用于根據每個RAID的1PS計算出所有RAID的總1PS ;
[0039]第二計算子單元,用于根據每個RAID的1PS和所述總1PS計算出每個RAID的最大負載權值。
[0040]本發明提供的一種負載均衡方法及裝置按照每個RAID當前的實際處理能力來分配flush 10,能夠提高存儲系統的1PS能力。
【附圖說明】
[0041]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0042]圖1是本發明實施例提供的一種負載均衡方法流程圖;
[0043]圖2是本發明實施例提供的一種負載均衡裝置結構示意圖。
【具體實施方式】
[0044]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0045]本發明提供了一種負載均衡方法,參見圖1,包括:
[0046]S1:獲取每個磁盤陣列RAID的最大負載權值;
[0047]S2:獲取每個RAID的實際負載值;
[0048]S3:根據所述每個RAID的最大負載權值和每個RAID的實際負載值計算出每個RAID的分配權值;
[0049]S4:根據當前調度點可生成的flush 1總數和所述每個RAID的分配權值計算出分配給每個RAID的flush 1的個數。
[0050]通過上述實施例按照每個RAID當前的實際處理能力來分配flush 10,能夠提高存儲系統的1PS能力。
[0051]在第一種可能的實現方式中,上述的一種負載均衡方法,還包括:預先設置第一RAID負載表,所述第一 RAID負載表中包括:所述每個RAID的最大負載權值;
[0052]所述SI包括:從所述第一 RAID負載表中獲取每個RAID的最大負載權值。
[0053]在第二種可能的實現方式中,上述的一種負載均衡方法,還包括:預先設置第二RAID負載表,所述第二 RAID負載表中包括:所述每個RAID的實際負載值;
[0054]所述S2包括:從所述第二 RAID負載表中獲取每個RAID的實際負載值。
[0055]在第三種可能的實現方式中,上述的一種負載均衡方法,還包括:預先設置第三RAID負載表,所述第三RAID負載表中包括:所述每個RAID的最大負載權值和所述每個RAID的實際負載值;
[0056]所述SI包括:從所述第三RAID負載表中獲取每個RAID的最大負載權值;
[0057]所述S2包括:從所述第三RAID負載表中獲取每個RAID的實際負載值。
[0058]在第四種可能的實現方式中,上述的一種負載均衡方法,所述SI包括:
[0059]獲取每個RAID的每秒輸入輸出操作的次數1PS ;
[0060]根據每個RAID的1PS計算出所有RAID的總1PS ;
[0