用于遠(yuǎn)程更新執(zhí)行進(jìn)程的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明公開了用于遠(yuǎn)程更新執(zhí)行進(jìn)程的方法、設(shè)備以及計(jì)算機(jī)可訪問存儲介質(zhì),所述執(zhí)行進(jìn)程在I/O端口上接收I/O請求,將寫數(shù)據(jù)存儲到本地存儲的寫日志,并將數(shù)據(jù)從所述寫日志上傳到遠(yuǎn)程存儲。檢測到并下載用于所述進(jìn)程的更新,并且從所述更新對更新后的進(jìn)程進(jìn)行實(shí)例化。在更新窗口期間,當(dāng)前進(jìn)程被指示來執(zhí)行關(guān)閉以進(jìn)行更新。作為響應(yīng),所述當(dāng)前進(jìn)程保存其當(dāng)前配置、將所述寫日志的存儲器中的部分轉(zhuǎn)儲清除到本地存儲,并釋放其I/O端口。更新后的進(jìn)程加載所保存的配置,檢測到所述端口已被釋放,并在所述端口上開始接受I/O請求。在轉(zhuǎn)儲清除期間,當(dāng)前進(jìn)程轉(zhuǎn)儲清除存儲器中的當(dāng)前數(shù)據(jù),同時(shí)繼續(xù)追加新的寫數(shù)據(jù),停止接受新的寫請求并且然后轉(zhuǎn)儲清除所述新的寫數(shù)據(jù)。
【專利說明】用于遠(yuǎn)程更新執(zhí)行進(jìn)程的方法和設(shè)備
【背景技術(shù)】
[0001]許多公司和其它組織操作互連眾多計(jì)算系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)以支持其運(yùn)營,例如其中所述計(jì)算系統(tǒng)位于同一位置(例如,作為本地網(wǎng)絡(luò)的一部分)或者位于多個(gè)不同的地理位置中(例如,經(jīng)由一個(gè)或多個(gè)私有或公共中間網(wǎng)絡(luò)連接)。例如,包括顯著數(shù)量的互連的計(jì)算系統(tǒng)的數(shù)據(jù)中心已變得司空見慣,如由單一組織操作并用于所述組織的私有數(shù)據(jù)中心和由實(shí)體進(jìn)行商業(yè)運(yùn)營來向客戶提供計(jì)算資源的公共數(shù)據(jù)中心。一些公共數(shù)據(jù)中心運(yùn)營商為由各種客戶所擁有的硬件提供網(wǎng)絡(luò)接入、電源以及安全安裝設(shè)施,而其它公共數(shù)據(jù)中心運(yùn)營商提供還包括可供其客戶使用的硬件資源的“全方位服務(wù)”設(shè)施。然而,隨著典型的數(shù)據(jù)中心的規(guī)模和范圍不斷增加,供應(yīng)、操縱以及管理物理計(jì)算資源的任務(wù)已變得日益復(fù)雜。
[0002]用于商用硬件的虛擬化技術(shù)的出現(xiàn)已為管理用于具有多樣化需求的眾多客戶的大規(guī)模計(jì)算資源提供了益處,從而允許各種計(jì)算資源高效且安全地由多個(gè)客戶共享。例如,虛擬化技術(shù)可以通過為每個(gè)用戶提供由單一物理計(jì)算機(jī)作主機(jī)的一個(gè)或多個(gè)虛擬機(jī)而允許所述單一物理計(jì)算機(jī)在多個(gè)用戶之間共享,其中每個(gè)這樣的虛擬機(jī)充當(dāng)不同邏輯計(jì)算系統(tǒng)的軟件模擬,所述軟件模擬為用戶提供了以為自己是給定硬件計(jì)算資源的唯一操作者和管理員的錯(cuò)覺,同時(shí)還提供了各種虛擬機(jī)之間的應(yīng)用程序隔離和安全性。此外,一些虛擬化技術(shù)能夠提供跨越兩個(gè)或更多個(gè)物理資源的虛擬資源,如具有跨越多個(gè)不同物理計(jì)算系統(tǒng)的多個(gè)虛擬處理器的單一虛擬機(jī)。
[0003]作為另一實(shí)例,虛擬化技術(shù)可以通過為每個(gè)用戶提供可以橫跨多個(gè)數(shù)據(jù)存儲裝置分布的虛擬化的數(shù)據(jù)存儲器而允許數(shù)據(jù)存儲硬件在多個(gè)用戶之間共享,其中每個(gè)這樣的虛擬化的數(shù)據(jù)存儲器充當(dāng)不同的邏輯數(shù)據(jù)存儲器,所述邏輯數(shù)據(jù)存儲器為用戶提供了以為自己是數(shù)據(jù)存儲資源的唯一操作者和管理員的錯(cuò)覺。
[0004]Web 服備
[0005]常規(guī)Web模型允許客戶端經(jīng)由HTTP客戶端程序(如Web瀏覽器)訪問Web資源(例如,應(yīng)用程序、服務(wù)以及數(shù)據(jù))。已開發(fā)了被稱為Web服務(wù)的技術(shù)以提供對Web資源的編程式訪問。Web服務(wù)可以用來提供經(jīng)由Web服務(wù)接口對Web資源進(jìn)行編程式訪問,所述Web資源包括托管在Web連接的計(jì)算機(jī)(如Web服務(wù)器系統(tǒng))上的技術(shù)平臺(例如,應(yīng)用程序和服務(wù))和數(shù)據(jù)(例如,產(chǎn)品目錄和其它數(shù)據(jù)庫)。一般來說,Web服務(wù)接口可以被配置來提供標(biāo)準(zhǔn)、跨平臺的API (應(yīng)用程序編程接口)用于請求執(zhí)行一些服務(wù)的客戶端與服務(wù)提供商之間的通信。在一些實(shí)施方式中,Web服務(wù)接口可以被配置來支持文件或信息的交換,所述文件或信息包括描述服務(wù)請求和對此請求的響應(yīng)的信息。這類文件或消息可以使用標(biāo)準(zhǔn)化的Web協(xié)議(例如像超文本傳輸協(xié)議(HTTP))進(jìn)行交換并且可以以與平臺無關(guān)的數(shù)據(jù)格式(例如像可擴(kuò)展標(biāo)記語言(XML))進(jìn)行格式化。
【專利附圖】
【附圖說明】
[0006]圖1是根據(jù)至少一些實(shí)施方案的示例性網(wǎng)絡(luò)環(huán)境的概要框圖,所述網(wǎng)絡(luò)環(huán)境包括示例性服務(wù)提供商和示例性服務(wù)客戶。[0007]圖2示出根據(jù)至少一些實(shí)施方案的用于存儲網(wǎng)關(guān)的示例性體系結(jié)構(gòu)和所述存儲網(wǎng)關(guān)的組件。
[0008]圖3是其中可以實(shí)施存儲網(wǎng)關(guān)的實(shí)施方案的示例性網(wǎng)絡(luò)環(huán)境的概要框圖。
[0009]圖4是根據(jù)至少一些實(shí)施方案的示例性網(wǎng)絡(luò)環(huán)境的框圖,所述網(wǎng)絡(luò)環(huán)境包括在服務(wù)客戶網(wǎng)絡(luò)現(xiàn)場的存儲網(wǎng)關(guān),所述存儲網(wǎng)關(guān)用作所述服務(wù)客戶網(wǎng)絡(luò)與服務(wù)提供商網(wǎng)絡(luò)上的存儲服務(wù)之間的接口。
[0010]圖5是根據(jù)至少一些實(shí)施方案的示例性服務(wù)提供商的框圖,所述服務(wù)提供商向其客戶提供存儲服務(wù)和硬件虛擬化服務(wù)。
[0011]圖6是寬泛地示出示例性網(wǎng)絡(luò)環(huán)境的體系結(jié)構(gòu)和所述網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)流的概要框圖,在所述網(wǎng)絡(luò)環(huán)境中存儲網(wǎng)關(guān)的實(shí)施方案被配置為高速緩存網(wǎng)關(guān)。
[0012]圖7是寬泛地示出示例性網(wǎng)絡(luò)環(huán)境的體系結(jié)構(gòu)和所述網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)流的概要框圖,在所述網(wǎng)絡(luò)環(huán)境中存儲網(wǎng)關(guān)的一個(gè)實(shí)施方案被配置為投影(shadowing)網(wǎng)關(guān)。
[0013]圖8是根據(jù)至少一些實(shí)施方案的寬泛地示出在示例性網(wǎng)絡(luò)環(huán)境中自舉投影網(wǎng)關(guān)的概要框圖。
[0014]圖9是根據(jù)至少一些實(shí)施方案的用于投影網(wǎng)關(guān)的自舉過程的流程圖。
[0015]圖10是根據(jù)至少一些實(shí)施方案投影網(wǎng)關(guān)進(jìn)入直通模式并從其中恢復(fù)的流程圖。
[0016]圖11是根據(jù)至少一些實(shí)施方案的用于從網(wǎng)關(guān)上傳、更新并跟蹤塊到遠(yuǎn)程數(shù)據(jù)存儲器的方法的流程圖。
[0017]圖12是根據(jù)至少一些實(shí)施方案的用于投影網(wǎng)關(guān)的優(yōu)化的自舉過程的流程圖。
[0018]圖13示出根據(jù)至少一些實(shí)施方案的存儲網(wǎng)關(guān)安全模型的方面。
[0019]圖14是根據(jù)至少一些實(shí)施方案的示出網(wǎng)關(guān)安全模型在存儲網(wǎng)關(guān)的激活、配置以及操作過程中的至少一些方面的流程圖。
[0020]圖15是根據(jù)至少一些實(shí)施方案的示例性網(wǎng)絡(luò)環(huán)境的概要框圖,其示出參與網(wǎng)關(guān)激活過程的服務(wù)客戶和服務(wù)提供商組件或?qū)嶓w。
[0021]圖16A和圖16B是根據(jù)至少一些實(shí)施方案的過程流程圖,其示出在網(wǎng)關(guān)激活過程中圖15中所示的組件之間的交互。
[0022]圖17A和圖17B是根據(jù)至少一些實(shí)施方案的從存儲網(wǎng)關(guān)的角度來看的激活過程的流程圖。
[0023]圖18是示出可以在至少一些實(shí)施方案中采用的示例性網(wǎng)關(guān)控制體系結(jié)構(gòu)的概要框圖。
[0024]圖19是根據(jù)至少一些實(shí)施方案的用于使用網(wǎng)關(guān)發(fā)起的連接和長輪詢技術(shù)的遠(yuǎn)程網(wǎng)關(guān)管理的方法的流程圖。
[0025]圖20是根據(jù)一些實(shí)施方案的用于網(wǎng)關(guān)控制服務(wù)器向其對等服務(wù)器廣播網(wǎng)關(guān)請求的方法的流程圖。
[0026]圖21是根據(jù)一些實(shí)施方案的用于將網(wǎng)關(guān)請求發(fā)送到適當(dāng)?shù)木W(wǎng)關(guān)控制服務(wù)器的替代性方法的流程圖。
[0027]圖22是根據(jù)至少一些實(shí)施方案的用于建立、監(jiān)視以及維護(hù)網(wǎng)關(guān)發(fā)起連接的方法的流程圖。
[0028]圖23A是根據(jù)至少一些實(shí)施方案的寬泛地示出用于包括網(wǎng)關(guān)代理平面的服務(wù)提供商網(wǎng)絡(luò)的體系結(jié)構(gòu)的框圖。
[0029]圖23B示出根據(jù)至少一些實(shí)施方案網(wǎng)關(guān)控制服務(wù)器通過網(wǎng)關(guān)代理平面向網(wǎng)關(guān)發(fā)送消息。
[0030]圖23C示出根據(jù)至少一些實(shí)施方案網(wǎng)關(guān)通過網(wǎng)關(guān)代理平面對網(wǎng)關(guān)控制服務(wù)器請求作出響應(yīng)。
[0031]圖23D示出根據(jù)至少一些實(shí)施方案的用于網(wǎng)關(guān)代理平面的ping消息交換。
[0032]圖24示出根據(jù)至少一些實(shí)施方案的用于高速緩存網(wǎng)關(guān)的通用體系結(jié)構(gòu)和所述高速緩存網(wǎng)關(guān)的數(shù)據(jù)I/o操作。
[0033]圖25示出根據(jù)至少一些實(shí)施方案的用于投影網(wǎng)關(guān)的通用體系結(jié)構(gòu)和所述加密網(wǎng)關(guān)的數(shù)據(jù)I/o操作。
[0034]圖26是根據(jù)至少一些實(shí)施方案的用于向塊數(shù)據(jù)存儲器上的寫日志進(jìn)行寫入的方法的流程圖。
[0035]圖27是根據(jù)高速緩存網(wǎng)關(guān)的至少一些實(shí)施方案的用于滿足讀請求的方法的流程圖。
[0036]圖28A至圖28D圖示出根據(jù)至少一些實(shí)施方案的用于更新執(zhí)行網(wǎng)關(guān)控制進(jìn)程的技術(shù)的組件和操作。
[0037]圖29是根據(jù)至少一些實(shí)施方案的用于更新執(zhí)行存儲網(wǎng)關(guān)進(jìn)程的方法的流程圖。
[0038]圖30是示出可以在一些實(shí)施方案中使用的示例性計(jì)算機(jī)系統(tǒng)的框圖。
[0039]雖然在本文中通過列舉若干實(shí)施方案和示意性附圖的實(shí)例的方式描述了實(shí)施方案,本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識到,實(shí)施方案并不限于所描述的實(shí)施方案或附圖。應(yīng)理解,附圖和對其的詳細(xì)描述并非意圖將實(shí)施方案限于所公開的特定形式,而是相反,其意圖在于涵蓋落入由所附權(quán)利要求書所界定的精神和范圍內(nèi)的所有修改、等同物以及替代方案。本文中所使用的任何標(biāo)題都是僅用于組織目的并且并不意圖限制說明書或權(quán)利要求書的范圍。如貫穿本申請所用,詞語“可以”是以允許意義(即,意味著有可能)而不是強(qiáng)制意義(即,意味著必須)使用。類似地,詞語“包括(include/including/includes)”意味著包括但不限于。
【具體實(shí)施方式】
[0040]本公開描述了用于為遠(yuǎn)程存儲提供本地網(wǎng)關(guān)的方法、設(shè)備以及計(jì)算機(jī)可存取存儲介質(zhì)的各種實(shí)施方案。本文在服務(wù)提供商的上下文中描述了存儲網(wǎng)關(guān)的實(shí)施方案,所述服務(wù)提供商通過中間網(wǎng)絡(luò)(如因特網(wǎng))向其一個(gè)或多個(gè)客戶提供存儲服務(wù)。所述存儲網(wǎng)關(guān)可以被實(shí)施為內(nèi)置安裝在客戶的數(shù)據(jù)中心處并充當(dāng)所述客戶的數(shù)據(jù)中心與所述存儲服務(wù)之間的網(wǎng)關(guān)的虛擬或物理設(shè)備。存儲網(wǎng)關(guān)可以被配置為到經(jīng)由存儲服務(wù)遠(yuǎn)程提供的主存儲的接口并用于所述主存儲的本地高速緩存,和/或配置為將實(shí)施在客戶的網(wǎng)絡(luò)上的主存儲投影到由存儲服務(wù)提供的遠(yuǎn)程存儲的接口。存儲網(wǎng)關(guān)可以在所述設(shè)備的前端處向客戶的應(yīng)用程序呈現(xiàn)標(biāo)準(zhǔn)的數(shù)據(jù)存取接口,在所述設(shè)備的后端處將數(shù)據(jù)存取轉(zhuǎn)換成存儲服務(wù)請求,并根據(jù)存儲服務(wù)接口將數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)酱鎯Ψ?wù)。在至少一些實(shí)施方案中,所述存儲服務(wù)接口可以被實(shí)施為Web服務(wù)接口。
[0041]存儲網(wǎng)關(guān)的實(shí)施方案可以提供到經(jīng)由存儲服務(wù)所提供的幾乎無限的、靈活的、可擴(kuò)展的遠(yuǎn)程存儲的內(nèi)置接口。存儲網(wǎng)關(guān)可以提供常規(guī)的內(nèi)置存儲解決方案的具有成本效益、靈活且更易擴(kuò)展的替代方案。雖然存儲裝置的成本可能減少,但常規(guī)的內(nèi)置存儲解決方案的管理成本和其它的硬件與軟件成本仍保持相對恒定或者在一些情況下增加。在將至少一些管理成本和其它成本轉(zhuǎn)嫁給服務(wù)提供商的情況下,存儲網(wǎng)關(guān)的實(shí)施方案可以允許所述服務(wù)提供商的客戶降低總體存儲擁有成本。
[0042]在至少一些實(shí)施方案中,存儲服務(wù)可以根據(jù)塊存儲技術(shù)將客戶的數(shù)據(jù)存儲在遠(yuǎn)程數(shù)據(jù)存儲器中。在至少一些實(shí)施方案中,存儲網(wǎng)關(guān)可以在前端處向客戶的應(yīng)用程序公開塊存儲協(xié)議(例如,iSCS1、GNBD(全局網(wǎng)絡(luò)塊裝置)等)、文件存儲協(xié)議(例如,NFS(網(wǎng)絡(luò)文件存儲)、CIFS(通用互聯(lián)網(wǎng)文件系統(tǒng))等)和/或?qū)ο蟠鎯f(xié)議(例如,REST(代表性狀態(tài)傳輸))。塊存儲協(xié)議(如iSCSI)使得能夠直接存取遠(yuǎn)程數(shù)據(jù)存儲器的底層數(shù)據(jù)塊。
[0043]由應(yīng)用程序經(jīng)由文件存儲協(xié)議(如由存儲網(wǎng)關(guān)呈現(xiàn)的NFS或CIFS)寫入的文件可以根據(jù)塊存儲技術(shù)存儲到遠(yuǎn)程數(shù)據(jù)存儲器。通過所公開的文件存儲協(xié)議(如NFS和CIFS),在根據(jù)塊存儲技術(shù)存儲在遠(yuǎn)程數(shù)據(jù)存儲器中的客戶的數(shù)據(jù)被通過網(wǎng)絡(luò)從網(wǎng)關(guān)發(fā)送到客戶的應(yīng)用程序之前,存儲網(wǎng)關(guān)將客戶的數(shù)據(jù)以文件呈現(xiàn)給客戶的應(yīng)用程序。所述所公開的塊存儲協(xié)議(例如,iSCSI)將塊傳輸?shù)娇蛻舻膽?yīng)用程序,因而要求所述應(yīng)用程序來處理將數(shù)據(jù)塊解釋成所述應(yīng)用程序所期望的任何格式的解釋操作。
[0044]塊存儲協(xié)議(如iSCSI)是底層塊存儲協(xié)議,并且因此可以使得用例范圍能夠比文件存儲協(xié)議(如NFS和CIFS)更為廣泛。塊存儲協(xié)議可以使得能夠支持通常寫入到塊存儲器的應(yīng)用程序(如MicrosoftKSharePoint?和Oraclek數(shù)據(jù)庫),并且還可以被配置來為CIFS或NFS文件服務(wù)器提供底層存儲。因此,在存儲網(wǎng)關(guān)的至少一些實(shí)施方案中,可以采用塊存儲協(xié)議(如iSCSI)作為到客戶應(yīng)用程序的公開的接口。
[0045]圖1是根據(jù)至少一些實(shí)施方案的示例性網(wǎng)絡(luò)環(huán)境的概要框圖,所述網(wǎng)絡(luò)環(huán)境包括示例性服務(wù)提供商和示例性服務(wù)客戶。存儲網(wǎng)關(guān)84可以被安裝、激活并配置為服務(wù)客戶本地網(wǎng)絡(luò)或數(shù)據(jù)中心(例如,客戶端網(wǎng)絡(luò)80)中的虛擬或物理設(shè)備,以便向客戶端網(wǎng)絡(luò)80上的客戶進(jìn)程88提供若干遠(yuǎn)程數(shù)據(jù)存儲功能中的一個(gè)或多個(gè)。客戶進(jìn)程88可以是存在于客戶端網(wǎng)絡(luò)80上并可以經(jīng)由網(wǎng)關(guān)84的數(shù)據(jù)端口的數(shù)據(jù)協(xié)議(例如,iSCSI協(xié)議)連接到存儲網(wǎng)關(guān)84并與其通信的任何硬件、軟件和/或其組合。存儲網(wǎng)關(guān)84可以(例如)用作內(nèi)置存儲裝置和/或用作客戶端網(wǎng)絡(luò)80上的客戶進(jìn)程88與由服務(wù)提供商60提供的存儲服務(wù)64之間的接口。應(yīng)注意,除了存儲服務(wù)64之外,服務(wù)提供商60還可以向服務(wù)提供商60的客戶提供其它服務(wù),包括但不限于硬件虛擬化服務(wù)。
[0046]服務(wù)提供商60的客戶在本文中可以被稱為服務(wù)客戶或簡單地稱為客戶,并且可以是實(shí)施耦接到中間網(wǎng)絡(luò)50 (如互聯(lián)網(wǎng))的計(jì)算機(jī)網(wǎng)絡(luò)或網(wǎng)絡(luò)來向本地網(wǎng)絡(luò)或網(wǎng)絡(luò)上的一個(gè)或多個(gè)用戶提供網(wǎng)絡(luò)化計(jì)算服務(wù)(包括由服務(wù)提供商60遠(yuǎn)程提供的一種或多種服務(wù))的任何實(shí)體。服務(wù)客戶可以是商業(yè)企業(yè)、教育實(shí)體、政府實(shí)體或?qū)嵤┫蛴脩籼峁┚W(wǎng)絡(luò)化計(jì)算服務(wù)的計(jì)算機(jī)網(wǎng)絡(luò)或網(wǎng)絡(luò)的總體上任何實(shí)體。雖然圖1示出單一客戶端網(wǎng)絡(luò)80,但可能存在多個(gè)客戶端網(wǎng)絡(luò)80。每個(gè)客戶端網(wǎng)絡(luò)80可以對應(yīng)于不同服務(wù)客戶,或者兩個(gè)或更多個(gè)客戶端網(wǎng)絡(luò)80可以對應(yīng)于同一服務(wù)客戶的不同數(shù)據(jù)中心或位置,例如商業(yè)企業(yè)的不同地區(qū)辦事處或?qū)W校系統(tǒng)的不同校區(qū)。在至少一些實(shí)施方案中,服務(wù)提供商60的每個(gè)客戶可以擁有服務(wù)提供商60的賬戶,并且可以被提供有安全憑證(例如,賬戶名稱和/或標(biāo)識符、密碼等),經(jīng)由所述安全憑證一個(gè)或多個(gè)客戶代表(例如,客戶端網(wǎng)絡(luò)管理員)可以登錄至到服務(wù)提供商60的接口(例如,Web頁面)中來管理由一種或多種服務(wù)提供的客戶的資源,所述客戶的資源包括但不限于由服務(wù)提供商60提供的存儲服務(wù)。
[0047]存儲網(wǎng)關(guān)84的實(shí)施方案可以在硬件、軟件或其組合中實(shí)施。在至少一些實(shí)施方案中,存儲網(wǎng)關(guān)84可以實(shí)施為可以(例如)在被在主機(jī)系統(tǒng)上實(shí)例化的虛擬機(jī)內(nèi)執(zhí)行的虛擬設(shè)備。在至少一些實(shí)施方案中,存儲網(wǎng)關(guān)84可以實(shí)施為可以在耦接到服務(wù)客戶的數(shù)據(jù)中心處的本地網(wǎng)絡(luò)基礎(chǔ)設(shè)施(例如,客戶端網(wǎng)絡(luò)80)的一個(gè)或多個(gè)計(jì)算裝置(如服務(wù)器系統(tǒng))上下載或以其它方式安裝、激活并配置的虛擬設(shè)備?;蛘?,存儲網(wǎng)關(guān)84可以實(shí)施為可以耦接到服務(wù)客戶的數(shù)據(jù)中心處的本地網(wǎng)絡(luò)基礎(chǔ)設(shè)施(例如,客戶端網(wǎng)絡(luò)80)的專用裝置或設(shè)備;所述專用裝置或設(shè)備可以包括實(shí)施存儲網(wǎng)關(guān)84的功能的軟件和/或硬件。圖26示出其上可以實(shí)施存儲網(wǎng)關(guān)84的實(shí)施方案的示例性計(jì)算機(jī)系統(tǒng)。在至少一些實(shí)施方案中,存儲網(wǎng)關(guān)84經(jīng)由中間網(wǎng)絡(luò)50 (例如,因特網(wǎng))通過防火墻82技術(shù)與服務(wù)提供商60網(wǎng)絡(luò)進(jìn)行通信。應(yīng)注意,服務(wù)提供商60網(wǎng)絡(luò)還可以包括前端62技術(shù)(例如,防火墻技術(shù)、邊界路由器技術(shù)、負(fù)載均衡器技術(shù)等),來自和流向中間網(wǎng)絡(luò)50的網(wǎng)絡(luò)流量通過所述前端技術(shù)。
[0048]存儲網(wǎng)關(guān)84的至少一些實(shí)施方案可以根據(jù)安全模型進(jìn)行實(shí)施,所述安全模型為客戶提供了數(shù)據(jù)保護(hù)并且提供了對網(wǎng)關(guān)84的保護(hù)防止網(wǎng)關(guān)被客戶或第三方濫用和未經(jīng)授權(quán)而使用(例如,盜版)。可以保護(hù)并加密存儲網(wǎng)關(guān)84與存儲服務(wù)64之間的通信。稍后在本文件中描述了激活過程,在所述激活過程中,新安裝的存儲網(wǎng)關(guān)84發(fā)起與服務(wù)提供商60網(wǎng)絡(luò)的連接并被其標(biāo)識以獲取安全憑證。在至少一些實(shí)施方案中,在所述激活過程中,客戶登錄到由服務(wù)提供商60提供的客戶的賬戶中并向服務(wù)提供商60提供在注冊網(wǎng)關(guān)84中所使用的信息。然而,客戶并沒有登錄到存儲網(wǎng)關(guān)84中,并且因此客戶的安全憑證和其它賬戶信息沒有暴露在網(wǎng)關(guān)84上。這可以最小化客戶的安全風(fēng)險(xiǎn)。
[0049]在至少一些實(shí)施方案中,所述安全模型的方面是存儲網(wǎng)關(guān)84只接受到從外部向公開給客戶端網(wǎng)絡(luò)80上的客戶進(jìn)程88的一個(gè)或多個(gè)數(shù)據(jù)端口(例如,iSCSI端口)發(fā)起的連接。存儲網(wǎng)關(guān)向外部進(jìn)程發(fā)起所有其它連接;外部進(jìn)程無法向網(wǎng)關(guān)發(fā)起任何其它連接。例如,在至少一些實(shí)施方案中,存儲網(wǎng)關(guān)84向服務(wù)提供商60發(fā)起網(wǎng)關(guān)管理和其它連接;月艮務(wù)提供商60不向網(wǎng)關(guān)84發(fā)起連接。作為另一個(gè)例子,客戶端網(wǎng)絡(luò)80的網(wǎng)絡(luò)管理員進(jìn)程90無法直接連接到存儲網(wǎng)關(guān)84來配置和管理網(wǎng)關(guān)84。而是,網(wǎng)絡(luò)管理員進(jìn)程90對存儲網(wǎng)關(guān)84的配置和管理可以通過服務(wù)提供商60(例如)經(jīng)由服務(wù)提供商60網(wǎng)絡(luò)上的控制臺進(jìn)程68來執(zhí)行。因此,在至少一些實(shí)施方案中,客戶端網(wǎng)絡(luò)80上的用戶、網(wǎng)絡(luò)管理者或進(jìn)程(例如,網(wǎng)絡(luò)管理員進(jìn)程90或客戶進(jìn)程88)無法直接“登錄”到存儲網(wǎng)關(guān)84中,服務(wù)提供商60網(wǎng)絡(luò)上或某個(gè)其它外部網(wǎng)絡(luò)上的用戶、管理者或進(jìn)程(例如,控制臺進(jìn)程68和存儲服務(wù)64)或者某個(gè)其它外部網(wǎng)絡(luò)上的用戶、管理者或進(jìn)程也無法向存儲網(wǎng)關(guān)84發(fā)起連接。這有助于保護(hù)存儲網(wǎng)關(guān)84上的安全憑證和其它操作信息不受到客戶端網(wǎng)絡(luò)80上的個(gè)人或進(jìn)程或受到外部個(gè)人或進(jìn)程有意或無意地危害。
[0050]存儲網(wǎng)關(guān)84的實(shí)施方案可以被安裝、激活并配置用于存儲服務(wù)64來提供若干數(shù)據(jù)存儲器66功能中一種或多種。例如,存儲網(wǎng)關(guān)84可以被安裝、激活、配置并用于存儲服務(wù)64以用作:
[0051].文件系統(tǒng)網(wǎng)關(guān)。在此配置中,存儲網(wǎng)關(guān)用作到存儲服務(wù)64的(例如,使用CIFS或NFS協(xié)議的)NAS存儲接口。網(wǎng)關(guān)84可以將遠(yuǎn)程數(shù)據(jù)存儲器66作為對象存儲器(例如,REST)呈現(xiàn)給客戶,而數(shù)據(jù)存儲器66是根據(jù)塊存儲技術(shù)來實(shí)施。在這種配置中,遠(yuǎn)程數(shù)據(jù)存儲器66可以作為虛擬化的文件系統(tǒng)呈現(xiàn)給客戶,客戶可以向所述虛擬化的文件系統(tǒng)寫入文件并且客戶可以從所述虛擬化的文件系統(tǒng)讀取文件。
[0052].云卷網(wǎng)關(guān)。在此配置中,存儲網(wǎng)關(guān)84用作經(jīng)由存儲服務(wù)64到在遠(yuǎn)程數(shù)據(jù)存儲器66上實(shí)施的卷的接口。遠(yuǎn)程數(shù)據(jù)存儲器66可以使用塊存儲技術(shù)來實(shí)施。網(wǎng)關(guān)84提供本地網(wǎng)絡(luò)接入點(diǎn),其中遠(yuǎn)程數(shù)據(jù)存儲器66上的卷(其也可以被稱為云卷)用作提供靈活且基本上無限的主存儲容量的后端存儲。在這種配置中,遠(yuǎn)程數(shù)據(jù)存儲器66可以作為云卷系統(tǒng)呈現(xiàn)給客戶,客戶可以從所述云卷系統(tǒng)在本地掛載卷用于讀取和寫入數(shù)據(jù)。
[0053]?投影網(wǎng)關(guān)。在此配置中,存儲網(wǎng)關(guān)84用作客戶的應(yīng)用程序(例如,客戶進(jìn)程88)與客戶的本地?cái)?shù)據(jù)存儲器86之間的“線纜中的塊”,以便提供經(jīng)由存儲服務(wù)84將客戶的寫數(shù)據(jù)(例如,iSCSI寫入)投影到遠(yuǎn)程數(shù)據(jù)存儲器66。遠(yuǎn)程數(shù)據(jù)存儲器66可以使用塊存儲技術(shù)來實(shí)施。在這種配置中,存儲網(wǎng)關(guān)84可以用作將客戶的本地?cái)?shù)據(jù)存儲器投影到遠(yuǎn)程數(shù)據(jù)存儲器66上的快照的投影設(shè)備。這種投影可以從本地網(wǎng)絡(luò)上的用戶的角度來看透明地來執(zhí)行。當(dāng)必要或需要時(shí),客戶可以請求或訪問遠(yuǎn)程數(shù)據(jù)存儲器66上的客戶的數(shù)據(jù)的快照,(例如)以便將客戶的數(shù)據(jù)的部分或全部從所述快照還原、恢復(fù)或復(fù)制到本地存儲器86。
[0054]應(yīng)注意,文件系統(tǒng)網(wǎng)關(guān)和云卷網(wǎng)關(guān)是相似的,因?yàn)閮烧叨加米鞯竭h(yuǎn)程數(shù)據(jù)存儲器的網(wǎng)關(guān),并且兩者都可以在本地將數(shù)據(jù)(例如,頻繁和/或最近使用的數(shù)據(jù))高速緩存。在文件系統(tǒng)網(wǎng)關(guān)和云卷網(wǎng)關(guān)兩者中,如果可能的話,那么來自客戶進(jìn)程的數(shù)據(jù)讀取可以從本地高速緩存提供服務(wù),或者如果不可能的話,可以從遠(yuǎn)程數(shù)據(jù)存儲器提供服務(wù)。相反,在投影網(wǎng)關(guān)中,數(shù)據(jù)讀取被通過網(wǎng)關(guān)傳遞到客戶的本地?cái)?shù)據(jù)存儲器。為了本文件的目的,可以將文件系統(tǒng)網(wǎng)關(guān)和云卷網(wǎng)關(guān)統(tǒng)稱為高速緩存網(wǎng)關(guān)以將這些實(shí)施方式與加密網(wǎng)關(guān)進(jìn)行區(qū)分。
[0055]示例性存儲網(wǎng)關(guān)設(shè)備體系結(jié)構(gòu)
[0056]圖2示出根據(jù)至少一些實(shí)施方案的用于存儲網(wǎng)關(guān)的示例性體系結(jié)構(gòu)和所述存儲網(wǎng)關(guān)的組件。應(yīng)注意,在與高速緩存網(wǎng)關(guān)實(shí)施方式相比較時(shí),在投影網(wǎng)關(guān)實(shí)施方式中可以不使用圖2中所示的組件中的一些,或者可以不同地使用或?qū)嵤?br>
[0057]塊驅(qū)動器10將客戶進(jìn)程88與存儲網(wǎng)關(guān)84介接(interface)。一般來說,塊驅(qū)動器10允許客戶進(jìn)程88 (例如,經(jīng)由讀/寫請求)與存儲網(wǎng)關(guān)84進(jìn)行交互。由于存儲網(wǎng)關(guān)84是與客戶進(jìn)程88同地的,因此從進(jìn)程88的角度來看,數(shù)據(jù)似乎是被存儲在本地。然而,存儲網(wǎng)關(guān)84與存儲服務(wù)64介接來將數(shù)據(jù)存儲到由存儲服務(wù)64提供的遠(yuǎn)程數(shù)據(jù)存儲器66。對于高速緩存網(wǎng)關(guān)來說,主數(shù)據(jù)存儲器是遠(yuǎn)程數(shù)據(jù)存儲器66,而頻繁存取的數(shù)據(jù)可以由網(wǎng)關(guān)84在本地進(jìn)行高速緩存。讀取可以從本地高速緩存或者從虛擬數(shù)據(jù)存儲66得到滿足;寫入被處理以便適當(dāng)?shù)馗卤镜馗咚倬彺嬷泻?或虛擬數(shù)據(jù)存儲66中的數(shù)據(jù)塊。對于投影網(wǎng)關(guān)來說,主數(shù)據(jù)存儲器是本地?cái)?shù)據(jù)存儲器86 ;讀取被傳遞到本地?cái)?shù)據(jù)存儲器86,并且寫入被投影到虛擬數(shù)據(jù)存儲66,同時(shí)還被發(fā)送到本地?cái)?shù)據(jù)存儲器86。
[0058]塊驅(qū)動器10攔截來自客戶進(jìn)程88的讀/寫請求并將所述請求傳遞給存儲控制器
12。在至少一些實(shí)施方案中,塊驅(qū)動器10可以提供塊存儲協(xié)議(例如,iSCSI或GMBD)作為到客戶進(jìn)程88的接口。在一些實(shí)施方案中,代替塊存儲協(xié)議接口或作為其可替代物,塊驅(qū)動器10可以提供文件存儲協(xié)議接口(例如,NFS或CIFS),并且可以使用文件系統(tǒng)語義作為到存儲控制器12的接口。應(yīng)注意,雖然圖2示出一個(gè)塊驅(qū)動器10,但可能存在一個(gè)以上塊驅(qū)動器。
[0059]存儲控制器12經(jīng)由高速緩存管理器14充當(dāng)塊驅(qū)動器10與存儲之間的中介物。存儲控制器12的職責(zé)可以包括將來自塊驅(qū)動器10的讀取和寫入請求轉(zhuǎn)發(fā)給存儲并且當(dāng)存儲用數(shù)據(jù)響應(yīng)時(shí)回叫塊驅(qū)動器10。塊驅(qū)動器10還可以維護(hù)統(tǒng)計(jì)數(shù)據(jù),如正在進(jìn)行中的請求數(shù)目。
[0060]在至少一些實(shí)施方案中,一個(gè)存儲網(wǎng)關(guān)84上的存儲控制器12可以與另一存儲網(wǎng)關(guān)84上的高速緩存管理器14進(jìn)行通信。在至少一些實(shí)施方案中,每個(gè)存儲網(wǎng)關(guān)84可以發(fā)送心跳消息用于發(fā)現(xiàn)和檢測故障。可以使用一致性哈希函數(shù)來標(biāo)識負(fù)責(zé)給定對象的存儲網(wǎng)關(guān)84,并且可以將獲取數(shù)據(jù)的請求轉(zhuǎn)發(fā)給目標(biāo)存儲網(wǎng)關(guān)84上的高速緩存管理器14。高速緩存管理器14可以通過調(diào)用由存儲控制器12提供的回叫信號來響應(yīng)。
[0061]在高速緩存網(wǎng)關(guān)實(shí)施方案中,高速緩存管理器14可以管理(例如)提供用于頻繁存取的數(shù)據(jù)的存儲的本地高速緩存28。本地高速緩存28可以在存儲網(wǎng)關(guān)84的內(nèi)部易失性和/或非易失性存儲器上來實(shí)施,或者可替代地,可以至少部分地在由客戶提供的外部本地?cái)?shù)據(jù)存儲器86上來實(shí)施。在至少一些實(shí)施方案中,本地高速緩存28代表存儲在虛擬化的數(shù)據(jù)存儲66中的數(shù)據(jù);來自客戶進(jìn)程88的寫入可能不直接影響本地高速緩存28。
[0062]在采用多個(gè)網(wǎng)關(guān)84的至少一些實(shí)施方案中,可以使用分布式本地高速緩存,并且可以使用關(guān)于密鑰的一致性哈希函數(shù)來標(biāo)識負(fù)責(zé)持有給定密鑰的高速緩存。在至少一些實(shí)施方案中,可以使用位置感知請求分布來減少網(wǎng)關(guān)84之間的可能要求額外負(fù)載平衡的通?目。
[0063]對遠(yuǎn)程數(shù)據(jù)存儲器66中的給定卷的所`有寫請求可以去往特定的網(wǎng)關(guān)84節(jié)點(diǎn)。由于對卷的所有寫請求都被轉(zhuǎn)發(fā)給特定的網(wǎng)關(guān)84節(jié)點(diǎn),因此網(wǎng)絡(luò)分區(qū)可能不是問題。
[0064]暫存
[0065]在至少一些實(shí)施方案中,高速緩存管理器14可以包括暫存16組件或可以與其介接。暫存16可以包括或可以訪問寫日志18。在至少一些實(shí)施方案中,可以在寫日志18上建立數(shù)據(jù)結(jié)構(gòu)并將其用作元數(shù)據(jù)存儲器26。元數(shù)據(jù)存儲器26可以允許快速訪問對特定塊的所有寫入。元數(shù)據(jù)存儲器26可以(例如)用來將變化應(yīng)用到塊內(nèi)的不同片段。當(dāng)從客戶進(jìn)程88接收到寫數(shù)據(jù)時(shí),所述數(shù)據(jù)被追加到寫日志18。用于與塊有關(guān)的寫數(shù)據(jù)的元數(shù)據(jù)(例如,偏移和長度)可以存儲到元數(shù)據(jù)存儲器26。在至少一些實(shí)施方案中,寫日志18可以被實(shí)施為實(shí)現(xiàn)為線性隊(duì)列抑或循環(huán)隊(duì)列的一維數(shù)據(jù)緩沖器。在至少一些實(shí)施方案中,元數(shù)據(jù)存儲器26可以是例如實(shí)施為Berkeley數(shù)據(jù)庫的鍵/值存儲器。在一些實(shí)施方案中可以使用寫日志18和元數(shù)據(jù)存儲器26兩者的其它實(shí)施方式。
[0066]在高速緩存網(wǎng)關(guān)實(shí)施方式中,當(dāng)執(zhí)行讀取時(shí),初始塊可以從本地高速緩存28或者從遠(yuǎn)程數(shù)據(jù)存儲器66獲取,并且由寫日志18指示的任何掛起的變化都可以在將數(shù)據(jù)返回給相應(yīng)的客戶進(jìn)程88之前被應(yīng)用。
[0067]在一些實(shí)施方案中,如果網(wǎng)關(guān)84發(fā)生故障(例如,當(dāng)機(jī)),那么內(nèi)存中的寫數(shù)據(jù)可能丟失,除非所述數(shù)據(jù)已被寫入到本地?cái)?shù)據(jù)存儲器86。在一些實(shí)施方案中,如果在客戶站點(diǎn)處存在多個(gè)網(wǎng)關(guān)84,那么另一網(wǎng)關(guān)84可以承擔(dān)由當(dāng)機(jī)的網(wǎng)關(guān)84所有的密鑰的職責(zé)、從本地?cái)?shù)據(jù)存儲器86上的快照(如果存在的話)還原寫入,并開始接受定向到相應(yīng)卷的請求。在一些實(shí)施方案中,可以將寫日志18和/或元數(shù)據(jù)存儲器26復(fù)制在兩個(gè)或更多個(gè)網(wǎng)關(guān)84上以提供冗余和更好的耐久性。在網(wǎng)關(guān)84發(fā)生故障的情況下,其它網(wǎng)關(guān)84中的一個(gè)可以接管發(fā)生故障的網(wǎng)關(guān)的寫日志18和元數(shù)據(jù)存儲器26。然而,在至少一些實(shí)施方案中,元數(shù)據(jù)存儲器26只可能在所有者網(wǎng)關(guān)84上進(jìn)行維護(hù)。在這些實(shí)施方案中,在網(wǎng)關(guān)84發(fā)生故障的情況下,其它網(wǎng)關(guān)84中的一個(gè)可以接管并解析主要寫日志18來重建元數(shù)據(jù)存儲器26。
[0068]在高速緩存網(wǎng)關(guān)實(shí)施方式中,取塊器22經(jīng)由存儲服務(wù)64從遠(yuǎn)程數(shù)據(jù)存儲器66取出所需塊片段。在至少一些實(shí)施方案中,取塊器22可以采用延遲取出技術(shù)來取出完整塊用于高速緩存。對于高速緩存網(wǎng)關(guān)和投影網(wǎng)關(guān)兩者來說,塊存儲器24經(jīng)由存儲服務(wù)64將數(shù)據(jù)從暫存16推送到遠(yuǎn)程數(shù)據(jù)存儲器66。在至少一些實(shí)施方案中,塊存儲器24可以采用延遲推送技術(shù)來推送塊。
[0069]在至少一些實(shí)施方案中,在用于高速緩存網(wǎng)關(guān)的讀操作期間,塊驅(qū)動器10將包括卷ID、起始偏移以及長度的讀請求發(fā)送給存儲控制器12。在至少一些實(shí)施方案中,存儲控制器12可以將所述卷ID和偏移翻譯成目標(biāo)密鑰。存儲控制器12可以將所述讀請求信息傳遞給高速緩存控制器14,所述高速緩存控制器可以嘗試從適當(dāng)?shù)谋镜馗咚倬彺?8來滿足讀請求。如果數(shù)據(jù)不存在于本地高速緩存28中,那么請求被轉(zhuǎn)發(fā)給取塊器22,所述取塊器經(jīng)由存儲服務(wù)64從遠(yuǎn)程數(shù)據(jù)存儲器66上的適當(dāng)卷取出數(shù)據(jù)。一旦獲得數(shù)據(jù),本地高速緩存28就被更新、來自寫日志18的變化被應(yīng)用并且讀響應(yīng)被返回給客戶進(jìn)程88。在至少一些實(shí)施方案中,如果多個(gè)塊被請求,那么可以返回多個(gè)讀響應(yīng),每個(gè)讀響應(yīng)指示用于相應(yīng)塊的相對偏移。在至少一些實(shí)施方案中,如果檢測到順序讀取,那么可以預(yù)取出順序塊。
[0070]在至少一些實(shí)施方案中,在寫操作期間,塊驅(qū)動器10將包括卷ID和寫數(shù)據(jù)的寫請求發(fā)送給負(fù)責(zé)所述卷的存儲控制器12。寫數(shù)據(jù)被寫入到寫日志18,并且元數(shù)據(jù)存儲器26被更新以包括對緩沖池20中的變化的數(shù)據(jù)的引用。
[0071]緩+ 池
[0072]在至少一些實(shí)施方案中,緩沖池20駐留在存儲控制器12與本地?cái)?shù)據(jù)存儲器86之間。緩沖池20可以執(zhí)行(但不限于)以下任務(wù)中的一種或多種。應(yīng)注意,一些任務(wù)可能只適用于高速緩存網(wǎng)關(guān):
[0073]?為寫日志18和本地高速緩存28高速緩存用于從其在本地?cái)?shù)據(jù)存儲器裝置上的物理位置的邏輯偏移的數(shù)據(jù)。
[0074].在讀和寫操作期間維護(hù)緩沖器上的鎖。
[0075].在用于本地高速緩存28的物理存儲上應(yīng)用逐出技術(shù)(例如,基于最近最少使用(LRU)的逐出技術(shù))。應(yīng)注意,這對于投影網(wǎng)關(guān)來說不需要。
[0076].對于高速緩存網(wǎng)關(guān)中的讀取,如果在本地高速緩存28中沒有找到所請求的數(shù)據(jù),那么緩沖池20可以與取塊器22通信,以便從遠(yuǎn)程數(shù)據(jù)存儲器66取出塊?;蛘?,在一些實(shí)施方案中,取塊器22可以直接與存儲服務(wù)64通信來取出塊。
[0077]在至少一些實(shí)施方案中,緩沖池20可以采用數(shù)據(jù)庫(例如Berkeley數(shù)據(jù)庫(BDB))作為其元數(shù)據(jù)存儲器26。下面所示的表1示出根據(jù)至少一些實(shí)施方案可以存儲在元數(shù)據(jù)存儲器26中的信息。應(yīng)注意,表1中的條目不旨在根據(jù)內(nèi)容或布置進(jìn)行限制。
[0078]表1-示例性元數(shù)據(jù)存儲信息
【權(quán)利要求】
1.一種裝置,其包括: 至少一個(gè)處理器;以及 包括程序指令的存儲器,其中所述程序指令可由所述至少一個(gè)處理器執(zhí)行來實(shí)施存儲網(wǎng)關(guān)進(jìn)程,所述存儲網(wǎng)關(guān)進(jìn)程經(jīng)由一個(gè)或多個(gè)I/o端口從本地網(wǎng)絡(luò)上的一個(gè)或多個(gè)客戶端進(jìn)程接收包括寫請求的I/o請求,將由所述寫請求指示的寫數(shù)據(jù)追加到本地?cái)?shù)據(jù)儲存器上的寫日志的存儲器中的部分,并將寫數(shù)據(jù)從所述寫日志上傳到遠(yuǎn)程數(shù)據(jù)儲存器; 其中所述程序指令進(jìn)一步可由所述至少一個(gè)處理器執(zhí)行以從遠(yuǎn)程網(wǎng)絡(luò)下載更新包,指示所述存儲網(wǎng)關(guān)進(jìn)程關(guān)閉,并根據(jù)所下載的更新包在所述存儲器中實(shí)例化更新后的存儲網(wǎng)關(guān)進(jìn)程; 其中,響應(yīng)于接收到所述關(guān)閉指示,所述存儲網(wǎng)關(guān)進(jìn)程保存包括對所述一個(gè)或多個(gè)I/O端口的指示的存儲網(wǎng)關(guān)配置,將寫數(shù)據(jù)從所述寫日志的所述存儲器中的部分轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,并釋放所述一個(gè)或多個(gè)I/o端口 ;并且 其中所述更新后的存儲網(wǎng)關(guān)進(jìn)程加載所保存的存儲網(wǎng)關(guān)配置,并且在所述存儲網(wǎng)關(guān)進(jìn)程釋放所述一個(gè)或多個(gè)I/o端口之后從所述存儲網(wǎng)關(guān)進(jìn)程接管存儲網(wǎng)關(guān)操作。
2.如權(quán)利要求1所述的裝置,其中,為了從所述存儲網(wǎng)關(guān)進(jìn)程接管存儲網(wǎng)關(guān)操作,所述更新后的存儲網(wǎng)關(guān)進(jìn)程檢測到所述一個(gè)或多個(gè)I/o端口已被所述存儲網(wǎng)關(guān)進(jìn)程釋放,打開所述一個(gè)或多個(gè)I/o端口,并開始經(jīng)由所述一個(gè)或多個(gè)I/O端口從所述一個(gè)或多個(gè)客戶端進(jìn)程接收并處理包括寫請求的I/o請求。
3.如權(quán)利要求2所述的裝置,其中由所述更新后的存儲網(wǎng)關(guān)進(jìn)程從所述一個(gè)或多個(gè)客戶端進(jìn)程接收到的所述寫請求包括在所述將寫數(shù)據(jù)從所述寫日志的所述存儲器中的部分轉(zhuǎn)儲清除期間未被所述存儲網(wǎng)關(guān)進(jìn)程接受的至少一次寫請求重試。`
4.如權(quán)利要求2所述的裝置,其中,為了處理經(jīng)由所述一個(gè)或多個(gè)I/O端口從所述一個(gè)或多個(gè)客戶端進(jìn)程所接收到的所述寫請求,所述更新后的存儲網(wǎng)關(guān)進(jìn)程將由所述寫請求指示的寫數(shù)據(jù)追加到所述寫日志并將所述寫數(shù)據(jù)從所述寫日志上傳到所述遠(yuǎn)程數(shù)據(jù)儲存器。
5.如權(quán)利要求1所述的裝置,其中,為了將寫數(shù)據(jù)從所述寫日志的所述存儲器中的部分轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,所述存儲網(wǎng)關(guān)進(jìn)程: 將所述寫日志的所述存儲器中的部分中的當(dāng)前寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,同時(shí)在所述一個(gè)或多個(gè)I/O端口上接受包括寫請求的新的I/O請求,并且將由所述新的寫請求指示的新的寫數(shù)據(jù)追加到所述寫日志的所述存儲器中的部分;以及 在將所述寫日志的所述存儲器中的部分中的所述當(dāng)前寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器之后,在所述一個(gè)或多個(gè)I/o端口上停止接受后續(xù)寫請求并將所述寫日志的所述存儲器中的部分中的所述新的寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器。
6.如權(quán)利要求5所述的裝置,其中所述存儲網(wǎng)關(guān)進(jìn)程對所述后續(xù)寫請求中的每一個(gè)作出回復(fù)來通知相應(yīng)客戶端進(jìn)程重試所述寫請求。
7.如權(quán)利要求1所述的裝置,其中所述存儲網(wǎng)關(guān)進(jìn)程在指定更新窗口期間保存所述存儲網(wǎng)關(guān)配置,將所述寫數(shù)據(jù)從所述寫日志的所述存儲器中的部分轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,并釋放所述一個(gè)或多個(gè)I/o端口。
8.如權(quán)利要求7所述的裝置,其中所述更新后的存儲網(wǎng)關(guān)進(jìn)程在所述指定更新窗口期間加載所保存的存儲網(wǎng)關(guān)配置并從所述存儲網(wǎng)關(guān)進(jìn)程接管存儲網(wǎng)關(guān)操作。
9.如權(quán)利要求1所述的裝置,其中所述存儲網(wǎng)關(guān)進(jìn)程在所述釋放所述一個(gè)或多個(gè)I/O端口之后終止。
10.一種方法,其包括: 由存儲網(wǎng)關(guān)執(zhí)行存儲網(wǎng)關(guān)操作,所述存儲網(wǎng)關(guān)操作包括經(jīng)由一個(gè)或多個(gè)I/o端口從本地網(wǎng)絡(luò)上的一個(gè)或多個(gè)客戶端進(jìn)程接收包括寫請求的I/o請求,將由所述寫請求指示的寫數(shù)據(jù)追加到本地?cái)?shù)據(jù)儲存器上的寫日志的存儲器中的部分,并將寫數(shù)據(jù)從所述寫日志上傳到遠(yuǎn)程數(shù)據(jù)儲存器; 接收到關(guān)閉使得更新后的存儲網(wǎng)關(guān)可以接管所述存儲網(wǎng)關(guān)操作的指示;以及 響應(yīng)于接收到所述指示,保存包括對所述一個(gè)或多個(gè)I/o端口的指示的存儲網(wǎng)關(guān)配置,將寫數(shù)據(jù)從所述寫日志的所述存儲器中的部分轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,并釋放所述一個(gè)或多個(gè)I/o端口使得所述更新后的存儲網(wǎng)關(guān)進(jìn)程可以接管所述存儲網(wǎng)關(guān)操作。
11.如權(quán)利要求10所述的方法,其中,為了接管存儲網(wǎng)關(guān)操作,所述更新后的存儲網(wǎng)關(guān)進(jìn)程檢測到所述一個(gè)或多個(gè)I/o端口已被所述存儲網(wǎng)關(guān)進(jìn)程釋放,打開所述一個(gè)或多個(gè)I/O端口,并經(jīng)由所述一個(gè)或多個(gè)I/O端口從 所述一個(gè)或多個(gè)客戶端進(jìn)程接收并處理包括寫請求的I/o請求。
12.如權(quán)利要求10所述的方法,其中,為了將寫數(shù)據(jù)從所述寫日志的所述存儲器中的部分轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,所述方法進(jìn)一步包括: 將所述寫日志的所述存儲器中的部分中的當(dāng)前寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,同時(shí)在所述一個(gè)或多個(gè)I/o端口上接受包括新的寫請求的I/O請求,并且將由所述新的寫請求指示的新的寫數(shù)據(jù)追加到所述寫日志的所述存儲器中的部分;以及 在將所述寫日志的所述存儲器中的部分中的所述當(dāng)前寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器之后,將所述寫日志的所述存儲器中的部分中的所述新的寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,同時(shí)在所述一個(gè)或多個(gè)I/o端口上拒絕后續(xù)寫請求。
13.如權(quán)利要求12所述的方法,其進(jìn)一步包括:對所述后續(xù)寫請求中的每一個(gè)作出回復(fù)來通知相應(yīng)客戶端進(jìn)程重試所述寫請求。
14.如權(quán)利要求10所述的方法,其進(jìn)一步包括:在指定更新窗口期間保存所述存儲網(wǎng)關(guān)配置,將所述寫日志的所述存儲器中的部分中的寫數(shù)據(jù)轉(zhuǎn)儲清除到所述本地?cái)?shù)據(jù)儲存器,并釋放所述一個(gè)或多個(gè)I/o端口。
15.如權(quán)利要求10所述的方法,其進(jìn)一步包括在所述釋放所述一個(gè)或多個(gè)I/O端口之后關(guān)閉。
【文檔編號】G06F15/16GK103765406SQ201280040713
【公開日】2014年4月30日 申請日期:2012年6月29日 優(yōu)先權(quán)日:2011年6月30日
【發(fā)明者】J·C·索倫森三世, 林云, I·布魯吉奧羅 申請人:亞馬遜科技公司