專利名稱:調(diào)整邏輯單元號的控制器的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種調(diào)整邏輯單元號(LogicalUnit Number, LUN)的控制器的方法及裝置。
背景技術(shù):
LUN不等于某個(gè)設(shè)備,只是個(gè)號碼而已,不代表任何實(shí)體屬性,在實(shí)際環(huán)境里,碰到 的LUN可能是磁盤空間,可能是磁帶機(jī),等等。 在雙控制器或多控制器的存儲(chǔ)陣列中,創(chuàng)建的每一個(gè)LUN都需要分配一個(gè)控制 器,所有針對該LUN的讀寫操作最終都會(huì)被轉(zhuǎn)發(fā)到與它對應(yīng)的控制器,由該控制器完成對 LUN的讀寫操作。與LUN對應(yīng)的控制器可以切換,切換以后,新的IO(輸入輸出)就會(huì)發(fā)送 到新的控制器處理。 現(xiàn)有的方案中,在創(chuàng)建LUN時(shí),按照創(chuàng)建的順序,把每一個(gè)LUN平均分配到兩個(gè)或 多個(gè)控制器,采用的是簡單的平均分配原則。 一旦給LUN分配控制器之后,除非控制器故障 或鏈路故障,一般不會(huì)自動(dòng)調(diào)整LUN的控制器,即使調(diào)整,采用的是人工調(diào)整的方式。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術(shù)是根據(jù)LUN創(chuàng)建的順序平均分配控 制器,在運(yùn)行過程中也沒有自動(dòng)調(diào)整控制器的方案,導(dǎo)致控制器負(fù)載不均衡,制約了整套設(shè) 備的性能。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種調(diào)整LUN的控制器的方法及裝置,以平衡多個(gè)控制器之 間的處理負(fù)載。 為此,本發(fā)明實(shí)施例采用了如下技術(shù)方案
—種調(diào)整LUN的控制器的方法,
統(tǒng)計(jì)各個(gè)控制器的負(fù)荷; 根據(jù)所述各個(gè)控制器的負(fù)荷調(diào)整LUN的控制器。
—種調(diào)整LUN的控制器的裝置,包括
統(tǒng)計(jì)單元,用于統(tǒng)計(jì)各個(gè)控制器的負(fù)荷; 調(diào)整單元,用于根據(jù)所述統(tǒng)計(jì)單元統(tǒng)計(jì)的各個(gè)控制器的負(fù)荷情況調(diào)整LUN的控制 器。 可見,本發(fā)明實(shí)施例中,根據(jù)各個(gè)控制器的處理負(fù)載情況,切換與LUN對應(yīng)的控制 器,達(dá)到了平衡控制器處理負(fù)載的目的,充分利用了控制器的處理資源,提高了存儲(chǔ)陣列的 性能。
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中 所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。 圖1為本發(fā)明實(shí)施例調(diào)整LUN的控制器的方法流程 圖2為本發(fā)明實(shí)施例調(diào)整LUN的控制器的裝置示意圖。
具體實(shí)施例方式
為了使本發(fā)明實(shí)施例的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。 為便于說明,下面介紹本發(fā)明的一個(gè)具體實(shí)施例,如下 在雙控制器或多控制器的存儲(chǔ)陣列場景下,每個(gè)LUN都需要分配一個(gè)與之對應(yīng)的控制器,所有針對該LUN的讀寫操作最終都會(huì)被轉(zhuǎn)發(fā)到與它對應(yīng)的控制器,由該控制器控制完成對該LUN的讀寫操作。因?yàn)椴煌琇UN活動(dòng)程度的差異、分布的不均勻性以及活動(dòng)程度的變化,導(dǎo)致運(yùn)行過程中,控制器間的處理負(fù)載差距較大。 本發(fā)明實(shí)施例提供一種調(diào)整LUN的控制器的方法,參見圖l,其流程包括 S101 :統(tǒng)計(jì)各個(gè)控制器的CPU負(fù)荷; S102 :根據(jù)所述各個(gè)控制器的負(fù)荷調(diào)整LUN的控制器; 通過統(tǒng)計(jì)各個(gè)控制器的負(fù)載情況,根據(jù)各個(gè)控制器的負(fù)載情況調(diào)整LUN的控制器,達(dá)到控制器負(fù)載均衡的目的,充分利用了控制器的處理資源,提高了存儲(chǔ)陣列的性能。
上述實(shí)施例中,S102還可以包括 S102-l :判斷是否存在兩個(gè)控制器的CPU負(fù)荷差值大于預(yù)置的負(fù)載失衡門限,若是,跳轉(zhuǎn)至S102-2繼續(xù)執(zhí)行,否則,退出; S102-2 :獲取與CPU負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN的活動(dòng)指標(biāo); S102-3 :根據(jù)活動(dòng)指標(biāo),從與CPU負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN,
將選擇出的LUN切換到CPU負(fù)荷最低的控制器,然后退出。 其中,LUN的活動(dòng)指標(biāo)可以為以下至少一項(xiàng)的組合 預(yù)設(shè)時(shí)間段內(nèi)LUN的10數(shù)量; LUN的IO響應(yīng)時(shí)間; 預(yù)設(shè)時(shí)間段內(nèi)LUN占用的CPU時(shí)間; 預(yù)設(shè)時(shí)間段內(nèi)LUN占用Cache (高速緩沖存儲(chǔ)器)資源大?。?br>
LUN的Cache命中率。 其中,S102-3中根據(jù)活動(dòng)指標(biāo),從與CPU負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN,包括以下方式 1 、根據(jù)LUN預(yù)設(shè)時(shí)間內(nèi)的10數(shù)量選擇選擇10數(shù)量少的LUN ;
2、根據(jù)LUN的10響應(yīng)時(shí)間選擇選擇10延時(shí)段的LUN,其中,短延時(shí)是指10響應(yīng)時(shí)間比較短, 一般認(rèn)為幾個(gè)毫秒級的為短延時(shí)。根據(jù)LUN的10響應(yīng)時(shí)間,將短延時(shí)的LUN遷移到同一個(gè)控制器,可以保證小10的及時(shí)響應(yīng),例如一個(gè)存儲(chǔ)陣列中包括數(shù)據(jù)庫和多媒體數(shù)據(jù),其中,存儲(chǔ)數(shù)據(jù)庫的LUN-1屬于小10、短延時(shí)的LUN,存儲(chǔ)多媒體數(shù)據(jù)的LUN-2屬于大10、長延時(shí)的LUN,此時(shí),如果LUN-1與LUN-2對應(yīng)同一個(gè)控制器,LUN-1的小10由于受到LUN-2的大10影B向,LUN-1上的讀寫操作延時(shí)將變得和LUN-2 —樣長,影響數(shù)據(jù)庫的正常使用,因此,可將小10、短延時(shí)的LUN分配到CPU負(fù)荷小的控制器,保證其正常使用。
3、根據(jù)LUN預(yù)設(shè)時(shí)間內(nèi)占用CPU的時(shí)間選擇根據(jù)每個(gè)LUN占用CPU的時(shí)間,選擇占用CPU時(shí)間少的LUN; 4、根據(jù)預(yù)設(shè)時(shí)間段內(nèi)LUN占用Cache (緩存)資源大小選擇根據(jù)LUN占用的Cache資源大小,選擇占用Cache資源小的LUN ; 5、根據(jù)預(yù)設(shè)時(shí)間段內(nèi)LUN的Cache命中率選擇根據(jù)每個(gè)LUN占用Cache的情況,選擇Cache命中率最低的LUN ; 上述從與CPU負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN的方式可結(jié)合應(yīng)用,例如可綜合參考10數(shù)量、占用CPU時(shí)間的情況來選擇LUN,比如選擇10數(shù)量小于200個(gè),且占用CPU時(shí)間小于10ms的LUN 可見,通過實(shí)時(shí)監(jiān)控控制器的負(fù)載情況,當(dāng)兩個(gè)控制器的負(fù)載的差距在一段時(shí)間內(nèi)持續(xù)大于負(fù)載失衡門限時(shí),對部分LUN進(jìn)行控制器的切換,通過從高負(fù)載的控制器中調(diào)整LUN到低負(fù)載的控制器,達(dá)到控制器負(fù)載均衡的目的,充分利用處理資源,提高了存儲(chǔ)陣列的性能。 上述實(shí)施例還可以包括創(chuàng)建LUN的過程,包括
創(chuàng)建LUN ; 根據(jù)控制器的CPU負(fù)荷統(tǒng)計(jì)情況,選擇CPU負(fù)荷最低的控制器作為新創(chuàng)建的LUN的控制器。 由此,在為新創(chuàng)建的LUN分配控制器時(shí),不是簡單地按照順序分配,而是根據(jù)當(dāng)前各個(gè)控制器的負(fù)載情況,選擇CPU負(fù)荷低的控制器,以避免將新創(chuàng)建的LUN分配給負(fù)載較重的控制器,從而達(dá)到均衡處理負(fù)載的目的。 另外,圖1所示的調(diào)整LUN控制器的方案可與現(xiàn)有的按照平均原則分配LUN控制器的方案結(jié)合應(yīng)用。 綜上,本發(fā)明實(shí)施例是通過統(tǒng)計(jì)當(dāng)前所有控制器的CPU負(fù)荷,選擇CPU負(fù)荷最低的控制器作為新創(chuàng)建LUN的控制器或者切換LUN的控制器,既避免了將新創(chuàng)建的LUN分配給負(fù)載較重的控制器,又避免了處理器之間處理負(fù)載的不平衡,達(dá)到負(fù)載均衡的目的,提高了整套設(shè)備的性能。 另外,本發(fā)明實(shí)施例還提供一種調(diào)整LUN的控制器的裝置,該裝置可通過軟件、硬件或軟硬件結(jié)合實(shí)現(xiàn)。參見圖2,為該裝置內(nèi)部結(jié)構(gòu)示意圖,包括
統(tǒng)計(jì)單元201,用于統(tǒng)計(jì)各個(gè)控制器的CPU負(fù)荷; 調(diào)整單元202,用于根據(jù)統(tǒng)計(jì)單元201統(tǒng)計(jì)的控制器的CPU負(fù)荷情況調(diào)整LUN的控制器。 可選的,該裝置還包括 分配單元203,用于根據(jù)統(tǒng)計(jì)單元201統(tǒng)計(jì)的各個(gè)控制器的CPU負(fù)荷情況,選擇CPU負(fù)荷最低的控制器作為新創(chuàng)建的LUN的控制器。
其中,調(diào)整單元202進(jìn)一步包括 調(diào)整觸發(fā)子單元2021,用于根據(jù)統(tǒng)計(jì)單元201的統(tǒng)計(jì)情況,確定存在兩個(gè)控制器的CPU負(fù)荷差值大于預(yù)置的負(fù)載失衡門限時(shí),觸發(fā)調(diào)整;
指標(biāo)獲取子單元2022,獲取與CPU負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN的活動(dòng)指標(biāo); 調(diào)整執(zhí)行子單元2023,用于在調(diào)整觸發(fā)子單元2021觸發(fā)調(diào)整時(shí),根據(jù)指標(biāo)獲取子單元2022獲取的活動(dòng)指標(biāo),從與負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN,將選擇出的LUN切換到CPU負(fù)荷最低的控制器。 其中,指標(biāo)獲取子單元2022獲取的活動(dòng)指標(biāo)包括 預(yù)設(shè)時(shí)間段內(nèi)LUN的10數(shù)量;或者, LUN的10響應(yīng)時(shí)間;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN占用的CPU時(shí)間;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN占用Cache (高速緩沖存儲(chǔ)器)資源大??;或者,
LUN的Cache命中率。 其中,調(diào)整執(zhí)行子單元2023根據(jù)指標(biāo)獲取子單元2022獲取的活動(dòng)指標(biāo),從與負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN,包括以下方式 1、根據(jù)LUN預(yù)設(shè)時(shí)間內(nèi)的IO數(shù)量選擇從高負(fù)載的控制器中選擇IO數(shù)量少的LUN ;或者, 2、根據(jù)LUN的10響應(yīng)時(shí)間選擇選擇小10、短延時(shí)的LUN ;或者, 3、根據(jù)LUN預(yù)設(shè)時(shí)間內(nèi)占用CPU的時(shí)間選擇根據(jù)每個(gè)LUN占用CPU的時(shí)間,優(yōu)先
從高負(fù)載的控制器中選擇占用CPU時(shí)間少的LUN ;或者, 4、根據(jù)預(yù)設(shè)時(shí)間段內(nèi)LUN占用Cache (緩存)資源大小選擇根據(jù)LUN占用的Cache資源大小,選擇占用Cache資源小的LUN ;或者, 5、根據(jù)預(yù)設(shè)時(shí)間段內(nèi)LUN的Cache命中率選擇根據(jù)每個(gè)LUN占用Cache的情況,從高負(fù)載的控制器中選擇Cache命中率最低的LUN ; 上述從與CPU負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN的方式可結(jié)合應(yīng)用,例如可綜合參考10數(shù)量、占用CPU時(shí)間的情況來選擇LUN,比如選擇預(yù)設(shè)時(shí)間為2s之內(nèi),10數(shù)量小于200個(gè),且占用CPU時(shí)間小于10ms的LUN 可見,通過實(shí)時(shí)監(jiān)控控制器的負(fù)載情況,當(dāng)兩個(gè)控制器的負(fù)載的差距大于負(fù)載失衡門限時(shí),對部分LUN進(jìn)行控制器的切換,通過從高負(fù)載的控制器中選擇LUN切換到低負(fù)載的控制器,達(dá)到控制器負(fù)載均衡的目的,充分利用了處理資源,提高了存儲(chǔ)陣列的性能。
通過以上的實(shí)施方式的描述,本領(lǐng)域的普通技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備、或者服務(wù)器、或者其他網(wǎng)絡(luò)設(shè)備執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。 以上僅為本發(fā)明的較佳實(shí)施例,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種調(diào)整邏輯單元號LUN的控制器的方法,其特征在于,統(tǒng)計(jì)各個(gè)控制器的負(fù)荷;根據(jù)所述各個(gè)控制器的負(fù)荷調(diào)整LUN的控制器。
2. 根據(jù)權(quán)利要求1所述方法,其特征在于,所述方法還包括 創(chuàng)建LUN ;選擇負(fù)荷最低的控制器作為新創(chuàng)建的LUN的控制器。
3. 根據(jù)權(quán)利要求1或2所述方法,其特征在于,所述根據(jù)所述各個(gè)控制器的負(fù)荷調(diào)整 LUN的控制器包括當(dāng)存在兩個(gè)控制器的負(fù)荷差值大于預(yù)置的負(fù)載失衡門限時(shí),獲取與負(fù)荷最大的控制器 對應(yīng)的各個(gè)LUN的活動(dòng)指標(biāo);根據(jù)所述活動(dòng)指標(biāo),從所述與負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN,將選擇出 的所述LUN切換到負(fù)荷最低的控制器。
4. 根據(jù)權(quán)利要求3所述方法,其特征在于,所述活動(dòng)指標(biāo)包括 預(yù)設(shè)時(shí)間段內(nèi)LUN的輸入輸出10數(shù)量;或者,LUN的10響應(yīng)時(shí)間;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN占用CPU時(shí)間;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN占用緩存Cache資源大??;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN的Cache命中率。
5. 根據(jù)權(quán)利要求4所述方法,其特征在于,所述根據(jù)所述活動(dòng)指標(biāo),從所述與負(fù)荷最大 的控制器對應(yīng)的各個(gè)LUN中選擇LUN,包括選擇IO數(shù)量少的LUN;或者, 選擇10響應(yīng)時(shí)間短的LUN ;或者, 選擇處理時(shí)間少的LUN ;或者, 選擇Cache命中率最低的LUN ;或者, 選擇Cache占用最少的LUN。
6. —種調(diào)整邏輯單元號LUN的控制器的裝置,其特征在于,包括 統(tǒng)計(jì)單元,用于統(tǒng)計(jì)各個(gè)控制器的負(fù)荷;調(diào)整單元,用于根據(jù)所述統(tǒng)計(jì)單元統(tǒng)計(jì)的各個(gè)控制器的負(fù)荷情況,調(diào)整LUN的控制器。
7. 根據(jù)權(quán)利要求6所述裝置,其特征在于,還包括分配單元,用于根據(jù)所述統(tǒng)計(jì)單元統(tǒng)計(jì)的各個(gè)控制器的負(fù)荷情況,選擇負(fù)荷最低的控 制器作為新創(chuàng)建的LUN的控制器。
8. 根據(jù)權(quán)利要求6或7所述裝置,其特征在于,所述調(diào)整單元進(jìn)一步包括 調(diào)整觸發(fā)子單元,用于根據(jù)所述統(tǒng)計(jì)單元的統(tǒng)計(jì)情況,確定存在兩個(gè)控制器的負(fù)荷差值大于預(yù)置的負(fù)載失衡門限時(shí),觸發(fā)調(diào)整;指標(biāo)獲取子單元,獲取與負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN的活動(dòng)指標(biāo); 調(diào)整執(zhí)行子單元,用于在所述調(diào)整觸發(fā)子單元觸發(fā)調(diào)整時(shí),根據(jù)所述指標(biāo)獲取子單元獲取的活動(dòng)指標(biāo),從所述與負(fù)荷最大的控制器對應(yīng)的各個(gè)LUN中選擇LUN,將選擇出的所述LUN切換到負(fù)荷最低的控制器。
9. 根據(jù)權(quán)利要求8所述裝置,其特征在于,所述指標(biāo)獲取子單元獲取的活動(dòng)指標(biāo)包括預(yù)設(shè)時(shí)間段內(nèi)LUN的輸入輸出10數(shù)量;或者, LUN的10響應(yīng)時(shí)間;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN占用CPU時(shí)間;或者, 預(yù)設(shè)時(shí)間段內(nèi)LUN占用Cache資源大?。换蛘?, 預(yù)設(shè)時(shí)間段內(nèi)LUN的Cache緩存命中率。
10.根據(jù)權(quán)利要求9所述裝置,其特征在于,所述調(diào)整執(zhí)行子單元根據(jù)活動(dòng)指標(biāo)從負(fù)荷 最大的控制器下選擇LUN包括以下方式 選擇IO數(shù)量少的LUN;或者, 選擇10響應(yīng)時(shí)間短的LUN ;或者, 選擇處理時(shí)間少的LUN ;或者, 選擇Cache命中率最低的LUN ;或者, 選擇Cache占用最少的LUN。
全文摘要
本發(fā)明實(shí)施例公開了一種調(diào)整邏輯單元號的控制器的方法,通過統(tǒng)計(jì)當(dāng)前所有控制器的負(fù)荷,選擇負(fù)荷最低的控制器作為需切換LUN的控制器,從而避免將新創(chuàng)建的LUN分配給本已繁忙的控制器,或者避免繁忙控制器一直繁忙而空閑控制器一直空閑的狀態(tài),達(dá)到負(fù)載均衡的目的。
文檔編號G05B11/01GK101763032SQ20091025249
公開日2010年6月30日 申請日期2009年12月17日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者楊虓 申請人:成都市華為賽門鐵克科技有限公司