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