數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和存儲設(shè)備的制作方法
【專利摘要】本發(fā)明實施例提供了一種數(shù)據(jù)發(fā)送方法、接收方法和存儲設(shè)備,包括:第一存儲設(shè)備接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息;將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號;從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息;修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息;將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。可以提高數(shù)據(jù)復(fù)制的效率。
【專利說明】數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和存儲設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲技術(shù),尤其涉及一種數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和存儲設(shè)備。
【背景技術(shù)】
[0002]數(shù)據(jù)容災(zāi),又稱為遠程數(shù)據(jù)復(fù)制技術(shù),是指建立一個異地的數(shù)據(jù)系統(tǒng),該系統(tǒng)是本地數(shù)據(jù)的一個可用復(fù)制。在本地數(shù)據(jù)及整個應(yīng)用系統(tǒng)出現(xiàn)災(zāi)難時,系統(tǒng)至少在異地保存有一份可用的關(guān)鍵業(yè)務(wù)的數(shù)據(jù)。
[0003]典型的數(shù)據(jù)容災(zāi)系統(tǒng)包括生產(chǎn)中心和災(zāi)備中心。在生產(chǎn)中心,部署有主機、存儲陣列,用于正常的業(yè)務(wù)運行;在災(zāi)備中心,部署有主機、存儲陣列,用于在生產(chǎn)中心發(fā)生災(zāi)難后,接管其業(yè)務(wù)。其中,生產(chǎn)中心或災(zāi)備中心的存儲陣列均包含多個數(shù)據(jù)卷,數(shù)據(jù)卷是物理存儲空間映射而成的一段邏輯存儲空間。生產(chǎn)中心的業(yè)務(wù)產(chǎn)生的數(shù)據(jù)寫入生產(chǎn)陣列后,可以經(jīng)容災(zāi)鏈路復(fù)制到災(zāi)備中心,寫入災(zāi)備陣列。為了保證災(zāi)難發(fā)生后,災(zāi)備中心的數(shù)據(jù)能夠支撐業(yè)務(wù)接管,復(fù)制到災(zāi)備陣列的數(shù)據(jù)必須保證一致性(consistency)。保證數(shù)據(jù)一致性本質(zhì)上是指,有依賴關(guān)系的寫數(shù)據(jù)請求,該依賴關(guān)系需要得到保證。應(yīng)用程序、操作系統(tǒng)、數(shù)據(jù)庫都內(nèi)在地依靠這種寫數(shù)據(jù)請求的依賴關(guān)系的邏輯來運行其業(yè)務(wù),例如:先完成寫數(shù)據(jù)請求1,再完成寫數(shù)據(jù)請求2,順序是固定的。也就是說,系統(tǒng)會確保寫數(shù)據(jù)請求I完全返回成功后,才會下發(fā)寫數(shù)據(jù)請求2。由此,才能實現(xiàn)當(dāng)出現(xiàn)故障導(dǎo)致執(zhí)行過程中斷時,可以依靠固有的辦法來恢復(fù)業(yè)務(wù)。否則,可能會出現(xiàn)這樣的情況,例如:在讀取數(shù)據(jù)時,可以讀到寫數(shù)據(jù)請求2存儲的數(shù)據(jù),卻讀不到寫數(shù)據(jù)請求I存儲的數(shù)據(jù),這將導(dǎo)致業(yè)務(wù)無法恢復(fù)。
[0004]在現(xiàn)有技術(shù)中,可以利用快照技術(shù)解決這個問題??煺帐菙?shù)據(jù)在某個時間點(拷貝開始的時間點)的映像??煺盏哪康氖菫閿?shù)據(jù)卷創(chuàng)建一個在特定時間點的狀態(tài)視圖,通過這個視圖只可以看到數(shù)據(jù)卷在創(chuàng)建時刻的數(shù)據(jù),在此時間點之后數(shù)據(jù)卷的修改(有新的數(shù)據(jù)寫入),不會反映在快照視圖中。利用這個快照視圖,就可以做數(shù)據(jù)的復(fù)制。對于生產(chǎn)中心而言,由于快照數(shù)據(jù)是“靜止的”,因此生產(chǎn)中心可以在將各個時間點的數(shù)據(jù)增加快照之后,再將快照數(shù)據(jù)復(fù)制到災(zāi)備中心,既可以完成遠程數(shù)據(jù)復(fù)制,也不會影響在生產(chǎn)中心繼續(xù)執(zhí)行寫數(shù)據(jù)請求。對于災(zāi)備中心而言,也可以滿足數(shù)據(jù)一致性的要求。例如,寫數(shù)據(jù)請求2的數(shù)據(jù)成功復(fù)制到災(zāi)備中心,寫數(shù)據(jù)請求I的數(shù)據(jù)沒有成功復(fù)制,可以利用寫數(shù)據(jù)請求2之前的快照數(shù)據(jù),將災(zāi)備中心的數(shù)據(jù)恢復(fù)到之前的狀態(tài)。
[0005]由于生產(chǎn)中心在執(zhí)行寫數(shù)據(jù)請求的時候要進行快照處理,將生成的快照數(shù)據(jù)保存在專門用于存儲快照數(shù)據(jù)的數(shù)據(jù)卷中,因此生產(chǎn)中心在將快照數(shù)據(jù)復(fù)制到災(zāi)備中心時,需要先將數(shù)據(jù)卷中存儲的快照數(shù)據(jù)讀到緩存,然后再發(fā)送給災(zāi)備中心。然而,用于生成快照數(shù)據(jù)的數(shù)據(jù)可能還存在緩存中,但這部分?jǐn)?shù)據(jù)不能被合理利用,每次復(fù)制都需要先到數(shù)據(jù)卷中讀取快照數(shù)據(jù),導(dǎo)致數(shù)據(jù)復(fù)制的時間較長,效率較低。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供了一種數(shù)據(jù)發(fā)送方法,可以直接從第一存儲設(shè)備的緩存中將寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備,提高了數(shù)據(jù)復(fù)制的效率。
[0007]本發(fā)明實施例第一方面提供了一種數(shù)據(jù)發(fā)送方法,包括:
[0008]第一存儲設(shè)備接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息;
[0009]將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號;
[0010]從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息;
[0011]修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息;
[0012]將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。
[0013]在本發(fā)明實施例第一方面的第一種可能的實現(xiàn)方式中,所述第一編號用于標(biāo)識當(dāng)前的復(fù)制任務(wù);所述方法還包括:
[0014]記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
[0015]結(jié)合本發(fā)明實施例第一方面的第一種實現(xiàn)方式,第一方面的第二種可能的實現(xiàn)方式還包括:
[0016]從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息;
[0017]將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
[0018]本發(fā)明實施例第一方面的第三種可能的實現(xiàn)方式,還包括:記錄當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第一編號。
[0019]本發(fā)明實施例第二方面提供了一種數(shù)據(jù)接收方法,包括:
[0020]第二存儲設(shè)備接收第一存儲設(shè)備發(fā)送的地址信息;
[0021]當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號;
[0022]將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
[0023]在本發(fā)明實施例第二方面的第一種可能的實現(xiàn)方式中,還包括:記錄所述當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第二編號。
[0024]在本發(fā)明實施例第二方面的第二種可能的實現(xiàn)方式中,還包括:
[0025]接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求包含所述接收到的地址信息;
[0026]確定所述接收到的地址信息對應(yīng)的最新的編號是所述第二編號;
[0027]將所述第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給所述主機。
[0028]本發(fā)明實施例第三方面提供了 一種存儲設(shè)備,包括:
[0029]接收模塊,用于接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息;
[0030]讀寫模塊,用于將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號;從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息;[0031]當(dāng)前時間片編號管理器,用于修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息;
[0032]發(fā)送模塊,用于將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。
[0033]在本發(fā)明實施例第三方面的第一種可能的實現(xiàn)方式中,所述第一編號用于標(biāo)識當(dāng)前的復(fù)制任務(wù);
[0034]所述當(dāng)前時間片編號管理器,還用于記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
[0035]結(jié)合本發(fā)明實施例第三方面的第一種實現(xiàn)方式,在第三方面的第二種可能的實現(xiàn)方式中:所述讀寫模塊,還用于從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息;
[0036]所述發(fā)送模塊,還用于將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
[0037]在本發(fā)明實施例第三方面的第三種可能的實現(xiàn)方式中,所述當(dāng)前時間片編號管理器,還用于記錄當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第一編號。
[0038]本發(fā)明實施例第四方面提供了 一種存儲設(shè)備,包括:
[0039]接收模塊,用于接收第一存儲設(shè)備發(fā)送的地址信息;
[0040]查找模塊,用于當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號;
[0041]寫入模塊,用于將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
[0042]在本發(fā)明實施例第四方面的第一種可能的實現(xiàn)方式中,還包括:
[0043]當(dāng)前時間片編號管理器,用于記錄所述當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第二編號。
[0044]在本發(fā)明實施例第四方面的第二種可能的實現(xiàn)方式中,所述接收模塊,還用于接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求包含所述接收到的地址信息;
[0045]所述查找模塊,還用于確定所述接收到的地址信息對應(yīng)的最新的編號是所述第二編號;
[0046]所述存儲設(shè)備還包括發(fā)送模塊,所述發(fā)送模塊用于將所述第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給所述主機。
[0047]本發(fā)明實施例第五方面提供了一種存儲設(shè)備,包括:處理器、存儲器和通信總線;
[0048]其中,所述處理器和所述存儲器通過所述通信總線進行通信;
[0049]所述存儲器用于保存程序;
[0050]所述處理器用于執(zhí)行所述程序,以實現(xiàn):
[0051]接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息;將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號;從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息;修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息;將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。[0052]在本發(fā)明實施例第五方面的第一種可能的實現(xiàn)方式中,所述第一編號用于標(biāo)識當(dāng)前的復(fù)制任務(wù);所述處理器還用于:
[0053]記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
[0054]結(jié)合本發(fā)明實施例第五方面的第一種實現(xiàn)方式,在第五方面的第二種可能的實現(xiàn)方式中,所述處理器還用于:從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息;將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
[0055]在本發(fā)明實施例第五方面的第三種可能的實現(xiàn)方式中,所述處理器還用于:記錄當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第一編號。
[0056]本發(fā)明實施例第六方面提供了一種存儲設(shè)備,包括:處理器、存儲器和通信總線;
[0057]其中,所述處理器和所述存儲器通過所述通信總線進行通信;
[0058]所述存儲器用于保存程序;
[0059]所述處理器用于執(zhí)行所述程序,以實現(xiàn):
[0060]接收第一存儲設(shè)備發(fā)送的地址信息;
[0061]當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號;
[0062]將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
[0063]在本發(fā)明實施例第六方面的第一種可能的實現(xiàn)方式中,所述處理器還用于記錄所述當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第二編號。
[0064]在本發(fā)明實施例第六方面的第二種可能的實現(xiàn)方式中,所述處理器還用于接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求包含所述接收到的地址信息;確定所述接收到的地址信息對應(yīng)的最新的編號是所述第二編號;將所述第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給所述主機。
[0065]本發(fā)明實施例中,第一存儲設(shè)備在接收主機發(fā)送的寫數(shù)據(jù)請求后,所述寫數(shù)據(jù)請求攜帶的信息包括待寫入數(shù)據(jù)和地址信息,在待寫入數(shù)據(jù)和地址信息中增加第一編號,寫入緩存,第一編號為當(dāng)前時間片編號,在復(fù)制任務(wù)觸發(fā)時,從緩存中讀取第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息,發(fā)送給第二存儲設(shè)備,另外,在復(fù)制任務(wù)觸發(fā)時,修改當(dāng)前時間片編號,使得第一存儲設(shè)備在后續(xù)接收寫數(shù)據(jù)請求時,在其攜帶的信息中增加與修改后的當(dāng)前時間片編號相同的編號,由此在緩存中將需要發(fā)送給第二存儲設(shè)備的寫數(shù)據(jù)請求攜帶的信息,與第一存儲設(shè)備正在接收的寫數(shù)據(jù)請求攜帶的信息區(qū)分開來,實現(xiàn)了直接從緩存中將寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備,由于信息是直接從緩存中發(fā)送的,不需要從數(shù)據(jù)卷中讀取數(shù)據(jù),因此數(shù)據(jù)復(fù)制的時間較短,提高了數(shù)據(jù)復(fù)制的效率。
【專利附圖】
【附圖說明】
[0066]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0067]圖1為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法的應(yīng)用網(wǎng)絡(luò)架構(gòu)示意圖;
[0068]圖2為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法的流程圖;
[0069]圖3為本發(fā)明實施例提供的一種數(shù)據(jù)接收方法的流程圖;
[0070]圖4為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法的信令圖;
[0071]圖5為本發(fā)明實施例提供的一種存儲設(shè)備的結(jié)構(gòu)示意圖;
[0072]圖6為本發(fā)明實施例提供的另一種存儲設(shè)備的結(jié)構(gòu)示意圖;
[0073]圖7為本發(fā)明實施例提供的再一種存儲設(shè)備的結(jié)構(gòu)示意圖;
[0074]圖8為本發(fā)明實施例提供的又一種存儲設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0075]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0076]本發(fā)明實施例提供的數(shù)據(jù)發(fā)送方法可以在存儲設(shè)備中實現(xiàn)。圖1為本發(fā)明實施例提供的數(shù)據(jù)發(fā)送方法的系統(tǒng)架構(gòu)示意圖,如圖1所示,生產(chǎn)中心包括生產(chǎn)主機、連接設(shè)備和生產(chǎn)陣列(對應(yīng)下面實施例的第一存儲設(shè)備);災(zāi)備中心的系統(tǒng)架構(gòu)與生產(chǎn)中心類似,包括災(zāi)備主機、連接設(shè)備和災(zāi)備陣列(對應(yīng)下面實施例的第二存儲設(shè)備)。在本發(fā)明實施例中,災(zāi)備中心可以不止一個。其中,生產(chǎn)中心與災(zāi)備中心可以通過IP (Internet Protocol)或者FC (Fiber Chanel)進行數(shù)據(jù)傳輸。生產(chǎn)中心和災(zāi)備中心之間可以有一個控制中心,所述控制中心可以部署在生產(chǎn)中心側(cè),也可以部署在災(zāi)備中心側(cè),還可以部署在生產(chǎn)中心和災(zāi)備中心之間的第三方設(shè)備中。所述控制中心用于當(dāng)生產(chǎn)陣列發(fā)生故障時,向災(zāi)備陣列發(fā)出信號讓其接替生產(chǎn)陣列處理主機業(yè)務(wù)。
[0077]生產(chǎn)主機和災(zāi)備主機均可以是當(dāng)前技術(shù)已知的任何計算設(shè)備,如服務(wù)器、臺式計算機等等。在主機內(nèi)部,安裝有操作系統(tǒng)以及其他應(yīng)用程序。
[0078]連接設(shè)備可以包括當(dāng)前技術(shù)已知的存儲設(shè)備和主機之間的任何接口,如光纖交換機,或者其他現(xiàn)有的交換機。
[0079]生產(chǎn)陣列和災(zāi)備陣列均可以是當(dāng)前技術(shù)已知的存儲設(shè)備,如獨立磁盤冗余陣列(Redundant Arrays of Inexpensive Disks, RAID)、磁盤族(Just a Bunch OfDisks, JB0D)、直接存取存儲器(Direct Access Storage Device, DASD)的一個或多個互連的磁盤驅(qū)動器,諸如磁帶庫、一個或多個存儲單元的磁帶存儲設(shè)備。
[0080]生產(chǎn)陣列的存儲空間可以包括多個數(shù)據(jù)卷,數(shù)據(jù)卷是由物理存儲空間映射而成的一段邏輯存儲空間,例如,數(shù)據(jù)卷可以是邏輯單元(Logic Unit Number, LUN),也可以是文件系統(tǒng)。在本發(fā)明實施例中,災(zāi)備陣列的結(jié)構(gòu)和生產(chǎn)陣列類似。
[0081]請參考圖1,圖1是本發(fā)明一種數(shù)據(jù)發(fā)送方法的實施例,本發(fā)明實施例應(yīng)用在第一存儲設(shè)備中,其中,第一存儲設(shè)備包括控制器、高速緩沖存儲器(以下簡稱緩存或cache)和存儲介質(zhì)。其中,控制器是第一存儲設(shè)備的處理器,用于執(zhí)行10命令以及其他數(shù)據(jù)業(yè)務(wù);緩存是存在于控制器與硬盤之間的存儲器,容量較硬盤小但速度比硬盤高得多;存儲介質(zhì)是第一存儲設(shè)備主要的存儲器,通常情況下是指非易失性存儲介質(zhì),例如,磁盤,在本發(fā)明實施例中將第一存儲設(shè)備包含的物理存儲空間都稱為存儲介質(zhì)。具體執(zhí)行下述步驟的可以是第一存儲設(shè)備中的控制器。
[0082]步驟SlOl:第一存儲設(shè)備接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息。
[0083]其中,地址信息可以包括邏輯塊地址(Logic Unit Address, LBA),當(dāng)?shù)谝淮鎯υO(shè)備中包含多個數(shù)據(jù)卷時,地址信息還可以包括第一存儲設(shè)備的數(shù)據(jù)卷的ID。
[0084]步驟S102:將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號。
[0085]在第一存儲設(shè)備中可以包含一個當(dāng)前時間片編號管理器,所述當(dāng)前時間片編號管理器中保存有當(dāng)前時間片編號,當(dāng)前時間片編號可以用數(shù)值表示,例如0、1、2,也可以用字母表示,例如a、b、C,在此不做限定。
[0086]當(dāng)接收到第一寫數(shù)據(jù)請求時,在第一寫數(shù)據(jù)請求攜帶的待寫入數(shù)據(jù)和地址信息中增加第一編號,所述第一編號是由當(dāng)前時間片編號賦值給它的。
[0087]在第一寫數(shù)據(jù)請求攜帶的信息中增加第一編號后,再將修改后的第一寫數(shù)據(jù)請求攜帶的信息寫入緩存,使得第一寫數(shù)據(jù)請求攜帶的待寫入數(shù)據(jù)、地址信息和第一編號都保存在緩存中。
[0088]另外,在一段時間內(nèi),還可以接收到其他寫數(shù)據(jù)請求,同樣需要在其攜帶的信息中增加第一編號,并寫入緩存。需要說明的是在當(dāng)前時間片編號改變之前,在寫數(shù)據(jù)請求攜帶的信息中增加的都是第一編號。
[0089]步驟S103:從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息。
[0090]當(dāng)復(fù)制任務(wù)觸發(fā)時,第一存儲設(shè)備可以從緩存中將第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息讀取出來,可以理解的是,第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息可以不止一條。
[0091]復(fù)制任務(wù)是指第一存儲設(shè)備將一段時間內(nèi)一個數(shù)據(jù)卷接收到的寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備,這些寫數(shù)據(jù)請求攜帶的信息都被增加了與當(dāng)前時間片編號相同的編號。復(fù)制任務(wù)觸發(fā)可以是由定時器觸發(fā),也可以是人為觸發(fā),在此不做限定。復(fù)制的目的是將第一存儲設(shè)備接收的寫數(shù)據(jù)請求攜帶的待寫入數(shù)據(jù)發(fā)送給第二存儲設(shè)備存儲,使得第一存儲設(shè)備故障時,第二存儲設(shè)備可以接替第一存儲設(shè)備工作??梢岳斫獾氖牵瑢憯?shù)據(jù)請求攜帶的地址信息(例如LBA)也需要發(fā)送給第二存儲設(shè)備,所述LBA用于指示第二存儲設(shè)備存儲待寫入數(shù)據(jù)的地址。由于第二存儲設(shè)備具有與第一存儲設(shè)備相同的物理結(jié)構(gòu),因此適用于第一存儲設(shè)備的LBA,也適用于第二存儲設(shè)備。
[0092]在本發(fā)明實施例中,復(fù)制任務(wù)是針對第一存儲設(shè)備的一個數(shù)據(jù)卷而言的,當(dāng)?shù)谝淮鎯υO(shè)備包含多個數(shù)據(jù)卷時,每個數(shù)據(jù)卷對應(yīng)的一個復(fù)制任務(wù)。
[0093]步驟S104:修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息。
[0094]當(dāng)復(fù)制任務(wù)觸發(fā)時,當(dāng)前時間片編號管理器需要修改當(dāng)前時間片編號,當(dāng)接收到后續(xù)寫數(shù)據(jù)請求時,則后續(xù)的寫數(shù)據(jù)請求攜帶的信息則需增加另一個編號,所述另一個編號是由修改后的當(dāng)前時間片編號賦值給它的。由此,可以在緩存中將需要發(fā)送給第二存儲設(shè)備的寫數(shù)據(jù)請求攜帶的信息,與第一存儲設(shè)備正在接收的寫數(shù)據(jù)請求攜帶的信息區(qū)分開來。[0095]需要說明的是,步驟S103和步驟S104之間沒有先后順序之分。
[0096]步驟S105:將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。
[0097]第一存儲設(shè)備將從緩存中讀取的第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息,發(fā)送給
第二設(shè)備。
[0098]具體的,第一存儲設(shè)備可以將讀取到的所有的待寫入數(shù)據(jù)和地址信息直接發(fā)送給第二存儲設(shè)備;也可以在獲得第二存儲設(shè)備的數(shù)據(jù)卷的ID后,根據(jù)每一個寫數(shù)據(jù)請求攜帶的待寫入數(shù)據(jù)和地址信息,以及第二存儲設(shè)備的數(shù)據(jù)卷的ID,分別生成新的寫數(shù)據(jù)請求,再發(fā)送給第二存儲設(shè)備。
[0099]本發(fā)明實施例中,第一存儲設(shè)備在接收主機發(fā)送的寫數(shù)據(jù)請求后,所述寫數(shù)據(jù)請求攜帶的信息包括待寫入數(shù)據(jù)和地址信息,在待寫入數(shù)據(jù)和地址信息中增加第一編號,寫入緩存,第一編號為當(dāng)前時間片編號,在復(fù)制任務(wù)觸發(fā)時,從緩存中讀取第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息,發(fā)送給第二存儲設(shè)備,另外,在復(fù)制任務(wù)觸發(fā)時,修改當(dāng)前時間片編號,使得第一存儲設(shè)備在后續(xù)接收寫數(shù)據(jù)請求時,在其攜帶的信息中增加與修改后的當(dāng)前時間片編號相同的編號,由此在緩存中將需要發(fā)送給第二存儲設(shè)備的寫數(shù)據(jù)請求攜帶的信息,與第一存儲設(shè)備正在接收的寫數(shù)據(jù)請求攜帶的信息區(qū)分開來,實現(xiàn)了直接從緩存中將寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備,由于信息是直接從緩存中發(fā)送的,不需要從數(shù)據(jù)卷中讀取數(shù)據(jù),因此數(shù)據(jù)復(fù)制的時間較短,提高了數(shù)據(jù)復(fù)制的效率。
[0100]可以理解的是,在上述實施例中,第一存儲設(shè)備在復(fù)制任務(wù)觸發(fā)時,將當(dāng)前時間片編號對應(yīng)的待寫入數(shù)據(jù)和地址信息,發(fā)送給第二存儲設(shè)備,同時修改當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息。在下一次復(fù)制任務(wù)觸發(fā)時,將修改后的當(dāng)前時間片編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備,同時再次修改當(dāng)前時間片編號??梢员WC第一存儲設(shè)備分批次地完整地將其接收到的寫數(shù)據(jù)請求攜帶的信息,發(fā)送給第二存儲設(shè)備。
[0101]然而,當(dāng)存在多個災(zāi)備中心時,假設(shè)第二個災(zāi)備中心對應(yīng)的存儲設(shè)備是第三設(shè)備,第一存儲設(shè)備還需要將其接收到的寫數(shù)據(jù)請求攜帶的信息,發(fā)送給第三存儲設(shè)備。對于第二存儲設(shè)備而言,復(fù)制任務(wù)觸發(fā)時,當(dāng)前時間片編號管理器將修改當(dāng)前時間片編號,此時,當(dāng)前時間片編號賦值給第二存儲設(shè)備和第三存儲設(shè)備的編號都是修改后的編號。然而,當(dāng)前時間片編號修改之前的編號對應(yīng)的寫數(shù)據(jù)請求攜帶信息還沒有發(fā)送給第三存儲設(shè)備。
[0102]因此,對于多個災(zāi)備中心的場景,上述實施例還可以包括以下步驟:
[0103]步驟S106:記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
[0104]在上述實施例中,第一編號與當(dāng)前時間片編號相同,可以用于標(biāo)識當(dāng)前的復(fù)制任務(wù),當(dāng)前的復(fù)制任務(wù)是指第一存儲設(shè)備將當(dāng)前時間段內(nèi)一個數(shù)據(jù)卷接收到的寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備,這些寫數(shù)據(jù)請求攜帶的信息都被增加了與當(dāng)前時間片編號相同的編號。
[0105]第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
[0106]當(dāng)存在多個災(zāi)備中心時,當(dāng)前時間片編號可能在向其他災(zāi)備中心的存儲設(shè)備發(fā)起復(fù)制任務(wù)時修改的,因此需要將上一次已完成的復(fù)制任務(wù)對應(yīng)的編號記錄下來。
[0107]如果在第二編號和第一編號之間還存在其他編號,那么該編號對應(yīng)的寫數(shù)據(jù)請求攜帶的信息是沒有發(fā)送給第二存儲設(shè)備的,需要執(zhí)行步驟S107。
[0108]步驟S107:從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息。
[0109]具體的讀取過程,與步驟S103類似,這里不再贅述。
[0110]需要說明的是,步驟S107可以和步驟S103沒有先后順序之分,也可以同時執(zhí)行。
[0111]步驟S108:將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
[0112]具體的發(fā)送過程,與步驟S105類似,這里不再贅述。
[0113]本發(fā)明實施例,除了將當(dāng)前時間片編號對應(yīng)的寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備以外,還可以將上一次已完成的復(fù)制任務(wù)對應(yīng)的編號,與當(dāng)前時間片編號之間的編號對應(yīng)的寫數(shù)據(jù)請求攜帶的信息發(fā)送給第二存儲設(shè)備,適用于多個災(zāi)備中心的場景,保證了數(shù)據(jù)復(fù)制的完整性。
[0114]請參考圖2,圖2是本發(fā)明一種數(shù)據(jù)接收方法的實施例,本發(fā)明實施例用于災(zāi)備中心在接收到生產(chǎn)中心發(fā)送的寫數(shù)據(jù)請求攜帶的信息的應(yīng)用場景。所述方法可以包括:
[0115]步驟S201:第二存儲設(shè)備接收第一存儲設(shè)備發(fā)送的地址信息。
[0116]具體的,第二存儲設(shè)備可以接收第一存儲設(shè)備發(fā)送的待寫入數(shù)據(jù)和地址信息;也可以接收第一存儲設(shè)備發(fā)送的寫數(shù)據(jù)請求,其中,所述寫數(shù)據(jù)請求包括待寫入數(shù)據(jù)和地址信息,所述地址信息可以是邏輯塊地址(Logic Unit Address, LBA)。當(dāng)?shù)诙鎯υO(shè)備包括多個數(shù)據(jù)卷時,所述地址信息還可以包括第二存儲設(shè)備的數(shù)據(jù)卷的ID??梢岳斫獾氖牵@里的地址信息可以不止一條。
[0117]第二存儲設(shè)備在接收到待寫入數(shù)據(jù)和地址信息后,在待寫入數(shù)據(jù)和地址信息中增加與當(dāng)前時間片編號相同的編號,寫入緩存,使得在緩存中保存與當(dāng)前時間片編號相同的編號、待寫入數(shù)據(jù)和地址信息。
[0118]需要說明的是,第二存儲設(shè)備中也包含有一個當(dāng)前時間片編號管理器,所述當(dāng)前時間片編號管理器中保存有當(dāng)前時間片編號,當(dāng)前時間片編號可以用數(shù)值表示,例如0、1、2,可以用字母表示,例如a、b、c,在此不做限定。這里的當(dāng)前時間片編號可以和第一存儲設(shè)備中的當(dāng)前時間片編號沒有聯(lián)系。
[0119]步驟S202:當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號。
[0120]通常情況下,若第一存儲設(shè)備和第二存儲設(shè)備均運行正常,那么第一存儲設(shè)備發(fā)送多少條寫數(shù)據(jù)請求攜帶的信息,第二存儲設(shè)備就可以接收多少條寫數(shù)據(jù)請求攜帶的信息,并且將每個寫數(shù)據(jù)請求攜帶的信息都加上與當(dāng)前時間片編號相同的編號,保存在緩存中。然而,如果第一存儲設(shè)備發(fā)生故障,那么第二存儲設(shè)備可能只接收到了第一存儲設(shè)備的當(dāng)前時間片編號的對應(yīng)的部分待寫入數(shù)據(jù),在這種情況下,第二存儲設(shè)備保存的數(shù)據(jù)可能是不真實的數(shù)據(jù),如果直接接替第一存儲設(shè)備工作,數(shù)據(jù)一致性就不能得到保證。舉例來說,若此時主機向第二存儲設(shè)備發(fā)送一個讀數(shù)據(jù)請求,要求讀取所述地址信息上保存的數(shù)據(jù),第二存儲設(shè)備會查找與所述地址信息對應(yīng)的最新的編號,然后將當(dāng)前時間片編號對應(yīng)的待寫入發(fā)送給主機,然而該數(shù)據(jù)是不真實的。因此,此時需要將第二存儲設(shè)備的緩存中的數(shù)據(jù)恢復(fù)成第二存儲設(shè)備的當(dāng)前時間片編號之前的編號對應(yīng)的數(shù)據(jù)。
[0121]具體的,確定第一存儲設(shè)備發(fā)生故障的方式可以是控制中心向第二存儲設(shè)備發(fā)送一個信號,該信號用于指示第一存儲設(shè)備故障,第二存儲設(shè)備需接替第一存儲設(shè)備處理主機業(yè)務(wù)。
[0122]通常情況下,當(dāng)一個復(fù)制任務(wù)完成時,控制中心可以分別向第一存儲設(shè)備和第二存儲設(shè)備發(fā)送復(fù)制成功的指示。如果第二存儲設(shè)備沒有接收該指示,則說明當(dāng)前復(fù)制任務(wù)沒有完成。復(fù)制任務(wù)完成是指,第一存儲設(shè)備將當(dāng)前時間片編號對應(yīng)的所有寫數(shù)據(jù)請求攜帶的信息都發(fā)送給了第二存儲設(shè)備,并且第二存儲設(shè)備也接收完成。
[0123]當(dāng)?shù)诙鎯υO(shè)備確定第一存儲設(shè)備發(fā)生故障時,若當(dāng)前的復(fù)制任務(wù)已完成,則第二存儲設(shè)備可以直接接替第一存儲設(shè)備工作,數(shù)據(jù)一致性可以得到保證。這種情況不在本發(fā)明實施例的討論范圍之內(nèi)。
[0124]然而,若當(dāng)前的復(fù)制任務(wù)沒有完成,則需要將第二存儲設(shè)備的緩存中的數(shù)據(jù)恢復(fù)成其當(dāng)前時間片編號之前的編號對應(yīng)的數(shù)據(jù)。
[0125]具體的恢復(fù)方式可以是,根據(jù)接收到的地址信息,在當(dāng)前時間片編號的上一個編號對應(yīng)的地址信息中查找是否有與所述地址信息相同的地址信息,如果沒有,則繼續(xù)在再上一個編號對應(yīng)的地址信息中查找,直至找到所述地址信息,然后獲得該編號對應(yīng)的待寫入數(shù)據(jù)。
[0126]步驟S203:將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
[0127]其中,第二編號是對當(dāng)前時間片編號進行修改后的編號,也是在本實施例中緩存中保存的最新的編號。當(dāng)主機向第二存儲設(shè)備發(fā)送一個讀數(shù)據(jù)請求,要求讀取所述地址信息上保存的數(shù)據(jù)時,第二存儲設(shè)備經(jīng)過查找得知與所述地址信息對應(yīng)的最新的編號是第二編號,將第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給主機。由此,保證了數(shù)據(jù)的一致性。
[0128]本發(fā)明實施例中,第二存儲設(shè)備接收第一存儲設(shè)備發(fā)送的地址信息,在第一存儲設(shè)備發(fā)生故障時,根據(jù)該地址信息獲得當(dāng)前時間片編號之前的編號對應(yīng)的待寫入數(shù)據(jù),并且將當(dāng)前時間片編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,保存在緩存中。由此,保證了數(shù)據(jù)一致性。
[0129]請參考圖3,圖3是本發(fā)明一種數(shù)據(jù)發(fā)送方法的實施例,在本發(fā)明實施例中,為了將生產(chǎn)陣列中的緩存與災(zāi)備陣列中的緩存相區(qū)別,在本發(fā)明實施例中,將生產(chǎn)陣列中的緩存稱為第一緩存,災(zāi)備陣列中的緩存稱為第二緩存。
[0130]如圖3所示,所述方法包括:
[0131]步驟S301:生產(chǎn)陣列接收生產(chǎn)主機發(fā)送的寫數(shù)據(jù)請求A。
[0132]所述寫數(shù)據(jù)請求A包括卷ID、待寫入地址A和待寫入數(shù)據(jù)A,待寫入地址A是指待寫入數(shù)據(jù)A將要寫入的生產(chǎn)陣列的邏輯地址,例如LBA,通常情況下,生產(chǎn)陣列在執(zhí)行所述寫數(shù)據(jù)請求A時需要將LBA轉(zhuǎn)換為PBA (Physics Block Address)后,再根據(jù)PBA將待寫入數(shù)據(jù)A寫入存儲介質(zhì)中。卷ID是寫數(shù)據(jù)請求A對應(yīng)的數(shù)據(jù)卷的ID。本實施例以生產(chǎn)陣列包含一個卷(以下稱為主卷)為例,那么寫數(shù)據(jù)請求A攜帶的信息中包含主卷ID、待寫入地址A和待寫入數(shù)據(jù)A。
[0133]步驟S302:生產(chǎn)陣列將寫數(shù)據(jù)請求A修改為寫數(shù)據(jù)請求A’,寫數(shù)據(jù)請求A’包含寫數(shù)據(jù)請求A攜帶的信息以及第一編號。
[0134]在本發(fā)明實施例中,生產(chǎn)陣列的控制器中可以包含一個當(dāng)前時間片編號(CurrentTime Period Number,CTPN)管理器,在CTPN管理器中記錄有當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成第一編號,具體的,第一編號等于當(dāng)前時間片編號。
[0135]在生產(chǎn)陣列接收到寫數(shù)據(jù)請求A后,將寫數(shù)據(jù)請求A修改為寫數(shù)據(jù)請求A’。具體的,其修改方式可以是在所述寫數(shù)據(jù)請求A攜帶的信息中增加第一編號,例如,當(dāng)前時間片編號可以為I,那么第一編號也為I。
[0136]可選的,也可以在接收寫數(shù)據(jù)請求A時,記錄時間戳,將所述時間戳在預(yù)先保存的編號序列中進行匹配,從而確定所述時間戳對應(yīng)的編號。具體的,所述編號序列可以是映射表或者其他形式,在此不做限定。所述編號序列包括多個編號,每個編號對應(yīng)一段時間戳的區(qū)間。如表1所示:
[0137]
【權(quán)利要求】
1.一種數(shù)據(jù)發(fā)送方法,其特征在于,包括: 第一存儲設(shè)備接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息; 將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號; 從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息; 修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息; 將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一編號用于標(biāo)識當(dāng)前的復(fù)制任務(wù);所述方法還包括: 記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息; 將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 記錄當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第一編號。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備包括: 根據(jù)所述待寫入數(shù)據(jù)和地址信息生成第二寫數(shù)據(jù)請求; 將所述第二寫數(shù)據(jù)請求發(fā)送給所述第二存儲設(shè)備。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述地址信息包括邏輯塊地址LBA; 所述根據(jù)所述待寫入數(shù)據(jù)和地址信息生成第二寫數(shù)據(jù)請求包括: 獲得所述第二存儲設(shè)備的數(shù)據(jù)卷的ID ; 生成所述第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括所述待寫入數(shù)據(jù)、LBA以及所述數(shù)據(jù)卷的ID。
7.一種數(shù)據(jù)接收方法,其特征在于,包括: 第二存儲設(shè)備接收第一存儲設(shè)備發(fā)送的地址信息; 當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號; 將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括: 記錄所述當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第二編號。
9. 根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括: 接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求包含所述接收到的地址信息;確定所述接收到的地址信息對應(yīng)的最新的編號是所述第二編號;將所述第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給所述主機。
10.一種存儲設(shè)備,其特征在于,包括: 接收模塊,用于接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息; 讀寫模塊,用于將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號;從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息; 當(dāng)前時間片編號管理器,用于修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息; 發(fā)送模塊,用于將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。
11.根據(jù)權(quán)利要求10所述的存儲設(shè)備,其特征在于,所述第一編號用于標(biāo)識當(dāng)前的復(fù)制任務(wù); 所述當(dāng)前時間片編號管理器,還用于記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
12.根據(jù)權(quán)利要求11所述的存儲設(shè)備,其特征在于, 所述讀寫模塊,還用于從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息; 所述發(fā)送模塊,還用于將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
13.根據(jù)權(quán)利要求10所述的存儲設(shè)備,其特征在于, 所述當(dāng)前時間片編號管理器,還用于記錄當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第一編號。
14.根據(jù)權(quán)利要求10所述的存儲設(shè)備,其特征在于, 所述發(fā)送模塊,具體用于根據(jù)所述待寫入數(shù)據(jù)和地址信息生成第二寫數(shù)據(jù)請求;將所述第二寫數(shù)據(jù)請求發(fā)送給所述第二存儲設(shè)備。
15.—種存儲設(shè)備,其特征在于,包括: 接收模塊,用于接收第一存儲設(shè)備發(fā)送的地址信息; 查找模塊,用于當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號; 寫入模塊,用于將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
16.根據(jù)權(quán)利要求15所述的存儲設(shè)備,其特征在于,還包括: 當(dāng)前時間片編號管理器,用于記錄所述當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第二編號。
17.根據(jù)權(quán)利要求15所述的存儲設(shè)備,其特征在于,包括: 所述接收模塊,還用于接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求包含所述接收到的地址信息; 所述查找模塊,還用于確定所述接收到的地址信息對應(yīng)的最新的編號是所述第二編號; 所述存儲設(shè)備還包括發(fā)送模塊,所述發(fā)送模塊用于將所述第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給所述主機。
18.一種存儲設(shè)備,其特征在于,包括:處理器、存儲器和通信總線; 其中,所述處理器和所述存儲器通過所述通信總線進行通信; 所述存儲器用于保存程序; 所述處理器用于執(zhí)行所述程序,以實現(xiàn): 接收主機發(fā)送的第一寫數(shù)據(jù)請求,所述第一寫數(shù)據(jù)請求攜帶待寫入數(shù)據(jù)和地址信息;將所述待寫入數(shù)據(jù)和地址信息增加第一編號,寫入緩存,其中所述第一編號為當(dāng)前時間片編號;從所述緩存中讀取所述第一編號對應(yīng)的所述待寫入數(shù)據(jù)和地址信息;修改所述當(dāng)前時間片編號以標(biāo)識后續(xù)寫數(shù)據(jù)請求攜帶的信息;將所述待寫入數(shù)據(jù)和地址信息發(fā)送給第二存儲設(shè)備。
19.根據(jù)權(quán)利要求18所述的存儲設(shè)備,其特征在于,所述第一編號用于標(biāo)識當(dāng)前的復(fù)制任務(wù);所述處理器還用于: 記錄第二編號,所述第二編號是當(dāng)前的復(fù)制任務(wù)之前,最近一次已完成的復(fù)制任務(wù)對應(yīng)的編號。
20.根據(jù)權(quán)利要求19所述的存儲設(shè)備,其特征在于,所述處理器還用于:從所述緩存中讀取所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息;將所述第二編號之后,所述第一編號之前的編號對應(yīng)的待寫入數(shù)據(jù)和地址信息發(fā)送給所述第二存儲設(shè)備。
21.根據(jù)權(quán)利要求18所述的存儲設(shè)備,其特征在于,所述處理器還用于:記錄當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第一編號。
22.根據(jù)權(quán)利要求18所述的存儲設(shè)備,其特征在于,所述處理器具體用于:根據(jù)所述待寫入數(shù)據(jù)和地址信息生成第二寫數(shù)據(jù)請求;將所述第二寫數(shù)據(jù)請求發(fā)送給所述第二存儲設(shè)備。
23.根據(jù)權(quán)利要求22所述的存儲設(shè)備,其特征在于,所述地址信息包括邏輯塊地址LBA ;所述處理器具體用于:獲得所述第二存儲設(shè)備的數(shù)據(jù)卷的ID ;生成所述第二寫數(shù)據(jù)請求,所述第二寫數(shù)據(jù)請求包括所述待寫入數(shù)據(jù)、LBA以及所述數(shù)據(jù)卷的ID。
24.一種存儲設(shè)備,其特征在于,包括:處理器、存儲器和通信總線; 其中,所述處理器和所述存儲器通過所述通信總線進行通信; 所述存儲器用于保存程序; 所述處理器用于執(zhí)行所述程序,以實現(xiàn): 接收第一存儲設(shè)備發(fā)送的地址信息; 當(dāng)確定所述第一存儲設(shè)備故障時,所述第二存儲設(shè)備根據(jù)所述地址信息,獲取第一編號對應(yīng)的待寫入數(shù)據(jù),所述第一編號對應(yīng)的地址信息與所述接收到的地址信息相同,所述第一編號為當(dāng)前時間片編號之前的編號; 將所述第一編號對應(yīng)的待寫入數(shù)據(jù)和地址信息增加第二編號,寫入緩存。
25.根據(jù)權(quán)利要求24所述的存儲設(shè)備,其特征在于,所述處理器還用于記錄所述當(dāng)前時間片編號,所述當(dāng)前時間片編號用于生成所述第二編號。
26.根據(jù)權(quán)利要求24所述的存儲設(shè)備,其特征在于,所述處理器還用于接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求包含所述接收到的地址信息;確定所述接收到的地址信息對應(yīng)的最新的編號是所述第二編號;將 所述第二編號對應(yīng)的待寫入數(shù)據(jù)發(fā)送給所述主機。
【文檔編號】G06F3/06GK103649901SQ201380001270
【公開日】2014年3月19日 申請日期:2013年7月26日 優(yōu)先權(quán)日:2013年7月26日
【發(fā)明者】歐陽戟, 鄒冶 申請人:華為技術(shù)有限公司