27]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊,則判斷該原始數(shù)據(jù)塊的快照序號與客戶端所需的數(shù)據(jù)塊的快照序號是否相同,根據(jù)判斷結(jié)果進(jìn)行處理。所述的處理包括:
[0028]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊且該原始數(shù)據(jù)塊的快照序號與客戶端所需的數(shù)據(jù)塊的快照序號相同,則向客戶端返回緩存設(shè)備中的該原始數(shù)據(jù)塊。
[0029]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊且該原始數(shù)據(jù)塊的快照序號與客戶端所需的數(shù)據(jù)塊的快照序號不同且該原始數(shù)據(jù)塊為干凈狀態(tài),則刪除緩存設(shè)備中的該原始數(shù)據(jù)塊,向客戶端返回存儲系統(tǒng)中對應(yīng)的附帶最新快照序號的原始數(shù)據(jù)塊。
[0030]該原始數(shù)據(jù)塊為干凈狀態(tài),即該原始數(shù)據(jù)塊的“干凈/臟”狀態(tài)標(biāo)志顯示為“干凈”,該原始數(shù)據(jù)塊中的數(shù)據(jù)與最初始數(shù)據(jù)相同,沒有被改動。
[0031]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊且該原始數(shù)據(jù)塊的快照序號與客戶端所需的數(shù)據(jù)塊的快照序號不同且該原始數(shù)據(jù)塊為臟狀態(tài),則將緩存設(shè)備中的該原始數(shù)據(jù)塊復(fù)制到存儲系統(tǒng),向客戶端返回存儲系統(tǒng)中對應(yīng)的附帶最新快照序號的原始數(shù)據(jù)塊。
[0032]該原始數(shù)據(jù)塊為臟狀態(tài),即該原始數(shù)據(jù)塊的“干凈/臟”狀態(tài)標(biāo)志顯示為“臟”,該原始數(shù)據(jù)塊中的數(shù)據(jù)與最初始數(shù)據(jù)相比已經(jīng)被改動,與最初始數(shù)據(jù)不同。
[0033]客戶端所需的數(shù)據(jù)塊是否在緩存設(shè)備中,指緩存設(shè)備中是否存在與客戶端所需的數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)塊??蛻舳苏埱髮懖僮鲿r,返回客戶端的一定是最新的原始數(shù)據(jù)塊(即附帶最新快照序號的原始數(shù)據(jù)塊)。對應(yīng)數(shù)據(jù)塊的涵義是指數(shù)據(jù)序號與客戶端所需數(shù)據(jù)塊的數(shù)據(jù)序號相同的數(shù)據(jù)塊。
[0034]客戶端請求讀操作時附帶快照序號和數(shù)據(jù)標(biāo)識,判斷客戶端所需的數(shù)據(jù)塊是否是快照數(shù)據(jù)塊,根據(jù)判斷結(jié)果進(jìn)行處理。所述的處理包括:
[0035]如果客戶端所需的數(shù)據(jù)塊是快照數(shù)據(jù)塊,判斷緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊還是快照數(shù)據(jù)塊,根據(jù)判斷結(jié)果進(jìn)行處理。所述的處理包括:
[0036]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊且該原始數(shù)據(jù)塊為干凈狀態(tài),則刪除緩存設(shè)備中的該原始數(shù)據(jù)塊,向客戶端返回存儲系統(tǒng)中快照序號與客戶端請求所附帶快照序號相同的對應(yīng)快照數(shù)據(jù)塊。
[0037]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是原始數(shù)據(jù)塊且該原始數(shù)據(jù)塊為臟狀態(tài),則將緩存設(shè)備中的該原始數(shù)據(jù)塊復(fù)制到存儲系統(tǒng),向客戶端返回存儲系統(tǒng)中快照序號與客戶端請求所附帶快照序號相同的對應(yīng)快照數(shù)據(jù)塊。
[0038]原始數(shù)據(jù)塊為干凈狀態(tài)或臟狀態(tài)的涵義與之前所述相同。
[0039]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是快照數(shù)據(jù)塊且該快照數(shù)據(jù)塊的快照序號與客戶端所需的數(shù)據(jù)塊的快照序號相同,則向客戶端返回緩存設(shè)備中的該快照數(shù)據(jù)塊。
[0040]如果緩存設(shè)備中的對應(yīng)數(shù)據(jù)塊是快照數(shù)據(jù)塊且該快照數(shù)據(jù)塊的快照序號與客戶端所需的數(shù)據(jù)塊的快照序號不同,則將緩存設(shè)備中的該快照數(shù)據(jù)塊刪除,向客戶端返回存儲系統(tǒng)中快照序號與客戶端請求所附帶快照序號相同的對應(yīng)快照數(shù)據(jù)塊。
[0041]如果客戶端所需的數(shù)據(jù)塊是原始數(shù)據(jù)塊,判斷客戶端所需的數(shù)據(jù)塊是否在緩存設(shè)備中,根據(jù)判斷結(jié)果進(jìn)行處理。所述的處理包括:
[0042]如果客戶端所需的數(shù)據(jù)塊不在緩沖設(shè)備中,則向客戶端返回存儲系統(tǒng)中對應(yīng)的原始數(shù)據(jù)塊。
[0043]如果客戶端所需的數(shù)據(jù)塊在緩沖設(shè)備中且該數(shù)據(jù)塊是原始數(shù)據(jù)塊,則向客戶端返回緩沖設(shè)備中的該原始數(shù)據(jù)塊。
[0044]如果客戶端所需的數(shù)據(jù)塊在緩沖設(shè)備中且該數(shù)據(jù)塊是快照數(shù)據(jù)塊,則向客戶端返回存儲系統(tǒng)中對應(yīng)的原始數(shù)據(jù)塊。
[0045]客戶端請求讀操作時,返回客戶端的可能是快照數(shù)據(jù)塊,也可能是原始數(shù)據(jù)塊。對應(yīng)數(shù)據(jù)塊的涵義與之前所述相同。
[0046]實現(xiàn)緩存設(shè)備和存儲系統(tǒng)之間同步快照的方法,由客戶端、存儲系統(tǒng)及緩存設(shè)備中的不同模塊來實現(xiàn)。因此,把包括客戶端、存儲系統(tǒng)以及緩存設(shè)備的裝置稱為緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置。該裝置中還可以包括存儲服務(wù)代理設(shè)備。
[0047]緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置,包括客戶端、存儲系統(tǒng)、存儲服務(wù)代理設(shè)備及緩存設(shè)備,所述的存儲服務(wù)代理設(shè)備包括快照序號管理模塊,所述的快照序號管理模塊用于生成快照序號,還用于將快照序號和數(shù)據(jù)標(biāo)識返回客戶端;所述的緩存設(shè)備包括快照數(shù)據(jù)管理模塊,所述的快照數(shù)據(jù)管理模塊用于客戶端發(fā)出附帶最新快照序號的寫操作請求時,判斷客戶端所需的數(shù)據(jù)塊是否在緩存設(shè)備中,根據(jù)判斷結(jié)果進(jìn)行處理;還用于客戶端發(fā)出附帶快照序號和數(shù)據(jù)標(biāo)識的讀操作請求時,判斷客戶端所需的數(shù)據(jù)塊是否是快照數(shù)據(jù)塊,根據(jù)判斷結(jié)果進(jìn)行處理。
[0048]作為一種可選擇的實施方式,對緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置進(jìn)行簡化,所述的裝置包括客戶端、存儲系統(tǒng)及緩存設(shè)備,所述的存儲系統(tǒng)包括快照序號管理模塊,所述的快照序號管理模塊用于生成快照序號,還用于將快照序號和數(shù)據(jù)標(biāo)識返回客戶端;所述的緩存設(shè)備包括快照數(shù)據(jù)管理模塊,所述的快照數(shù)據(jù)管理模塊用于客戶端發(fā)出附帶最新快照序號的寫操作請求時,判斷客戶端所需的數(shù)據(jù)塊是否在緩存設(shè)備中,根據(jù)判斷結(jié)果進(jìn)行處理;還用于客戶端發(fā)出附帶快照序號和數(shù)據(jù)標(biāo)識的讀操作請求時,判斷客戶端所需的數(shù)據(jù)塊是否是快照數(shù)據(jù)塊,根據(jù)判斷結(jié)果進(jìn)行處理。
[0049]如果在“緩存設(shè)備和存儲系統(tǒng)之間同步快照的方法”部分對于某模塊的具體功能進(jìn)行過描述,則在“緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置”部分往往予以省略。這只是避免不必要的重復(fù)描述,并不表示“緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置”中的模塊不具有相應(yīng)的功能。例如,快照序號管理模塊通過事件訂閱機(jī)制向客戶端返回最新快照序號的功能,在“緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置”中未進(jìn)行描述,并不表示“緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置”中的快照序號管理模塊不具備這一功能。本領(lǐng)域技術(shù)人員通過對比“緩存設(shè)備和存儲系統(tǒng)之間同步快照的方法”和“緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置”,很容易獲知“緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置”中所涉及模塊的全部功能。
[0050]緩存設(shè)備和存儲系統(tǒng)之間同步快照的裝置的描述中,“包括”、“用于”等詞語應(yīng)按照開放式表達(dá)方式理解。例如,存儲服務(wù)代理設(shè)備,之前已經(jīng)給出了本發(fā)明所述的存儲服務(wù)代理設(shè)備的涵義。存儲服務(wù)代理設(shè)備包括快照序號管理模塊,應(yīng)理解為存儲服務(wù)代理含有快照序號管理模塊這一模塊,但不一定只有快照序號管理模塊這一模塊??煺招蛱柟芾砟K用于生成快照序號,應(yīng)理解為快照序號管理模塊具有生成快照序號這一功能,但不一定只有生成快照序號這一功能。存儲服務(wù)代理設(shè)備性能的完整實現(xiàn),除了本發(fā)明說明書中描述的模塊或功能外,通常還需要其他模塊或功能,本領(lǐng)域技術(shù)人員通過現(xiàn)有技術(shù)或公知常識,完全可以實現(xiàn)這些模塊或功能,故本發(fā)明說明書中不再贅述。
[0051]本發(fā)明提供的緩存設(shè)備和存儲系統(tǒng)之間同步快照的方法和裝置,極大提高了快照操作相關(guān)數(shù)據(jù)的讀寫速度,有效保持了數(shù)據(jù)的一致性,最大程度降低了讀寫快照操作相關(guān)數(shù)據(jù)對存儲設(shè)備其他業(yè)務(wù)的影響。
【附圖說明】
[0052]圖1為客戶端與存儲服務(wù)代理設(shè)備、緩存設(shè)備之間的信息交換關(guān)系圖。
[0053]圖2為客戶端請求進(jìn)行寫操作的數(shù)據(jù)塊不在緩存設(shè)備中時的處理方法示意圖。
[0054]圖3為客戶端請求進(jìn)行寫操作的數(shù)據(jù)塊在緩存設(shè)備中且不是head數(shù)據(jù)塊時的處理方法示意圖。
[0055]圖4為客戶端請求進(jìn)行寫操作的數(shù)據(jù)塊在緩存設(shè)備中,緩沖設(shè)備中的該數(shù)據(jù)塊是head數(shù)據(jù)塊,該head數(shù)據(jù)塊的seq和客戶端所需的數(shù)據(jù)塊的seq不同,緩沖設(shè)備中的該數(shù)據(jù)塊為干凈狀態(tài)時的處理方法示意圖。
[0056]圖5為客戶端請求進(jìn)行寫操作的數(shù)據(jù)塊在緩存設(shè)備中,緩沖設(shè)備中的該數(shù)據(jù)塊是head數(shù)據(jù)塊,該head數(shù)據(jù)塊的seq和客戶端所需的數(shù)據(jù)塊的seq不同,緩沖設(shè)備中的該數(shù)據(jù)塊為臟狀態(tài)時的處理方法示意圖。
[0057]圖2到圖5中如果數(shù)據(jù)塊A的框線為虛線,表示數(shù)據(jù)塊A不存在或數(shù)據(jù)塊A被刪除。
【具體實施方式】
[0058]下面對本發(fā)明的實施方式進(jìn)行進(jìn)一步的具體說明。但應(yīng)注意,本發(fā)明的范圍并不局限于所描述的具體技術(shù)方案。任何對所描述的具體技術(shù)方案中的技術(shù)要素進(jìn)行相同或等同替換獲得的技術(shù)方案或本領(lǐng)域技術(shù)人員在所描述的具體技術(shù)方案的基礎(chǔ)上不經(jīng)過創(chuàng)造性勞動就可以獲得的技術(shù)方案,都應(yīng)當(dāng)視為落入本發(fā)明的保護(hù)范圍。
[0059]緩存設(shè)備和存儲系統(tǒng)之間同步快照的方法,該方法與客戶端、存儲系統(tǒng)、存儲服務(wù)代理設(shè)備以及緩存設(shè)備相關(guān)。在現(xiàn)有技術(shù)和公知常識的基礎(chǔ)上,可以對客戶端、存儲系統(tǒng)、存儲服務(wù)代理設(shè)備以及緩存設(shè)備進(jìn)行如下構(gòu)建。
[0060]客戶端,可以通過最常見的微型計算機(jī)以及安裝在微型計算機(jī)上的一套專用軟件實現(xiàn)。構(gòu)建的客戶端具有發(fā)送用戶的存儲服務(wù)請求,接收存儲服務(wù)請求的反饋等功能。所述的存儲服務(wù)請求不僅包括數(shù)據(jù)讀寫等基本的存儲服務(wù)請求,也包括數(shù)據(jù)克隆、數(shù)據(jù)快照等“較為高級”的存儲服務(wù)請求。
[0061]存儲系統(tǒng)和存儲服務(wù)代理設(shè)備,可以通過已經(jīng)公開的存儲區(qū)域網(wǎng)絡(luò)(SAN)技術(shù)方案實現(xiàn)。構(gòu)建的存儲系統(tǒng)具有接收存儲服務(wù)請求、處理存儲服務(wù)請求、實施存儲(即直接存儲數(shù)據(jù))、反饋存儲服務(wù)結(jié)果等功能。所述的存儲服務(wù)請求不僅包括數(shù)據(jù)讀寫等基本的存儲服務(wù)請求,也包括數(shù)據(jù)克隆、數(shù)據(jù)快照等“較為高級”的存儲服務(wù)請求。構(gòu)建的存儲服務(wù)代理設(shè)備調(diào)用存儲系統(tǒng)的應(yīng)用程序編程接口(API)來與存儲系統(tǒng)進(jìn)行數(shù)據(jù)交換,能夠?qū)蛻舳藢Υ鎯ο到y(tǒng)的直接訪問執(zhí)行代理操作。
[0062]緩存設(shè)備,可以通過基于RAM或者Flash Memory的磁盤或者磁盤整列實現(xiàn)。緩存