国产精品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>

      一種云計算平臺下的存儲方法與流程

      文檔序號:12364119閱讀:來源:國知局

      技術特征:

      1.一種云計算平臺下的存儲方法,包括:

      (1)構建基于Hadoop分布式文件系統(tǒng)的云數(shù)據(jù)備份系統(tǒng),所述系統(tǒng)從物理上分為客戶端、備份服務器和Hadoop分布式文件系統(tǒng)集群;

      (2)客戶端中保存著為本機提供服務的備份服務器的信息,當需要備份或恢復時向備份服務器發(fā)出相應請求;

      (3)備份服務器接收到客戶客戶端的請求,進行文件的備份和恢復;

      其中,文件上傳恢復的時候,采用文件分割的方式來管理文件,文件上傳之前將文件分割成小文件塊,再將文件塊進行上傳;文件恢復的時候是先下載文件的文件塊,所有文件塊下載完成之后將文件塊合并成原來的文件。

      2.如權利要求1所述的云計算平臺下的存儲方法,其中,文件的上傳包含以下幾個步驟:

      (1)文件分割:將原始的用戶文件分割成幾個小的文件塊,文件分割是將大文件的存儲文件變?yōu)榱硕鄠€小文件的存儲問題,可以直接避免大文件存儲需要應對的多個技術難題;

      (2)文件塊加密:文件塊加密采用公鑰加密的技術,文件塊的公鑰跟私鑰都需用從Hadoop分布式文件系統(tǒng)集群獲取。文件塊加密是為了保證文件數(shù)據(jù)的包密性,對于任何云同步的應用,數(shù)據(jù)的保密性都是用戶的必備需求,用戶不會將數(shù)據(jù)存放在可能泄露的應用中;

      (3)文件塊壓縮:對加密后的文件塊進行壓縮;

      (4)文件塊校驗:文件塊經(jīng)過加密加壓之后,通過hash算法算出文件塊的hash值,文件的上傳恢復都需要通過hash值校驗,以確定文件塊在傳輸過程中沒有出現(xiàn)錯誤;同時,如果發(fā)現(xiàn)hash值已經(jīng)存在,也就是已經(jīng)有相同的文件塊存放在服務器,那么文件塊就不需要重復上傳了。使用文件校驗不僅僅可以保證數(shù)據(jù)的完整性,避免上傳一樣的文件內(nèi)容可以節(jié)省服務器的存儲空間,同時減少數(shù)據(jù)流量,提高文件同步的效率。

      (5)文件塊上傳:文件塊通過Hadoop分布式文件系統(tǒng)集群提供的遠程接口進行同步,將文件塊上傳到Hadoop分布式文件系統(tǒng)集群,文件塊上傳結束之后,Hadoop分布式文件系統(tǒng)集群需要通過hash值來確定文件塊無錯誤。

      3.如權利要求1所述的云計算平臺下的存儲方法,其中,文件的恢復包含以下幾個步驟:

      (1)獲取文件塊列表:通過文件ID獲取文件對應的文件塊列表,根據(jù)文件塊的ID獲取詳細的文件塊信息,下載文件塊來間接完成文件下載功能;

      (2)文件塊下載:使用文件塊的ID,到指定的位置查找文件塊,將列表中的文件塊下載到本地;

      (3)文件塊校驗:文件塊下載完成之后,通過文件塊大小以及hash值來校驗文件塊是否成功下載;如果文件塊校驗失敗,則此文件塊無效,需要重新下載或者采用人工策略進行處理;

      (4)文件塊解壓:采用文件塊壓縮時相對應的文件塊解壓縮算法,對文件塊解壓縮;

      (5)文件塊解密:從Hadoop分布式文件系統(tǒng)集群獲取文件塊解密的私鑰,采用文件塊加密對應的解密算法對文件塊進行解密;

      (6)文件塊合并:文件塊完成下載、校驗、解壓、解密之后,將分離的文件塊重新合并,恢復用戶的原始文件。

      4.如權利要求1所述的云計算平臺下的存儲方法,其中,備份服務器在進行下載和上傳數(shù)據(jù)時遵從以下規(guī)則:

      備份服務器需要下載數(shù)據(jù)時,立即進行;而當需要上傳數(shù)據(jù)時,如果沒有其他備份服務器上傳數(shù)據(jù),立即上傳,否則稱之為產(chǎn)生沖突,等待一段時間再進行檢測以決定是否上傳,等待時間的長短由退避算法決定,退避算法具體包括:

      1)當?shù)谝淮螜z測發(fā)生沖突時,設置參數(shù)L=2;

      2)退避間隔取1到L個時間片中的一個隨機數(shù);

      3)重復檢測發(fā)生沖突時,將參數(shù)L加倍,L的最大值為256,當L增加到256時,

      L不再增加;

      4)一旦檢測次數(shù)超過8,則立即無條件上傳數(shù)據(jù)。

      5.如權利要求1所述的云計算平臺下的存儲方法,其中,客戶端讀取文件的具體實現(xiàn)過程包括:

      (1)客戶端通過調(diào)用分布式文件系統(tǒng)的一個實例FileStream對象的open()方法來打開希望讀取的文件;

      (2)分布式文件系統(tǒng)通過RPC遠程調(diào)用名稱節(jié)點以獲得文件開頭部分的數(shù)據(jù)塊的位置,對于每個塊,名稱節(jié)點返回該塊所在的數(shù)據(jù)節(jié)點的地址,并且這些數(shù)據(jù)節(jié)點會根據(jù)其距離客戶端的遠近進行排序,如果客戶端本身也是數(shù)據(jù)節(jié)點,則直接讀取本地數(shù)據(jù),分布式文件系統(tǒng)返回一個支持文件定位的輸入流的FSDataInputStream對象給客戶端,讓客戶端從FSDataInputStream中讀取數(shù)據(jù);

      (3)客戶端調(diào)用FSDataInputStream的read()方法;

      (4)存儲文件開頭部分塊的數(shù)據(jù)節(jié)點地址的DFSInputStream隨即與這些塊最近的數(shù)據(jù)節(jié)點相連接,通過在數(shù)據(jù)流中重復調(diào)用read(),讀取數(shù)據(jù)從數(shù)據(jù)節(jié)點返回客戶端;

      (5)當?shù)谝粋€塊讀完,DFSInputStream關掉與這個數(shù)據(jù)節(jié)點的連接,然后開始第二個塊的操作;

      (6)客戶端從流中讀取數(shù)據(jù)時,塊是按照DFSInputStream打開與數(shù)據(jù)節(jié)點的新連接的順序讀取的,DFSInputStream也會調(diào)用名稱節(jié)點來檢索下一組需要的塊的數(shù)據(jù)節(jié)點的位置,客戶端完成數(shù)據(jù)讀取后,調(diào)用FSDataInputStream的close()方法關閉數(shù)據(jù)流。

      6.如權利要求5所述的云計算平臺下的存儲方法,其中,

      在文件讀取過程中,如果客戶端從一個數(shù)據(jù)節(jié)點上讀取出錯,則選擇下一個離它最近的數(shù)據(jù)節(jié)點,同時記住這個失敗的數(shù)據(jù)節(jié)點,在讀取后面的塊的時候不再選擇這個數(shù)據(jù)節(jié)點。

      7.如權利要求1所述的云計算平臺下的存儲方法,其中,客戶端寫入文件的具體實現(xiàn)過程包括:

      (1)客戶端通過調(diào)用分布式文件系統(tǒng)的create()方法來創(chuàng)建文件;

      (2)分布式文件系統(tǒng)通過RPC遠程調(diào)用名稱節(jié)點,在文件系統(tǒng)的名字空間里創(chuàng)建一個新文件,此時這個文件還沒有任何塊與之相聯(lián)系;名稱節(jié)點執(zhí)行檢查以確保這個文件不會已經(jīng)存在,并且客戶端擁有創(chuàng)建此文件的權限;如果上述檢查通過,名稱節(jié)點會生成一個新文件的記錄;否則文件創(chuàng)建失敗并向客戶端拋出一個異常;分布式文件系統(tǒng)返回一個FSDataOutputStream,讓客戶端開始寫入數(shù)據(jù),F(xiàn)SDataOutputStream控制一個DFSOutputStream,DFSOutputStream負責處理數(shù)據(jù)節(jié)點和名稱節(jié)點之間的通信;

      (3)當客戶端寫入數(shù)據(jù)時,DFSDataOutputStream把要寫入的數(shù)據(jù)分成很多包,并將它們寫入內(nèi)部的數(shù)據(jù)隊列,數(shù)據(jù)隊列中的數(shù)據(jù)由數(shù)據(jù)流來讀取,數(shù)據(jù)流讓名稱節(jié)點找出一個合適的數(shù)據(jù)節(jié)點列表,并要求這些數(shù)據(jù)節(jié)點分配一些新的塊以存儲作為副本而復制的數(shù)據(jù),這個數(shù)據(jù)節(jié)點列表組成了一個管線;

      (4)FSDataInputStream將包分流給管線中第一個的數(shù)據(jù)節(jié)點,這個節(jié)點會對包進行存儲并且發(fā)送給管線中的第二個數(shù)據(jù)節(jié)點,第二個數(shù)據(jù)節(jié)點存儲包并且傳給管線中第三個數(shù)據(jù)節(jié)點,直至將包傳給管線中的最后一個數(shù)據(jù)節(jié)點;

      (5)DFSOutputStream有一個內(nèi)部的包隊列來等待數(shù)據(jù)節(jié)點收到確認,稱為確認隊列,只有當管線中所有的數(shù)據(jù)節(jié)點都返回寫入成功,這個包才算寫成功,發(fā)送確認給DFSOutputStream,包被移出確認隊列,然后開始下一個包的寫入;

      如果在有數(shù)據(jù)寫入期間,數(shù)據(jù)節(jié)點發(fā)生故障,則會執(zhí)行下面的操作:首先管線被關閉,確認隊列中的任何包都會被添加回數(shù)據(jù)隊列的前面,以確保數(shù)據(jù)節(jié)點從失敗的節(jié)點處是順流的,不會漏掉任意一個包,當前的塊在正常工作的數(shù)據(jù)節(jié)點中被給予一個新的身份并聯(lián)系名稱節(jié)點,以便能在故障數(shù)據(jù)節(jié)點后期恢復時其中的部分數(shù)據(jù)塊會被刪除;故障數(shù)據(jù)節(jié)點會從管線中刪除并且余下塊的數(shù)據(jù)會被寫入管線中的兩個好的數(shù)據(jù)節(jié)點;名稱節(jié)點注意到塊副本不足時,會在另一個節(jié)點上安排創(chuàng)建一個副本;隨后,后續(xù)的塊會繼續(xù)正常處理;

      (6)客戶端完成數(shù)據(jù)的寫入后,就會在FSDataInputStream中調(diào)用close();

      (7)在塊完成復制到最少的份數(shù)之后,名字節(jié)點將成功返回。

      當前第2頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1