国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種塊級快照系統(tǒng)及基于該系統(tǒng)的用戶讀寫方法

      文檔序號:6397557閱讀:270來源:國知局
      專利名稱:一種塊級快照系統(tǒng)及基于該系統(tǒng)的用戶讀寫方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及快照技術(shù)領(lǐng)域,具體涉及一種塊級快照系統(tǒng)及基于該系統(tǒng)的用戶讀寫方法。
      背景技術(shù)
      根據(jù)存儲網(wǎng)絡(luò)工業(yè)協(xié)會(SNIA)的定義,快照(Snapshot)是關(guān)于指定數(shù)據(jù)集合的一個完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個時間點的映像。隨著快照技術(shù)日益成熟,目前國內(nèi)外出現(xiàn)了眾多的快照系統(tǒng)和原型系統(tǒng),包括Iinux 內(nèi)核自帶的 LVM (邏輯卷管理,Logical Volume Manager)快照,EMC 的 TimeFinder、IBM的ESS FlashCopy、或者Netapp的WAFL快照等等。在這些快照產(chǎn)品或者原型系統(tǒng)中,快照設(shè)備和源設(shè)備都是以虛擬設(shè)備的方式供用戶使用的??煺赵O(shè)備本質(zhì)上提供了源設(shè)備中數(shù)據(jù)的另外一條訪問路徑。在傳統(tǒng)的塊設(shè)備級快照(塊級快照)中,一個快照設(shè)備通常只對應(yīng)一個塊級設(shè)備,源設(shè)備和快照設(shè)備共用同一個緩存,因而當用戶同時從源設(shè)備和快照設(shè)備訪問共享數(shù)據(jù)時,便會在緩存中冗余存放多份數(shù)據(jù)。緩存冗余意味著緩存資源的浪費,進而影響系統(tǒng)的存儲性能。圖1A給出了 LVM快照系統(tǒng)的示意圖,LVM是Iinux系統(tǒng)自帶的管理磁盤分區(qū)的系統(tǒng),該系統(tǒng)雖支持快照但它的快照會產(chǎn)生緩存冗余問題在某一時刻創(chuàng)建只讀快照后,源和只讀快照共享物理空間中的數(shù)據(jù)塊1、2和3 (如圖1A所示)。在圖1B所示的實施例中,當用戶從源和只讀快照讀取數(shù)據(jù)塊2時,數(shù)據(jù)塊2便會在緩存中存放2份,從而產(chǎn)生緩存冗余問題。

      發(fā)明內(nèi)容
      針對傳統(tǒng)塊設(shè)備級快照中的緩存冗余問題,本發(fā)明提供一種與緩存配合的塊級快照系統(tǒng)(CGSS, General Snapshot System With Cache)以及基于該系統(tǒng)的用戶讀寫方法。根據(jù)本發(fā)明一個實施例,提供一種塊級快照系統(tǒng),包括由源設(shè)備以及一個或多個快照設(shè)備形成的快照設(shè)備鏈,所述源設(shè)備和所述快照設(shè)備中包括緩存設(shè)備、一對塊設(shè)備SDu和SDy以及存儲設(shè)備。其中所述塊設(shè)備SDu用于接受并處理用戶對所述系統(tǒng)的讀寫請求;所述緩存設(shè)備用于處理從所述塊設(shè)備SDu轉(zhuǎn)發(fā)來的用戶的讀寫請求且用于緩存數(shù)據(jù);所述塊設(shè)備SDl用于處理從所述緩存設(shè)備轉(zhuǎn)發(fā)來的用戶的讀請求;所述源設(shè)備或快照設(shè)備還具有用于指示數(shù)據(jù)狀態(tài)的映射元數(shù)據(jù);所述映射元數(shù)據(jù)用于反映數(shù)據(jù)的三種狀態(tài)數(shù)據(jù)全部不在本地、數(shù)據(jù)全部在本地、數(shù)據(jù)部分在本地;所述塊設(shè)備SDu還用于查詢和修改所述映射元數(shù)據(jù)。在一個實施例中,所述源設(shè)備位于所述快照設(shè)備鏈的頭部,且其數(shù)據(jù)依賴設(shè)備為最新的一個時間點的快照設(shè)備;所述快照設(shè)備的數(shù)據(jù)依賴設(shè)備為前一個時間點的快照設(shè)備。在一個實施例中,所述緩存設(shè)備還用于向本地塊設(shè)Isw發(fā)送數(shù)據(jù)預(yù)取請求,所述塊設(shè)備SDl還用于查詢本地映射元數(shù)據(jù),且處理緩存設(shè)備發(fā)送來的數(shù)據(jù)預(yù)取請求。在進一步的實施例中,所述緩存設(shè)備向本地塊設(shè)Isw發(fā)送數(shù)據(jù)預(yù)取請求包括:緩存設(shè)備啟動數(shù)據(jù)預(yù)取,并且將數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDp根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)處理用戶讀請求的方法,包括:步驟11)、塊設(shè)備SDu接收所述讀請求;步驟12)、塊設(shè)備SDu查詢本地映射元數(shù)據(jù),判斷用戶所請求的數(shù)據(jù)是否在本地;步驟13)、對在本地的數(shù)據(jù)的讀請求,轉(zhuǎn)向步驟14);對不在本地的數(shù)據(jù)的讀請求,則判斷在所述快照設(shè)備鏈中是否還存在前一個時間點的快照設(shè)備:如果存在,則將對不在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)給前一個時間點的快照設(shè)備的塊設(shè)備SDu,該前一個時間點的塊設(shè)備SDu通過查詢其本地映射元數(shù)據(jù)判斷所請求的數(shù)據(jù)是否在本地,重復步驟13);如果不存在,則將不在本地的數(shù)據(jù)補0,轉(zhuǎn)向步驟15);步驟14)、快設(shè)備SDu將對在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)給本地的緩存設(shè)備,如果所請求的數(shù)據(jù)已在該緩存設(shè)備中緩存,則該緩存設(shè)備將該數(shù)據(jù)返回給所述塊設(shè)備SDu ;否則,所述緩存設(shè)備將讀請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDy本地塊設(shè)備SDl從本地存儲設(shè)備讀取該數(shù)據(jù)并返回給緩存設(shè)備,由緩存設(shè)備進行緩存且將該數(shù)據(jù)返回給所述塊設(shè)備SDu ;步驟15)、當塊設(shè)備30 接收的是后一個時間點的快照設(shè)備的塊設(shè)備SDu轉(zhuǎn)發(fā)來的讀請求時,則將數(shù)據(jù)返回該后一個時間點的快照設(shè)備的塊設(shè)備SDu ;否則將數(shù)據(jù)返回給用戶。根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)處理用戶寫請求的方法,包括:步驟21)、塊設(shè)備SDu接收用戶的寫請求;步驟22)、塊設(shè)備SDu將數(shù)據(jù)寫入本地快照設(shè)備的緩存設(shè)備,且根據(jù)數(shù)據(jù)是否對齊標記該數(shù)據(jù)塊的狀態(tài),修改映射元數(shù)據(jù)。根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)由塊設(shè)備SDl查詢本地映射元數(shù)據(jù)并處理緩存設(shè)備發(fā)送來的數(shù)據(jù)預(yù)取請求的方法,包括:步驟31)、查詢本地映射元數(shù)據(jù),判斷數(shù)據(jù)是否在本地;步驟32)、處理數(shù)據(jù)預(yù)取請求:對于在本地的數(shù)據(jù),將對該數(shù)據(jù)的數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給本地緩存設(shè)備,轉(zhuǎn)向步驟33);對于不在本地的數(shù)據(jù),判斷在所述快照設(shè)備鏈中是否還存在前一個時間點的快照設(shè)備:如果存在,則將對不在本地的數(shù)據(jù)的數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給前一個時間點的快照設(shè)備的塊設(shè)備SDu,該前一個時間點的塊設(shè)備SDu查詢其本地映射元數(shù)據(jù),重復步驟32);
      如果不存在,則不作處理,跳過步驟33);步驟33)、本地緩存設(shè)備將對于在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)到本地塊設(shè)備SDy再由本地塊設(shè)備SDl從本地存儲設(shè)備讀取數(shù)據(jù)并返回到緩存設(shè)備進行緩存。根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)創(chuàng)建只讀快照設(shè)備的方法,包括:
      步驟al)在所述系統(tǒng)中依次注冊新的塊設(shè)備SDu、塊設(shè)備、緩存設(shè)備和存儲設(shè)備,構(gòu)成新快照設(shè)備;步驟a2)、靜默源設(shè)備的塊設(shè)備SDu及塊設(shè)備SDl ;步驟a3)、交換源設(shè)備和新快照設(shè)備的緩存設(shè)備、存儲設(shè)備和映射元數(shù)據(jù);步驟a4)、將新快照設(shè)備插入所述系統(tǒng)的快照設(shè)備鏈;步驟a5)、恢復源設(shè)備的塊設(shè)備SDu和SD。在進一步的實施例中,步驟a4)包括步驟a41)、將新快照設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為源設(shè)備的數(shù)據(jù)依賴設(shè)備;步驟a42)、將源設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為新快照設(shè)備。根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)根據(jù)指定的只讀快照設(shè)備創(chuàng)建可寫快照設(shè)備的方法,包括步驟bl)、在所述系統(tǒng)中依次注冊新的塊設(shè)備SDu、塊設(shè)備SW、緩存設(shè)備和存儲設(shè)備,構(gòu)成新快照設(shè)備;步驟b2)、將新快照設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為所述指定的只讀快照設(shè)備。根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)刪除只讀快照設(shè)備的方法,包括步驟Cl)、查詢要刪除的快照設(shè)備的映射元數(shù)據(jù),選擇數(shù)據(jù)狀態(tài)為數(shù)據(jù)全部在本地的數(shù)據(jù)作為要遷移的數(shù)據(jù);步驟c2)、判斷是否存在該前一個時間點的快照設(shè)備如果存在,并且該前一個時間點的快照設(shè)備為正常狀態(tài)以及該前一個時間點的快照設(shè)備中對應(yīng)要遷移的數(shù)據(jù)的數(shù)據(jù)狀態(tài)為數(shù)據(jù)全部不在本地,則將要遷移的數(shù)據(jù)遷移到該前一個時間點的快照設(shè)備;否則,繼續(xù)尋找前一個時間點的快照設(shè)備,重復步驟c2);如果不存在,則將要遷移的數(shù)據(jù)遷移到源設(shè)備。在進一步的實施例中,步驟Cl)前還包括步驟CO)、刪除要刪除的快照設(shè)備的塊設(shè)備SDu ;步驟c2)后還包括步驟c3)、刪除要刪除的快照設(shè)備的緩存設(shè)備、塊設(shè)備SDl和存儲設(shè)備。在進一步的實施例中,步驟c3)后還包括步驟c4)、將原本數(shù)據(jù)依賴設(shè)備為要刪除的快照設(shè)備的快照設(shè)備或源設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為要刪除的快照設(shè)備原本的數(shù)據(jù)依賴設(shè)備。根據(jù)本發(fā)明一個實施例,提供一種基于上述塊級快照系統(tǒng)刪除可寫快照設(shè)備的方法,包括刪除要刪除的快照設(shè)備的塊設(shè)備SDu、緩存設(shè)備、塊設(shè)備SDl和存儲設(shè)備。相對于現(xiàn)有技術(shù),本發(fā)明解決了緩存資源冗余的問題,提高了緩存的利用率,且進一步提聞了系統(tǒng)的存儲性能。


      圖1A-1B示出了一種LVM快照系統(tǒng)以及從該LVM快照系統(tǒng)讀取數(shù)據(jù)時存在的緩存冗余問題的示意圖;圖2示出了根據(jù)本發(fā)明一個實施例的塊級快照系統(tǒng)的結(jié)構(gòu)圖;圖3示出了根據(jù)本發(fā)明一個實施例的用戶讀取塊級快照設(shè)備中數(shù)據(jù)的示意圖4示出了根據(jù)本發(fā)明一個實施例的塊級快照設(shè)備中緩存設(shè)備進行數(shù)據(jù)預(yù)取的示意圖;圖5A-5B示出了根據(jù)本發(fā)明一個實施例的在塊級快照系統(tǒng)中分別創(chuàng)建和刪除只讀快照設(shè)備的示意圖;圖6A-6B示出了根據(jù)本發(fā)明一個實施例的在塊級快照系統(tǒng)中分別創(chuàng)建和刪除可寫快照設(shè)備的示意圖。
      具體實施例方式以下結(jié)合附圖和具體實施方式
      對本發(fā)明加以說明。根據(jù)本發(fā)明的一個實施例,提供一種塊級快照系統(tǒng)(CGSS)。圖2示出了該塊級快照系統(tǒng)的結(jié)構(gòu)圖,該系統(tǒng)包括由源設(shè)備以及一個或多個快照設(shè)備形成的快照設(shè)備鏈。在一個實施例中,源設(shè)備位于快照設(shè)備鏈的頭部,其數(shù)據(jù)依賴設(shè)備為最新的一個時間點的快照設(shè)備;而其他快照設(shè)備的數(shù)據(jù)依賴設(shè)備都為前一個時間點的快照設(shè)備(其中,對于采用差別復制快照技術(shù)的每一時間點的快照設(shè)備或者源設(shè)備來說,它的數(shù)據(jù)集由兩部分構(gòu)成本地數(shù)據(jù)以及數(shù)據(jù)依賴設(shè)備上的數(shù)據(jù))。源設(shè)備和每個快照設(shè)備包括緩存設(shè)備、塊設(shè)備SDu、塊設(shè)備SDy以及底層的存儲設(shè)備。其中,塊設(shè)備SDu用于接收并處理用戶的讀寫請求;緩存設(shè)備用于處理從塊設(shè)備SDu轉(zhuǎn)發(fā)來的讀寫請求且可以用于緩存數(shù)據(jù);塊設(shè)備SDl可以用于處理從緩存設(shè)備轉(zhuǎn)發(fā)來的請求。源設(shè)備和每個快照設(shè)備中還具有其自身的映射元數(shù)據(jù)(本地元數(shù)據(jù)),該映射元數(shù)據(jù)用于指示數(shù)據(jù)狀態(tài),即數(shù)據(jù)是否在本地(本地指本級快照設(shè)備)。當用戶對源設(shè)備或快照設(shè)備的塊設(shè)備SDu請求讀數(shù)據(jù)時,塊設(shè)備SDu通過查詢本級快照的映射元數(shù)據(jù)來判斷該數(shù)據(jù)是否在本地(數(shù)據(jù)是否存在于本地的緩存中或本地存儲設(shè)備中),進而進一步處理該讀請求;當用戶對源設(shè)備或快照設(shè)備的塊設(shè)備SDu請求寫數(shù)據(jù)時,對于該寫入還需相應(yīng)地修改映射元數(shù)據(jù),以指示寫入后的數(shù)據(jù)狀態(tài)。根據(jù)本發(fā)明一個實施例,在CGSS系統(tǒng)中,每個數(shù)據(jù)塊表示一段固定長度的邏輯地址范圍,映射元數(shù)據(jù)用于反映該數(shù)據(jù)塊的三種狀態(tài)數(shù)據(jù)全部不在本地(N0NE_IN_L0CAL),數(shù)據(jù)全部在本地(ALL_IN_L0CAL)或者數(shù)據(jù)部分在本地(PART_IN_L0CAL)。其中,數(shù)據(jù)全部在本地指數(shù)據(jù)就存儲在本級快照設(shè)備中,可以直接從本級快照設(shè)備讀取該數(shù)據(jù);數(shù)據(jù)全部不在本地指數(shù)據(jù)存儲在快照設(shè)備鏈上的其它快照設(shè)備上或者不存在,這樣如果從本級快照設(shè)備讀該數(shù)據(jù),只能一級一級地從快照鏈上去讀取。在一個實施例中,映射元數(shù)據(jù)可采用諸如基樹(radix-tree)的數(shù)據(jù)結(jié)構(gòu),而在另一個實施例中,可以將狀態(tài)為“數(shù)據(jù)全部不在本地”,和“數(shù)據(jù)全部在本地”的數(shù)據(jù)塊的映射元數(shù)據(jù)壓縮到位圖(bitmap)以節(jié)省存儲空間,即用bit位來標記某個元素對應(yīng)的值,而Key即是該元素。即,用I表示“數(shù)據(jù)全部在本地”;用0表示“數(shù)據(jù)全部不在本地”;而“數(shù)據(jù)部分在本地”仍然可以由radix-tree結(jié)構(gòu)來表示。CGSS系統(tǒng)中,由源設(shè)備或快照設(shè)備中的塊設(shè)備SDu接收用戶的讀寫請求。在一個實施例中,當CGSS系統(tǒng)處理用戶對源設(shè)備或快照設(shè)備的讀數(shù)據(jù)請求時,過程如下步驟I)、由源設(shè)備或快照設(shè)備中的塊設(shè)備SDu接收該用戶的讀請求。步驟2)、塊設(shè)備SDu查詢其所屬的快照設(shè)備(本地)的映射元數(shù)據(jù),判斷用戶所請求的數(shù)據(jù)是否在本地。步驟3)、如果所請求的數(shù)據(jù)全部或部分在本地,則將在本地的數(shù)據(jù)從本地讀出;如果所請求的數(shù)據(jù)全部不在本地或部分不在本地,則判斷在快照設(shè)備鏈中是否還存在本地快照設(shè)備的前一個時間點的快照設(shè)備如果存在,則將對不在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)給前一個時間點的快照設(shè)備的塊設(shè)備SDu,該前一個時間點的塊設(shè)備SDu通過查詢其本地映射元數(shù)據(jù)判斷所請求的數(shù)據(jù)是否在本地,重復步驟3);如果不存在,則將不在本地的數(shù)據(jù)補0并由本地塊設(shè)備SDu返回。根據(jù)本發(fā)明的一個實施例,在步驟3)中,將在本地的數(shù)據(jù)從本地讀出包括塊設(shè)備SDdf所述讀請求轉(zhuǎn)發(fā)給本地的緩存設(shè)備,如果所請求的數(shù)據(jù)已在該緩存設(shè)備中緩存,則該緩存設(shè)備將該數(shù)據(jù)返回給所述塊設(shè)備SDu ;否則,所述緩存設(shè)備將讀請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDy本地塊設(shè)備SDl從本地存儲設(shè)備讀取該數(shù)據(jù)并返回給緩存設(shè)備,緩存設(shè)備進行緩存且將該數(shù)據(jù)返回給所述塊設(shè)備SDu ;當該塊設(shè)備SDu接收的是后一個時間點的快照設(shè)備的塊設(shè)備SDu轉(zhuǎn)發(fā)來的讀請求時,則將數(shù)據(jù)返回后一個時間點的快照設(shè)備的塊設(shè)備SDu ;否則將數(shù)據(jù)直接返回給用戶。由此可見,在從存儲設(shè)備中讀取數(shù)據(jù)再將數(shù)據(jù)返回的過程中,該數(shù)據(jù)只經(jīng)過一個緩存設(shè)備(該存儲設(shè)備的本地緩存設(shè)備)。因而只可能在這個緩存設(shè)備中進行緩存,以避免緩存冗余。圖3描述了根據(jù)本發(fā)明的一個實施例、由CGSS系統(tǒng)處理用戶讀請求的流程圖。在該實施例中,用戶可以分別從源設(shè)備和快照設(shè)備I (即只讀快照I)中讀取數(shù)據(jù)塊1,且該數(shù)據(jù)塊I存儲在快照設(shè)備I的存儲設(shè)備中,該讀取分為如下兩個過程a)當用戶從快照設(shè)備I讀取數(shù)據(jù)塊1,其步驟如下I)快照設(shè)備I的塊設(shè)備SDu接收對數(shù)據(jù)塊I的讀請求,查詢其所屬的快照設(shè)備的映射元數(shù)據(jù);2)通過查詢映射元數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)塊I在本地,則將該讀請求轉(zhuǎn)發(fā)給本地緩存設(shè)備,緩存設(shè)備再將該讀請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDl ;3)塊設(shè)備SDl從本地存儲設(shè)備中讀出數(shù)據(jù)塊1,返回給本地緩存設(shè)備,本地緩存設(shè)備緩存該數(shù)據(jù)塊1,接著緩存設(shè)備將數(shù)據(jù)塊I返回給塊設(shè)備SDu,最后由塊設(shè)備SDdf數(shù)據(jù)塊I返回給用戶。這一過程完成后(其中數(shù)據(jù)返回過程為快照設(shè)備I的底層存儲設(shè)備_>快照設(shè)備I的塊設(shè)備SDl - >快照設(shè)備I的緩存設(shè)備_>快照設(shè)備I的塊設(shè)備SDuO用戶),數(shù)據(jù)塊I只會在快照設(shè)備I的緩存設(shè)備中緩存一份。b)當用戶從源設(shè)備讀取數(shù)據(jù)塊1,其步驟如下D源設(shè)備的塊設(shè)備SDu接收對數(shù)據(jù)塊I的讀請求,查詢其所屬的快照設(shè)備(本地)的映射元數(shù)據(jù);2)通過查詢映射元數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)塊I不在本地,接著源設(shè)備的塊設(shè)備SDu將該讀請求轉(zhuǎn)發(fā)到快照設(shè)備鏈上的前一個時間點的快照設(shè)備(即快照設(shè)備1),快照設(shè)備I中的塊設(shè)備SDu接收對數(shù)據(jù)塊I的讀請求,查詢其所屬的快照設(shè)備(本地)的映射元數(shù)據(jù);3)快照設(shè)備I中的塊設(shè)備SDu通過查詢映射元數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)塊I在本地,則將該讀請求轉(zhuǎn)發(fā)給本地緩存設(shè)備,緩存設(shè)備再將該讀請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDl ;4)快照設(shè)備I的塊設(shè)備SDl從本地存儲設(shè)備中讀出數(shù)據(jù)塊1,返回給本地緩存設(shè)備,本地緩存設(shè)備緩存該數(shù)據(jù)塊1,接著緩存設(shè)備將數(shù)據(jù)塊I返回給本地塊設(shè)備SDu,該快照設(shè)備I的塊設(shè)備SDu繼而將數(shù)據(jù)塊I返回給源設(shè)備的塊設(shè)備SDu,最后由源設(shè)備的塊設(shè)備SDu將數(shù)據(jù)塊I返回給用戶。這一過程完成后(其中數(shù)據(jù)返回過程為快照設(shè)備I的底層存儲設(shè)備_>快照設(shè)備I的塊設(shè)備SDl - >快照設(shè)備I的緩存設(shè)備_>快照設(shè)備I的塊設(shè)備SDuO源設(shè)備的塊設(shè)備SDu-)用戶),由于數(shù)據(jù)塊I并不經(jīng)過源設(shè)備的緩存設(shè)備,因而也只會在快照設(shè)備I的緩存設(shè)備中緩存一份。由此可見,用戶無論從源設(shè)備或者從快照設(shè)備I訪問數(shù)據(jù)塊1,都只會在快照設(shè)備I的緩存設(shè)備中緩存該數(shù)據(jù),而不會產(chǎn)生緩存冗余。根據(jù)本發(fā)明的一個實施例,用戶向CGSS系統(tǒng)中的寫入數(shù)據(jù)請求包括如下步驟步驟I)、源設(shè)備或者快照設(shè)備的塊設(shè)備SDu接收用戶的寫請求;步驟2)、塊設(shè)備SDu將數(shù)據(jù)寫入本地快照設(shè)備的緩存設(shè)備,且塊設(shè)備SDu根據(jù)數(shù)據(jù)是否對齊標記該數(shù)據(jù)塊的狀態(tài)(數(shù)據(jù)全部在本地或數(shù)據(jù)部分在本地)。根據(jù)本發(fā)明的一個實施例,緩存設(shè)備還用于向本地塊設(shè)備SW發(fā)送數(shù)據(jù)預(yù)取請求以提高緩存的命中率,塊設(shè)備SDl還用于查詢本地映射元數(shù)據(jù),以支持緩存設(shè)備的數(shù)據(jù)預(yù)取。該緩存設(shè)備的數(shù)據(jù)預(yù)取過程包括如下步驟步驟I)、數(shù)據(jù)預(yù)取發(fā)起階段緩存設(shè)備啟動數(shù)據(jù)預(yù)取,確定數(shù)據(jù)預(yù)取的范圍,并且將數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDp例如,當塊設(shè)備SDlj提供prefetch函數(shù)時,緩存設(shè)備通過調(diào)用該prefetch函數(shù)將相關(guān)部分(確定了范圍的)的數(shù)據(jù)預(yù)取請求發(fā)送給塊設(shè)備SDp在其他示例中,當塊設(shè)備SW沒有提供prefetch函數(shù)時,緩存設(shè)備分配緩存資源、構(gòu)造相應(yīng)的數(shù)據(jù)預(yù)取bio請求,并將該bio請求發(fā)送給塊設(shè)備SDp步驟2)、數(shù)據(jù)預(yù)取處理階段塊設(shè)備SDl查詢本地映射元數(shù)據(jù),以確定緩存設(shè)備的數(shù)據(jù)預(yù)取請求所請求的數(shù)據(jù)是否對應(yīng)本地快照設(shè)備(即數(shù)據(jù)是否在本地),根據(jù)數(shù)據(jù)是否在本地對請求進行調(diào)整和分解對于本地直接擁有的數(shù)據(jù)部分(數(shù)據(jù)狀態(tài)為ALL_IN_L0CAL或PART_IN_L0CAL),將對該數(shù)據(jù)部分的數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給本地緩存設(shè)備,本地緩存設(shè)備通過本地塊設(shè)備SDJf該數(shù)據(jù)部分從本地存儲設(shè)備讀取到本地緩存設(shè)備進行緩存;否則(即數(shù)據(jù)狀態(tài)為N0NE_IN_L0CAL或者PART_IN_L0CAL的不在本地的數(shù)據(jù)部分),將數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給快照設(shè)備鏈中前一個時間點的快照設(shè)備的塊設(shè)備SD/如果存在前一個時間點快照設(shè)備),如果前一個時間點快照設(shè)備的存儲設(shè)備存在該預(yù)取請求的數(shù)據(jù),則將該數(shù)據(jù)讀取到該前一個時間點的快照設(shè)備的緩存設(shè)備;如果不存在該數(shù)據(jù)則繼續(xù)將請求轉(zhuǎn)發(fā)到前一個時間點的快照設(shè)備的塊設(shè)備SDu (如果存在)并判斷是否需要讀取或轉(zhuǎn)發(fā),依此類推。圖4描述了根據(jù)本發(fā)明一個實施例的、由緩存設(shè)備進行數(shù)據(jù)預(yù)取過程的示意圖,其中由源設(shè)備的緩存設(shè)備發(fā)起對數(shù)據(jù){bl0Ckl,bl0Ck2}的預(yù)取過程,數(shù)據(jù)塊blockl存儲在源設(shè)備的存儲設(shè)備中,而數(shù)據(jù)塊block2存儲在快照設(shè)備1 (只讀快照1)的存儲設(shè)備中。該數(shù)據(jù)預(yù)取過程如下:1)、源設(shè)備的塊設(shè)備SDl接收到其緩存設(shè)備對數(shù)據(jù){blockl,block2}的數(shù)據(jù)預(yù)取請求。2)、塊設(shè)備SDl查詢其所屬的快照設(shè)備的映射元數(shù)據(jù),可以知道數(shù)據(jù)塊blockl在本地,而數(shù)據(jù)塊block2不在本地。3)塊設(shè)備SW將對blockl的預(yù)取請求轉(zhuǎn)發(fā)給源設(shè)備中的緩存設(shè)備,而將對block2的預(yù)取請求轉(zhuǎn)發(fā)給快照設(shè)備I的塊設(shè)備SD 。4)源設(shè)備的緩存設(shè)備收到對blockl的預(yù)取請求后,生成數(shù)據(jù)請求,通過塊設(shè)備SDJfblockl從本地存儲設(shè)備讀到源設(shè)備的緩存設(shè)備中;快照設(shè)備1的處理類似于源設(shè)備的處理,最終block2會被讀到快照設(shè)備I的緩存設(shè)備中。這樣,源設(shè)備和快照設(shè)備1都只緩存了本地快照設(shè)備的數(shù)據(jù),從而實現(xiàn)了精確緩存預(yù)取。根據(jù)本發(fā)明的一個實施例,提供一種CGSS系統(tǒng)的實現(xiàn)方法,包括:快照設(shè)備的創(chuàng)建以及快照設(shè)備的刪除,以下將分別描述這些步驟。一.只讀快照設(shè)備的創(chuàng)建根據(jù)本發(fā)明一個實施例,只讀快照設(shè)備維護某一時間點的源設(shè)備數(shù)據(jù)集的完全拷貝,因此在創(chuàng)建只讀快照設(shè)備時,用戶需要靜默源設(shè)備,即:對源設(shè)備中塊設(shè)備所有寫操作都要被掛起。同時,為了保證數(shù)據(jù)正確性以及簡化內(nèi)部的數(shù)據(jù)處理邏輯,緩存設(shè)備對塊設(shè)備SDl的所有寫操作(系統(tǒng)內(nèi)部操作)也需要被掛起。在一個實施例中,采用交換源設(shè)備與快照設(shè)備的數(shù)據(jù)設(shè)備的方法來創(chuàng)建只讀快照設(shè)備。同時由于系統(tǒng)中還需要維護映射元數(shù)據(jù),因此還需要交換源設(shè)備和快照設(shè)備的映射元數(shù)據(jù)。對于CGSS快照系統(tǒng)來說,其數(shù)據(jù)設(shè)備包括緩存設(shè)備和存儲設(shè)備。因此在創(chuàng)建只讀快照時,需要將緩存設(shè)備和存儲設(shè)備以及映射元數(shù)據(jù)作為一個整體來對源設(shè)備和只讀快照設(shè)備進行交換。在一個實施例中,只讀快照設(shè)備的具體創(chuàng)建流程如下:1)在系統(tǒng)中依次注冊一個新的塊設(shè)備SDu,塊設(shè)備SW,緩存設(shè)備以及存儲設(shè)備,構(gòu)成一個新的快照設(shè)備。2)靜默源設(shè)備的塊設(shè)備SDu以及塊設(shè)備SW,此時它們不接受新的用戶請求。3)交換源設(shè)備和新的快照設(shè)備的緩存設(shè)備、存儲設(shè)備以及映射元數(shù)據(jù)(源設(shè)備和快照設(shè)備在內(nèi)存中都有結(jié)構(gòu)描述其緩存設(shè)備、存儲設(shè)備,以及映射元數(shù)據(jù),交換就是把源設(shè)備和快照設(shè)備的這些對應(yīng)結(jié)構(gòu)交換)。在一個實施例中,交換源設(shè)備和新的快照設(shè)備的緩存設(shè)備可以包括交換新的只讀快照設(shè)備SDu和源設(shè)備SDu的指針等。4)將新的快照設(shè)備插入系統(tǒng)的快照設(shè)備鏈,將源設(shè)備設(shè)為該快照設(shè)備。圖5A示出了將新的只讀快照設(shè)備2插入快照設(shè)備鏈的一個實施例。在插入新的只讀快照設(shè)備2之前,源設(shè)備的“數(shù)據(jù)依賴設(shè)備”(即前一個時間點的快照設(shè)備)為只讀快照設(shè)備I ;在創(chuàng)建新的只讀快照設(shè)備2之后,將源設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為只讀快照設(shè)備2,而將只讀快照設(shè)備2的數(shù)據(jù)依賴設(shè)備設(shè)置為只讀快照設(shè)備I。5)恢復源設(shè)備的塊設(shè)備SDu以及塊設(shè)備SW,此時它們可以重新接受用戶請求。應(yīng)理解,上述步驟僅是示例性地說明創(chuàng)建只讀快照設(shè)備的過程,并非用于限制該創(chuàng)建過程。二.只讀快照設(shè)備的刪除根據(jù)本發(fā)明一個實施例,在刪除只讀快照設(shè)備時,可以將其上的數(shù)據(jù)遷移到前一個時間點的快照設(shè)備上,具體步驟如下I)依次查詢要刪除的快照設(shè)備中每一個數(shù)據(jù)塊對應(yīng)的映射元數(shù)據(jù),將數(shù)據(jù)狀態(tài)為“數(shù)據(jù)全部在本地”的數(shù)據(jù)塊進行遷移;2)是否往前一個時間點的快照設(shè)備遷移數(shù)據(jù)需要判斷下面兩個條件a)前一個時間點的快照設(shè)備的狀態(tài)不能為刪除狀態(tài)(每一個快照設(shè)備的內(nèi)存結(jié)構(gòu)中都有一個成員用來表示該快照設(shè)備的狀態(tài)),應(yīng)為正常(normal)狀態(tài);b)前一個時間點的快照設(shè)備所對應(yīng)的數(shù)據(jù)塊(對應(yīng)于要刪除的快照設(shè)備中,數(shù)據(jù)塊狀態(tài)為“數(shù)據(jù)全部在本地”的數(shù)據(jù)塊)的數(shù)據(jù)狀態(tài)為“數(shù)據(jù)全部不在本地”;如果上面兩個條件有一個不滿足,則繼續(xù)尋找前一個時間點的快照設(shè)備,尋找到之后(即存在前一個時間的快照設(shè)備),重復判斷過程2)。如果尋不到前一個時間點的快照設(shè)備,就把數(shù)據(jù)遷移到源設(shè)備;如果找到滿足上述兩個條件a)、b)的前一個時間點的快照設(shè)備,則將數(shù)據(jù)遷移到該快照設(shè)備。3)遷移結(jié)束后,將需要刪除的快照設(shè)備上所遷移的數(shù)據(jù)塊的數(shù)據(jù)狀態(tài)設(shè)置為“數(shù)據(jù)全部不在本地”,表示數(shù)據(jù)已經(jīng)遷移完畢。在進一步的實施例中,在將數(shù)據(jù)進行遷移前,首先刪除該快照設(shè)備的塊設(shè)備SDu,在數(shù)據(jù)遷移完畢后,刪除該快照設(shè)備的其余部分(即緩存設(shè)備、塊設(shè)備SDl和存儲設(shè)備)。圖5B描述了根據(jù)本發(fā)明一個實施例的刪除只讀快照設(shè)備的示意圖。其中,在刪除只讀快照設(shè)備2之前,源設(shè)備的數(shù)據(jù)依賴設(shè)備(前一個時間點的快照設(shè)備)為只讀快照設(shè)備2,而只讀快照2的數(shù)據(jù)依賴設(shè)備為只讀快照設(shè)備I ;只讀快照I為滿足上述遷移條件a)和b)的前一個時間點的快照設(shè)備,則在進行數(shù)據(jù)遷移以及刪除只讀快照設(shè)備2中的塊設(shè)備SDu、緩存設(shè)備、塊設(shè)備SDl和存儲設(shè)備之后,源設(shè)備I的數(shù)據(jù)依賴設(shè)備為只讀快照設(shè)備I。三.可寫快照設(shè)備的創(chuàng)建創(chuàng)建可寫快照時需依賴只讀快照,圖6A示出了根據(jù)只讀快照設(shè)備創(chuàng)建可寫快照設(shè)備的實施例。其中,在創(chuàng)建可寫快照設(shè)備I之前,源設(shè)備的數(shù)據(jù)依賴設(shè)備為只讀快照設(shè)備I ;創(chuàng)建新的可寫快照設(shè)備I后(該創(chuàng)建過程可與上述只讀快照的創(chuàng)建步驟I)類似,即在系統(tǒng)中依次注冊一個新的塊設(shè)備SDu,塊設(shè)備SW,緩存設(shè)備以及存儲設(shè)備,構(gòu)成一個新的快照設(shè)備),將可寫快照I的數(shù)據(jù)依賴設(shè)備設(shè)置為只讀快照設(shè)備I (指定的只讀快照設(shè)備)。四.可寫快照設(shè)備的刪除圖6B示出了刪除可寫快找設(shè)備的實施例。其中,源設(shè)備與可寫快照設(shè)備I的數(shù)據(jù)依賴設(shè)備為只讀快照設(shè)備1,在刪除可寫快照設(shè)備I之后(刪除該可寫快照設(shè)備的塊設(shè)備SDu、緩存設(shè)備、塊設(shè)備SDl以及存儲設(shè)備),只有源設(shè)備的數(shù)據(jù)依賴設(shè)備為只讀快照設(shè)備I。
      應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿毭枋龅谋景l(fā)明做出各種修改和改進。因此,要求保護的技術(shù)方案的范圍不受所給出的任何特定示范教導的限制。
      權(quán)利要求
      1.一種塊級快照系統(tǒng),包括由源設(shè)備以及一個或多個快照設(shè)備形成的快照設(shè)備鏈,所述源設(shè)備和所述快照設(shè)備中包括緩存設(shè)備、一對塊設(shè)備SD1^P SDy以及存儲設(shè)備,其中 所述塊設(shè)備SDu用于接受并處理用戶對所述系統(tǒng)的讀寫請求; 所述緩存設(shè)備用于處理從所述塊設(shè)備SDu轉(zhuǎn)發(fā)來的用戶的讀寫請求且用于緩存數(shù)據(jù); 所述塊設(shè)備SDl用于處理從所述緩存設(shè)備轉(zhuǎn)發(fā)來的用戶的讀請求; 所述源設(shè)備或快照設(shè)備還具有用于指示數(shù)據(jù)狀態(tài)的映射元數(shù)據(jù);所述映射元數(shù)據(jù)用于反映數(shù)據(jù)的三種狀態(tài):數(shù)據(jù)全部不在本地、數(shù)據(jù)全部在本地、數(shù)據(jù)部分在本地;所述塊設(shè)備SDu還用于查詢和修改所述映射元數(shù)據(jù)。
      2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述源設(shè)備位于所述快照設(shè)備鏈的頭部,且其數(shù)據(jù)依賴設(shè)備為最新的一個時間點的快照設(shè)備;所述快照設(shè)備的數(shù)據(jù)依賴設(shè)備為前一個時間點的快照設(shè)備。
      3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其中所述系統(tǒng)中的緩存設(shè)備還用于向本地塊設(shè)備SDl發(fā)送數(shù)據(jù)預(yù)取請求,所述塊設(shè)備SDl還用于查詢本地映射元數(shù)據(jù),且處理緩存設(shè)備發(fā)送來的數(shù)據(jù)預(yù)取請求。
      4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中緩存設(shè)備向本地塊設(shè)備SDl發(fā)送數(shù)據(jù)預(yù)取請求包括: 緩存設(shè)備啟動數(shù)據(jù)預(yù)取,并且將數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDp
      5.一種基于權(quán)利要求1或2所述的系統(tǒng)處理用戶讀請求的方法,包括: 步驟11)、塊設(shè)備SDu接收所述讀請求; 步驟12)、塊設(shè)備SDu查詢本地映射元數(shù)據(jù),判斷用戶所請求的數(shù)據(jù)是否在本地; 步驟13)、對在本地的數(shù)據(jù)的讀請求,轉(zhuǎn)向步驟14);對不在本地的數(shù)據(jù)的讀請求,則判斷在所述快照設(shè)備鏈中是否還存在前一個時間點的快照設(shè)備: 如果存在,則將對不在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)給前一個時間點的快照設(shè)備的塊設(shè)備SDu,該前一個時間點的塊設(shè)備SDu通過查詢其本地映射元數(shù)據(jù)判斷所請求的數(shù)據(jù)是否在本地,重復步驟13); 如果不存在,則將不在本地的數(shù)據(jù)補O,轉(zhuǎn)向步驟15); 步驟14)、快設(shè)備SDdf對在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)給本地的緩存設(shè)備,如果所請求的數(shù)據(jù)已在該緩存設(shè)備中緩存,則該緩存設(shè)備將該數(shù)據(jù)返回給所述塊設(shè)備SDu ;否則,所述緩存設(shè)備將讀請求轉(zhuǎn)發(fā)給本地塊設(shè)備SDy本地塊設(shè)備SDl從本地存儲設(shè)備讀取該數(shù)據(jù)并返回給緩存設(shè)備,由緩存設(shè)備進行緩存且將該數(shù)據(jù)返回給所述塊設(shè)備SDu ; 步驟15)、當塊設(shè)備SDu接收的是后一個時間點的快照設(shè)備的塊設(shè)備SDu轉(zhuǎn)發(fā)來的讀請求時,則將數(shù)據(jù)返回該后一個時間點的快照設(shè)備的塊設(shè)備SDu ;否則將數(shù)據(jù)返回給用戶。
      6.一種基于權(quán)利要求1或2所述的系統(tǒng)處理用戶寫請求的方法,包括: 步驟21)、塊設(shè)備SDu接收用戶的寫請求; 步驟22)、塊設(shè)備SDdf數(shù)據(jù)寫入本地快照設(shè)備的緩存設(shè)備,且根據(jù)數(shù)據(jù)是否對齊標記該數(shù)據(jù)塊的狀態(tài),修改映射元數(shù)據(jù)。
      7.一種基于權(quán)利要求3或4所述的系統(tǒng)由塊設(shè)備SDl查詢本地映射元數(shù)據(jù)并處理緩存設(shè)備發(fā)送來的數(shù)據(jù)預(yù)取 請求的方法,包括: 步驟31)、查詢本地映射元數(shù)據(jù),判斷數(shù)據(jù)是否在本地;步驟32)、處理數(shù)據(jù)預(yù)取請求: 對于在本地的數(shù)據(jù),將對該數(shù)據(jù)的數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給本地緩存設(shè)備,轉(zhuǎn)向步驟33);對于不在本地的數(shù)據(jù),判斷在所述快照設(shè)備鏈中是否還存在前一個時間點的快照設(shè)備: 如果存在,則將對不在本地的數(shù)據(jù)的數(shù)據(jù)預(yù)取請求轉(zhuǎn)發(fā)給前一個時間點的快照設(shè)備的塊設(shè)備SDu,該前一個時間點的塊設(shè)備SDu查詢其本地映射元數(shù)據(jù),重復步驟32); 如果不存在,則不作處理,跳過步驟33); 步驟33)、本地緩存設(shè)備將對于在本地的數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)到本地塊設(shè)備SW,再由本地塊設(shè)備SDl從本地存儲設(shè)備讀取數(shù)據(jù)并返回到緩存設(shè)備進行緩存。
      8.一種基于權(quán)利要求1-4中任何一個所述的系統(tǒng)創(chuàng)建只讀快照設(shè)備的方法,包括: 步驟al)在所述系統(tǒng)中依次注冊新的塊設(shè)備SDu、塊設(shè)備SW、緩存設(shè)備和存儲設(shè)備,構(gòu)成新快照設(shè)備; 步驟a2)、靜默源設(shè)備的塊設(shè)備SDu及塊設(shè)備SDl ; 步驟a3)、交換源設(shè)備和新快照設(shè)備的緩存設(shè)備、存儲設(shè)備和映射元數(shù)據(jù); 步驟a4)、將新快照設(shè)備插入所述系統(tǒng)的快照設(shè)備鏈; 步驟a5)、恢復源設(shè)備的塊設(shè)備SDu和SDp
      9.根據(jù)權(quán)利要求8所述的方法,其中步驟a4)包括: 步驟a41)、將新快照設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為源設(shè)備的數(shù)據(jù)依賴設(shè)備; 步驟a42)、將源設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為新快照設(shè)備。
      10.一種基于權(quán)利要求1-4中任何一個所述的系統(tǒng)根據(jù)指定的只讀快照設(shè)備創(chuàng)建可寫快照設(shè)備的方法,包括: 步驟bl)、在所述系統(tǒng)中依次注冊新的塊設(shè)備SDu、塊設(shè)備SW、緩存設(shè)備和存儲設(shè)備,構(gòu)成新快照設(shè)備; 步驟b2)、將新快照設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為所述指定的只讀快照設(shè)備。
      11.一種基于權(quán)利要求1-4中任何一個所述的系統(tǒng)刪除只讀快照設(shè)備的方法,包括: 步驟Cl)、查詢要刪除的快照設(shè)備的映射元數(shù)據(jù),選擇數(shù)據(jù)狀態(tài)為數(shù)據(jù)全部在本地的數(shù)據(jù)作為要遷移的數(shù)據(jù); 步驟c2)、判斷是否存在該前一個時間點的快照設(shè)備: 如果存在,并且該前一個時間點的快照設(shè)備為正常狀態(tài)以及該前一個時間點的快照設(shè)備中對應(yīng)要遷移的數(shù)據(jù)的數(shù)據(jù)狀態(tài)為數(shù)據(jù)全部不在本地,則將要遷移的數(shù)據(jù)遷移到該前一個時間點的快照設(shè)備;否則,繼續(xù)尋找前一個時間點的快照設(shè)備,重復步驟c2); 如果不存在,則將要遷移的數(shù)據(jù)遷移到源設(shè)備。
      12.根據(jù)權(quán)利要求11所述的方法,其中在步驟Cl)前還包括: 步驟CO)、刪除要刪除的快照設(shè)備的塊設(shè)備SDu ; 在步驟c2)后還包括: 步驟c3)、刪除要刪除的快照設(shè)備的緩存設(shè)備、塊設(shè)備SDl和存儲設(shè)備。
      13.根據(jù)權(quán)利要求12所述的方法,其中在步驟c3)后還包括: 步驟c4)、將原本數(shù)據(jù)依賴設(shè)備為要刪除的快照設(shè)備的快照設(shè)備或源設(shè)備的數(shù)據(jù)依賴設(shè)備設(shè)置為要刪除的快照設(shè)備原本的數(shù)據(jù)依賴設(shè)備。
      14.一種基于權(quán)利要求1-4中任何一個所述的系統(tǒng)刪除可寫快照設(shè)備的方法,包括:刪除要刪除的快照設(shè)備的塊設(shè)備SDu、`緩存設(shè)備、塊設(shè)備SDl和存儲設(shè)備。
      全文摘要
      本發(fā)明提供一種塊級快照系統(tǒng),包括由源設(shè)備以及一個或多個快照設(shè)備形成的快照設(shè)備鏈,源設(shè)備和快照設(shè)備中包括緩存設(shè)備、一對塊設(shè)備SDU和SDL,以及存儲設(shè)備。其中塊設(shè)備SDU用于接受并處理用戶對所述系統(tǒng)的讀寫請求、緩存設(shè)備用于處理從所述塊設(shè)備SDU轉(zhuǎn)發(fā)來的用戶的讀寫請求且用于緩存數(shù)據(jù)、塊設(shè)備SDL用于處理從所述緩存設(shè)備轉(zhuǎn)發(fā)來的讀請求。當系統(tǒng)接收用戶的讀請求時,塊設(shè)備SDU將對于不是本地數(shù)據(jù)的讀請求轉(zhuǎn)發(fā)到前一個時間點的塊設(shè)備SDU;而對于本地數(shù)據(jù)的讀請求則由塊設(shè)備SDL從存儲設(shè)備中讀出并返回給緩存設(shè)備用以緩存。緩存設(shè)備只緩存本地存儲的數(shù)據(jù),從而解決了緩存資源冗余的問題。
      文檔編號G06F12/08GK103077099SQ20131000588
      公開日2013年5月1日 申請日期2013年1月8日 優(yōu)先權(quán)日2013年1月8日
      發(fā)明者許魯, 郭高峰, 趙猛 申請人:中國科學院計算技術(shù)研究所, 天津中科藍鯨信息技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1