一種存儲(chǔ)區(qū)域網(wǎng)絡(luò)虛擬化管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種存儲(chǔ)區(qū)域網(wǎng)絡(luò)虛擬化管理方法。
【背景技術(shù)】
[0002]存儲(chǔ)虛擬化是指將具體的存儲(chǔ)設(shè)備同服務(wù)器操作系統(tǒng)分隔開(kāi)來(lái),為存儲(chǔ)用戶提供統(tǒng)一的存儲(chǔ)池和邏輯卷的一種技術(shù)。存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的存儲(chǔ)虛擬化管理是充分發(fā)揮存儲(chǔ)區(qū)域網(wǎng)絡(luò)潛能的一項(xiàng)關(guān)鍵技術(shù)。傳統(tǒng)的基于主機(jī)的虛擬化管理方法采用對(duì)稱式結(jié)構(gòu),機(jī)群中的任何一個(gè)節(jié)點(diǎn)都可以進(jìn)行虛擬化管理的操作,靠節(jié)點(diǎn)間的通信維護(hù)元數(shù)據(jù)的一致性,這增加了主機(jī)的負(fù)擔(dān)并限制了系統(tǒng)的可擴(kuò)展性。另外,由于采用了對(duì)稱式結(jié)構(gòu),該方法不支持前端主機(jī)具有不同操作系統(tǒng)異構(gòu)存儲(chǔ)區(qū)域網(wǎng)絡(luò)環(huán)境。
[0003]本發(fā)明提出了一種新的存儲(chǔ)虛擬化管理方法,有效的解決了上述問(wèn)題。
【發(fā)明內(nèi)容】
[0004]為解決上述現(xiàn)有的缺點(diǎn),本發(fā)明的主要目的在于提供一種實(shí)用的存儲(chǔ)區(qū)域網(wǎng)絡(luò)虛擬化管理方法,適用于多種平臺(tái)的存儲(chǔ)區(qū)域網(wǎng)絡(luò)存儲(chǔ)網(wǎng)絡(luò)系統(tǒng)的存儲(chǔ)資源虛擬化的方法,實(shí)現(xiàn)物理上分散存儲(chǔ)資源邏輯上的共享以及統(tǒng)一管理,向前端主機(jī)提供虛擬卷,本發(fā)明的重點(diǎn)在于元數(shù)據(jù)服務(wù)器的設(shè)計(jì)以及虛擬化元數(shù)據(jù)的表示方法和元數(shù)據(jù)服務(wù)器和虛擬化代理之間的通信模式。
[0005]為達(dá)成以上所述的目的,本發(fā)明的一種存儲(chǔ)區(qū)域網(wǎng)絡(luò)虛擬化管理方法采取如下技術(shù)方案:
一種存儲(chǔ)區(qū)域網(wǎng)絡(luò)虛擬化管理方法,其特征在于,該系統(tǒng)包括有,各種類型的前端主機(jī)、元數(shù)據(jù)服務(wù)器、存儲(chǔ)設(shè)備、光纖交換機(jī),所述各種類型的前端主機(jī),即應(yīng)用服務(wù)器,它的虛擬化代理模塊實(shí)現(xiàn)虛擬的邏輯卷到實(shí)際的物理盤的轉(zhuǎn)換以及從下述元數(shù)據(jù)服務(wù)器讀取相應(yīng)虛擬卷的元數(shù)據(jù),所述元數(shù)據(jù)服務(wù)器,它有一臺(tái)或多臺(tái),它按照TCP/IP協(xié)議經(jīng)以太網(wǎng)與上述各前端主機(jī)相連,它把存儲(chǔ)區(qū)域網(wǎng)絡(luò)中不同公司、不同介質(zhì)的存儲(chǔ)資源統(tǒng)一構(gòu)建成物理卷即虛擬卷、存儲(chǔ)池和邏輯卷,并為上述各前端主機(jī)提供虛擬卷,實(shí)現(xiàn)存儲(chǔ)資源的管理和配置,所述存儲(chǔ)設(shè)備,它的頭部保存著元數(shù)據(jù),每個(gè)存儲(chǔ)設(shè)備有一個(gè)唯一的通用標(biāo)識(shí),用全局唯一標(biāo)識(shí)表示,所述光纖交換機(jī),它通過(guò)光纖總線適配器即人,與上述各前端主機(jī)和元數(shù)據(jù)服務(wù)器相連,同時(shí)也通過(guò)光纖接口與上述存儲(chǔ)設(shè)備相連。
[0006]所述存儲(chǔ)區(qū)域網(wǎng)絡(luò)虛擬化管理方法依次含有以下步驟:
步驟1:構(gòu)造軟件模塊
虛擬化代理即agent模塊,它是各前端主機(jī)上文件系統(tǒng)/數(shù)據(jù)庫(kù)層和底層驅(qū)動(dòng)之間的一個(gè)層,也算內(nèi)核模塊,負(fù)責(zé)邏輯地址到物理地址的映射,它通過(guò)配置的通信接口和上述元數(shù)據(jù)服務(wù)器的通信接口以控制流的形式通信,從上述元數(shù)據(jù)服務(wù)器獲取虛擬卷的配置信息并把虛擬卷呈現(xiàn)給上層文件系統(tǒng)/數(shù)據(jù)庫(kù);當(dāng)文件系統(tǒng)/數(shù)據(jù)庫(kù)發(fā)出對(duì)虛擬卷的I/O操作時(shí),它截取該I/O操作,把邏輯地址映射成物理地址,形成數(shù)據(jù)流后,再把I/O操作發(fā)送到底層驅(qū)動(dòng)器,
元數(shù)據(jù)服務(wù)器的軟件,它運(yùn)行在Linux系統(tǒng)上,由一組用戶空間程序組成,它包括以下模塊:
管理接口,它給管理員提供執(zhí)行管理命令的界面,其中含有創(chuàng)建存儲(chǔ)池、虛擬卷,授予一個(gè)前端主機(jī)對(duì)虛擬卷的使用權(quán)限的命令,另外它也給管理員提供所需的虛擬卷和存儲(chǔ)池的配置信息,它是通過(guò)下述元數(shù)據(jù)管理模塊提供的API實(shí)現(xiàn)的;
主機(jī)接口,它負(fù)責(zé)和上述各前端主機(jī)上的通信接口按照TCP/IP協(xié)議來(lái)通信,當(dāng)前端主機(jī)啟動(dòng)要求載入元數(shù)據(jù)服務(wù)器內(nèi)虛擬卷的元數(shù)據(jù),或者當(dāng)虛擬存儲(chǔ)的配置發(fā)生改變時(shí),元數(shù)據(jù)服務(wù)器通過(guò)通信接口把元數(shù)據(jù)的信息通知虛擬代理模塊,該模塊也通過(guò)主機(jī)接口向下述監(jiān)控模塊報(bào)告自身狀態(tài)和對(duì)虛擬卷的使用情況;
元數(shù)據(jù)管理模塊,它執(zhí)行對(duì)元數(shù)據(jù)的操作任務(wù),它把多個(gè)物理卷組織成存儲(chǔ)池,管理物理卷上的剩余空間,根據(jù)虛擬卷的映射方式生成虛擬卷的元數(shù)據(jù),再把元數(shù)據(jù)的信息記錄在物理卷上,它還有一組供其他模塊調(diào)用的API,所述的元數(shù)據(jù)使用段組織,它含有:邏輯起始扇區(qū)、扇區(qū)數(shù)目、目標(biāo)段類型和目標(biāo)段描述符,所述的目標(biāo)段對(duì)應(yīng)邏輯卷上的一段連續(xù)扇區(qū);所述目標(biāo)段類型分為線性和條帶兩種,一個(gè)完整的虛擬卷元數(shù)據(jù)由虛擬卷頭、段頭和若干段組成,
監(jiān)控模塊,它實(shí)時(shí)監(jiān)控所述管理系統(tǒng)的各個(gè)組成部分的狀態(tài)信息并通知元數(shù)據(jù)管理模,同時(shí)還監(jiān)控各類故障并采取適當(dāng)?shù)幕謴?fù)措施;
步驟2:初始化虛擬化代理模塊
上述元數(shù)據(jù)管理服務(wù)器把虛擬化代理所需的所有存儲(chǔ)設(shè)備的全局唯一標(biāo)識(shí)通過(guò)創(chuàng)建物理卷命令的方式發(fā)送給虛擬化代理模塊,該代理模塊再掃描存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的所有存儲(chǔ)設(shè)備,通過(guò)讀取設(shè)備指定位置的全局唯一標(biāo)識(shí)信息來(lái)定位它所需的存儲(chǔ)設(shè)備,并建立全局唯一標(biāo)識(shí)和內(nèi)核中表不設(shè)備的設(shè)備號(hào)的對(duì)應(yīng)關(guān)系,保存在一個(gè)表中以備后查,完成存儲(chǔ)設(shè)備注冊(cè),主機(jī)啟動(dòng)后,該代理模塊給元數(shù)據(jù)服務(wù)器發(fā)回主機(jī)唯一的主機(jī)標(biāo)識(shí)和驗(yàn)證碼,并寫入本地文件中;
步驟3:元數(shù)據(jù)服務(wù)器根據(jù)管理員的命令把所需的虛擬卷即邏輯卷分配給主機(jī)使用;步驟3.1:元數(shù)據(jù)服務(wù)器根據(jù)管理員的命令把主機(jī)所需的物理卷的全局唯一標(biāo)識(shí)信息發(fā)送給虛擬化代理模塊;
步驟3.2:虛擬化代理模塊根據(jù)步驟3.1提供的全局唯一標(biāo)識(shí)請(qǐng)求掃描磁盤,找到對(duì)應(yīng)的物理卷,在內(nèi)核中建立相應(yīng)的物理卷的列表,并向元數(shù)據(jù)服務(wù)器發(fā)送應(yīng)答;
步驟3.3:元數(shù)據(jù)服務(wù)器把分配給主機(jī)的邏輯卷的元數(shù)據(jù)信息發(fā)送給虛擬化代理模塊,該代理模塊根據(jù)所述元數(shù)據(jù)信息在內(nèi)核中構(gòu)造出虛擬設(shè)備,并給元數(shù)據(jù)服務(wù)器發(fā)出應(yīng)答;
步驟3.4:主機(jī)使用步驟3.3提供的相應(yīng)的虛擬設(shè)備,并使用從元數(shù)據(jù)服務(wù)器得到的元數(shù)據(jù)對(duì)發(fā)往邏輯卷的I/O命令重新定向;
步驟4:在多臺(tái)前端主機(jī)使用虛擬設(shè)備時(shí),若配置的操作需要在線改變?cè)撎摂M卷即邏輯卷的元數(shù)據(jù)時(shí),按以下步驟執(zhí)行:
步驟4.1:元數(shù)據(jù)服務(wù)器根據(jù)元數(shù)據(jù)來(lái)確定使用這個(gè)虛擬卷的前端主機(jī),向這些前端主機(jī)的虛擬化代理模塊發(fā)送加鎖該虛擬卷的請(qǐng)求; 步驟4.2:相應(yīng)的虛擬化代理模塊收到步驟4.1所述的加鎖請(qǐng)求后,把所有I/O命令隊(duì)列中已經(jīng)被重新定向但還未完成的I/O命令發(fā)往底層存儲(chǔ)設(shè)備執(zhí)行,所有后續(xù)的對(duì)該虛擬卷的I/O命令被推遲執(zhí)行,并且不再重新定向;并向元數(shù)據(jù)服務(wù)器發(fā)送應(yīng)答;
步驟4.3:元數(shù)據(jù)服務(wù)器在收到所有的加鎖虛擬卷的成功響應(yīng)后,它的元數(shù)據(jù)管理模塊按需生成新的元數(shù)據(jù),再向擁有該虛擬卷使用權(quán)限的前端主機(jī)發(fā)送重置虛擬卷的請(qǐng)求;步驟4.4:虛擬化代理模塊收到步驟4.3所述的請(qǐng)求后,把虛擬卷的舊的元數(shù)據(jù)替換為新的元數(shù)據(jù);
步驟4.5:元數(shù)據(jù)服務(wù)器在收到所有的重置虛擬卷的成功響應(yīng)后,向虛擬化代理模塊發(fā)送解鎖請(qǐng)求;
步驟4.6:虛擬化代理模塊把所有被推遲的I/O命令用新的元數(shù)據(jù)重新定向并執(zhí)行。
[0007]采用如上技術(shù)方案的本發(fā)明,具有如下有益效果:
本發(fā)明適用于多種平臺(tái)的存儲(chǔ)區(qū)域網(wǎng)絡(luò)存儲(chǔ)網(wǎng)絡(luò)系統(tǒng)的存儲(chǔ)資源虛擬化的方法,實(shí)現(xiàn)物理上分散存儲(chǔ)資源邏輯上的共享以