專利名稱:一種基于虛擬raid構(gòu)建動態(tài)緩存池提高存儲系統(tǒng)性能的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)以及網(wǎng)絡(luò)信息技術(shù)領(lǐng)域,特別涉及一種基于虛擬RAID構(gòu)建 動態(tài)緩存池提高存儲系統(tǒng)性能和可靠性的方法。
背景技術(shù):
當(dāng)前存儲陣列一般都有2G-4G左右的系統(tǒng)緩存。通過Cache可以快速讀寫數(shù) 據(jù),能夠有效提高系統(tǒng)的輸入輸出性能。Cache容量與下一級存儲器即磁盤陣列的 容量相比是很小的, 一般不超過O. 1%,它保存的只是下一級存儲器內(nèi)容的一個子 集。緩存的性能雖然非常快,但其容量相對于多媒體數(shù)據(jù)來說并不足夠大,在很 快寫滿緩存以后,速度立即衰減到實(shí)際操作磁盤的速度。
當(dāng)面臨多媒體類業(yè)務(wù)時,存儲陣列的性能將遠(yuǎn)遠(yuǎn)不能滿足實(shí)際業(yè)務(wù)的需求。 目前的解決辦法是通過擴(kuò)大系統(tǒng)物理內(nèi)存暫時緩解性能瓶頸,此方法會大大增加 硬件的整體成本,同時系統(tǒng)硬件設(shè)計(jì)上也不允許無限制的增加物理內(nèi)存。此種方 法在一般存儲陣列上最大也只能擴(kuò)展到64G左右。而業(yè)界單塊SATA硬盤的存儲容 量已經(jīng)到達(dá)1TB,單個陣列容量已經(jīng)到達(dá)30TB左右,此種緩存擴(kuò)展方法實(shí)現(xiàn)的緩 存比率也只能到達(dá)0. 2%左右。
鑒于現(xiàn)有技術(shù)的不足,人們希望有一種能夠提高存儲陣列緩存比率,并同時提 高系統(tǒng)性能和可靠性的方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服已有技術(shù)存在的不足,解決存儲系統(tǒng)在大負(fù)載情況下 緩存不足所帶來的性能和可靠性問題,提供一種在不增加成本的前提下,大大提 高系統(tǒng)性能,提高存儲陣列的負(fù)載承受能力,同時保證頻繁讀寫數(shù)據(jù)的可靠性測 方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明釆取如下技術(shù)方案。系統(tǒng)包括存儲陣列,存儲
陣列管理臺,虛擬緩存池,塊設(shè)備映射表,虛擬RAID映射表和熱點(diǎn)數(shù)據(jù)映射表, 由一個陣列控制器來控制多個物理存儲設(shè)備的相互連接,使多個物理存儲設(shè)備的 讀寫同步進(jìn)行,同時將物理存儲設(shè)備的存儲空間以一個或多個虛擬磁盤的形式提
供給主機(jī),其中
物理存儲設(shè)備,用于構(gòu)建虛擬RAID的物理資源的單位,通常意義上是SATA 磁盤或固態(tài)硬盤設(shè)備;存儲陣列管理臺,是接受管理員指令進(jìn)行陣列虛擬緩存管理的功能模塊;
虛擬RAID,在每塊物理存儲設(shè)備上劃分一個分區(qū),由多個物理存儲設(shè)備的分 區(qū)創(chuàng)建虛擬的RAID,存儲系統(tǒng)熱點(diǎn)數(shù)據(jù);
虛擬緩存池,利用系統(tǒng)物理存儲設(shè)備構(gòu)建的不同RAID等級的虛擬RAID空間;
塊設(shè)備映射表,處于存儲管理臺內(nèi),是記錄虛擬RAID與物理存儲設(shè)備(磁盤) 之間映射關(guān)系的對照表。 一個虛擬RAID可包含多個物理存儲設(shè)備;
虛擬RAID映射表,處于存儲管理臺內(nèi),是記錄虛擬緩存池與虛擬RAID之間映 射關(guān)系的對照表。虛擬緩存池在一個存儲系統(tǒng)中只有一個,但一個虛擬緩存池可 包含多個虛擬RAID;
熱點(diǎn)數(shù)據(jù)映射表,處于存儲管理臺內(nèi),是記錄緩存池空間與熱點(diǎn)數(shù)據(jù)或分區(qū)之 間映射關(guān)系的對照表;
構(gòu)建虛擬RAID的動態(tài)虛擬緩存池及管理方法,包括如下步驟
設(shè)定虛擬緩存池策略管理員在管理臺上指定虛擬RAID占用的物理存儲設(shè)備 空間比率,并選擇期望的性能加速策略;
創(chuàng)建虛擬RAID,創(chuàng)建塊設(shè)備映射表管理臺根據(jù)管理員設(shè)定,計(jì)算出最佳的 虛擬RAID等級和空間大小,并在陣列現(xiàn)有的所有物理存儲設(shè)備上劃分一定空間創(chuàng) 建指定級別的虛擬RAID,并在系統(tǒng)中建立塊設(shè)備映射表;
創(chuàng)建虛擬緩存池,創(chuàng)建虛擬RAID映射表管理臺把所有的虛擬RAID納入虛擬 緩存池,并建立虛擬RAID映射表;
提取熱點(diǎn)數(shù)據(jù)到緩存池,創(chuàng)建虛擬緩存池映射表;管理臺根據(jù)訪問頻度把熱點(diǎn) 數(shù)據(jù)調(diào)入虛擬緩存池,并創(chuàng)建虛擬緩存池映射表;
更新熱點(diǎn)數(shù)據(jù),修改熱點(diǎn)數(shù)據(jù)映射表;每隔一定時間管理臺重新評定熱點(diǎn)數(shù)據(jù) 和分區(qū),遷出非熱點(diǎn)數(shù)據(jù)和分區(qū),遷入新熱點(diǎn)數(shù)據(jù)和分區(qū),并更新熱點(diǎn)數(shù)據(jù)映射 表;
清空虛擬緩存池當(dāng)系統(tǒng)關(guān)機(jī)的時候,管理臺自動把熱點(diǎn)數(shù)據(jù)轉(zhuǎn)移到實(shí)際物理 存儲單元。
當(dāng)物理存儲設(shè)備發(fā)生變化時
修改虛擬RAID,修改塊設(shè)備映射表新加物理存儲設(shè)備的時候,管理臺把新
加物理設(shè)備納入管理范圍,添加進(jìn)虛擬RAID中,實(shí)現(xiàn)虛擬RAID擴(kuò)容和性能加速, 移除物理設(shè)備的時候則進(jìn)行反向操作;
修改虛擬緩存池,修改虛擬RAID映射表,當(dāng)創(chuàng)建新的虛擬RAID的時候,管理 臺更新虛擬RAID映射表,把新加虛擬RAID納入虛擬緩存池,實(shí)現(xiàn)虛擬緩存池擴(kuò) 容和緩存性能加速,移除虛擬MID的時候則進(jìn)行反向操作。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)異效果是1) 本發(fā)明無需增加硬件購置成本,即可大大提高現(xiàn)有存儲陣列的性能。為保
證性能而創(chuàng)建的虛擬RAID類型可靠性,通常高于用戶用于存儲數(shù)據(jù)的RAID等級,
所以本方法可以在一定程度上提高數(shù)據(jù)可靠性。
2) 本方法用到的物理存儲設(shè)備可以是SATA、 SAS物理磁盤,也可以是SSD固
態(tài)硬盤,適應(yīng)范圍廣。
3) 本方法可以在線擴(kuò)展虛擬RAID,擴(kuò)展虛擬存儲池的容量,具有很好的擴(kuò)展性。
附圖1是基于虛擬RAID構(gòu)建動態(tài)虛擬緩存池提高存儲系統(tǒng)性能和可靠性的工 作示意圖;
具體實(shí)施例方式
參照附圖,對本發(fā)明的方法作以下詳細(xì)的說明。
如附圖1所示,本發(fā)明的一種基于虛擬RAID構(gòu)建動態(tài)緩存池提高存儲系統(tǒng)性
能和可靠性的方法,系統(tǒng)結(jié)構(gòu)包括存儲陣列,存儲陣列管理臺,虛擬緩存池,
塊設(shè)備映射表,虛擬RAID映射表和熱點(diǎn)數(shù)據(jù)映射表,其中
存儲陣列,由一個陣列控制器來控制多個物理存儲設(shè)備(如磁盤)的相互連 接,使多個物理存儲設(shè)備的讀寫同步,減少錯誤,增加效率和可靠度的存儲設(shè)備, 可將物理存儲設(shè)備的存儲空間以一個或多個虛擬磁盤的形式提供給主機(jī)。
物理存儲設(shè)備,用于構(gòu)建虛擬RAID的物理資源的單位,通常意義上是塊設(shè)備; 存儲陣列管理臺,是接受管理員指令進(jìn)行陣列虛擬緩存管理的功能模塊; 虛擬RAID,在每塊物理存儲設(shè)備上劃分一個分區(qū),由多個物理存儲設(shè)備的分 區(qū)創(chuàng)建虛擬的RAID,存儲系統(tǒng)熱點(diǎn)數(shù)據(jù);
虛擬緩存池,利用系統(tǒng)物理存儲設(shè)備構(gòu)建的不同RAID等級的虛擬RAID空間; 塊設(shè)備映射表,處于存儲管理臺內(nèi),是記錄虛擬RAID與物理存儲設(shè)備(磁盤) 之間映射關(guān)系的對照表;
虛擬MID映射表,處于存儲管理臺內(nèi),是記錄虛擬緩存池與虛擬RAID之間映
射關(guān)系的對照表;
熱點(diǎn)數(shù)據(jù)映射表,處于存儲管理臺內(nèi),是記錄緩存池空間占用與熱點(diǎn)數(shù)據(jù)或分 區(qū)之間映射關(guān)系的對照表。
在本方案中,虛擬緩存池由至少一個虛擬RAID構(gòu)成,并建立映射表; 一個存 儲陣列只有一個緩存池, 一個緩存池可以包含多個不同RAID等級的虛擬RAID。
在本方案中,進(jìn)一步地,虛擬RAID是構(gòu)建在系統(tǒng)中的物理磁盤的一個獨(dú)立分 區(qū)上,且至少由一個分區(qū)構(gòu)成。
在本方案中,進(jìn)一步地,系統(tǒng)自動計(jì)算熱點(diǎn)數(shù)據(jù)或分區(qū),并把熱點(diǎn)數(shù)據(jù)自動遷入和遷出虛擬緩存。
構(gòu)建基于虛擬RAID的動態(tài)虛擬緩存池及其管理方法,包括如下步驟-
1) 設(shè)定虛擬緩存池策略管理員在管理臺上指定虛擬RAID占用的物理存儲設(shè) 備空間比率,并選擇期望的性能加速策略;
2) 創(chuàng)建虛擬RAID,創(chuàng)建塊設(shè)備映射表管理臺根據(jù)管理員設(shè)定,計(jì)算出最佳 的虛擬RAID等級和空間大小,并在陣列現(xiàn)有的所有物理存儲設(shè)備上劃分一 定空間創(chuàng)建指定級別的虛擬RAID,并在系統(tǒng)中建立塊設(shè)備映射表。
3) 創(chuàng)建虛擬緩存池,創(chuàng)建虛擬RAID映射表管理臺把所有的虛擬RAID納入 虛擬緩存池,并建立虛擬RAID映射表。
4) 提取熱點(diǎn)數(shù)據(jù)到緩存池,創(chuàng)建虛擬緩存池映射表;管理臺根據(jù)訪問頻度把 熱點(diǎn)數(shù)據(jù)調(diào)入虛擬緩存池,并創(chuàng)建虛擬緩存池映射表。
5) 更新熱點(diǎn)數(shù)據(jù),修改熱點(diǎn)數(shù)據(jù)映射表;每隔一定時間管理臺重新評定熱點(diǎn) 數(shù)據(jù)和分區(qū),遷出非熱點(diǎn)數(shù)據(jù)和分區(qū),遷入新熱點(diǎn)數(shù)據(jù)和分區(qū),并更新熱 點(diǎn)數(shù)據(jù)映射表。
6) 清空虛擬緩存池當(dāng)系統(tǒng)關(guān)機(jī)的時候,管理臺fi動把熱點(diǎn)數(shù)據(jù)轉(zhuǎn)移到實(shí)際 物理存儲單元。
在本方案中,進(jìn)一步地,如步驟l)中所述的性能加速策略包括隨機(jī)讀寫加速、 順序讀寫加速等策略。對于隨機(jī)讀寫加速,系統(tǒng)將可選創(chuàng)建虛擬RAID50,在提供 更好隨機(jī)讀寫性能的基礎(chǔ)上,提供更好的可靠性,可以容忍兩塊磁盤失效,但并 沒有增加系統(tǒng)奇偶校驗(yàn)負(fù)擔(dān)。對于順序讀寫加速策略,系統(tǒng)將可選創(chuàng)建虛擬 RAIDIO,多數(shù)情況下,RAID10能夠承受多個磁盤出現(xiàn)故障的情況,因此更能保證 系統(tǒng)的正常運(yùn)行,且其數(shù)據(jù)丟失的幾率最小。
在本方案中,進(jìn)一步地,如歩驟5)中所述的更新熱點(diǎn)數(shù)據(jù)策略。系統(tǒng)間隔-定時間根據(jù)數(shù)據(jù)訪問頻度、重要性等級等參數(shù),避免非熱點(diǎn)數(shù)據(jù)長期駐留高速虛 擬緩存池導(dǎo)致空間浪費(fèi),而同時新的熱點(diǎn)數(shù)據(jù)卻并沒有進(jìn)入虛擬緩存池而導(dǎo)致系 統(tǒng)整體性能下降。熱點(diǎn)數(shù)據(jù)更新時間等參數(shù)可以由管理員手動設(shè)定。
在本方案中,進(jìn)一步地,如步驟6),因?yàn)樵谙到y(tǒng)關(guān)閉電源的之后,可能存在
單個或一組物理存儲設(shè)備被移除的情況,系統(tǒng)此處不可能保持虛擬緩存池的數(shù)據(jù) 一致性,因此需要像普通內(nèi)存一樣刷新數(shù)據(jù)到物理存儲單元。 當(dāng)物理存儲設(shè)備發(fā)生變化時
1) 修改虛擬RAID,修改塊設(shè)備映射表新加物理存儲設(shè)備的時候,管理臺把 新加物理設(shè)備納入管理范圍,添加進(jìn)虛擬RAID中,實(shí)現(xiàn)虛擬RAID擴(kuò)容和性能加 速。移除物理設(shè)備的時候則進(jìn)行反向操作。
2) 修改虛擬緩存池,修改虛擬RAID映射表。當(dāng)創(chuàng)建新的虛擬RAID的時候,3)管理臺更新虛擬RAID映射表,把新加虛擬RAID納入虛擬緩存池,實(shí)現(xiàn)虛 擬緩存池擴(kuò)容和緩存性能加速。移除虛擬RAID的時候則進(jìn)行反向操作。 跨虛擬RAID的緩存多副本
為了應(yīng)對可能發(fā)生的超出虛擬RAID安全要求的物理存儲設(shè)備數(shù)量失效,所有 虛擬緩存數(shù)據(jù)是以跨虛擬RAID的多副本方式保存的。
默認(rèn)設(shè)置下,單份緩存數(shù)據(jù)(DO)在一個虛擬RAID屮保存一個副本,此虛擬 RAID是DO數(shù)據(jù)的主存儲單元。動態(tài)虛擬緩存系統(tǒng)還將在另一個虛擬RAID上維護(hù) 一份即時同歩的DO數(shù)據(jù)的副本。
當(dāng)單個物理存儲設(shè)備出現(xiàn)故障的時候,虛擬RAID本身即可保障數(shù)據(jù)不受任何影響。
當(dāng)構(gòu)成一個虛擬RAID的所有磁盤同時失效的時候,系統(tǒng)還保留一份完整的數(shù) 據(jù)。如果此時還有另外一個虛擬RAID可以構(gòu)建新的DO數(shù)據(jù)的多副本,系統(tǒng)將立 即啟動構(gòu)建過程。如果系統(tǒng)已經(jīng)沒有多余的虛擬RAID,此份DO數(shù)據(jù)將強(qiáng)制換出動 態(tài)虛擬緩存池,以保障數(shù)據(jù)的安全性。
權(quán)利要求
1、一種基于虛擬RAID構(gòu)建動態(tài)緩存池提高存儲系統(tǒng)性能的方法,包括存儲陣列,存儲陣列管理臺,虛擬緩存池,塊設(shè)備映射表,虛擬RAID映射表和熱點(diǎn)數(shù)據(jù)映射表,由一個陣列控制器來控制多個物理存儲設(shè)備的相互連接,使多個物理存儲設(shè)備的讀寫同步進(jìn)行,同時將物理存儲設(shè)備的存儲空間以一個或多個虛擬磁盤的形式提供給主機(jī),其中物理存儲設(shè)備,用于構(gòu)建虛擬RAID的物理資源的單位,通常意義上是SATA磁盤或固態(tài)硬盤設(shè)備;存儲陣列管理臺,是接受管理員指令進(jìn)行陣列虛擬緩存管理的功能模塊;虛擬RAID,在每塊物理存儲設(shè)備上劃分一個分區(qū),由多個物理存儲設(shè)備的分區(qū)創(chuàng)建虛擬的RAID,存儲系統(tǒng)熱點(diǎn)數(shù)據(jù);虛擬緩存池,利用系統(tǒng)物理存儲設(shè)備構(gòu)建的不同RAID等級的虛擬RAID空間;塊設(shè)備映射表,處于存儲管理臺內(nèi),是記錄虛擬RAID與物理存儲設(shè)備(磁盤)之間映射關(guān)系的對照表。一個虛擬RAID可包含多個物理存儲設(shè)備;虛擬RAID映射表,處于存儲管理臺內(nèi),是記錄虛擬緩存池與虛擬RAID之間映射關(guān)系的對照表。虛擬緩存池在一個存儲系統(tǒng)中只有一個,但一個虛擬緩存池可包含多個虛擬RAID;熱點(diǎn)數(shù)據(jù)映射表,處于存儲管理臺內(nèi),是記錄緩存池空間與熱點(diǎn)數(shù)據(jù)或分區(qū)之間映射關(guān)系的對照表;構(gòu)建虛擬RAID的動態(tài)虛擬緩存池及管理方法,包括如下步驟設(shè)定虛擬緩存池策略管理員在管理臺上指定虛擬RAID占用的物理存儲設(shè)備空間比率,并選擇期望的性能加速策略;創(chuàng)建虛擬RAID,創(chuàng)建塊設(shè)備映射表管理臺根據(jù)管理員設(shè)定,計(jì)算出最佳的虛擬RAID等級和空間大小,并在陣列現(xiàn)有的所有物理存儲設(shè)備上劃分一定空間創(chuàng)建指定級別的虛擬RAID,并在系統(tǒng)中建立塊設(shè)備映射表;創(chuàng)建虛擬緩存池,創(chuàng)建虛擬RAID映射表管理臺把所有的虛擬RAID納入虛擬緩存池,并建立虛擬RAID映射表;提取熱點(diǎn)數(shù)據(jù)到緩存池,創(chuàng)建虛擬緩存池映射表;管理臺根據(jù)訪問頻度把熱點(diǎn)數(shù)據(jù)調(diào)入虛擬緩存池,并創(chuàng)建虛擬緩存池映射表;更新熱點(diǎn)數(shù)據(jù),修改熱點(diǎn)數(shù)據(jù)映射表;每隔一定時間管理臺重新評定熱點(diǎn)數(shù)據(jù)和分區(qū),遷出非熱點(diǎn)數(shù)據(jù)和分區(qū),遷入新熱點(diǎn)數(shù)據(jù)和分區(qū),并更新熱點(diǎn)數(shù)據(jù)映射表;清空虛擬緩存池當(dāng)系統(tǒng)關(guān)機(jī)的時候,管理臺自動把熱點(diǎn)數(shù)據(jù)轉(zhuǎn)移到實(shí)際物理存儲單元。當(dāng)物理存儲設(shè)備發(fā)生變化時修改虛擬RAID,修改塊設(shè)備映射表新加物理存儲設(shè)備的時候,管理臺把新加物理設(shè)備納入管理范圍,添加進(jìn)虛擬RAID中,實(shí)現(xiàn)虛擬RAID擴(kuò)容和性能加速,移除物理設(shè)備的時候則進(jìn)行反向操作;修改虛擬緩存池,修改虛擬RAID映射表,當(dāng)創(chuàng)建新的虛擬RAID的時候,管理臺更新虛擬RAID映射表,把新加虛擬RAID納入虛擬緩存池,實(shí)現(xiàn)虛擬緩存池擴(kuò)容和緩存性能加速,移除虛擬RAID的時候則進(jìn)行反向操作。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,虛擬緩存池由至少一個虛擬RAID 構(gòu)成,并建立映射表; 一個存儲陣列只有一個緩存池, 一個緩存池可以包含多個 不同RAID等級的虛擬RAID。
3、 根據(jù)權(quán)利要求l所述的方法,其特征在于,虛擬RAID是構(gòu)建在系統(tǒng)中的物 理磁盤的一個獨(dú)立分區(qū)上,且至少由一個分區(qū)構(gòu)成。
4、 根據(jù)權(quán)利要求l所述的方法,其特征在于,系統(tǒng)自動計(jì)算熱點(diǎn)數(shù)據(jù)或分區(qū), 并把熱點(diǎn)數(shù)據(jù)自動遷入和遷出虛擬緩存池。
全文摘要
本發(fā)明提供一種基于虛擬RAID構(gòu)建動態(tài)緩存池提高存儲系統(tǒng)性能的方法,該存儲系統(tǒng)構(gòu)成包括物理存儲設(shè)備,存儲陣列,存儲陣列管理臺,虛擬RAID,虛擬緩存池。構(gòu)建步驟包括設(shè)定虛擬緩存池策略;創(chuàng)建虛擬RAID,創(chuàng)建塊設(shè)備映射表。創(chuàng)建虛擬緩存池,創(chuàng)建虛擬RAID映射表。提取熱點(diǎn)數(shù)據(jù)到緩存池,創(chuàng)建虛擬緩存池映射表;定時更新熱點(diǎn)數(shù)據(jù),修改熱點(diǎn)數(shù)據(jù)映射表;清空虛擬緩存池。修改虛擬RAID,修改塊設(shè)備映射表。修改虛擬緩存池,修改虛擬RAID映射表。本發(fā)明的方法優(yōu)點(diǎn)是,在不占用系統(tǒng)有限設(shè)備槽位不增加硬件成本的前提下,有效解決緩存容量不足導(dǎo)致的系統(tǒng)性能下降問題。
文檔編號G06F12/08GK101604226SQ20091001706
公開日2009年12月16日 申請日期2009年7月14日 優(yōu)先權(quán)日2009年7月14日
發(fā)明者張立強(qiáng) 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司