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

      信息存儲處理方法

      文檔序號:8445374閱讀:574來源:國知局
      信息存儲處理方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及網(wǎng)絡(luò)存儲,特別涉及一種大數(shù)據(jù)存儲處理方法。
      【背景技術(shù)】
      [0002] 在大規(guī)模存儲系統(tǒng)中,為了提高存儲系統(tǒng)的可靠性、改善IO性能以及滿足海量數(shù) 據(jù)存儲需求,將多個存儲集群聯(lián)合起來,形成統(tǒng)一的存儲設(shè)備,例如將數(shù)據(jù)分散存儲到集群 中的不同磁盤上以保證并行性,并采用冗余校驗(yàn)機(jī)制,在保證數(shù)據(jù)安全性的同時可獲得大 容量和高數(shù)據(jù)傳輸率,對于順序讀寫數(shù)據(jù)的存儲系統(tǒng),一般對數(shù)據(jù)傳輸帶寬要求不苛刻,但 對數(shù)據(jù)可靠性、存儲空間要求較高。即使考慮視頻回放、備份恢復(fù)等對帶寬的額外需求,采 用存儲集群時,也存在著嚴(yán)重的性能浪費(fèi),同時伴隨著嚴(yán)重的能源浪費(fèi)和磁盤損耗,為了計 算校驗(yàn)數(shù)據(jù),數(shù)據(jù)寫入需要額外的讀寫開銷和延時,降低了存儲集群的吞吐能力。另一方 面,當(dāng)向存儲集群寫入的數(shù)據(jù)塊隨機(jī)時,磁盤就需要尋址到新的數(shù)據(jù)位置,此時,隨機(jī)讀寫 傳輸性能比順序讀寫傳輸性能更低。

      【發(fā)明內(nèi)容】

      [0003] 為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種信息存儲處理方法,包 括:
      [0004] 將非順序的讀寫請求地址映射到連續(xù)的實(shí)際地址空間,在緩存中緩存并構(gòu)造與存 儲集群條塊對齊的寫數(shù)據(jù),對物理地址順序化的寫請求進(jìn)行聚合或拆分,在內(nèi)存緩存區(qū)內(nèi) 組織成為與存儲集群的條塊對齊的寫請求,以使寫請求在存儲集群上覆蓋完整的條塊。
      [0005] 優(yōu)選地,所述在緩存中緩存并構(gòu)造與存儲集群條塊對齊的寫數(shù)據(jù),包括采用非易 失性RAM鏡像內(nèi)存緩存區(qū)內(nèi)的寫請求,并且進(jìn)一步包括:
      [0006] 運(yùn)行一個對齊寫請求的驅(qū)動程序,該程序包括接收線程和發(fā)送線程和寫請求隊 列,其中;
      [0007] 接收線程用于監(jiān)控和接收應(yīng)用程序發(fā)送給存儲集群的寫請求,首先進(jìn)行地址轉(zhuǎn) 換,轉(zhuǎn)換為物理空間內(nèi)連續(xù)的寫請求,并將其加入到寫請求隊列中;所述發(fā)送線程用于當(dāng)寫 請求隊列不為空時從寫請求隊列中取出并處理寫請求;
      [0008] 首先,通過讀取存儲集群配置文件獲得存儲集群的參數(shù),該參數(shù)包括條塊單位、成 員磁盤數(shù),再由條塊單位乘以成員磁盤數(shù),獲得條塊大小,可條塊單位和成員磁盤數(shù);
      [0009] 將寫請求表示為(buf,cnt,〇ff),其中buf為用戶空間緩存區(qū)指針,指向?qū)憯?shù)據(jù)的 起始地址;cnt為寫數(shù)據(jù)塊的大小;off是偏移量,是用戶數(shù)據(jù)寫入設(shè)備文件的起始位置;
      [0010] 發(fā)送線程創(chuàng)建一個發(fā)送緩存區(qū)數(shù)組,記作bufsend[M],其中M為大于1的正整數(shù), 緩存區(qū)bufsend[i] (0 <i〈M)的大小等于存儲集群的條塊大小,記為STSize;獲取緩存區(qū) bufsend[i]緩存的字節(jié)數(shù)filled[i],以及空閑字節(jié)數(shù)empty[i];
      [0011] 發(fā)送線程首先從bufsend[M]中獲得空閑緩存區(qū)bufsend[i],若沒有則等待,對于 bufsend[i],初始empty[i]為STSize,filled[i] = 0,然后按如下流程處理寫請求隊列中 的與請求:
      [0012] 緩存區(qū)bUfsend[i]填滿后,發(fā)送線程將其中的數(shù)據(jù)發(fā)送給存儲集群,對存儲集 群條塊的整體寫入,對齊驅(qū)動程序監(jiān)控應(yīng)用程序?qū)υO(shè)備文件的打開與關(guān)閉操作,進(jìn)行現(xiàn) 場保護(hù)與恢復(fù);當(dāng)應(yīng)用程序關(guān)閉設(shè)備文件、發(fā)送線程最后一次向存儲集群寫數(shù)據(jù)時,在 bufsend[i]中的數(shù)據(jù)寫入存儲集群的同時,記錄本次寫操作的off和cnt值;當(dāng)設(shè)備文件 再次打開時,根據(jù)記錄的off和cnt值,進(jìn)行現(xiàn)場恢復(fù),然后進(jìn)入正常的寫請求處理流程。
      [0013] 本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
      [0014] 本發(fā)明提出了一種存儲方法,在寫入磁盤過程中避免了因生成校驗(yàn)數(shù)據(jù)而產(chǎn)生的 額外讀寫開銷,通過數(shù)據(jù)的順序?qū)懭胗行p少了尋址操作,提高了存儲性能。
      【附圖說明】
      [0015] 圖1是根據(jù)本發(fā)明實(shí)施例的信息存儲處理方法的流程圖。
      【具體實(shí)施方式】
      [0016] 下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實(shí)施例的詳細(xì)描 述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán) 利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié) 以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中 的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
      [0017] 本發(fā)明的一方面提供了一種信息存儲處理方法,以提高順序數(shù)據(jù)存儲中存儲集群 的寫入性能。圖1是根據(jù)本發(fā)明實(shí)施例的方法流程圖。
      [0018] 本發(fā)明利用區(qū)段映射進(jìn)行地址轉(zhuǎn)換,將非順序的讀寫請求地址映射到連續(xù)的地址 空間,以實(shí)現(xiàn)連續(xù)寫入。特別適合順序數(shù)據(jù)存儲中的大塊數(shù)據(jù)的地址轉(zhuǎn)換;利用基于緩存的 存儲集群寫優(yōu)化存儲架構(gòu),在緩存中緩存并構(gòu)造與存儲集群條塊對齊的寫數(shù)據(jù),然后整個 條塊寫入存儲集群,實(shí)現(xiàn)對存儲集群的完全寫。
      [0019] 在寫數(shù)據(jù)地址轉(zhuǎn)換和對齊寫數(shù)據(jù)過程中,首先引入虛擬地址、物理地址的定義。虛 擬地址是應(yīng)用程序發(fā)來的讀寫請求地址;物理地址是數(shù)據(jù)在存儲集群存儲空間內(nèi)的實(shí)際地 址。地址轉(zhuǎn)換過程實(shí)現(xiàn)虛擬地址到物理地址的映射,即將非順序(可能部分順序)的虛擬 地址映射為連續(xù)的物理地址,并記錄映射關(guān)系到地址轉(zhuǎn)換表。經(jīng)過地址轉(zhuǎn)換后,寫操作在物 理地址空間內(nèi)完全順序化。
      [0020] 對齊寫數(shù)據(jù)是對物理地址順序化的寫請求進(jìn)行聚合或拆分,在內(nèi)存緩存區(qū)內(nèi)組織 成為與存儲集群條塊對齊的寫請求,即1個寫請求在存儲集群上恰好覆蓋1個或多個完整 的條塊。為了防止掉電導(dǎo)致緩存區(qū)內(nèi)數(shù)據(jù)丟失,采用非易失性RAM鏡像內(nèi)存緩存區(qū)內(nèi)的寫 請求。
      [0021] 在本發(fā)明的區(qū)段映射中實(shí)現(xiàn)地址轉(zhuǎn)換,以每次寫操作的寫區(qū)段為單位進(jìn)行地址映 射,主要數(shù)據(jù)結(jié)構(gòu)如下。
      [0022] 1)映射元數(shù)據(jù):開多式為(Vistart,Pistart,Leni,next),描述一個映射區(qū)段,Vistart, PistartAeivnext分別為映射區(qū)段i的虛擬起始地址、物理起始地址區(qū)段長度和相鄰映射元 數(shù)據(jù)索引,外存數(shù)據(jù)結(jié)構(gòu)簡稱元數(shù)據(jù);
      [0023] 2)映射存儲區(qū):外存中映射元數(shù)據(jù)的存儲區(qū)段;
      [0024] 3)地址轉(zhuǎn)換表:記錄每個虛擬地址對應(yīng)的元數(shù)據(jù)索引(index),外存數(shù)據(jù)結(jié)構(gòu)。
      [0025] 地址轉(zhuǎn)換時,先根據(jù)虛擬地址從地址轉(zhuǎn)換表獲得元數(shù)據(jù)索引,然后在映射存儲區(qū) 由索引值獲得元數(shù)據(jù),并根據(jù)元數(shù)據(jù)進(jìn)行區(qū)段地址轉(zhuǎn)換。
      [0026] 地址轉(zhuǎn)換時可以從虛擬區(qū)段(Vstart,VEnd)中的Vsta^ljVEnd,其中Vstart為虛擬區(qū)段 的虛擬起始地址,ViEnd為虛擬區(qū)段的虛擬結(jié)束地址,根據(jù)虛擬地址逐個查詢,最壞情況是查 詢所有塊的虛擬地址。
      [0027] 為了進(jìn)一步提高地址轉(zhuǎn)換效率,可以考慮引入LSM樹進(jìn)行映射區(qū)段查詢。在內(nèi)存 中建立映射元數(shù)據(jù)的LSM樹,用(ViStart,ViEnd,pimrta)表示葉子節(jié)點(diǎn),其中Vstart為區(qū)段i的虛 擬起始地址,ViEnd為區(qū)段i的虛擬結(jié)束地址,pimeta是指向元數(shù)據(jù)(ViStal^PistartAeivnext) 的指針(已讀入內(nèi)存)。
      [0028] 父節(jié)點(diǎn)的關(guān)鍵字是所有子樹中的最大關(guān)鍵字,每個葉子節(jié)點(diǎn)只包含兩個關(guān)鍵字, 表示一個順序區(qū)段。查找時如果查找值位于某個區(qū)段則查找成功,否則可由其父節(jié)點(diǎn)的關(guān) 鍵字,確定其相鄰區(qū)段,映射按虛擬地址由低到高的順序排列在鏈表中(由映射插入規(guī)則, 虛擬區(qū)段不會相交)。
      [0029] 設(shè)請求k的虛擬地址區(qū)段為(Vkstart,VkEnd),利用LSM樹查詢映射區(qū)段的過程如下: [0030] 1)分別查找Vkstart,VkEnd在LSM樹中的位置;
      [0031] 2)將Vkstart,VkEnd之間所有存在的映射作為要查找的映射。
      [0032] 為了防止LSM樹過大,優(yōu)選地可設(shè)定LSM樹的最大節(jié)點(diǎn)數(shù),當(dāng)超過該最大節(jié)點(diǎn)數(shù)時 便構(gòu)建一棵新的LSM樹,查找時先根據(jù)虛擬地址確定所在的LSM樹再進(jìn)行查找。
      [0033] 在數(shù)據(jù)寫入請求對齊方面,順序數(shù)據(jù)存儲中為了實(shí)現(xiàn)對存儲集群的完全寫,需要 運(yùn)行一個對齊寫請求的驅(qū)動程序,主要包括2個線程和1個寫請求隊列,2個線程分別是接 收和發(fā)送線程。
      [0034] 1)接收線程:監(jiān)控和接收應(yīng)用程序發(fā)送給存儲集群的寫請求,首先進(jìn)行上述地址 轉(zhuǎn)換,轉(zhuǎn)換為物理空間內(nèi)連續(xù)的寫請求,并將其加入到寫請求隊列中。
      [0035] 2)發(fā)送線程:當(dāng)寫請求隊列不為空時從寫請求隊列中取出并處理寫請求。
      [0036] 首先,需要獲取存儲集群的參數(shù),包括條塊單位、成員磁盤數(shù),再由條塊單位乘以 成員磁盤數(shù),獲得條塊大小??赏ㄟ^讀取存儲集群配置文件獲得條塊單位和成員磁盤數(shù)。
      [0037] 設(shè)寫請求表示為(buf,cnt,off
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1