專利名稱:一種虛擬存儲方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及網(wǎng)絡(luò)存儲技術(shù)領(lǐng)域,特別涉及一種虛擬存儲方法和設(shè)備。
背景技術(shù):
隨著數(shù)據(jù)存儲需求的不斷增大,存儲方式由服務(wù)器主機內(nèi)置硬盤發(fā)展到
專有的存儲設(shè)備即網(wǎng)絡(luò)存儲,網(wǎng)絡(luò)存儲的主流為SAN( Storage Attach Network,網(wǎng)絡(luò)附加存儲)這種存儲架構(gòu),由SAN存儲設(shè)備(存儲;茲盤陣列)按照需要劃分出LUN (Logical Unit,邏輯單元)映射給服務(wù)器主機使用。
由于主機架構(gòu)的區(qū)別,操作系統(tǒng)的差異,并且存儲設(shè)備沒有統(tǒng)一的標(biāo)準(zhǔn),因此在經(jīng)過一段時間的使用以后,要對現(xiàn)有存儲設(shè)備的邏輯環(huán)境重新規(guī)劃是非常復(fù)雜的 一方面要保證較少中斷甚至不中斷現(xiàn)有生產(chǎn)數(shù)據(jù)的業(yè)務(wù),另一方面要保證存儲數(shù)據(jù)的安全,并且或許需要更多的設(shè)備、時間、網(wǎng)絡(luò)帶寬來完成數(shù)據(jù)的遷移。
在這種需求下,現(xiàn)有技術(shù)多采用存儲虛擬化的解決方案,存儲虛擬化設(shè)備位于SAN架構(gòu)的網(wǎng)絡(luò)層(服務(wù)器主機和SAN存儲設(shè)備之間),接管原有的I(Input,輸入)/0 ( Output,輸出)流向,向上可以連接多臺服務(wù)器主機,向下可以連接多臺SAN存儲設(shè)備,屏蔽服務(wù)器主機和存儲磁盤陣列之間的差異。但是現(xiàn)有的存儲虛擬化設(shè)備并不能屏蔽服務(wù)器主機的差異,以及不同系統(tǒng)平臺巻管理方式的差異。
發(fā)明內(nèi)容
本發(fā)明實施例^^供一種虛擬存儲方法和設(shè)備,以實現(xiàn)存儲融合,屏蔽不同主機之間的差異性。
本發(fā)明實施例一方面提供一種虛擬存儲方法,包括錄在拼接數(shù)據(jù)中;
根據(jù)所述LUN和所述拼接數(shù)據(jù)構(gòu)造虛擬LUN,將所述虛擬LUN映射給主才幾進4于讀寫"i方問;
在接收到主機下發(fā)的輸入/輸出1/0數(shù)據(jù)包之后,根據(jù)所述拼接數(shù)據(jù)修改所述I/0數(shù)據(jù)包的目的地址,將所述I/0數(shù)據(jù)包下發(fā)到所述虛擬LUN,并根據(jù)所述拼接數(shù)據(jù)將下發(fā)到所述虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,所述1/0數(shù)據(jù)包下發(fā)到存儲陣列的位置與所述1/0數(shù)據(jù)包修改前的目的地址相同。另一方面,本發(fā)明實施例一種虛擬化設(shè)備,包括獲取模塊,用于獲取來自存儲陣列的邏輯單元LUN的巻管理方式;記錄模塊,用于將所述獲取模塊獲取的巻管理方式記錄在拼接數(shù)據(jù)中;拼接模塊,用于根據(jù)所述LUN和所述記錄模塊獲得的拼接數(shù)據(jù)構(gòu)造虛擬LUN,將所述虛擬LUN映射給主機進行讀寫訪問;
1/0數(shù)據(jù)包處理模塊,用于在接收到主機下發(fā)的1/0數(shù)據(jù)包之后,根據(jù)所述記錄模塊獲得的拼接數(shù)據(jù)修改所述I/O數(shù)據(jù)包的目的地址,將所述I/O數(shù)據(jù)包下發(fā)到所述虛擬LUN,并根據(jù)所述拼接數(shù)據(jù)將下發(fā)到所述虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,所述I/O數(shù)據(jù)包下發(fā)到存儲陣列的地址與所述I/O數(shù)據(jù)包修改前的目的地址相同。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例具有以下優(yōu)點通過本發(fā)明實施例,虛擬化設(shè)備將來自存儲陣列的LUN的巻管理方式記錄在拼接數(shù)據(jù)中,根據(jù)該LUN和該拼接凄t據(jù)構(gòu)造虛擬LUN,將虛擬LUN映射給主機進行讀寫訪問。在接收到主機下發(fā)的I/O數(shù)據(jù)包之后,根據(jù)拼接數(shù)據(jù)修改1/0數(shù)據(jù)包的目的地址,將I/O數(shù)據(jù)包下發(fā)到虛擬LUN,并根據(jù)拼接數(shù)據(jù)將下發(fā)到虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,該I/O數(shù)據(jù)包下發(fā)到存儲陣列的地址與該I/O數(shù)據(jù)包修改前的目的地址相同。本發(fā)明實施例實現(xiàn)了存儲融合,可以屏蔽不同主機、以及來自不同系統(tǒng)平臺巻管理方式的差異性。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一種虛擬存儲方法的流程圖;圖2為不同操作系統(tǒng)的巻管理方式示意圖;圖3為本發(fā)明實施例I/O數(shù)據(jù)包處理示意圖;圖4為本發(fā)明實施例一種虛擬化設(shè)備的結(jié)構(gòu)圖;圖5為本發(fā)明實施例另一種虛擬化設(shè)備的結(jié)構(gòu)圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供一種虛擬存儲方法,能夠屏蔽不同主機、不同存儲陣列之間的差異性,并能夠保護用戶原有的數(shù)據(jù)不改變原有數(shù)據(jù)內(nèi)容,不改變原有數(shù)據(jù)的存放位置;把虛擬化設(shè)備從現(xiàn)有存儲組網(wǎng)中拔出時可以回復(fù)原
有的組網(wǎng)形態(tài)和數(shù)據(jù)存儲形式,不影響原有的存儲環(huán)境,并且不需要在原有組網(wǎng)的服務(wù)器主機上安裝其它功能性軟件,不占用服務(wù)器主機的資源。
如圖l所示,為本發(fā)明實施例一種虛擬存儲方法的流程圖,包括步驟S101,獲取來自存儲陣列的LUN的巻管理方式,將該巻管理方式記錄在拼接數(shù)據(jù)中。
通常主流的服務(wù)器主機操作系統(tǒng)平臺都提供了巻(磁盤)管理方式,不同操作系統(tǒng)的巻管理方式相互之間是不兼容的,如圖2所示,其中Windows和Linux共用MBR ( Master Boot Record,主引導(dǎo)記錄)的形式來管理巻(磁盤)、Solaris采用VTOC (Volume Table of Contents,目錄巻表)的形式來管理巻(磁盤),上述操作系統(tǒng)的配置數(shù)據(jù)都存放在巻(磁盤)前端第一個扇區(qū)中;
6而AIX ( Avanced Interactive eXcutive,高級交互執(zhí)行)、HP - UX等UNIX系統(tǒng)使用LVM ( Logical Volumn Manager,邏輯巻管理)的巻管理軟件來管理巻(磁盤),上述UNIX操作系統(tǒng)將巻管理方式存放在巻(磁盤)的末尾。
本發(fā)明實施例中,當(dāng)虛擬化設(shè)備發(fā)現(xiàn)了來自于存儲陣列的一個LUN時,如果該LUN是一個已經(jīng)被使用過的包含有數(shù)據(jù)的LUN,則虛擬化設(shè)備根據(jù)來自存儲陣列的邏輯單元LUN的標(biāo)志位,確定LUN的巻管理方式,根據(jù)不同的巻管理方式讀取LUN的分區(qū)信息,根據(jù)LUN的分區(qū)信息獲得該LUN的巻管理方式,并將該LUN的巻管理方式記錄在拼接數(shù)據(jù)中。
步驟S102,根據(jù)LUN和拼接數(shù)據(jù)構(gòu)造虛擬LUN,將該虛擬LUN映射給主#幾進行讀寫訪問。
其中,根據(jù)LUN和拼接數(shù)據(jù)構(gòu)造虛擬LUN具體可以為(1 )讀取來自存儲陣列的LUN的標(biāo)志位獲得該LUN的分區(qū)信息;(2 )在虛擬化設(shè)備或存儲陣列中分配用于保存拼接數(shù)據(jù)的存儲空間;(3 )在拼接數(shù)據(jù)中寫入需要持久化存儲的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括
a、 配置信息;
b、 日志信息;
c、 版本信息;
d、 校驗信息;
e、 來自存儲陣列的LUN的特征碼;
f、 拼接數(shù)據(jù)的大小;
g、 來自存儲陣列的LUN的數(shù)據(jù)區(qū)域的大小;
h、 虛擬LUN的讀寫策略;
i、 備份信息,為了確保拼接數(shù)據(jù)的安全性,所有拼接數(shù)據(jù)都會同時
保存?zhèn)浞荨?br>
其中,將虛擬LUN映射給主機進行讀寫訪問具體可以為在構(gòu)造虛擬LUN之后,使用Target (目標(biāo))模塊將該虛擬LUN映射給主機進行讀寫訪問。Target斗莫塊又名啟動器,用于對SCSI( Small Computer SystemInterface,小型計算機系統(tǒng)接口 )協(xié)議進行封裝,包括FC ( Fiber Channel,光纖4言道)Target和iSCSI (internet Small Computer System Interface,因凈爭網(wǎng)小 型計算機系統(tǒng)接口 ) Target兩種。
步驟S103,在接收到主機下發(fā)的1/0數(shù)據(jù)包之后,根據(jù)拼接數(shù)據(jù)修改1/0 數(shù)據(jù)包的目的地址,將I/O數(shù)據(jù)包下發(fā)到所述虛擬LUN,并根據(jù)拼接數(shù)據(jù)將 下發(fā)到虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,該I/O數(shù)據(jù)包下發(fā)到存儲陣 列的地址與該I/O數(shù)據(jù)包修改前的目的地址相同。其中,本發(fā)明實施例中的主 機可以為HP-UX小型機平臺、AIX 'J、型機平臺、Solaris d、型機平臺或PC Server (服務(wù)器)等。
具體地,如圖3所示,在接收到主機下發(fā)的I/0數(shù)據(jù)包之后,虛擬化設(shè)備根 據(jù)拼接數(shù)據(jù)修改I/0數(shù)據(jù)包的目的地址,將I/0數(shù)據(jù)包下發(fā)到虛擬LUN中,把對 原陣列上的訪問虛擬化成對虛擬LUN的訪問,該處理能夠屏蔽不同主機平臺 的巻管理方式帶來的差異性。
在SAN (網(wǎng)絡(luò)附加存儲)存儲架構(gòu)中,I/O數(shù)據(jù)包途經(jīng)網(wǎng)絡(luò)層到達存儲陣
行修改,實現(xiàn)了帶內(nèi)的1/0接管方式,1/0數(shù)據(jù)包通過主機發(fā)向網(wǎng)絡(luò)交換設(shè)備, 再由網(wǎng)路交換設(shè)備發(fā)向虛擬化設(shè)備,再由虛擬化設(shè)備處理I/O數(shù)據(jù)包以后發(fā)向 存儲陣列。從而可以實現(xiàn)對來自不同應(yīng)用環(huán)境的LUN進行虛擬化管理。
本發(fā)明實施例中,拼接數(shù)據(jù)可以保存在存儲陣列的LUN中,例如在存 儲陣列中配置專門的LUN存放拼接數(shù)據(jù);或者,將拼接數(shù)據(jù)保存在虛擬化設(shè) 備中。
上述虛擬存儲方法,虛擬化設(shè)備將來自存儲陣列的LUN的巻管理方式記 錄在拼接數(shù)據(jù)中,才艮據(jù)該LUN和該拼接數(shù)據(jù)構(gòu)造虛擬LUN,將虛擬LUN映 射給主機進行讀寫訪問。在接收到主機下發(fā)的1/0數(shù)據(jù)包之后,根據(jù)拼接數(shù)據(jù) 修改I/0數(shù)據(jù)包的目的地址,將I/0數(shù)據(jù)包下發(fā)到虛擬LUN,并根據(jù)拼接數(shù) 據(jù)將下發(fā)到虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,該I/O數(shù)據(jù)包下發(fā)到存 儲陣列的地址與I/O數(shù)據(jù)包修改前的目的地址相同。本發(fā)明實施例實現(xiàn)了存儲 融合,可以屏蔽不同主機、以及來自不同系統(tǒng)平臺巻管理方式的差異性。
如圖4所示,為本發(fā)明實施例一種虛擬化設(shè)備的結(jié)構(gòu)圖,包括
8獲取模塊41,用于獲取來自存儲陣列的LUN的巻管理方式; 記錄模塊42,用于將獲取模塊41獲取的巻管理方式記錄在拼接數(shù)據(jù)中; 拼接模塊43,用于根據(jù)LUN和記錄模塊42獲得的拼接數(shù)據(jù)構(gòu)造虛擬 LUN,將虛擬LUN映射給主機進行讀寫訪問;
1/0數(shù)據(jù)包處理模塊44,用于在接收到主機下發(fā)的1/0數(shù)據(jù)包之后,根據(jù) 記錄模塊42獲得的拼接數(shù)據(jù)修改I/O數(shù)據(jù)包的目的地址,將I/O數(shù)據(jù)包下發(fā) 到拼接模塊43構(gòu)造的虛擬LUN,并根據(jù)拼接數(shù)據(jù)將下發(fā)到虛擬LUN的I/O 數(shù)據(jù)包下發(fā)到存儲陣列,該I/O數(shù)據(jù)包下發(fā)到存儲陣列的地址與I/O數(shù)據(jù)包修 改前的目的地址相同。
上述拼接模塊43具體用于讀取來自存儲陣列的LUN的標(biāo)志位獲得該 LUN的分區(qū)信息,在虛擬化設(shè)備或存儲陣列中分配用于保存拼接數(shù)據(jù)的存儲 空間,并在所述拼接數(shù)據(jù)中寫入需要持久化存儲的數(shù)據(jù)結(jié)構(gòu),構(gòu)造虛擬LUN。 然后,拼接模塊43使用Target模塊將上述虛擬LUN映射給主機進行讀寫訪 問。
其中,如圖5所示,獲取模塊41可以包括
讀取子模塊411 ,用于根據(jù)來自存儲陣列的LUN的標(biāo)志位,讀取LUN的 分區(qū)信息;
巻管理方式獲得子模塊412,用于根據(jù)讀取子模塊411讀取的分區(qū)信息獲 得LUN的巻管理方式。
該虛擬化設(shè)備還可以包括
保存模塊45,用于保存記錄模塊42獲得的拼接數(shù)據(jù)。 上述虛擬化設(shè)備,記錄模塊42將獲取模塊41獲取的來自存儲陣列的LUN 的巻管理方式記錄在拼接數(shù)據(jù)中,拼接模塊43根據(jù)該LUN和該拼接數(shù)據(jù)構(gòu) 造虛擬LUN,將虛擬LUN映射給主機進行讀寫訪問。1/0數(shù)據(jù)包處理模塊44 在接收到主機下發(fā)的1/0數(shù)據(jù)包之后,根據(jù)拼接數(shù)據(jù)修改I/0數(shù)據(jù)包的目的地 址,將I/O數(shù)據(jù)包下發(fā)到虛擬LUN,并根據(jù)拼接數(shù)據(jù)將下發(fā)到虛擬LUN的I/O 數(shù)據(jù)包下發(fā)到存儲陣列,該1/0數(shù)據(jù)包下發(fā)到存儲陣列的地址與1/0數(shù)據(jù)包修
改前的目的地址相同。該處理能夠屏蔽不同主機平臺的巻管理方式帶來的差
9異性,從而可以實現(xiàn)對來自不同應(yīng)用環(huán)境的LUN進行虛擬化管理。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可以通過硬件實現(xiàn),也可以可借助軟件加必要的通用硬件平臺的方式來實 現(xiàn)基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該
軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM, U盤,移動 硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機, 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的 模塊或流程并不 一定是實施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述 進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的一 個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆 分成多個子模塊。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此, 任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
權(quán)利要求
1、一種虛擬存儲方法,其特征在于,包括獲取來自存儲陣列的邏輯單元LUN的卷管理方式,將所述卷管理方式記錄在拼接數(shù)據(jù)中;根據(jù)所述LUN和所述拼接數(shù)據(jù)構(gòu)造虛擬LUN,將所述虛擬LUN映射給主機進行讀寫訪問;在接收到I/O數(shù)據(jù)包之后,根據(jù)所述拼接數(shù)據(jù)修改所述I/O數(shù)據(jù)包的目的地址,將所述I/O數(shù)據(jù)包下發(fā)到所述虛擬LUN,并根據(jù)所述拼接數(shù)據(jù)將下發(fā)到所述虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,所述I/O數(shù)據(jù)包下發(fā)到存儲陣列的地址與所述I/O數(shù)據(jù)包修改前的目的地址相同。
2、 如權(quán)利要求l所述的方法,其特征在于,所述獲取來自存儲陣列的邏 輯單元LUN的巻管理方式包括根據(jù)來自存儲陣列的邏輯單元LUN的標(biāo)志位,.讀取所述LUN的分區(qū)信自.根據(jù)所述分區(qū)信息獲得所述LUN的巻管理方式。
3、 如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)來自存儲陣列的邏 輯單元LUN的標(biāo)志位,讀取所述LUN的分區(qū)信息具體包括確定所述來自存儲陣列的LUN包含有數(shù)據(jù),根據(jù)所述LUN的標(biāo)志位, 確定所述LUN的巻管理方式;根據(jù)所述LUN的巻管理方式讀取所述LUN的分區(qū)信息。
4、 如權(quán)利要求l所述的方法,其特征在于,所述拼接數(shù)據(jù)保存在存儲陣 列的LUN中;或者,所述拼接數(shù)據(jù)保存在虛擬化設(shè)備中。
5、 如權(quán)利要求1或4所述的方法,其特征在于,所述根據(jù)LUN和拼接 數(shù)據(jù)構(gòu)造虛擬LUN具體包括讀取所述來自存儲陣列的LUN的標(biāo)志位獲得所述LUN的分區(qū)信息,在在所述拼接數(shù)據(jù)中寫入需要持久化存儲的數(shù)據(jù)結(jié)構(gòu),構(gòu)造所述虛擬LUN。
6、 如權(quán)利要求1所述的方法,其特征在于,所述將所述虛擬LUN映射 給主機進行讀寫訪問具體包括使用目標(biāo)Target模塊將所述虛擬LUN映射給主機進行讀寫訪問。
7、 一種虛擬化設(shè)備,其特征在于,包括獲取模塊,用于獲取來自存儲陣列的邏輯單元LUN的巻管理方式; 記錄模塊,用于將所述獲取模塊獲取的巻管理方式記錄在拼接數(shù)據(jù)中; 拼接模塊,用于根據(jù)所述LUN和所述記錄模塊獲得的拼接數(shù)據(jù)構(gòu)造虛擬 LUN,將所述虛擬LUN映射給主機進行讀寫訪問;1/0數(shù)據(jù)包處理模塊,用于在接收到主機下發(fā)的I/0數(shù)據(jù)包之后,根據(jù)所述記錄模塊獲得的拼接數(shù)據(jù)修改所述I/O數(shù)據(jù)包的目的地址,將所述I/O數(shù)據(jù) 包下發(fā)到所述虛擬LUN,并根據(jù)所述拼接數(shù)據(jù)將下發(fā)到所述虛擬LUN的I/O 數(shù)據(jù)包下發(fā)到存儲陣列,所述I/O數(shù)據(jù)包下發(fā)到存儲陣列的地址與所述I/O數(shù) 據(jù)包修改前的目的地址相同。
8、 如權(quán)利要求7所述虛擬化設(shè)備,其特征在于,所述獲取模塊包括 讀取子模塊,用于根據(jù)來自存儲陣列的LUN的標(biāo)志位,讀取所述LUN的分區(qū)信息;巻管理方式獲得子模塊,用于根據(jù)所述讀取子模塊讀取的分區(qū)信息獲得 所述LUN的巻管理方式。
9、 如權(quán)利要求7所述虛擬化設(shè)備,其特征在于,還包括 保存模塊,用于保存所述記錄模塊獲得的拼接數(shù)據(jù)。
全文摘要
本發(fā)明實施例公開了一種虛擬存儲方法和設(shè)備,所述虛擬存儲方法包括獲取來自存儲陣列的邏輯單元LUN的卷管理方式,將所述卷管理方式記錄在拼接數(shù)據(jù)中;根據(jù)所述LUN和所述拼接數(shù)據(jù)構(gòu)造虛擬LUN,將所述虛擬LUN映射給主機進行讀寫訪問;在接收到主機下發(fā)的輸入I/輸出O數(shù)據(jù)包之后,根據(jù)所述拼接數(shù)據(jù)修改所述I/O數(shù)據(jù)包的目的地址,將所述I/O數(shù)據(jù)包下發(fā)到所述虛擬LUN,并根據(jù)所述拼接數(shù)據(jù)將下發(fā)到所述虛擬LUN的I/O數(shù)據(jù)包下發(fā)到存儲陣列,所述I/O數(shù)據(jù)包下發(fā)到存儲陣列的位置與所述I/O數(shù)據(jù)包修改前的目的地址相同。本發(fā)明實施例實現(xiàn)了存儲融合,可以屏蔽不同主機、以及來自不同系統(tǒng)平臺卷管理方式的差異性。
文檔編號G06F3/06GK101477444SQ200810188018
公開日2009年7月8日 申請日期2008年12月29日 優(yōu)先權(quán)日2008年12月29日
發(fā)明者李熠斌 申請人:成都市華為賽門鐵克科技有限公司