專利名稱:基于fcp協(xié)議的san的雙節(jié)點(diǎn)鏡像集群的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法及系統(tǒng)屬于網(wǎng)絡(luò)存儲(chǔ)技術(shù)領(lǐng)域。
背景技術(shù):
隨著網(wǎng)絡(luò)數(shù)據(jù)量的日益膨脹,海量數(shù)據(jù)存儲(chǔ)已成為了網(wǎng)絡(luò)發(fā)展迫切需要解決的問題。網(wǎng)絡(luò)存儲(chǔ)設(shè)備提供信息系統(tǒng)的信息存取和共享服務(wù),是一種利于信息整合與數(shù)據(jù)共享、且易于管理的安全的新型存儲(chǔ)結(jié)構(gòu)和技術(shù)。隨著網(wǎng)絡(luò)存儲(chǔ)的繼續(xù)深入,數(shù)據(jù)的安全存儲(chǔ)被提高到了一個(gè)前所未有的高度,并且已經(jīng)成為評(píng)價(jià)一個(gè)系統(tǒng)高可用性的一個(gè)主要方面。通常提高數(shù)據(jù)可用性的方法有備份和鏡像,鏡像領(lǐng)域內(nèi)目前比較先進(jìn)的方法有基于雙節(jié)點(diǎn)集群(Cluster)的數(shù)據(jù)復(fù)制方法和基于文件系統(tǒng)的快照的異步鏡像方法。基于雙節(jié)點(diǎn)Cluster的數(shù)據(jù)復(fù)制方法的不足之處在于針對(duì)分布的存儲(chǔ)介質(zhì)進(jìn)行復(fù)制,將造成主機(jī)(Host)節(jié)點(diǎn)的浪費(fèi),采用以太網(wǎng)作為數(shù)據(jù)復(fù)制的傳輸鏈路,將為數(shù)據(jù)存儲(chǔ)引入很大的寫延遲?;谖募到y(tǒng)的快照的異步鏡像方法的不足之處在于系統(tǒng)將引入數(shù)據(jù)的不完全一致性,即鏡像數(shù)據(jù)不能保持完全的實(shí)時(shí)性(up-to-date)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于FCP協(xié)議的存儲(chǔ)網(wǎng)絡(luò)系統(tǒng)的雙節(jié)點(diǎn)集群的方法及鏡像系統(tǒng)來提高數(shù)據(jù)的安全性。本項(xiàng)發(fā)明針對(duì)網(wǎng)絡(luò)存儲(chǔ)中海量數(shù)據(jù)的存儲(chǔ)可靠性問題,提出了一個(gè)基于統(tǒng)一存儲(chǔ)的鏡像方法。采用本方法可以節(jié)省主機(jī)集群的資源,提供災(zāi)難恢復(fù)功能,提高系統(tǒng)效率,增加了系統(tǒng)的兼容性。
本發(fā)明所述的方法的特征在于1、它是一種基于統(tǒng)一存儲(chǔ)介質(zhì)進(jìn)行復(fù)制且采用雙節(jié)點(diǎn)集群的二級(jí)結(jié)構(gòu)提供鏡像的存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Storage Area Network,SAN)雙節(jié)點(diǎn)鏡像集群方法,它借助于光纖通道協(xié)議(FCP)由統(tǒng)一的鏡像監(jiān)控程序進(jìn)行鏡像存儲(chǔ)、容災(zāi)處理和同步操作,它依次分別含有如下步驟(1)鏡像存儲(chǔ)模塊提供管理接口,配置鏡像過程中的磁盤映射表鏡像存儲(chǔ)模塊從主機(jī)(Host)獲取操作鎖,進(jìn)行實(shí)際的數(shù)據(jù)的讀和鏡像寫操作,讀操作只需要在I/O節(jié)點(diǎn)計(jì)算機(jī)上完成,寫操作需要在I/O節(jié)點(diǎn)計(jì)算機(jī)和鏡像I/O節(jié)點(diǎn)計(jì)算機(jī)上同步完成;(2)容災(zāi)處理模塊在鏡像存儲(chǔ)模塊設(shè)備即I/O節(jié)點(diǎn)或鏡像I/O節(jié)點(diǎn)計(jì)算機(jī)讀寫錯(cuò)誤時(shí)由監(jiān)控程序進(jìn)行調(diào)用容災(zāi)處理模塊進(jìn)行鏡像集群系統(tǒng)的切換,由正常工作的存儲(chǔ)設(shè)備繼續(xù)提供完整的數(shù)據(jù)服務(wù),同時(shí)啟用日志記錄;(3)損壞設(shè)備更新后重新同步模塊獲取操作鎖,進(jìn)行數(shù)據(jù)的后臺(tái)同步;在同步完成后,容災(zāi)處理模塊通知鏡像監(jiān)控程序把系統(tǒng),由容災(zāi)模塊切換到正常工作時(shí)的鏡像存儲(chǔ)模式。
2、鏡像過程中的讀操作依次含有以下步驟(1)Host節(jié)點(diǎn)上的應(yīng)用服務(wù)程序模塊向Host節(jié)點(diǎn)上基于SAN的塊設(shè)備發(fā)送I/O請(qǐng)求;(2)I/O請(qǐng)求經(jīng)由Host節(jié)點(diǎn)上的文件系統(tǒng)、SCSI協(xié)議棧、光纖通道卡HBA轉(zhuǎn)為FCP包;(3)FCP包通過光纖鏈路由I/O節(jié)點(diǎn)機(jī)的目標(biāo)模式的光纖通道卡驅(qū)動(dòng)器(HBA Driver)接收,轉(zhuǎn)換成SCSI請(qǐng)求;(4)SCSI請(qǐng)求經(jīng)目標(biāo)模擬模塊(Target Simulator Module)作轉(zhuǎn)發(fā);(5)SCSI命令直接發(fā)送給scsi_mod,經(jīng)廉價(jià)的冗余磁盤陣列SCSI Raid子系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的實(shí)際讀出;(6)無論是否成功,I/O請(qǐng)求的結(jié)果原路返回。
3、鏡像過程中的寫操作依次含有如下步驟(1)Host節(jié)點(diǎn)上的應(yīng)用服務(wù)程序模塊向Host節(jié)點(diǎn)上基于SAN的塊設(shè)備發(fā)送I/O請(qǐng)求;(2)I/O請(qǐng)求經(jīng)由Host節(jié)點(diǎn)上的文件系統(tǒng)、SCSI協(xié)議棧、光纖通道卡HBA轉(zhuǎn)為FCP包;(3)FCP包通過光纖鏈路由I/O節(jié)點(diǎn)機(jī)的目標(biāo)模式的HBA Driver接收,轉(zhuǎn)換成SCSI請(qǐng)求;(4)SCSI請(qǐng)求經(jīng)Target Simulator Module作轉(zhuǎn)發(fā);(5)SCSI命令和數(shù)據(jù)經(jīng)過命令/數(shù)據(jù)復(fù)制層(Command/Data replicating layer)進(jìn)行復(fù)制;(6)復(fù)制后的SCSI命令和數(shù)據(jù)一份經(jīng)過scsi_mod發(fā)送到本地的SCSI-RAID(SCSI冗余磁盤陣列)子系統(tǒng)實(shí)現(xiàn)寫入;(7)復(fù)制后的SCSI命令和數(shù)據(jù)的另一份用于鏡像,經(jīng)過scsi_mod發(fā)送到I/O節(jié)點(diǎn)機(jī)的工作于啟動(dòng)器模式的光纖通道卡驅(qū)動(dòng)(FC HBA Driver),轉(zhuǎn)換成FCP包;該FCP包經(jīng)光纖鏈路由鏡像(Mirror)I/O節(jié)點(diǎn)的工作于目標(biāo)器模式的FC HBA接收,在鏡像I/O節(jié)點(diǎn)上依次完成如下步驟目標(biāo)器模式的HBA Driver接收、轉(zhuǎn)換成SCSI請(qǐng)求后由Target Simulator Module轉(zhuǎn)發(fā)和SCSI_Raid子系統(tǒng)寫入,把結(jié)果返回I/O節(jié)點(diǎn);(8)I/O節(jié)點(diǎn)在收到本地和鏡像I/O節(jié)點(diǎn)的I/O操作成功結(jié)果的返回后,向Host返回操作結(jié)果。
1.容災(zāi)處理操作中,當(dāng)I/O節(jié)點(diǎn)機(jī)所屬的模塊物理磁盤設(shè)備損壞時(shí),當(dāng)SCSI_RAID驅(qū)動(dòng)偵測(cè)到熱插拔事件或根據(jù)讀寫操作的返回值確定非熱插拔事件發(fā)生失敗時(shí),I/O節(jié)點(diǎn)機(jī)根據(jù)本地磁盤筒網(wǎng)絡(luò)磁盤映射的數(shù)據(jù)結(jié)構(gòu),把相應(yīng)的磁盤的狀態(tài)置為失效即Defunct,在I/O節(jié)點(diǎn)機(jī)控制下,把對(duì)失效節(jié)點(diǎn)的操作請(qǐng)求轉(zhuǎn)到相應(yīng)的鏡像磁盤,同時(shí)以日志形式記錄此后發(fā)生的基于該失效磁盤的請(qǐng)求,供原物理磁盤恢復(fù)后進(jìn)行數(shù)據(jù)的重新同步使用。
2.容災(zāi)處理操作中,當(dāng)I/O節(jié)點(diǎn)損壞時(shí),光纖交換機(jī)便發(fā)失敗警告給管理節(jié)點(diǎn),并由管理節(jié)點(diǎn)啟動(dòng)容災(zāi)操作打開鏡像節(jié)點(diǎn)對(duì)主機(jī)節(jié)點(diǎn)的軟件屏蔽,把鏡像節(jié)點(diǎn)變?yōu)橹鳈C(jī)可見,把發(fā)送到I/O節(jié)點(diǎn)的請(qǐng)求全部交由鏡像節(jié)點(diǎn)完成,同時(shí)建立日志記錄,以便失敗的I/O節(jié)點(diǎn)重新加入后,加速數(shù)據(jù)同步。一旦I/O節(jié)點(diǎn)重新加入雙節(jié)點(diǎn)集群存儲(chǔ)系統(tǒng),由管理節(jié)點(diǎn)發(fā)起數(shù)據(jù)和服務(wù)重新建立的過程。
3.容災(zāi)操作中,當(dāng)鏡像I/O節(jié)點(diǎn)失敗時(shí)需要把原有的雙節(jié)點(diǎn)架構(gòu)切換到單節(jié)點(diǎn)架構(gòu),由I/O節(jié)點(diǎn)繼續(xù)提供數(shù)據(jù)服務(wù),同時(shí)由活動(dòng)I/O節(jié)點(diǎn)建立日志記錄,以便失敗后的鏡像I/O節(jié)點(diǎn)重新加入后,加速數(shù)據(jù)同步進(jìn)程。
4.重新同步完全在后臺(tái)進(jìn)行,使系統(tǒng)自動(dòng)由單節(jié)點(diǎn)提供存儲(chǔ)方式自動(dòng)切換為雙節(jié)點(diǎn)工作模式。
5.本發(fā)明所述的系統(tǒng)的特征在于包括以下設(shè)備主機(jī)節(jié)點(diǎn)(Host)用于構(gòu)筑集群系統(tǒng),為網(wǎng)絡(luò)用戶提供高可用的網(wǎng)絡(luò)服務(wù),或提供高性能計(jì)算能力;互聯(lián)設(shè)備包括光纖通道卡(FC HBA),光纖交換機(jī)(FC Switch)和光纖鏈路;I/O節(jié)點(diǎn)(I/O node)為主機(jī)節(jié)點(diǎn)集群系統(tǒng)提供統(tǒng)一的網(wǎng)絡(luò)存儲(chǔ)服務(wù);鏡像I/O節(jié)點(diǎn)(Mirror I/O node)為I/O節(jié)點(diǎn)提供數(shù)據(jù)鏡像的存儲(chǔ)空間并且在I/O節(jié)點(diǎn)發(fā)生存儲(chǔ)災(zāi)難時(shí)為集群系統(tǒng)提供不間斷的存儲(chǔ)服務(wù)。
測(cè)試結(jié)果對(duì)原有的基于FCP的存儲(chǔ)系統(tǒng)不加入雙節(jié)點(diǎn)鏡像系統(tǒng)和加入后的性能進(jìn)行了如下對(duì)比實(shí)驗(yàn),采用iometer作為測(cè)試工具。
從表1中可以看到,對(duì)數(shù)據(jù)塊1MB,256KB,鏡像的寫速度分別為不加入鏡像系統(tǒng)的94.8%,91.9%平均相應(yīng)時(shí)間增加了5.4%,8.7%。
從表2中可以看到,對(duì)數(shù)據(jù)塊1MB,256KB,鏡像的寫速度分別為不加鏡像系統(tǒng)的99.9%,99.1%,寫操作的平均相應(yīng)時(shí)間增加了2.6%,1.7%。
這兩組測(cè)試表明,鏡像系統(tǒng)的對(duì)100%的順序?qū)懭氲男阅苡绊懺?%到8%之間,而對(duì)讀寫均衡的應(yīng)用,影響非常小,在0.1%到1%之間。而實(shí)際應(yīng)用的讀寫操作比例一般為4∶1(Web服務(wù)等),即讀操作大大多于寫操作,即鏡像系統(tǒng)完全能夠滿足實(shí)際應(yīng)用的需要,不會(huì)引入大的性能損失。
表1.對(duì)磁盤的100%的順序?qū)懖僮?
表2.對(duì)磁盤的50%的順序讀,50%的順序?qū)懖僮?
結(jié)論測(cè)試證明,本發(fā)明具有以下特點(diǎn)
(1)實(shí)現(xiàn)了基于統(tǒng)一存儲(chǔ)的遠(yuǎn)程鏡像,鏡像過程完全對(duì)主機(jī)系統(tǒng)進(jìn)行屏蔽,鏡像過程不使用主機(jī)集群的任何資源。該鏡像系統(tǒng)具有遠(yuǎn)程(>10km)、高速(鏡像網(wǎng)絡(luò)2Gbps)的特性。
(2)采用雙節(jié)點(diǎn)集群的二級(jí)結(jié)構(gòu)提供鏡像,充分利用了I/O節(jié)點(diǎn)的軟件控制靈活特性,能夠在任一節(jié)點(diǎn)失敗時(shí)繼續(xù)提供數(shù)據(jù)服務(wù),并且提供了系統(tǒng)重建后的后臺(tái)數(shù)據(jù)重新同步機(jī)制,即災(zāi)難恢復(fù)功能;(3)所有軟件均在操作系統(tǒng)的核心態(tài)運(yùn)行,通過內(nèi)核模塊實(shí)現(xiàn),減少了用戶態(tài)和核心態(tài)的內(nèi)存拷貝,提高了效率;
圖1鏡像系統(tǒng)的體系結(jié)構(gòu),其中HBA表示光纖通道卡(FC Host Bus Adapter);LUN表示SCSI硬盤的邏輯設(shè)備號(hào)(Logic Unit Number),即表示存儲(chǔ)設(shè)備。
圖2鏡像系統(tǒng)中的設(shè)備映射表,其中那個(gè)Mapped Device List表示設(shè)備映射鏈表;Local Dist表示I/O節(jié)點(diǎn)上的磁盤,Remote Disk表示鏡像I/O節(jié)點(diǎn)上的磁盤,可以配置成鏡像磁盤對(duì);Active表示該磁盤設(shè)備處于正常工作狀態(tài),Defunct表示該磁盤失效;NULL表示空。
圖3本發(fā)明所述方法的程序流程框圖,其中Host節(jié)點(diǎn)表示主機(jī)節(jié)點(diǎn),HBA表示光纖通道卡,Target Simulator Module表示目標(biāo)模擬器,scsi_mod表示SCSI中間層。
具體實(shí)施例方式
系統(tǒng)的體系結(jié)構(gòu)由圖1所示,I/O節(jié)點(diǎn)機(jī)和鏡像(Mirror)I/O節(jié)點(diǎn)機(jī)上的數(shù)據(jù)保持完整的一致性。數(shù)據(jù)通過路徑(1)(4)(見圖1)到I/O節(jié)點(diǎn)進(jìn)行存儲(chǔ),同時(shí)I/O節(jié)點(diǎn)復(fù)制出鏡像數(shù)據(jù)通過路徑(3)(5)(見圖1)到鏡像I/O節(jié)點(diǎn)進(jìn)行鏡像數(shù)據(jù)的存儲(chǔ)。
系統(tǒng)包括三個(gè)核心模塊鏡像存儲(chǔ)模塊;容災(zāi)處理模塊;重新同步模塊。
1、鏡像存儲(chǔ)模塊鏡像存儲(chǔ)模塊提供前端的主機(jī)節(jié)點(diǎn)以鏡像存儲(chǔ),即保證主機(jī)節(jié)點(diǎn)的I/O操作請(qǐng)求正常執(zhí)行,并產(chǎn)生數(shù)據(jù)的實(shí)時(shí)復(fù)制,在鏡像I/O節(jié)點(diǎn)上進(jìn)行冗余存儲(chǔ)。鏡像模塊工作前,需要由管理接口配置鏡像磁盤和被鏡像磁盤之間的映射關(guān)系,建立鏡像磁盤對(duì),配置表保存在I/O節(jié)點(diǎn)、鏡像I/O節(jié)點(diǎn)中。
鏡像過程分下面11個(gè)步驟,見圖3(1)Host節(jié)點(diǎn)上的應(yīng)用服務(wù)向Host節(jié)點(diǎn)上基于SAN的塊設(shè)備發(fā)送I/O請(qǐng)求;(2)I/O請(qǐng)求經(jīng)由Host節(jié)點(diǎn)的文件系統(tǒng)、SCSI協(xié)議棧、光纖通道卡HBA,轉(zhuǎn)為FCP包;(3)FCP包通過光纖鏈路,由I/O節(jié)點(diǎn)的目標(biāo)器模式的HBA Driver接收。轉(zhuǎn)換成SCSI請(qǐng)求;(4)SCSI請(qǐng)求經(jīng)Target Simulator Module作轉(zhuǎn)發(fā),若無鏡像模塊轉(zhuǎn)5,否則轉(zhuǎn)7;(5)若無鏡像模塊,SCSI命令直接發(fā)送給scsi_mod,經(jīng)SCSI-RAID子系統(tǒng)進(jìn)行實(shí)際的實(shí)現(xiàn),即數(shù)據(jù)的實(shí)際寫入/讀出;(6)I/O請(qǐng)求的結(jié)果(是否成功)原路返回;(7)若加入鏡像模塊,則SCSI命令和數(shù)據(jù)經(jīng)過Command/Data replicating layer進(jìn)行復(fù)制;
(8)復(fù)制后的SCSI命令和數(shù)據(jù)一份經(jīng)過scsi_mod發(fā)送到本地的SCSI-RAID子系統(tǒng)實(shí)現(xiàn);(9)復(fù)制后的SCSI命令和數(shù)據(jù)的另一份用于鏡像,經(jīng)過scsi_mod發(fā)送到工作于啟動(dòng)器模式的FC HBA Driver,轉(zhuǎn)換成FCP包;(10)該FCP包經(jīng)FC鏈路由Mirror I/O節(jié)點(diǎn)的工作于啟動(dòng)器模式的FC HBA接收,在鏡像(Mirror)I/O節(jié)點(diǎn)上完成接收、轉(zhuǎn)發(fā)、寫入的工作。發(fā)送I/O操作的結(jié)果到I/O節(jié)點(diǎn);(11)I/O節(jié)點(diǎn)在接收到本地和Mirror I/O節(jié)點(diǎn)的I/O操作的成功返回后,采用步驟6,向Host返回操作結(jié)果。
讀操作類的請(qǐng)求采用(1)(2)(3)(4)(5)(6)的順序執(zhí)行。
寫操作類的請(qǐng)求采用(1)(2)(3)(4)(5)(7)(8)(9)(10)(11)的順序執(zhí)行。
2.容災(zāi)處理鏡像方式下,有三種情況可能發(fā)生SAN系統(tǒng)的存儲(chǔ)的失敗(1)I/O節(jié)點(diǎn)所屬的某塊物理磁盤設(shè)備損壞系統(tǒng)運(yùn)行過程中,由于硬件的原因,有可能發(fā)生I/O節(jié)點(diǎn)機(jī)上本地磁盤的失敗。SCSI-RAID驅(qū)動(dòng)能偵測(cè)到熱插拔事件;對(duì)于非熱插拔事件,可以根據(jù)讀寫操作的返回值來決定是否失敗。在I/O節(jié)點(diǎn)機(jī)上,建立本地磁盤同網(wǎng)絡(luò)磁盤映射的數(shù)據(jù)結(jié)構(gòu)(如圖2),任何一種情況的磁盤失敗,將相應(yīng)的磁盤的狀態(tài)置為Defunct。這種情況下,由于I/O節(jié)點(diǎn)仍可正常工作,且Mirror系統(tǒng)上存在一塊與該失敗磁盤完全一致的磁盤,則由I/O節(jié)點(diǎn)控制,以后發(fā)往失敗節(jié)點(diǎn)的操作請(qǐng)求均可轉(zhuǎn)到對(duì)應(yīng)的鏡像磁盤,由該鏡像磁盤繼續(xù)提供數(shù)據(jù)服務(wù)。同時(shí),需要以日志形式記錄此后發(fā)生的基于該磁盤的請(qǐng)求,以便原物理磁盤恢復(fù)后進(jìn)行數(shù)據(jù)的重新同步。
(2)I/O節(jié)點(diǎn)損壞這種情況較為復(fù)雜,可能發(fā)生I/O節(jié)點(diǎn)宕機(jī)或I/O節(jié)點(diǎn)的與交換機(jī)之間的光纖鏈路中斷。由于任一光纖設(shè)備需要向光纖交換機(jī)注冊(cè),則I/O節(jié)點(diǎn)的失敗將最初由光纖交換機(jī)發(fā)現(xiàn)。交換機(jī)發(fā)出失敗警告給管理節(jié)點(diǎn),并由管理節(jié)點(diǎn)來啟動(dòng)容災(zāi)操作。由于I/O節(jié)點(diǎn)不再可用,此時(shí)分布式的二級(jí)鏡像結(jié)構(gòu)將自動(dòng)降級(jí)為單I/O節(jié)點(diǎn)的系統(tǒng),由Mirror節(jié)點(diǎn)完全發(fā)揮I/O節(jié)點(diǎn)的用途。這種情況下原雙節(jié)點(diǎn)的鏡像集群系統(tǒng)的結(jié)構(gòu)發(fā)生改變,節(jié)點(diǎn)的功能也發(fā)生了切換。具體的方法是打開Mirror節(jié)點(diǎn)對(duì)Host節(jié)點(diǎn)的軟件屏蔽,從而將Mirror節(jié)點(diǎn)變?yōu)镠ost可見。由于Mirror I/O節(jié)點(diǎn)從軟件結(jié)構(gòu)上完全類似鏡像前的SAN I/O節(jié)點(diǎn)機(jī)架構(gòu),并且數(shù)據(jù)與I/O節(jié)點(diǎn)失敗前保持嚴(yán)格的一致。將發(fā)送到I/O節(jié)點(diǎn)的請(qǐng)求全部交由Mirror節(jié)點(diǎn)完成。
I/O節(jié)點(diǎn)重新加入雙節(jié)點(diǎn)集群存儲(chǔ)系統(tǒng)后,需要有數(shù)據(jù)和服務(wù)重新建立的過程。該過程有管理節(jié)點(diǎn)發(fā)起,對(duì)前端主機(jī)節(jié)點(diǎn)透明。這個(gè)過程中,將有數(shù)據(jù)從活動(dòng)I/O節(jié)點(diǎn)到新加入的I/O節(jié)點(diǎn)的重新同步。數(shù)據(jù)同步完成后,由管理節(jié)點(diǎn)將單I/O節(jié)點(diǎn)的架構(gòu)升級(jí)到雙I/O節(jié)點(diǎn)的鏡像集群。
(3)鏡像I/O節(jié)點(diǎn)失敗由于存儲(chǔ)集群系統(tǒng)采用的模式類似與主/從結(jié)構(gòu),鏡像I/O節(jié)點(diǎn)的失敗將不影響原存儲(chǔ)路徑的改變。這種情況下,需要將原有的雙節(jié)點(diǎn)架構(gòu)切換到單節(jié)點(diǎn)架構(gòu),由I/O節(jié)點(diǎn)繼續(xù)提供數(shù)據(jù)服務(wù)。
任何一種情況(I/O節(jié)點(diǎn)磁盤,I/O節(jié)點(diǎn),鏡像I/O節(jié)點(diǎn)磁盤,鏡像I/O節(jié)點(diǎn))的失敗,都需要在進(jìn)行服務(wù)改變或切換的同時(shí),由活動(dòng)I/O節(jié)點(diǎn)建立日志記錄。日志記錄所有對(duì)磁盤數(shù)據(jù)進(jìn)行改動(dòng)的操作,以便當(dāng)失敗節(jié)點(diǎn)重新加入后,加速數(shù)據(jù)同步進(jìn)程。
3.重新同步任一節(jié)點(diǎn),磁盤失敗后重新加入鏡像系統(tǒng),都需要進(jìn)行數(shù)據(jù)的重新同步,以維持鏡像系統(tǒng)的完全一致性。理論上來說,可以由失敗后的日志記錄在加快數(shù)據(jù)的恢復(fù)進(jìn)程,但是由于數(shù)據(jù)的損失程度通常是難以估量的,所以最好的數(shù)據(jù)一致性的方法是進(jìn)行一次完全的數(shù)據(jù)同步。
將一個(gè)全新的I/O節(jié)點(diǎn)加入雙節(jié)點(diǎn)系統(tǒng),也需要進(jìn)行完全的重新同步。
重新同步過程完全在后臺(tái)進(jìn)行,重新同步后,系統(tǒng)自動(dòng)由單節(jié)點(diǎn)提供存儲(chǔ)方式自動(dòng)切換為雙節(jié)點(diǎn)工作模式。
本發(fā)明已經(jīng)在由清華大學(xué)自行研究開發(fā)的海量網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)上通過測(cè)試與應(yīng)用,說明本方法切實(shí)可行,能夠滿足對(duì)數(shù)據(jù)的安全性的保證,而且具有可擴(kuò)展性,高兼容性,非常適于推廣。
權(quán)利要求
1.基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于它是一種基于統(tǒng)一存儲(chǔ)介質(zhì)進(jìn)行復(fù)制且采用雙節(jié)點(diǎn)集群的二級(jí)結(jié)構(gòu)提供鏡像的存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Storage Area Network,SAN)雙節(jié)點(diǎn)鏡像集群方法,它借助于光纖通道協(xié)議(FCP)由統(tǒng)一的鏡像監(jiān)控程序進(jìn)行鏡像存儲(chǔ)、容災(zāi)處理和同步操作,它依次分別含有如下步驟(1)鏡像存儲(chǔ)模塊提供管理接口,配置鏡像過程中的磁盤映射表鏡像存儲(chǔ)模塊從主機(jī)(Host)獲取操作鎖,進(jìn)行實(shí)際的數(shù)據(jù)的讀和鏡像寫操作,讀操作只需要在I/O節(jié)點(diǎn)計(jì)算機(jī)上完成,寫操作需要在I/O節(jié)點(diǎn)計(jì)算機(jī)和鏡像I/O節(jié)點(diǎn)計(jì)算機(jī)上同步完成;(2)容災(zāi)處理模塊在鏡像存儲(chǔ)模塊設(shè)備即I/O節(jié)點(diǎn)或鏡像I/O節(jié)點(diǎn)計(jì)算機(jī)讀寫錯(cuò)誤時(shí)由監(jiān)控程序進(jìn)行調(diào)用容災(zāi)處理模塊進(jìn)行鏡像集群系統(tǒng)的切換,由正常工作的存儲(chǔ)設(shè)備繼續(xù)提供完整的數(shù)據(jù)服務(wù),同時(shí)啟用日志記錄;(3)損壞設(shè)備更新后重新同步模塊獲取操作鎖,進(jìn)行數(shù)據(jù)的后臺(tái)同步;在同步完成后,容災(zāi)處理模塊通知鏡像監(jiān)控程序把系統(tǒng)由容災(zāi)模塊切換到正常工作時(shí)的鏡像存儲(chǔ)模式。
2.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于所述的鏡像過程中的讀操作依次含有以下步驟(1)Host節(jié)點(diǎn)上的應(yīng)用服務(wù)程序模塊向Host節(jié)點(diǎn)上基于SAN的塊設(shè)備發(fā)送I/O請(qǐng)求;(2)I/O請(qǐng)求經(jīng)由Host節(jié)點(diǎn)上的文件系統(tǒng)、SCSI協(xié)議棧、光纖通道卡HBA轉(zhuǎn)為FCP包;(3)FCP包通過光纖鏈路由I/O節(jié)點(diǎn)機(jī)的目標(biāo)模式的光纖通道卡驅(qū)動(dòng)器(HBA Driver)接收,轉(zhuǎn)換成SCSI請(qǐng)求;(4)SCSI請(qǐng)求經(jīng)目標(biāo)模擬模塊(Target Simulator Module)作轉(zhuǎn)發(fā);(5)SCSI命令直接發(fā)送給scsi_mod,經(jīng)廉價(jià)的冗余磁盤陣列SCSI Raid子系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的實(shí)際讀出;(6)無論是否成功,I/O請(qǐng)求的結(jié)果原路返回。
3.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于所述的鏡像過程中的寫操作依次含有如下步驟(1)Host節(jié)點(diǎn)上的應(yīng)用服務(wù)程序模塊向Host節(jié)點(diǎn)上基于SAN的塊設(shè)備發(fā)送I/O請(qǐng)求;(2)I/O請(qǐng)求經(jīng)由Host節(jié)點(diǎn)上的文件系統(tǒng)、SCSI協(xié)議棧、光纖通道卡HBA轉(zhuǎn)為FCP包;(3)FCP包通過光纖鏈路由I/O節(jié)點(diǎn)機(jī)的目標(biāo)模式的HBA Driver接收,轉(zhuǎn)換成SCSI請(qǐng)求;(4)SCSI請(qǐng)求經(jīng)Target Simulator Module作轉(zhuǎn)發(fā);(5)SCSI命令和數(shù)據(jù)經(jīng)過命令/數(shù)據(jù)復(fù)制層(Command/Data replicating layer)進(jìn)行復(fù)制;(6)復(fù)制后的SCSI命令和數(shù)據(jù)一份經(jīng)過scsi_mod發(fā)送到本地的SCSI-RAID(SCSI廉價(jià)冗余磁盤)子系統(tǒng)實(shí)現(xiàn)寫入;(7)復(fù)制后的SCSI命令和數(shù)據(jù)的另一份用于鏡像,經(jīng)過scsi_mod發(fā)送到I/O節(jié)點(diǎn)機(jī)的工作于啟動(dòng)器模式的光纖通道卡驅(qū)動(dòng)(FC HBA Driver),轉(zhuǎn)換成FCP包;該FCP包經(jīng)光纖鏈路由鏡像(Mirror)I/O節(jié)點(diǎn)的工作于目標(biāo)器模式的FC HBA接收,在鏡像I/O節(jié)點(diǎn)上依次完成如下步驟目標(biāo)器模式的HBA Driver接收、轉(zhuǎn)換成SCSI請(qǐng)求后由TargetSimulator Module轉(zhuǎn)發(fā)和SCSI_Raid子系統(tǒng)寫入,把結(jié)果返回I/O節(jié)點(diǎn);(8)I/O節(jié)點(diǎn)在收到本地和鏡像I/O節(jié)點(diǎn)的I/O操作成功結(jié)果的返回后,向Host返回操作結(jié)果。
4.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于所述的容災(zāi)處理操作中,當(dāng)I/O節(jié)點(diǎn)機(jī)所屬的模塊物理磁盤設(shè)備損壞時(shí),當(dāng)SCSI_RAID驅(qū)動(dòng)偵測(cè)到熱插拔事件或根據(jù)讀寫操作的返回值確定非熱插拔事件發(fā)生失敗時(shí),I/O節(jié)點(diǎn)機(jī)根據(jù)本地磁盤同網(wǎng)絡(luò)磁盤映射的數(shù)據(jù)結(jié)構(gòu),把相應(yīng)的磁盤的狀態(tài)置為失效即Defunct,在I/O節(jié)點(diǎn)機(jī)控制下,把對(duì)失效節(jié)點(diǎn)的操作請(qǐng)求轉(zhuǎn)到相應(yīng)的鏡像磁盤,同時(shí)以日志形式記錄此后發(fā)生的基于該失效磁盤的請(qǐng)求,供原物理磁盤恢復(fù)后進(jìn)行數(shù)據(jù)的重新同步使用。
5.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于所述的容災(zāi)處理操作中,當(dāng)I/O節(jié)點(diǎn)損壞時(shí),光纖交換機(jī)便發(fā)失敗警告給管理節(jié)點(diǎn),并由管理節(jié)點(diǎn)啟動(dòng)容災(zāi)操作打開鏡像節(jié)點(diǎn)對(duì)主機(jī)節(jié)點(diǎn)的軟件屏蔽,把鏡像節(jié)點(diǎn)變?yōu)橹鳈C(jī)可見,把發(fā)送到I/O節(jié)點(diǎn)的請(qǐng)求全部交由鏡像節(jié)點(diǎn)完成,同時(shí)建立日志記錄,以便失敗的I/O節(jié)點(diǎn)重新加入后,加速數(shù)據(jù)同步。一旦I/O節(jié)點(diǎn)重新加入雙節(jié)點(diǎn)集群存儲(chǔ)系統(tǒng),由管理節(jié)點(diǎn)發(fā)起數(shù)據(jù)和服務(wù)重新建立的過程。
6.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于所述的容災(zāi)操作中,當(dāng)鏡像I/O節(jié)點(diǎn)失敗時(shí)需要把原有的雙節(jié)點(diǎn)架構(gòu)切換到單節(jié)點(diǎn)架構(gòu),由I/O節(jié)點(diǎn)繼續(xù)提供數(shù)據(jù)服務(wù),同時(shí)由活動(dòng)I/O節(jié)點(diǎn)建立日志記錄,以便失敗后的鏡像I/O節(jié)點(diǎn)重新加入后,加速數(shù)據(jù)同步進(jìn)程。
7.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于所述的重新同步完全在后臺(tái)進(jìn)行,使系統(tǒng)自動(dòng)由單節(jié)點(diǎn)提供存儲(chǔ)方式自動(dòng)切換為雙節(jié)點(diǎn)工作模式。
8.根據(jù)權(quán)利要求1所述的基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法,其特征在于它包括以下設(shè)備主機(jī)節(jié)點(diǎn)(Host)用于構(gòu)筑集群系統(tǒng),為網(wǎng)絡(luò)用戶提供高可用的網(wǎng)絡(luò)服務(wù),或提供高性能計(jì)算能力;互聯(lián)設(shè)備包括光纖通道卡(FC HBA),光纖交換機(jī)(FC Switch)和光纖鏈路;I/O節(jié)點(diǎn)(I/O node)為主機(jī)節(jié)點(diǎn)集群系統(tǒng)提供統(tǒng)一的網(wǎng)絡(luò)存儲(chǔ)服務(wù);鏡像I/O節(jié)點(diǎn)(Mirror I/O node)為I/O節(jié)點(diǎn)提供數(shù)據(jù)鏡像的存儲(chǔ)空間并且在I/O節(jié)點(diǎn)發(fā)生存儲(chǔ)災(zāi)難時(shí)為集群系統(tǒng)提供不間斷的存儲(chǔ)服務(wù)。
全文摘要
基于FCP協(xié)議的SAN的雙節(jié)點(diǎn)鏡像集群的方法及系統(tǒng)屬于網(wǎng)絡(luò)存儲(chǔ)技術(shù)領(lǐng)域,其特征在于基于自行開發(fā)的FC-SAN系統(tǒng),使用雙存儲(chǔ)節(jié)點(diǎn)集群的二級(jí)存儲(chǔ)方法,實(shí)現(xiàn)了一種完全ServerFree(主機(jī)零資源占用)的同步遠(yuǎn)程鏡像;鏡像過程完全對(duì)主機(jī)系統(tǒng)進(jìn)行屏蔽,不占用主機(jī)集群的任何資源,只引入了很小的鏡像寫延遲。它能夠在一個(gè)節(jié)點(diǎn)失效時(shí)繼續(xù)提供數(shù)據(jù)服務(wù),并且提供了系統(tǒng)重建后的后臺(tái)數(shù)據(jù)重新同步機(jī)制。它滿足對(duì)數(shù)據(jù)的安全性的保證,而且具有可擴(kuò)展性,高兼容性。非常適合推廣,已在清華大學(xué)自行研究開發(fā)的海量網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)上通過測(cè)試與應(yīng)用。
文檔編號(hào)H04L12/26GK1529426SQ20031010020
公開日2004年9月15日 申請(qǐng)日期2003年10月10日 優(yōu)先權(quán)日2003年10月10日
發(fā)明者舒繼武, 鄭緯民, 姚駿, 嚴(yán)瑞 申請(qǐng)人:清華大學(xué)