專利名稱:一種面向海量存儲管理的存儲虛擬化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機存儲技術(shù)領(lǐng)域,具體涉及一種面向海量存儲管理的存儲虛擬化 方法。
背景技術(shù):
當前應(yīng)用的海量存儲系統(tǒng)是由存儲節(jié)點、管理節(jié)點、用戶節(jié)點構(gòu)成的海量存儲網(wǎng) 絡(luò)。各存儲節(jié)點由不同廠商的存儲設(shè)備和存儲軟件構(gòu)成,互相之間存在不兼容的現(xiàn)象,功能 區(qū)域劃分復(fù)雜,設(shè)備、協(xié)議種類繁多,存儲節(jié)點數(shù)量龐大,各種應(yīng)用負載高度混合,導(dǎo)致存儲 系統(tǒng)管理復(fù)雜、資源浪費。雖然業(yè)內(nèi)早已提出產(chǎn)品標準化的需求,但是從現(xiàn)實狀況來看,對 于異構(gòu)存儲環(huán)境的整合、管理依然很不理想,從而造成存儲資源的大量浪費和重復(fù)投資,而 且還影響了數(shù)據(jù)的一致性訪問以及系統(tǒng)整體的備份容災(zāi)等諸多方面。同時,海量異構(gòu)存儲系統(tǒng)具有以下特點(1)異構(gòu)性高,存儲資源信息高度復(fù)雜, 訪問開銷大;(2)規(guī)模龐大,超過單一的卷控制器處理能力,需要配置多臺高性能的卷控制 器設(shè)備。存儲虛擬化技術(shù)通常有設(shè)備級虛擬化、子系統(tǒng)級虛擬化、磁帶虛擬化、塊級虛擬化 和文件級虛擬化幾種類型,實現(xiàn)方法則包含帶內(nèi)和帶外兩種,帶內(nèi)是指數(shù)據(jù)傳輸與控制傳 輸同路徑,帶外指數(shù)據(jù)傳輸與控制傳輸不同路徑。其中設(shè)備級和子系統(tǒng)級虛擬化規(guī)模較小, 多由固件或硬件方式實現(xiàn),磁帶虛擬化多見于備份系統(tǒng),在海量存儲系統(tǒng)中一般采用塊級 虛擬化和文件級虛擬化兩種類型。傳統(tǒng)的存儲虛擬化方法多采用帶內(nèi)形式,便于集中控制 和管理,以IBM的存儲卷控制器為代表,其塊級存儲虛擬化解決方案多采用帶內(nèi)方式,在一 定規(guī)模的同構(gòu)存儲網(wǎng)絡(luò)環(huán)境中可以較好的組織存儲資源,簡化對這些資源的管理,向應(yīng)用 提供統(tǒng)一的虛擬存儲設(shè)備,但是由于其所有虛擬化數(shù)據(jù)都要通過虛擬化節(jié)點進行處理,因 此虛擬化節(jié)點很容易成為系統(tǒng)瓶頸,另一方面系統(tǒng)的擴展也受到虛擬化節(jié)點處理能力的限 制,結(jié)合實現(xiàn)成本、擴展性、存儲設(shè)備性能等多方面因素考慮,現(xiàn)有方案將難以有效實現(xiàn)對 海量異構(gòu)存儲資源的管理。針對以上問題,用戶亟需更加有效的面向海量存儲管理的存儲虛擬化方法,對海 量異構(gòu)存儲系統(tǒng)進行動態(tài)管理,實現(xiàn)智能的帶外方式塊級虛擬化,為存儲應(yīng)用提供靈活、統(tǒng) 一的平臺。
發(fā)明內(nèi)容
本發(fā)明提出一種面向海量存儲管理的存儲虛擬化方法,解決現(xiàn)有海量異構(gòu)存儲中 存儲資源高度復(fù)雜、規(guī)模龐大的問題,以提高存儲資源利用率和降低存儲系統(tǒng)的管理成本。本發(fā)明的一種面向海量存儲管理的存儲虛擬化方法,包括下列步驟(1)存儲資源發(fā)現(xiàn)步驟,在各個存儲節(jié)點上運行,順序進行下述子步驟(1. 1)用XML文件描述本存儲節(jié)點的屬性,形成存儲資源文件;存儲資源文件包括 存儲節(jié)點名稱、存儲容量、帶寬、網(wǎng)絡(luò)地址和ID號;
(1. 2)每隔T秒判斷本存儲節(jié)點是否正常工作,是則將存儲資源文件發(fā)送到管理 節(jié)點;否則不發(fā)送存儲資源文件;(2)存儲資源代理步驟,在有存儲資源需求的用戶節(jié)點上運行,順序進行下述子步 驟(2. 1)用XML文件描述用戶的存儲資源需求,形成資源需求文件;資源需求文件 包括用戶節(jié)點名稱、網(wǎng)絡(luò)地址、使用的操作系統(tǒng)和ID號,所需求的虛擬存儲設(shè)備的名稱、容 量、帶寬和磁盤陣列等級;(2. 2)將資源需求文件發(fā)送到管理節(jié)點,申請用戶所需要的存儲資源;(2. 3)等待管理節(jié)點的資源分配文件,收到資源分配文件后,根據(jù)資源分配文件為 用戶創(chuàng)建虛擬存儲設(shè)備;(2. 4)檢查虛擬存儲設(shè)備是否創(chuàng)建成功,是則用XML文件描述存儲資源使用情況, 形成資源使用文件,發(fā)送給管理節(jié)點;否則用XML文件描述錯誤信息,發(fā)送給管理節(jié)點;資 源使用文件包括已經(jīng)分配虛擬存儲設(shè)備的用戶節(jié)點名稱、網(wǎng)絡(luò)地址、使用的操作系統(tǒng)和ID 號,分配的存儲虛擬設(shè)備名稱、存儲容量、帶寬和ID號,所有存儲節(jié)點名稱、存儲容量、帶 寬、網(wǎng)絡(luò)地址和ID號,虛擬存儲設(shè)備使用的存儲節(jié)點存儲容量、網(wǎng)絡(luò)地址、帶寬、剩余容量 和ID號;(3)存儲資源分配步驟,在管理節(jié)點上運行,包括下述子步驟(3. 1)每隔T秒判斷是否接收到來自各存儲節(jié)點發(fā)送的存儲資源文件,是則將所 接收的存儲資源文件更新到數(shù)據(jù)庫中;否則認為該存儲節(jié)點失效,刪除對應(yīng)的存儲資源文 件,T = 3、4、5、6、7 或 8 ;所述更新是指如果數(shù)據(jù)庫中存在舊存儲資源文件,則替換該舊存儲資源文件,數(shù) 據(jù)庫中不存在舊存儲資源文件,則保存該存儲資源文件;(3. 2)接收來自各用戶節(jié)點發(fā)送的資源需求文件,檢索數(shù)據(jù)庫中的存儲資源文件, 進行子步驟(3. 3);(3.3)尋找存儲資源,用XML文件描述,形成資源分配文件,進行子步驟(3.4);資 源分配文件包括分配的虛擬存儲設(shè)備名稱、存儲容量、使用存儲節(jié)點數(shù)量、磁盤陣列等級和 用戶節(jié)點ID號,虛擬存儲設(shè)備使用的存儲節(jié)點ID號、存儲容量、網(wǎng)絡(luò)地址、帶寬和使用容 量;(3. 4)將資源分配文件發(fā)送給用戶節(jié)點,進行子步驟(3. 5);(3. 5)接收來自各用戶節(jié)點發(fā)送的資源使用文件,更新到數(shù)據(jù)庫中。所述存儲資源分配步驟中,子步驟(3. 3)順序進行下述過程A.掃描數(shù)據(jù)庫中的存儲資源文件,判斷存儲資源文件中各存儲資源的帶寬是否大 于或等于資源需求文件要求的帶寬,是則將符合要求的存儲資源,按帶寬從小到大排列生 成鏈表L,轉(zhuǎn)過程B ;否則選擇最接近資源需求文件要求的帶寬的存儲資源,生成鏈表L,轉(zhuǎn) 過程B;B.從鏈表L的表頭開始,判斷鏈表L中節(jié)點的存儲容量是否大于或等于資源需求 文件要求的存儲容量,是則選取該節(jié)點,轉(zhuǎn)過程C ;否則將原資源需求文件要求的存儲容量 減去該節(jié)點的存儲容量作為資源需求文件要求的存儲容量,將原鏈表L表頭節(jié)點的下一節(jié) 點作為鏈表L的表頭,轉(zhuǎn)過程B;
C.將鏈表L中最后選取的節(jié)點的存儲容量、帶寬及網(wǎng)絡(luò)地址,用XML文件描述,形 成資源分配文件。存儲資源發(fā)現(xiàn)步驟在系統(tǒng)運行期間,系統(tǒng)管理員采集需要新加入系統(tǒng)的存儲資 源的屬性信息,周期性地向管理節(jié)點報告存儲節(jié)點存活信息,用于將存儲資源加入到系統(tǒng); 管理節(jié)點通過存活信息檢測存儲資源是否因故障等原因停止使用,避免錯誤使用存儲資 源。存儲資源代理步驟用戶將自己的存儲需求發(fā)送給管理節(jié)點,申請可以滿足用戶 需要的存儲資源;當接收到管理節(jié)點的反饋信息后,讀取反饋信息中資源分配文件,通過資 源分配文件為用戶創(chuàng)建虛擬存儲設(shè)備。存儲資源分配步驟用于集中保存和維護海量存儲系統(tǒng)中的存儲資源信息以及虛 擬設(shè)備信息,并進行存儲資源分配。管理節(jié)點和用戶節(jié)點的傳輸路徑是控制路徑,和數(shù)據(jù)路 徑獨立開來,這樣能夠減輕虛擬存儲設(shè)備的數(shù)據(jù)傳輸壓力,提高虛擬存儲設(shè)備的性能。本發(fā)明通過整個存儲空間里的存儲容量和存儲性能的合理分配,提高了存儲資源 利用率;通過獨立的控制和數(shù)據(jù)傳輸路徑,提高了數(shù)據(jù)傳輸?shù)男阅?;通過為分散的企業(yè)存 儲提供集中的管理,降低了存儲系統(tǒng)的管理成本,適用于面向海量異構(gòu)存儲系統(tǒng)的虛擬化 管理。
圖1為本發(fā)明實施例的示意圖;圖2為本發(fā)明實施例使用的存儲系統(tǒng)示意圖;圖3為存儲資源發(fā)現(xiàn)步驟示意圖;圖4為存儲資源文件XML格式示意圖;圖5為存儲資源代理步驟示意圖;圖6為資源需求文件XML格式示意圖;圖7為資源使用文件XML格式示意圖;圖8為存儲資源分配步驟示意圖;圖9為資源分配文件XML格式示意圖;圖10為存儲資源分配步驟的子步驟(3. 3)示意圖。
具體實施例方式如圖1所示,本發(fā)明包括⑴存儲資源發(fā)現(xiàn)步驟;(2)存儲資源代理步驟;(3)存 儲資源分配步驟。如圖2所示,假設(shè)本發(fā)明實施例使用的存儲系統(tǒng)包括存儲節(jié)點、用戶節(jié)點和管理 節(jié)點,存儲節(jié)點為光纖通道存儲設(shè)備、因特網(wǎng)小型計算機系統(tǒng)接口存儲設(shè)備、無限帶寬存儲 設(shè)備,分別用存儲節(jié)點Dl、D2和D3表示,用戶節(jié)點包括用戶節(jié)點HI、H2和H3,管理節(jié)點為 M1,用戶節(jié)點Hl需要創(chuàng)建虛擬存儲設(shè)備LVl跨越存儲節(jié)點Dl和D2。本發(fā)明實施例包括(1)存儲資源發(fā)現(xiàn)步驟,在各個存儲節(jié)點上運行,如圖3所示,順序進行下述子步 驟
(1. 1)用XML文件描述存儲節(jié)點D1、D2和D3的屬性,包括存儲容量、帶寬、網(wǎng)絡(luò)地 址,形成存儲資源文件,如圖4所示;(1. 2)每隔5秒存儲節(jié)點D1、D2和D3判斷自身是否正常工作,是則將存儲資源文 件發(fā)送到管理節(jié)點;否則不發(fā)送存儲資源文件;(2)存儲資源代理步驟,在用戶節(jié)點Hl上運行,如圖5所示,順序進行下述子步 驟(2. 1)用XML文件描述用戶節(jié)點Hl的存儲資源需求,形成資源需求文件,如圖6所 示;(2. 2)將資源需求文件發(fā)送到管理節(jié)點M1,申請用戶節(jié)點Hl所需要的存儲資源;(2. 3)等待管理節(jié)點Ml的資源分配文件,收到資源分配文件后,根據(jù)資源分配文 件為用戶節(jié)點Hl創(chuàng)建虛擬存儲設(shè)備LVl ;(2. 4)檢查虛擬存儲設(shè)備LVl是否創(chuàng)建成功,是則用XML文件描述存儲資源使用情 況,形成資源使用文件,發(fā)送給管理節(jié)點Ml ;否則用XML文件描述錯誤信息,發(fā)送給管理節(jié) 點Ml ;資源使用文件如圖7所示;(3)存儲資源分配步驟,在管理節(jié)點Ml上運行,如圖8所示,順序進行下述子步 驟(3. 1)判斷每隔5秒是否接收到來自存儲節(jié)點D1、D2、D3發(fā)送的存儲資源文件,是 則將所接收的存儲資源文件更新到數(shù)據(jù)庫中;否則認為該存儲節(jié)點失效,刪除對應(yīng)的存儲 資源文件;所述更新是指如果數(shù)據(jù)庫中存在舊存儲資源文件,則替換該舊存儲資源文件,數(shù) 據(jù)庫中不存在舊存儲資源文件,則保存該存儲資源文件;(3. 2)接收來自用戶節(jié)點Hl發(fā)送的資源需求文件,檢索數(shù)據(jù)庫中的存儲資源文 件,(3. 3)尋找存儲資源,用XML文件描述,形成資源分配文件,如圖9所示;(3. 4)將資源分配文件發(fā)送給用戶節(jié)點Hl ;(3. 5)接收來自用戶節(jié)點H1、H2、H3發(fā)送的資源使用文件,更新到數(shù)據(jù)庫中。如圖10所示,存儲資源分配步驟的子步驟(3. 3)順序進行下述過程A.掃描數(shù)據(jù)庫中的存儲資源文件,判斷存儲資源文件中各存儲資源的帶寬是否大 于或等于資源需求文件要求的帶寬,是則將符合要求的存儲資源,按帶寬從小到大排列生 成鏈表L,轉(zhuǎn)過程B ;否則選擇最接近資源需求文件要求的帶寬的存儲資源,生成鏈表L,轉(zhuǎn) 過程B;B.從鏈表L的表頭開始,判斷鏈表L中節(jié)點的存儲容量是否大于或等于資源需求 文件要求的存儲容量,是則選取該節(jié)點,轉(zhuǎn)過程C ;否則將原資源需求文件要求的存儲容量 減去該節(jié)點的存儲容量作為資源需求文件要求的存儲容量,將原鏈表L表頭節(jié)點的下一節(jié) 點作為鏈表L的表頭,轉(zhuǎn)過程B;C.將鏈表L中最后選取的節(jié)點的存儲容量、帶寬及網(wǎng)絡(luò)地址,用XML文件描述,形 成資源分配文件。圖4為存儲資源文件XML格式示意圖元素LVML定義文件為一種面向海量存儲 管理的存儲虛擬化方法的XML格式文件,其中屬性UUID定義該XML格式文件的ID號,屬性description定義該XML格式文件的描述信息,屬性version定義該XML格式文件的版本 號;元素DisHnfo定義該XML格式文件為存儲資源文件;元素Disk定義一個存儲節(jié)點,其 中,屬性DiskName定義存儲節(jié)點的名稱,屬性DiskSize定義存儲節(jié)點的容量,屬性DiskIP 定義存儲節(jié)點的網(wǎng)絡(luò)地址,屬性Bandwidth定義帶寬信息,屬性UUID定義存儲節(jié)點的ID號。圖6為資源需求文件XML格式示意圖元素LvmReq定義該XML格式文件為資源 需求文件;元素Host定義一個用戶節(jié)點,其中屬性format定義用戶節(jié)點使用的操作系 統(tǒng),值為1是Linux操作系統(tǒng),值為2是Windows操作系統(tǒng),屬性HostIP定義用戶節(jié)點的 網(wǎng)絡(luò)地址,屬性HostName定義用戶節(jié)點的名稱,屬性UUID定義用戶節(jié)點的ID號;元素 LogicVolume定義用戶節(jié)點需求的虛擬存儲設(shè)備,其中屬性LVName定義虛擬存儲設(shè)備的名 稱,屬性LVSize定義虛擬存儲設(shè)備的容量,屬性Raid定義虛擬存儲設(shè)備的磁盤陣列等級, 值為-1是非磁盤陣列,值為O為RAID0,值為1是RAIDl,值為5是RAID5。圖7為資源使用文件XML格式示意圖元素Lvmhfo定義該XML格式文件為資源 使用文件;元素LogicVolume定義創(chuàng)建的虛擬存儲設(shè)備,其中屬性HostUUID定義使用該虛 擬存儲設(shè)備的用戶節(jié)點ID號,屬性UUID定義虛擬存儲設(shè)備的ID號;元素Disk —個存儲節(jié) 點,其中屬性FreeSize定義存儲節(jié)點未使用的容量圖9為資源分配文件XML格式示意圖元素DiskAllo定義該XML格式文件為資源 分配文件;元素LogicVolume定義分配的虛擬存儲設(shè)備,其中屬性DiskNum定義虛擬存儲設(shè) 備使用的存儲節(jié)點個數(shù);元素Disk定義分配的存儲節(jié)點,其中屬性^edSize定義分配給虛 擬存儲設(shè)備使用的存儲節(jié)點容量。
權(quán)利要求
1.一種面向海量存儲管理的存儲虛擬化方法,包括下列步驟(1)存儲資源發(fā)現(xiàn)步驟,在各個存儲節(jié)點上運行,順序進行下述子步驟(1. 1)用XML文件描述本存儲節(jié)點的屬性,形成存儲資源文件;存儲資源文件包括存儲 節(jié)點名稱、存儲容量、帶寬、網(wǎng)絡(luò)地址和ID號;(1. 2)每隔T秒判斷本存儲節(jié)點是否正常工作,是則將存儲資源文件發(fā)送到管理節(jié)點; 否則不發(fā)送存儲資源文件;(2)存儲資源代理步驟,在有存儲資源需求的用戶節(jié)點上運行,順序進行下述子步驟 (2. 1)用XML文件描述用戶的存儲資源需求,形成資源需求文件;資源需求文件包括用戶節(jié)點名稱、網(wǎng)絡(luò)地址、使用的操作系統(tǒng)和ID號,所需求的虛擬存儲設(shè)備的名稱、容量、帶 寬和磁盤陣列等級;(2. 2)將資源需求文件發(fā)送到管理節(jié)點,申請用戶所需要的存儲資源; (2. 3)等待管理節(jié)點的資源分配文件,收到資源分配文件后,根據(jù)資源分配文件為用戶 創(chuàng)建虛擬存儲設(shè)備;(2. 4)檢查虛擬存儲設(shè)備是否創(chuàng)建成功,是則用XML文件描述存儲資源使用情況,形成 資源使用文件,發(fā)送給管理節(jié)點;否則用XML文件描述錯誤信息,發(fā)送給管理節(jié)點;資源使 用文件包括已經(jīng)分配虛擬存儲設(shè)備的用戶節(jié)點名稱、網(wǎng)絡(luò)地址、使用的操作系統(tǒng)和ID號, 分配的存儲虛擬設(shè)備名稱、存儲容量、帶寬和ID號,所有存儲節(jié)點名稱、存儲容量、帶寬、網(wǎng) 絡(luò)地址和ID號,虛擬存儲設(shè)備使用的存儲節(jié)點存儲容量、網(wǎng)絡(luò)地址、帶寬、剩余容量和ID 號;(3)存儲資源分配步驟,在管理節(jié)點上運行,包括下述子步驟(3. 1)每隔T秒判斷是否接收到來自各存儲節(jié)點發(fā)送的存儲資源文件,是則將所接收 的存儲資源文件更新到數(shù)據(jù)庫中;否則認為該存儲節(jié)點失效,刪除對應(yīng)的存儲資源文件,T =3、4、5、6、7 或8 ;所述更新是指如果數(shù)據(jù)庫中存在舊存儲資源文件,則替換該舊存儲資源文件,數(shù)據(jù)庫 中不存在舊存儲資源文件,則保存該存儲資源文件;(3. 2)接收來自各用戶節(jié)點發(fā)送的資源需求文件,檢索數(shù)據(jù)庫中的存儲資源文件,進行 子步驟(3. 3);(3. 3)尋找存儲資源,用XML文件描述,形成資源分配文件,進行子步驟(3. 4);資源分 配文件包括分配的虛擬存儲設(shè)備名稱、存儲容量、使用存儲節(jié)點數(shù)量、磁盤陣列等級和用戶 節(jié)點ID號,虛擬存儲設(shè)備使用的存儲節(jié)點ID號、存儲容量、網(wǎng)絡(luò)地址、帶寬和使用容量; (3. 4)將資源分配文件發(fā)送給用戶節(jié)點,進行子步驟(3. 5); (3. 5)接收來自各用戶節(jié)點發(fā)送的資源使用文件,更新到數(shù)據(jù)庫中。
2.如權(quán)利要求1所述的面向海量存儲管理的存儲虛擬化方法,其特征在于 所述存儲資源分配步驟中,子步驟(3. 3)順序進行下述過程A.掃描數(shù)據(jù)庫中的存儲資源文件,判斷存儲資源文件中各存儲資源的帶寬是否大于或 等于資源需求文件要求的帶寬,是則將符合要求的存儲資源,按帶寬從小到大排列生成鏈 表L,轉(zhuǎn)過程B ;否則選擇最接近資源需求文件要求的帶寬的存儲資源,生成鏈表L,轉(zhuǎn)過程 B ;B.從鏈表L的表頭開始,判斷鏈表L中節(jié)點的存儲容量是否大于或等于資源需求文件要求的存儲容量,是則選取該節(jié)點,轉(zhuǎn)過程C ;否則將原資源需求文件要求的存儲容量減去 該節(jié)點的存儲容量作為資源需求文件要求的存儲容量,將原鏈表L表頭節(jié)點的下一節(jié)點作 為鏈表L的表頭,轉(zhuǎn)過程B;C.將鏈表L中最后選取的節(jié)點的存儲容量、帶寬及網(wǎng)絡(luò)地址,用XML文件描述,形成資 源分配文件。
全文摘要
一種面向海量存儲管理的存儲虛擬化方法,屬于計算機存儲技術(shù)領(lǐng)域,解決現(xiàn)有海量異構(gòu)存儲中存儲資源高度復(fù)雜、規(guī)模龐大的問題,以提高存儲資源利用率和降低存儲系統(tǒng)的管理成本。本發(fā)明包括(1)存儲資源發(fā)現(xiàn)步驟;(2)存儲資源代理步驟;(3)存儲資源分配步驟。本發(fā)明通過整個存儲空間里的存儲容量和存儲性能的合理分配,提高了存儲資源利用率;通過獨立的控制和數(shù)據(jù)傳輸路徑,提高了數(shù)據(jù)傳輸?shù)男阅?;通過為分散的企業(yè)存儲提供集中的管理,降低了存儲系統(tǒng)的管理成本,適用于面向海量異構(gòu)存儲系統(tǒng)的虛擬化管理。
文檔編號H04L29/08GK102123171SQ20111002536
公開日2011年7月13日 申請日期2011年1月24日 優(yōu)先權(quán)日2011年1月24日
發(fā)明者馮丹, 葉為民, 周峰, 施展, 李勇, 趙恒 申請人:華中科技大學(xué)