利用云存儲的用于系統(tǒng)的斷開連接操作的制作方法
【專利說明】利用云存儲的用于系統(tǒng)的斷開連接操作
【背景技術(shù)】
[0001] 越來越多地,數(shù)據(jù)被存儲在云上并且從云中取回。云計算使得存儲和取回操作能 夠分布在大量的設(shè)備上。通過在從云的給定讀取或向云的給定寫入中涉及大量設(shè)備,云甚 至可以向計算設(shè)備提供比在該計算設(shè)備的本地存儲上可用的更快的存儲和取回。
[0002] 為了利用云存儲,計算設(shè)備必須連接到云,通常經(jīng)由網(wǎng)絡(luò)連接。當(dāng)連接時,計算設(shè) 備從云中讀取數(shù)據(jù)以及將數(shù)據(jù)寫入到云。當(dāng)計算設(shè)備沒有連接到云時,這種對到云的連接 的依賴就會造成問題。用于斷開連接操作的一種方式是,當(dāng)與云斷開連接時,計算設(shè)備在本 地對寫入進(jìn)行存儲,并且在重新連接后將那些寫入提供給云。然而,這種方法沒有提供在斷 開連接操作期間讀取存儲在云上的數(shù)據(jù)的能力。用于斷開連接操作的另一種方式是,在連 接時,計算設(shè)備在本地對到云的寫入進(jìn)行鏡像,并且在斷開連接時在本地對寫入進(jìn)行存儲。 這種方式使得能夠在斷開連接操作期間進(jìn)行讀取,但是為了使得該技術(shù)對本地鏡像的崩潰 進(jìn)行復(fù)原,客戶端需要將本地鏡像內(nèi)容的全部與云中的相對應(yīng)的數(shù)據(jù)進(jìn)行比較。進(jìn)一步損 害性能的是,如果寫入到鏡像比寫入到云更慢,則以同步方式在本地對每個寫入進(jìn)行鏡像 會降低性能,導(dǎo)致應(yīng)用程序更長時間地等待對其寫入的成功或失敗的指示。
【發(fā)明內(nèi)容】
[0003] 當(dāng)連接到云存儲時,計算設(shè)備將數(shù)據(jù)和元數(shù)據(jù)寫入云存儲并且將該數(shù)據(jù)和元數(shù)據(jù) 異步地鏡像到該計算設(shè)備的本地存儲。通過對寫入進(jìn)行異步地鏡像,使得請求寫入的應(yīng)用 程序能夠繼續(xù)進(jìn)行處理而無需等待到本地存儲的鏡像寫入的結(jié)果。當(dāng)將寫入鏡像到本地存 儲時,計算設(shè)備將數(shù)據(jù)和元數(shù)據(jù)寫入到本地存儲的不同區(qū)域。在崩潰或斷開連接模式之后 將本地存儲與云存儲進(jìn)行協(xié)調(diào)的期間,計算設(shè)備僅需要檢查本地存儲的包括元數(shù)據(jù)的區(qū) 域,并且將來自該區(qū)域的元數(shù)據(jù)與從云存儲中取回的元數(shù)據(jù)進(jìn)行比較。由于云存儲可能顯 著地快于本地存儲,因此云存儲可以與本地客戶端存儲數(shù)據(jù)和元數(shù)據(jù)不同地來存儲那些數(shù) 據(jù)和元數(shù)據(jù)。例如,客戶端可以將數(shù)據(jù)和元數(shù)據(jù)保存在本地存儲的兩個不同的區(qū)域中,而云 存儲可以存儲擴(kuò)展塊,每個擴(kuò)展塊包括連續(xù)存儲的數(shù)據(jù)項(xiàng)以及其相關(guān)聯(lián)的元數(shù)據(jù)。用于將 數(shù)據(jù)和源數(shù)據(jù)存儲在本地存儲和云存儲中的這些不同技術(shù)改進(jìn)了對本地存儲和云存儲進(jìn) 行協(xié)調(diào)的速度。
[0004] 提供本概述以便以簡化的形式引入一系列概念,在以下的詳細(xì)描述中,對這些概 念進(jìn)行進(jìn)一步的描述。本概述不是要標(biāo)識出要求保護(hù)的主題的關(guān)鍵或必要特征;也不是用 于確定或限制要求保護(hù)的主題的范圍。
【附圖說明】
[0005] 參照附圖來闡述詳細(xì)描述。在附圖中,附圖標(biāo)記中的最左側(cè)的數(shù)字標(biāo)識該附圖標(biāo) 記首次在其中出現(xiàn)的附圖。不同附圖中使用相同的附圖標(biāo)記指示相似或相同的項(xiàng)或特征。
[0006] 圖1示出了被配置為以不同方式存儲元數(shù)據(jù)和數(shù)據(jù)以改進(jìn)對云存儲和本地存儲進(jìn) 行協(xié)調(diào)的速度的示例計算設(shè)備和云存儲設(shè)備。計算設(shè)備還被配置為寫入到云存儲設(shè)備以及 將該寫入異步地鏡像到計算設(shè)備的本地存儲。
[0007] 圖2示出了用于寫入到云存儲以及將該寫入異步地鏡像到計算設(shè)備的本地存儲的 示例過程。
[0008] 圖3示出了用于在計算設(shè)備崩潰后對計算設(shè)備的本地存儲與云存儲進(jìn)行協(xié)調(diào)的示 例過程。
[0009] 圖4示出了用于計算設(shè)備的斷開操作以及在重新連接到云存儲之后對計算設(shè)備的 本地存儲與云存儲進(jìn)行協(xié)調(diào)的示例過程。
[0010]圖5示出了用于在斷開連接操作之后,對計算設(shè)備的本地存儲與云存儲進(jìn)行協(xié)調(diào) 的示例過程,在所述斷開連接操作期間,計算設(shè)備崩潰。
【具體實(shí)施方式】
[0011] 本公開部分地描述了用于使得在網(wǎng)絡(luò)故障期間能夠進(jìn)行連續(xù)操作以及在崩潰或 斷開連接操作之后能夠在計算設(shè)備和云之間進(jìn)行改進(jìn)的協(xié)調(diào)的技術(shù)。為了使計算設(shè)備在網(wǎng) 絡(luò)斷開時滿足讀取,該計算設(shè)備的云客戶端寫入到云存儲并且將那些寫入異步地鏡像到計 算設(shè)備的本地存儲。如本文所用的,術(shù)語"鏡像"指的是將基本相同的數(shù)據(jù)元數(shù)據(jù)寫入到兩 個不同的存儲部件。然而,數(shù)據(jù)和元數(shù)據(jù)可以不同地存儲在不同的存儲部件中。術(shù)語"異步 地鏡像"是指向生成寫入的應(yīng)用程序提供寫入成功的指示而不需要等待將該寫入鏡像到本 地存儲的結(jié)果。從生成該寫入的應(yīng)用程序的角度,當(dāng)云端確認(rèn)寫入成功時該寫入操作結(jié)束。 應(yīng)用程序不必等待本地的數(shù)據(jù)和元數(shù)據(jù)寫入完成,因?yàn)樵瓶蛻舳水惒降靥幚砟切┦录?阻塞該應(yīng)用程序。
[0012] 在各種實(shí)施例中,當(dāng)云客戶端將寫入鏡像到本地存儲時,其將數(shù)據(jù)和與該數(shù)據(jù)相 關(guān)聯(lián)的元數(shù)據(jù)寫入到本地存儲的不同區(qū)域。例如,云客戶端可以將多個數(shù)據(jù)項(xiàng)寫入到本地 存儲的第一區(qū)域并且將多個相對應(yīng)的元數(shù)據(jù)記錄寫入到本地存儲的不同區(qū)域。由于元數(shù)據(jù) 比與其相關(guān)聯(lián)的數(shù)據(jù)小得多,因此第二區(qū)域可以在大小上比第一區(qū)域小得多。與此相反,云 存儲可以將每個數(shù)據(jù)項(xiàng)與其相對應(yīng)的元數(shù)據(jù)記錄一起連續(xù)地存儲為擴(kuò)展塊。如果云存儲使 用如硬盤等的基于尋道的存儲介質(zhì),則云存儲可以以這種方式來存儲數(shù)據(jù)和元數(shù)據(jù),以使 在云存儲上執(zhí)行的尋道次數(shù)最少。
[0013] 將元數(shù)據(jù)記錄存儲在本地存儲的不同區(qū)域以及存儲在云存儲的擴(kuò)展塊中改進(jìn)了 本地存儲和云存儲之間的協(xié)調(diào)的速度。在崩潰或在斷開連接操作隨后,云客戶端僅需要使 用小得多的本地存儲的第二區(qū)域而不是整個本地存儲。如果本地存儲相對于云存儲慢,則 這可能是有利的。將該區(qū)域的元數(shù)據(jù)記錄與從云存儲取回的元數(shù)據(jù)進(jìn)行比較?;诒容^的 結(jié)果,云客戶端隨后對本地存儲和云存儲進(jìn)行協(xié)調(diào)。
[0014] 在各種實(shí)施例中,云客戶端通過在連接模式中在寫入元數(shù)據(jù)前寫入數(shù)據(jù)以及在斷 開連接模式中在寫入數(shù)據(jù)之前寫入元數(shù)據(jù)來確保被鏡像到本地存儲的數(shù)據(jù)的完整性。例 如,在連接模式中操作的云客戶端可能將數(shù)據(jù)項(xiàng)及其元數(shù)據(jù)記錄寫入到云,將該數(shù)據(jù)項(xiàng)的 寫入鏡像到本地存儲,并且崩潰。云存儲現(xiàn)在具有更新后的元數(shù)據(jù)記錄而本地存儲具有先 前的元數(shù)據(jù)記錄或默認(rèn)記錄。云客戶端將對本地存儲和云存儲進(jìn)行協(xié)調(diào),比較元數(shù)據(jù)記錄 中的版本標(biāo)識符,該版本標(biāo)識符將指示云存儲具有更新版本的數(shù)據(jù)項(xiàng)(注意,這是不正確但 無害的;本地存儲具有更新后的數(shù)據(jù)但不具有更新后的元數(shù)據(jù),并且本地存儲的更新后數(shù) 據(jù)將由存儲在云中的相同的更新后的數(shù)據(jù)進(jìn)行覆寫)(此處請注意主語,之前的譯法使句子 的意思不清晰)?;谠摫容^,云客戶端將利用來自云存儲的數(shù)據(jù)項(xiàng)和元數(shù)據(jù)記錄來更新本 地存儲。如果將到本地存儲的元數(shù)據(jù)和數(shù)據(jù)的初始寫入倒置,并且計算設(shè)備在將元數(shù)據(jù)記 錄寫入到本地存儲后但在寫入數(shù)據(jù)項(xiàng)前崩潰,則協(xié)調(diào)會錯誤地指示本地存儲具有與云存儲 相同版本的數(shù)據(jù)項(xiàng)。
[0015] 在斷開連接模式中,將數(shù)據(jù)和元數(shù)據(jù)寫入到本地存儲的順序被倒置,這是因?yàn)樵?該模式中,本地存儲具有最新版本的數(shù)據(jù)。例如,在斷開連接模式中操作的計算設(shè)備可以將 數(shù)據(jù)項(xiàng)的元數(shù)據(jù)記錄寫入到本地存儲,并且在將數(shù)據(jù)項(xiàng)寫入到本地存儲前崩潰并且隨后立 即重新連接到云存儲。在進(jìn)入連接模式后,云客戶端可以對本地存儲與云存儲進(jìn)行協(xié)調(diào)。在 這個示例中,協(xié)調(diào)將指示(不正確但無害地)本地存儲具有更新版本的數(shù)據(jù)項(xiàng),使得該數(shù)據(jù) 項(xiàng)被用于對存儲在云存儲中的數(shù)據(jù)項(xiàng)進(jìn)行更新。如果將到本地存儲的元數(shù)據(jù)和數(shù)據(jù)的初始 寫入倒置,并且計算設(shè)備將數(shù)據(jù)寫入到本地存儲但沒有將更新后的元數(shù)據(jù)記錄寫入到本地 存儲,則協(xié)調(diào)將錯誤地指示本地存儲具有與云存儲相同版本的數(shù)據(jù)項(xiàng),導(dǎo)致云存儲與本地 存儲之間的不一致。
[0016] 示例設(shè)備
[0017] 圖1示出了被配置為以不同的方式存儲元數(shù)據(jù)和相對應(yīng)的數(shù)據(jù)以改進(jìn)對云存儲和 本地存儲進(jìn)行協(xié)調(diào)的速度的示例計算設(shè)備和云存儲設(shè)備。計算設(shè)備還被配置為將到云存儲 設(shè)備的寫入異步地鏡像到計算設(shè)備的本地存儲。如圖所示,計算設(shè)備102通過網(wǎng)絡(luò)106連接 到云存儲設(shè)備。計算設(shè)備包括存儲器108,存儲器108存儲應(yīng)用程序110、文件系統(tǒng)112、虛擬 磁盤驅(qū)動器114、以及云客戶端116。云客戶端116將數(shù)據(jù)項(xiàng)和元數(shù)據(jù)記錄寫入到云存儲設(shè)備 104的云存儲118,云存儲設(shè)備104將數(shù)據(jù)項(xiàng)和元數(shù)據(jù)記錄存儲為擴(kuò)展塊120。云客戶端116隨 后將該寫入異步地鏡像到計算設(shè)備的本地存儲122,將數(shù)據(jù)項(xiàng)寫入到本地存儲122的第一區(qū) 域124并且將元數(shù)據(jù)記錄寫入到本地存儲122的第二區(qū)域126。為了操作云客戶端116和其他 模塊110-114,計算設(shè)備102包括處理器128,并且為了經(jīng)由網(wǎng)絡(luò)106與云存儲設(shè)備104進(jìn)行通 信,計算設(shè)備102包括網(wǎng)絡(luò)接口 130。此外,計算設(shè)備102可以包括可移動存儲132、不可移動 存儲134、以及輸入/輸出(I/O)設(shè)備136。
[0018] 計算設(shè)備10