• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向存算聯(lián)調(diào)的跨云糾刪碼自適應(yīng)數(shù)據(jù)訪問方法

    2024-03-23 08:04:14張凱鑫王意潔闞浚暉
    關(guān)鍵詞:傳輸速度分片代理

    張凱鑫 王意潔 包 涵 闞浚暉

    (并行與分布計(jì)算全國重點(diǎn)實(shí)驗(yàn)室(國防科技大學(xué)) 長沙 410073)

    (國防科技大學(xué)計(jì)算機(jī)學(xué)院 長沙 410073)

    隨著數(shù)字經(jīng)濟(jì)生態(tài)和云計(jì)算技術(shù)的蓬勃發(fā)展,用戶的云計(jì)算需求量迅速擴(kuò)大且需求越發(fā)多樣化.由于單一云廠商服務(wù)能力有限,逐漸難以滿足用戶的全部需求.跨云調(diào)度計(jì)算任務(wù)可有效緩解單一云廠商服務(wù)能力不足以滿足用戶需求的問題.為此,研究者提出了云際計(jì)算技術(shù),以云廠商之間的開放協(xié)作為基礎(chǔ),有效破解云廠商鎖定問題,方便開發(fā)者通過軟件定義方式定制云服務(wù),為計(jì)算任務(wù)跨云調(diào)度創(chuàng)造了基礎(chǔ)條件.

    然而,由于跨云調(diào)度的計(jì)算任務(wù)通常需要跨云訪問數(shù)據(jù)(即跨云存算聯(lián)調(diào)),且在諸如機(jī)器學(xué)習(xí)、氣象預(yù)報(bào)、基因測序、粒子物理等領(lǐng)域的計(jì)算任務(wù)的數(shù)據(jù)集往往高達(dá)數(shù)百TB[1],因而跨云調(diào)度后的計(jì)算任務(wù)的執(zhí)行效率受到跨云數(shù)據(jù)訪問速度的嚴(yán)重制約.基于數(shù)據(jù)冗余(糾刪碼和多副本)技術(shù)的跨云數(shù)據(jù)訪問方法是提高數(shù)據(jù)跨云訪問速度的重要技術(shù)途徑之一.相較于多副本[2-5],糾刪碼具有更高的數(shù)據(jù)容錯(cuò)性和更低的數(shù)據(jù)冗余度[6-7].因此,基于糾刪碼的跨云數(shù)據(jù)訪問方法成為了當(dāng)前的研究熱點(diǎn).基于糾刪碼的跨云數(shù)據(jù)訪問方法的基本思想為:首先,把原始數(shù)據(jù)對象分為k個(gè)數(shù)據(jù)塊;然后,把k個(gè)數(shù)據(jù)塊編碼為n個(gè)編碼塊(這n個(gè)編碼塊中可能包含k個(gè)數(shù)據(jù)塊),使用這n個(gè)編碼塊中的任意n-d+1 個(gè)編碼塊均可重構(gòu)出k個(gè)數(shù)據(jù)塊;接著,把n個(gè)編碼塊存儲(chǔ)到多個(gè)云上;當(dāng)某個(gè)數(shù)據(jù)訪問節(jié)點(diǎn)需要訪問數(shù)據(jù)時(shí),選擇若干云請求n-d+1 個(gè)編碼塊,用這些編碼塊重構(gòu)出k個(gè)數(shù)據(jù)塊,并將這些數(shù)據(jù)塊重組為原始數(shù)據(jù)對象[8].

    由于云間網(wǎng)絡(luò)帶寬通常遠(yuǎn)低于云內(nèi)網(wǎng)絡(luò)帶寬,而基于糾刪碼的跨云數(shù)據(jù)訪問方法需要跨多個(gè)云傳輸編碼塊.因此,基于糾刪碼的跨云數(shù)據(jù)訪問方法的編碼塊傳輸用時(shí)通常較長,使得其數(shù)據(jù)訪問速度較慢.

    基于糾刪碼的跨云數(shù)據(jù)訪問方法主要可從2 個(gè)方面來縮短編碼塊傳輸用時(shí):

    1)合理制定編碼數(shù)據(jù)訪問方案[9-13].由于糾刪碼可使用任意n-d+1 個(gè)編碼塊重構(gòu)出k個(gè)原始數(shù)據(jù)塊,因此基于糾刪碼的跨云數(shù)據(jù)訪問方法可選擇與數(shù)據(jù)訪問節(jié)點(diǎn)間延遲較低(或帶寬較高)的云上的編碼塊來重構(gòu)數(shù)據(jù),從而縮短編碼塊傳輸用時(shí).

    2)合理緩存編碼塊[14-20].基于糾刪碼的跨云數(shù)據(jù)訪問方法可通過把常被訪問的編碼塊緩存在相應(yīng)的數(shù)據(jù)訪問節(jié)點(diǎn)附近,以縮短整體的編碼塊傳輸用時(shí).

    在引入編碼塊緩存的情況下,基于糾刪碼的跨云數(shù)據(jù)訪問方法的編碼塊傳輸用時(shí)顯著受到緩存命中量(從數(shù)據(jù)訪問節(jié)點(diǎn)對應(yīng)的緩存中讀取的數(shù)據(jù)總量)、緩存命中增效(緩存命中時(shí)編碼塊傳輸用時(shí)的縮短量)、低傳輸速度編碼塊訪問量的影響.

    然而,現(xiàn)有基于糾刪碼的跨云數(shù)據(jù)訪問方法存在2 個(gè)方面的不足,使得其緩存命中量和緩存命中增效較低且低傳輸速度編碼塊訪問量有待降低:

    1)緩存管理粒度較粗.現(xiàn)有基于糾刪碼的跨云數(shù)據(jù)訪問方法以編碼塊為單位管理緩存,緩存編碼塊只存在命中和未命中2 種狀態(tài),無法利用部分命中的緩存編碼塊,因而其緩存命中量較低.

    2)未協(xié)同優(yōu)化緩存管理與編碼數(shù)據(jù)訪問方案.現(xiàn)有基于糾刪碼的跨云數(shù)據(jù)訪問方法在選擇加入緩存的編碼塊時(shí),未綜合考慮編碼數(shù)據(jù)訪問方案制定算法選擇各編碼塊用于重構(gòu)數(shù)據(jù)的概率以及各編碼塊的實(shí)際傳輸速度,不利于提高緩存命中量和緩存命中增效;或者在制定編碼數(shù)據(jù)訪問方案時(shí),未充分考慮緩存對各編碼塊傳輸速度的影響,不利于準(zhǔn)確評估各編碼塊傳輸速度,因而難以有效減少低傳輸速度編碼塊訪問量.

    現(xiàn)有基于糾刪碼的跨云數(shù)據(jù)訪問方法存在的緩存命中量低、緩存命中增效較低、低傳輸速度編碼塊訪問量大的問題,導(dǎo)致其編碼塊傳輸用時(shí)較長,進(jìn)而使得其數(shù)據(jù)訪問效率仍有待提升.

    為此,本文首先提出了一種基于星際文件系統(tǒng)(interplanetary file system,IPFS)的跨云存儲(chǔ)系統(tǒng)框架(IPFS-based cross-cloud storage system framework,IBCS).IBCS 基于IPFS 的數(shù)據(jù)分片管理機(jī)制實(shí)現(xiàn)細(xì)粒度緩存管理,可提高緩存命中量.此外,在引入緩存后,同一編碼塊的多個(gè)副本可能同時(shí)存儲(chǔ)在多個(gè)云上,IBCS 可充分利用這些副本提高編碼塊的傳輸并行度,從而減少低傳輸速度編碼塊.

    然后,在框架IBCS 下,本文提出了一種面向存算聯(lián)調(diào)的跨云糾刪碼自適應(yīng)數(shù)據(jù)訪問方法(adaptive erasure-coded data access method for cross-cloud collaborative scheduling of storage and computation,AECAM),可通過協(xié)同優(yōu)化緩存管理與編碼數(shù)據(jù)訪問方案提高緩存命中量和緩存命中增效.具體提出2 個(gè)關(guān)鍵算法:

    1)編碼數(shù)據(jù)訪問方案自適應(yīng)制定算法(adaptive formulating algorithm of erasure-coded data reconstruction scheme,AFERS).AFERS 首先根據(jù)IPFS 集群的各個(gè)存儲(chǔ)節(jié)點(diǎn)與數(shù)據(jù)訪問節(jié)點(diǎn)間的傳輸延遲、各編碼塊在各存儲(chǔ)節(jié)點(diǎn)里的存儲(chǔ)狀態(tài)(含正常存儲(chǔ)、長期緩存、臨時(shí)緩存等)、數(shù)據(jù)訪問節(jié)點(diǎn)的類型(云內(nèi)計(jì)算節(jié)點(diǎn)、云外計(jì)算節(jié)點(diǎn)),綜合評估指定節(jié)點(diǎn)訪問數(shù)據(jù)的過程中各編碼塊的傳輸速度.然后,根據(jù)各編碼塊傳輸速度的評估值,自適應(yīng)制定可避免訪問傳輸速度評估值低的編碼塊的編碼數(shù)據(jù)訪問方案.

    2)基于數(shù)據(jù)訪問過程感知的緩存管理算法(cache management algorithm based on data access process-aware,CADA).CADA 根據(jù)數(shù)據(jù)訪問過程中AFERS 對各編碼塊傳輸速度的評估值,以及被傳輸?shù)木幋a塊的實(shí)際傳輸速度,決定各編碼塊的緩存優(yōu)先級.優(yōu)先在數(shù)據(jù)訪問節(jié)點(diǎn)附近緩存易被AFERS 選中(傳輸速度預(yù)估值高)且實(shí)際傳輸速度相對較低的編碼塊,因而能同時(shí)提高緩存命中量及緩存命中增效.

    1 相關(guān)工作

    1.1 糾刪碼數(shù)據(jù)訪問方案

    糾刪碼數(shù)據(jù)訪問方案可由二元組〈type,blocks〉組成.其中type為數(shù)據(jù)訪問方案的類別,包括直接數(shù)據(jù)訪問方案和降級數(shù)據(jù)訪問方案;blocks為訪問數(shù)據(jù)時(shí)需獲取的編碼塊的列表.

    1)直接數(shù)據(jù)訪問方案

    如圖1 所示,直接數(shù)據(jù)訪問方案是指數(shù)據(jù)訪問節(jié)點(diǎn)直接獲取被訪問數(shù)據(jù)對象的k個(gè)數(shù)據(jù)塊,然后將它們重組成被訪問數(shù)據(jù)對象.直接訪問方式無需進(jìn)行解碼運(yùn)算且實(shí)現(xiàn)簡單,因而大部分分布式存儲(chǔ)系統(tǒng)(GFS(Google file system)[3],Lustre[4],Ceph[5]等)均默認(rèn)采用這種數(shù)據(jù)訪問方式.

    圖1 直接數(shù)據(jù)訪問方案示意圖Fig.1 Illustration of direct data access scheme

    對于直接數(shù)據(jù)訪問方案,需獲取的編碼塊固定為k個(gè)數(shù)據(jù)塊.因此,直接數(shù)據(jù)訪問方案只有1 套.

    2)降級數(shù)據(jù)訪問方案

    如圖2 所示,降級數(shù)據(jù)訪問方案是指數(shù)據(jù)訪問節(jié)點(diǎn)獲取被訪問數(shù)據(jù)對象的任意n-d+1 個(gè)編碼塊,并將其解碼為k個(gè)數(shù)據(jù)塊,然后用解碼出的數(shù)據(jù)塊重組出原始數(shù)據(jù)對象.由于降級訪問會(huì)帶來額外的計(jì)算開銷,因此在大部分存儲(chǔ)系統(tǒng)中,僅當(dāng)無法正常獲取數(shù)據(jù)塊時(shí)才會(huì)采用降級數(shù)據(jù)訪問方案[6].

    圖2 降級數(shù)據(jù)訪問方案示意圖Fig.2 Illustration of degraded data access scheme

    對于降級數(shù)據(jù)訪問方案,需獲取的編碼塊列表blocks的可能取值有組.因此,降級數(shù)據(jù)訪問方案共有套.

    1.2 廣域糾刪碼數(shù)據(jù)訪問技術(shù)

    在廣域部署的基于糾刪碼的存儲(chǔ)系統(tǒng)(如基于糾刪碼的跨云存儲(chǔ)系統(tǒng))進(jìn)行數(shù)據(jù)訪問時(shí),通常需要在低帶寬鏈路上傳輸大量編碼塊,導(dǎo)致編碼塊傳輸速度成為了數(shù)據(jù)訪問的瓶頸.為此,研究者提出了一系列廣域糾刪碼數(shù)據(jù)訪問技術(shù),主要分為基于數(shù)據(jù)訪問方案優(yōu)化的廣域糾刪碼數(shù)據(jù)訪問技術(shù)和基于緩存的廣域糾刪碼數(shù)據(jù)訪問技術(shù).

    1)基于數(shù)據(jù)訪問方案優(yōu)化的廣域糾刪碼訪問技術(shù)

    基于數(shù)據(jù)訪問方案優(yōu)化的廣域糾刪碼訪問技術(shù)的基本思想是:傳統(tǒng)分布式存儲(chǔ)系統(tǒng)默認(rèn)采用直接數(shù)據(jù)訪問方案,因?yàn)槠溆?jì)算量較小.然而,在廣域環(huán)境中,不同域的節(jié)點(diǎn)間的數(shù)據(jù)傳輸速度遠(yuǎn)低于域內(nèi)節(jié)點(diǎn)間的數(shù)據(jù)傳輸速度,且不同域節(jié)點(diǎn)的I/O 性能差異較大.如果數(shù)據(jù)訪問節(jié)點(diǎn)與大量數(shù)據(jù)塊存儲(chǔ)節(jié)點(diǎn)屬于不同的域或者大量數(shù)據(jù)塊存儲(chǔ)節(jié)點(diǎn)的I/O 性能較低,則會(huì)導(dǎo)致必須訪問數(shù)據(jù)塊的直接數(shù)據(jù)訪問方案的傳輸開銷大于某些降級數(shù)據(jù)訪問方案.因此,基于數(shù)據(jù)訪問方案優(yōu)化的廣域糾刪碼訪問技術(shù)會(huì)綜合評估各編碼塊存儲(chǔ)節(jié)點(diǎn)和客戶端間的帶寬、各編碼塊存儲(chǔ)節(jié)點(diǎn)的綜合性能,求得效率較高的數(shù)據(jù)訪問方案.

    例如,Saeed[12]以傳輸開銷和服務(wù)延遲優(yōu)化為目標(biāo),提出一種跨地域分布云環(huán)境下的糾刪碼訪問方法Sandooq.Sandooq 以編碼塊請求在各云數(shù)據(jù)中心的排隊(duì)時(shí)延,以及以數(shù)據(jù)訪問節(jié)點(diǎn)與存儲(chǔ)各編碼塊的云數(shù)據(jù)中心的物理距離為依據(jù)建立讀取優(yōu)化函數(shù),按照梯度下降的方法尋找最優(yōu)數(shù)據(jù)訪問方案.Zhang等人[13]提出基于節(jié)點(diǎn)性能感知和精確距離估算的糾刪碼降級訪問方法NADE.NADE 首先收集存儲(chǔ)節(jié)點(diǎn)的容量、CPU 頻率、吞吐量、響應(yīng)時(shí)間、時(shí)延等指標(biāo)的歷史數(shù)據(jù),并以此為依據(jù)構(gòu)建各節(jié)點(diǎn)之間的歐氏距離.然后,根據(jù)各節(jié)點(diǎn)間歐氏距離估算客戶端獲取每個(gè)編碼塊的開銷,并以此為依據(jù)求出最優(yōu)數(shù)據(jù)訪問方案.此外,Rashmi 等人[14]提出了一種延遲綁定的糾刪碼訪問方法LBA.采用LBA 的數(shù)據(jù)訪問節(jié)點(diǎn)會(huì)請求多個(gè)編碼塊,并選擇先傳輸?shù)綌?shù)據(jù)訪問節(jié)點(diǎn)的n-d+1 個(gè)編碼塊重構(gòu)原始數(shù)據(jù)對象.

    2)基于緩存的廣域糾刪碼數(shù)據(jù)訪問技術(shù)

    基于緩存的廣域糾刪碼數(shù)據(jù)訪問技術(shù)的基本思想是:由于跨域傳輸編碼塊的開銷較大,因而把部分訪問頻率高、傳輸速度低的編碼塊緩存在數(shù)據(jù)訪問節(jié)點(diǎn)附近以提高后續(xù)數(shù)據(jù)訪問速度.

    例如,Zhang 等人[15]提出了一種基于慢節(jié)點(diǎn)感知的編碼數(shù)據(jù)緩存系統(tǒng)POCache,用于提高廣域糾刪碼的數(shù)據(jù)訪問速度.POCache 將校驗(yàn)塊緩存到數(shù)據(jù)訪問節(jié)點(diǎn)附近,并在訪問數(shù)據(jù)時(shí)優(yōu)先請求數(shù)據(jù)塊.當(dāng)數(shù)據(jù)塊的傳輸速度過低時(shí),POCache 將選擇從緩存節(jié)點(diǎn)獲取校驗(yàn)塊,并使用緩存校驗(yàn)塊與訪問效率正常的數(shù)據(jù)塊重構(gòu)原始數(shù)據(jù)對象.此外,POCache 可支持用戶自行選擇緩存引入算法和緩存驅(qū)逐算法.然而,POCache需要測出各數(shù)據(jù)塊傳輸速度后才能確定用于重構(gòu)原始數(shù)據(jù)對象的編碼塊,對其數(shù)據(jù)訪問速度帶來不利影響.Halalai 等人[16]提出了一種基于緩存收益評估的編碼數(shù)據(jù)緩存系統(tǒng)Agar,將編碼塊的全局訪問次數(shù)與各數(shù)據(jù)訪問節(jié)點(diǎn)獲取該編碼塊的開銷的乘積作為各數(shù)據(jù)訪問節(jié)點(diǎn)緩存該編碼塊的預(yù)期收益,并將預(yù)期收益較高的編碼塊緩存到對應(yīng)的數(shù)據(jù)訪問節(jié)點(diǎn).

    整體而言,現(xiàn)有基于數(shù)據(jù)訪問方案優(yōu)化的廣域糾刪碼訪問技術(shù)和基于緩存的廣域糾刪碼數(shù)據(jù)訪問技術(shù)均可提高廣域環(huán)境(含跨云環(huán)境)下的糾刪碼數(shù)據(jù)訪問效率,但存在2 點(diǎn)不足:首先,現(xiàn)有工作中的緩存管理優(yōu)化與編碼數(shù)據(jù)訪問方案優(yōu)化結(jié)合不緊密,未同時(shí)做到根據(jù)緩存編碼塊分布情況決定數(shù)據(jù)訪問方案、根據(jù)數(shù)據(jù)訪問方案制定策略決定編碼塊緩存優(yōu)先級,導(dǎo)致其緩存命中量和緩存命中增效仍有待提高.此外,現(xiàn)有工作為優(yōu)化緩存管理與編碼數(shù)據(jù)訪問方案,通常需要耗費(fèi)較多額外的計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)資源以采集、維護(hù)存儲(chǔ)節(jié)點(diǎn)狀態(tài)信息及各類節(jié)點(diǎn)間的網(wǎng)絡(luò)信息.

    1.3 星際文件系統(tǒng)

    星際文件系統(tǒng)是一個(gè)去中心化的分布式文件系統(tǒng)[21-23],基于分布式哈希表(distributed Hash table,DHT)、BitTorrent 點(diǎn)對點(diǎn)文件共享協(xié)議、Git 分布式版本控制、Merkle DAG 等已有技術(shù),實(shí)現(xiàn)了數(shù)據(jù)的分片存儲(chǔ)、內(nèi)容尋址及點(diǎn)對點(diǎn)(peer-to-peer,P2P)高速傳輸.

    1)數(shù)據(jù)分片存儲(chǔ)

    IPFS 將用戶數(shù)據(jù)分為若干個(gè)大小不超過256 KB的數(shù)據(jù)分片,并使用Merkle DAG 來組織各個(gè)存儲(chǔ)節(jié)點(diǎn)上的數(shù)據(jù)分片.如圖3 所示,Merkle DAG 的末端節(jié)點(diǎn)的內(nèi)容為各個(gè)數(shù)據(jù)分片,其他節(jié)點(diǎn)的內(nèi)容為其所有子節(jié)點(diǎn)的內(nèi)容組合的哈希值.

    圖3 Merkle DAG 示意圖Fig.3 Illustration of Merkle DAG

    此外,Merkle DAG 的每個(gè)頂端節(jié)點(diǎn)對應(yīng)一個(gè)數(shù)據(jù)對象,該數(shù)據(jù)對象的內(nèi)容為其子孫節(jié)點(diǎn)中末端節(jié)點(diǎn)內(nèi)容(數(shù)據(jù)分片)的組合.

    分片存儲(chǔ)數(shù)據(jù)并使用Merkle DAG 來維護(hù)數(shù)據(jù)對象和數(shù)據(jù)分片間的關(guān)系的主要優(yōu)點(diǎn)是:在同一IPFS存儲(chǔ)節(jié)點(diǎn)上,多份用戶數(shù)據(jù)對象均含有的數(shù)據(jù)分片只需要被實(shí)際存儲(chǔ)1 份,因而可顯著降低存儲(chǔ)開銷.

    2)數(shù)據(jù)內(nèi)容尋址

    在IPFS 中,每份用戶數(shù)據(jù)對象對應(yīng)于一個(gè)Merkle DAG 的根哈希,且每個(gè)數(shù)據(jù)分片的哈希也由Merkle DAG 維護(hù).此外,IPFS 采用了分布式哈希表,支持任意IPFS 節(jié)點(diǎn)通過哈希值定位到維護(hù)了指定用戶數(shù)據(jù)對象的Merkle DAG 的節(jié)點(diǎn),以及存儲(chǔ)了指定數(shù)據(jù)分片的節(jié)點(diǎn).

    因此,在IPFS 中,訪問數(shù)據(jù)的基本過程有4 個(gè):

    ①數(shù)據(jù)訪問節(jié)點(diǎn)向IPFS 集群發(fā)送需訪問數(shù)據(jù)對象的根哈希,IPFS 集群通過查詢分布式哈希表定位到維護(hù)了被請求數(shù)據(jù)對象的Merkle DAG 的節(jié)點(diǎn),并將相應(yīng)的Merkle DAG 傳輸?shù)綌?shù)據(jù)訪問節(jié)點(diǎn).

    ②數(shù)據(jù)訪問節(jié)點(diǎn)根據(jù)接收到的Merkle DAG 解析出被訪問數(shù)據(jù)的各數(shù)據(jù)分片的哈希.

    ③數(shù)據(jù)訪問節(jié)點(diǎn)向IPFS 集群發(fā)送需訪問數(shù)據(jù)對象的各數(shù)據(jù)分片的哈希,IPFS 集群通過查詢分布式哈希表定位到存儲(chǔ)了這些數(shù)據(jù)分片的節(jié)點(diǎn),并將這些數(shù)據(jù)分片傳輸?shù)綌?shù)據(jù)訪問節(jié)點(diǎn).

    ④數(shù)據(jù)訪問節(jié)點(diǎn)根據(jù)接收到的Merkle DAG 和數(shù)據(jù)分片,構(gòu)造出被訪問的數(shù)據(jù).

    3) P2P 高速傳輸

    在IPFS 中,數(shù)據(jù)訪問節(jié)點(diǎn)會(huì)同時(shí)請求多個(gè)數(shù)據(jù)分片且可能有多個(gè)存儲(chǔ)節(jié)點(diǎn)上擁有部分或全部被請求的數(shù)據(jù)分片.因此,IPFS 采用以BitSwap[24]數(shù)據(jù)交換協(xié)議為核心的P2P 傳輸技術(shù),根據(jù)節(jié)點(diǎn)信用分、性能、負(fù)載、網(wǎng)絡(luò)狀況等因素選擇各數(shù)據(jù)分片的提供節(jié)點(diǎn),并從多個(gè)提供節(jié)點(diǎn)并行地向數(shù)據(jù)訪問節(jié)點(diǎn)發(fā)送其請求數(shù)據(jù)的各數(shù)據(jù)分片,從而顯著提高數(shù)據(jù)傳輸速度.

    此外,IPFS 具有緩存機(jī)制,各節(jié)點(diǎn)會(huì)將請求過的數(shù)據(jù)分片緩存在本地一段時(shí)間.期間,如果其他節(jié)點(diǎn)請求這些數(shù)據(jù)分片,該節(jié)點(diǎn)仍能將緩存的數(shù)據(jù)分片提供出去,以提高其他節(jié)點(diǎn)的數(shù)據(jù)訪問速度.

    最后,在IPFS 的BitSwap 協(xié)議中,引入了信用機(jī)制,根據(jù)各節(jié)點(diǎn)對外提供數(shù)據(jù)的情況為其評定信用分.對外提供數(shù)據(jù)越頻繁的節(jié)點(diǎn)的信用分越高,而信用分越高的節(jié)點(diǎn)需要數(shù)據(jù)時(shí)會(huì)有更多的節(jié)點(diǎn)向其提供數(shù)據(jù).在各節(jié)點(diǎn)屬于不同主體的場景下(如跨云存儲(chǔ)場景),這種信用機(jī)制可以促進(jìn)各主體積極對外提供數(shù)據(jù),進(jìn)而提高IPFS 系統(tǒng)的整體數(shù)據(jù)訪問速度.

    2 基于IPFS 的跨云存儲(chǔ)系統(tǒng)框架(IBCS)

    本節(jié)提出了框架IBCS,可基于IPFS 的分片存儲(chǔ)、內(nèi)容尋址及P2P 傳輸?shù)燃夹g(shù),實(shí)現(xiàn)細(xì)粒度緩存管理和高速編碼塊傳輸.

    2.1 體系結(jié)構(gòu)

    如圖4 所示,框架IBCS 由讀寫控制層、存儲(chǔ)傳輸層和數(shù)據(jù)服務(wù)層組成.

    圖4 IBCS 示意圖Fig.4 Illustration of IBCS

    1)讀寫控制層包含協(xié)調(diào)節(jié)點(diǎn)和多個(gè)云代理節(jié)點(diǎn),主要負(fù)責(zé)響應(yīng)客戶端請求,完成用戶數(shù)據(jù)的寫入和訪問,具體工作由協(xié)調(diào)節(jié)點(diǎn)上的協(xié)調(diào)組件、云代理節(jié)點(diǎn)上的代理組件和元數(shù)據(jù)管理組件完成:

    ①協(xié)調(diào)組件負(fù)責(zé)解析用戶命令,生成寫入、訪問過程的控制命令,并發(fā)往代理組件;

    ②代理組件負(fù)責(zé)執(zhí)行協(xié)調(diào)組件發(fā)送的命令,包括調(diào)用IPFS 組件向IPFS 集群寫入編碼塊或從IPFS集群讀取編碼塊、對編碼塊進(jìn)行解碼操作、將解碼編碼塊得到的數(shù)據(jù)上傳到各云存儲(chǔ)服務(wù)或傳輸?shù)皆仆庥?jì)算節(jié)點(diǎn);

    ③元數(shù)據(jù)管理組件負(fù)責(zé)維護(hù)用戶、數(shù)據(jù)對象、編碼塊、云代理、云存儲(chǔ)服務(wù)等元數(shù)據(jù).

    2)存儲(chǔ)傳輸層由各云代理節(jié)點(diǎn)構(gòu)成,主要負(fù)責(zé)在各云代理節(jié)點(diǎn)上的存儲(chǔ)空間中存儲(chǔ)管理用戶數(shù)據(jù)對象的編碼塊,并在各云代理節(jié)點(diǎn)之間傳輸這些編碼塊,具體工作由各云代理節(jié)點(diǎn)上的代理組件和IPFS組件完成:

    ①代理組件負(fù)責(zé)調(diào)用IPFS 組件,完成本節(jié)點(diǎn)上持久化存儲(chǔ)編碼塊及緩存編碼塊的讀出、寫入和狀態(tài)變更;

    ②各IPFS 組件及各云代理的存儲(chǔ)空間構(gòu)成了IPFS集群,負(fù)責(zé)持久化存儲(chǔ)或緩存編碼塊、執(zhí)行代理組件命令、從IPFS 集群中讀取編碼塊、向IPFS 集群寫入編碼塊、利用P2P 技術(shù)在不同云的代理節(jié)點(diǎn)間高效傳輸編碼塊.

    3)數(shù)據(jù)服務(wù)層為各個(gè)云的云存儲(chǔ)服務(wù)(可被各云代理節(jié)點(diǎn)訪問),將用戶數(shù)據(jù)對象存儲(chǔ)到云存儲(chǔ)服務(wù)后,同一云上的計(jì)算節(jié)點(diǎn)才能正常訪問該數(shù)據(jù)對象.

    2.2 工作原理

    框架IBCS 的核心工作原理包括數(shù)據(jù)寫入原理、數(shù)據(jù)訪問原理、存儲(chǔ)狀態(tài)管理原理和緩存實(shí)現(xiàn)原理.

    1)數(shù)據(jù)寫入

    如圖5 所示,客戶端首先向協(xié)調(diào)節(jié)點(diǎn)發(fā)起數(shù)據(jù)寫入請求后,協(xié)調(diào)節(jié)點(diǎn)為用戶數(shù)據(jù)分配云代理節(jié)點(diǎn);然后,客戶端會(huì)將原用戶數(shù)據(jù)分割為k個(gè)數(shù)據(jù)塊,并對這k個(gè)數(shù)據(jù)塊進(jìn)行編碼計(jì)算后得到n個(gè)編碼塊;最后,客戶端將n個(gè)編碼塊傳輸至協(xié)調(diào)節(jié)點(diǎn)分配的云代理節(jié)點(diǎn),各云代理節(jié)點(diǎn)的代理組件會(huì)接收這些編碼塊,并調(diào)用IPFS 組件將編碼塊按照IPFS 的數(shù)據(jù)組織格式(分片后以Merkle DAG 組織)存儲(chǔ)到本節(jié)點(diǎn)的存儲(chǔ)空間.

    圖5 IBCS 數(shù)據(jù)寫入方案Fig.5 IBCS data write scheme

    2)數(shù)據(jù)訪問

    在框架IBCS 中,有2 種節(jié)點(diǎn)可能需要訪問數(shù)據(jù):云內(nèi)計(jì)算節(jié)點(diǎn)和云外計(jì)算節(jié)點(diǎn).

    如圖6 所示,云內(nèi)計(jì)算節(jié)點(diǎn)可高效訪問其所在云的云存儲(chǔ)服務(wù)中的數(shù)據(jù).云內(nèi)計(jì)算節(jié)點(diǎn)需要訪問數(shù)據(jù)的過程為:首先,客戶端向協(xié)調(diào)節(jié)點(diǎn)發(fā)送數(shù)據(jù)訪問請求;然后,協(xié)調(diào)節(jié)點(diǎn)根據(jù)客戶端請求,擬制數(shù)據(jù)訪問方案并生成控制命令發(fā)送云內(nèi)計(jì)算節(jié)點(diǎn)對應(yīng)的云代理節(jié)點(diǎn);隨后,接收到命令的云代理節(jié)點(diǎn)從IPFS 集群讀出待訪問數(shù)據(jù)對象的編碼塊,解碼出原始數(shù)據(jù),并上傳到對應(yīng)的云存儲(chǔ)服務(wù).

    圖6 IBCS 數(shù)據(jù)訪問方案(云內(nèi)計(jì)算節(jié)點(diǎn))Fig.6 IBCS data access scheme(in-cloud nodes)

    云外計(jì)算節(jié)點(diǎn)無權(quán)限訪問或不可高效訪問云存儲(chǔ)服務(wù).如圖7 所示,云外計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)的過程為:首先,云外計(jì)算節(jié)點(diǎn)(運(yùn)行著客戶端)向協(xié)調(diào)節(jié)點(diǎn)發(fā)送請求,獲取其所需數(shù)據(jù)的編碼塊的云代理節(jié)點(diǎn)信息;然后,云外計(jì)算節(jié)點(diǎn)擬制數(shù)據(jù)訪問方案并向各代理節(jié)點(diǎn)請求編碼塊;隨后,各代理節(jié)點(diǎn)將編碼塊從IPFS 集群中讀出后,發(fā)送給云外計(jì)算節(jié)點(diǎn);最后,云外計(jì)算節(jié)點(diǎn)將收到的編碼塊解碼為所需數(shù)據(jù).

    圖7 IBCS 數(shù)據(jù)訪問方案(云外計(jì)算節(jié)點(diǎn))Fig.7 IBCS data access scheme(nodes outside the cloud)

    3)存儲(chǔ)狀態(tài)管理

    在框架IBCS 中,各云代理節(jié)點(diǎn)上由IPFS 組件維護(hù)的存儲(chǔ)空間既是編碼塊的持久化存儲(chǔ)空間,又是編碼塊的緩存空間.

    IPFS 組件維護(hù)的存儲(chǔ)空間中的編碼塊有長期存儲(chǔ)(pinned)和臨時(shí)存儲(chǔ)(tmp)兩種狀態(tài).處于tmp 狀態(tài)的編碼塊會(huì)被IPFS 組件的垃圾回收程序定時(shí)清理,處于pinned 狀態(tài)的編碼塊則不被垃圾回收程序清理.

    代理組件向IPFS 集群寫入編碼塊時(shí),為了最大化數(shù)據(jù)容錯(cuò)度,通常避免將一個(gè)條帶上的編碼塊及其副本分配至同一個(gè)云代理節(jié)點(diǎn)上,以確保單一節(jié)點(diǎn)失效時(shí)同一數(shù)據(jù)對象的編碼塊中最多一個(gè)編碼塊受到影響.圖8 說明了IBCS 編碼塊存儲(chǔ)狀態(tài)的變化,寫入的編碼塊會(huì)默認(rèn)以pinned 的狀態(tài)存儲(chǔ)在代理組件所在云代理節(jié)點(diǎn)的存儲(chǔ)空間中,直到維護(hù)該存儲(chǔ)空間的IPFS 組件接收到改變該編碼塊狀態(tài)的unpin命令.代理節(jié)點(diǎn)從IPFS 集群讀取的編碼塊,會(huì)以tmp的狀態(tài)存儲(chǔ)在代理組件所在代理節(jié)點(diǎn)的存儲(chǔ)空間中,直到維護(hù)該存儲(chǔ)空間的IPFS 組件啟動(dòng)垃圾回收策略.此外,如果某云代理節(jié)點(diǎn)上的IPFS 組件接收到請求某個(gè)編碼塊的pin 命令,IPFS 集群使用P2P 傳輸技術(shù)將該編碼塊傳輸?shù)皆撛拼砉?jié)點(diǎn)上的存儲(chǔ)空間中并設(shè)置為pinned 狀態(tài).

    圖8 IBCS 編碼塊存儲(chǔ)狀態(tài)管理原理Fig.8 Principle of coding blocks storage state management in IBCS

    因此,通過對各IPFS 組件發(fā)送pin 命令和unpin命令,可以實(shí)現(xiàn)編碼塊存儲(chǔ)狀態(tài)的靈活管理.

    4)緩存實(shí)現(xiàn)

    在框架IBCS 中,持久化存儲(chǔ)的編碼塊和緩存編碼塊均存儲(chǔ)在各云代理節(jié)點(diǎn)的存儲(chǔ)空間,如表1 所示.其中,持久化存儲(chǔ)的編碼塊一直處于pinned 狀態(tài);緩存編碼塊可能處于pinned 狀態(tài),也可能處于tmp 狀態(tài),二者間的轉(zhuǎn)換由運(yùn)行的代理組件控制.

    Table 1 Classification of Coding Blocks in IBCS表1 IBCS 中編碼塊的分類

    2.3 框架分析

    框架IBCS 的主要特點(diǎn)有4 個(gè)方面:

    1)利用IPFS 的數(shù)據(jù)分片管理機(jī)制實(shí)現(xiàn)了緩存數(shù)據(jù)的細(xì)粒度管理,可從2 個(gè)方面提高緩存命中量.一方面,利用IPFS 的數(shù)據(jù)分片管理機(jī)制避免在同一云代理節(jié)點(diǎn)上存儲(chǔ)重復(fù)的數(shù)據(jù)分片,因而能降低存儲(chǔ)開銷,進(jìn)而增加了各云代理節(jié)點(diǎn)可緩存的編碼塊數(shù);另一方面,數(shù)據(jù)分片管理機(jī)制使得未命中緩存編碼塊中的命中數(shù)據(jù)分片可以被利用起來,如圖9 所示.

    圖9 IBCS 的細(xì)粒度緩存管理示意圖Fig.9 Illustration of fine-grained cache management in IBCS

    2)基于IPFS 的P2P 傳輸技術(shù),可充分利用系統(tǒng)中持久化數(shù)據(jù)和緩存數(shù)據(jù)來提高編碼塊的傳輸并行度,通過減少低傳輸速度編碼塊從而有效提高編碼塊傳輸速度.此外,IPFS 的P2P 傳輸技術(shù)引入了信用機(jī)制,可以促進(jìn)各云主體提升自身對外提供數(shù)據(jù)的能力,有助于不斷提高跨云存儲(chǔ)系統(tǒng)的編碼塊傳輸速度.

    3)得益于IPFS 的內(nèi)容尋址機(jī)制,讀寫控制層只需要管理各個(gè)編碼塊的根哈希即可,無需管理各個(gè)數(shù)據(jù)分片信息,因而數(shù)據(jù)分片管理機(jī)制、P2P 傳輸過程對讀寫控制層而言是透明的,這大大降低了元數(shù)據(jù)管理開銷和系統(tǒng)實(shí)現(xiàn)難度.

    4)針對云內(nèi)計(jì)算節(jié)點(diǎn)和云外計(jì)算節(jié)點(diǎn),分別設(shè)計(jì)了不同的數(shù)據(jù)訪問流程,適用范圍較廣.

    3 面向存算聯(lián)調(diào)的跨云糾刪碼自適應(yīng)數(shù)據(jù)訪問方法(AECAM)

    第2 節(jié)提出了一種基于IPFS 的跨云存儲(chǔ)系統(tǒng)框架(IBCS).基于IBCS,本節(jié)提出一種面向存算聯(lián)調(diào)的跨云糾刪碼自適應(yīng)數(shù)據(jù)訪問方法(AECAM),可通過協(xié)同優(yōu)化緩存管理與數(shù)據(jù)訪問方案減少數(shù)據(jù)訪問過程中的編碼塊傳輸用時(shí).

    具體而言,首先提出一種編碼數(shù)據(jù)訪問方案自適應(yīng)制定算法(AFERS),可根據(jù)IPFS 集群的各個(gè)存儲(chǔ)節(jié)點(diǎn)與數(shù)據(jù)訪問節(jié)點(diǎn)的傳輸延遲、各編碼塊在各存儲(chǔ)節(jié)點(diǎn)里的存儲(chǔ)情況、數(shù)據(jù)訪問節(jié)點(diǎn)的類型,綜合評估數(shù)據(jù)訪問過程中各編碼塊的傳輸速度,并以此為依據(jù)自適應(yīng)制定可避免訪問傳輸速度評估值低的編碼塊的編碼數(shù)據(jù)訪問方案,從而縮短數(shù)據(jù)訪問過程中的編碼塊傳輸用時(shí).

    然后,提出了一種基于數(shù)據(jù)訪問過程感知的緩存管理算法(CADA),可優(yōu)先在數(shù)據(jù)訪問節(jié)點(diǎn)緩存易被編碼數(shù)據(jù)訪問方案自適應(yīng)制定算法AFERS 選中(傳輸速度預(yù)估值高)且實(shí)際傳輸速度相對較低的編碼塊,以同時(shí)提高緩存命中量及緩存命中增效,進(jìn)而縮短數(shù)據(jù)訪問過程中的編碼塊傳輸用時(shí).

    3.1 編碼數(shù)據(jù)訪問方案自適應(yīng)制定算法(AFERS)

    1)核心思想

    算法AFERS 首先針對云內(nèi)計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)和云外計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)2 種場景,分別建模評估編碼塊傳輸速度.然后,AFERS 可根據(jù)各編碼塊傳輸速度的評估值制定編碼數(shù)據(jù)訪問方案.

    ①編碼塊傳輸速度評估

    算法AFERS 將數(shù)據(jù)訪問節(jié)點(diǎn)區(qū)分為云內(nèi)計(jì)算節(jié)點(diǎn)和云外計(jì)算節(jié)點(diǎn)2 種,并根據(jù)框架IBCS 中將數(shù)據(jù)傳輸?shù)? 類數(shù)據(jù)訪問節(jié)點(diǎn)的具體過程,使用不同的模型來評估這2 類數(shù)據(jù)訪問節(jié)點(diǎn)訪問數(shù)據(jù)時(shí)的編碼塊傳輸速度.

    (i)云內(nèi)計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)時(shí)的編碼塊傳輸速度評估

    在框架IBCS 中,云內(nèi)計(jì)算節(jié)點(diǎn)需要訪問數(shù)據(jù)時(shí),編碼塊通過P2P 傳輸技術(shù)被傳輸?shù)綌?shù)據(jù)訪問節(jié)點(diǎn)所對應(yīng)的云代理節(jié)點(diǎn),然后該云代理節(jié)點(diǎn)會(huì)用接收到的編碼塊解碼出原始數(shù)據(jù)對象,并將原始數(shù)據(jù)對象上傳到需訪問數(shù)據(jù)的云內(nèi)計(jì)算節(jié)點(diǎn)(數(shù)據(jù)訪問節(jié)點(diǎn))可訪問的云存儲(chǔ)服務(wù).

    上述過程中,影響編碼塊傳輸速度的主要因素包括P2P 網(wǎng)絡(luò)中存儲(chǔ)了各編碼塊的云代理節(jié)點(diǎn)數(shù),以及這些云代理節(jié)點(diǎn)與數(shù)據(jù)訪問節(jié)點(diǎn)對應(yīng)云代理節(jié)點(diǎn)間的實(shí)時(shí)帶寬.P2P 網(wǎng)絡(luò)中實(shí)際存儲(chǔ)待傳輸編碼塊的云代理節(jié)點(diǎn)數(shù)越多,編碼塊傳輸速度越快;這些云代理節(jié)點(diǎn)與數(shù)據(jù)訪問節(jié)點(diǎn)對應(yīng)云代理節(jié)點(diǎn)間的實(shí)時(shí)帶寬越高,編碼塊傳輸速度越快.

    因此,若令b為待傳輸編碼塊,c為數(shù)據(jù)訪問節(jié)點(diǎn)對應(yīng)的云代理節(jié)點(diǎn)(編碼塊的傳輸目的地節(jié)點(diǎn)),Eb,c為將編碼塊b傳輸?shù)侥康牡毓?jié)點(diǎn)c的速度,qb為存儲(chǔ)編碼塊b的云代理節(jié)點(diǎn)數(shù),xb,i(i∈[1,qb])為第i個(gè)存儲(chǔ)了編碼塊b的云代理節(jié)點(diǎn)的序號,Bc,xb,i為序號為xb,i的云代理節(jié)點(diǎn)與傳輸目的地節(jié)點(diǎn)c間的實(shí)時(shí)帶寬,則有

    此外,由于框架IBCS 中各云代理節(jié)點(diǎn)上的編碼塊的狀態(tài)包括2 類pinned 和tmp,且處于tmp 狀態(tài)的編碼塊有一定概率已經(jīng)被回收(狀態(tài)為pinned 的編碼塊沒被回收的概率為1),所以,若令Qb為可能存儲(chǔ)編碼塊b的云代理節(jié)點(diǎn)數(shù)(存儲(chǔ)了處于pinned 狀態(tài)或tmp 狀態(tài)的編碼塊b的云代理節(jié)點(diǎn)數(shù)),yb,i(i∈[1,Qb])為第i個(gè)可能存儲(chǔ)編碼塊b的云代理節(jié)點(diǎn)Nodeyb,i的序號,Bc,yb,i為Nodeyb,i與傳輸目的地節(jié)點(diǎn)c間的實(shí)時(shí)帶寬,pyb,i為Nodeyb,i實(shí)際存儲(chǔ)了編碼塊b的概率,則有

    由于IPFS 會(huì)定時(shí)觸發(fā)垃圾回收任務(wù)刪除處于tmp 狀態(tài)的編碼塊,因此,若令I(lǐng)PFS 觸發(fā)垃圾回收任務(wù)的周期為T,節(jié)點(diǎn)Nodeyb,i上的編碼塊b處于tmp 狀態(tài)的時(shí)長為tb,yb,i,則該節(jié)點(diǎn)上編碼塊b未被回收(實(shí)際存在)的概率為

    因此,Nodeyb,i中編碼塊b未被回收的概率為

    最后,由于測量節(jié)點(diǎn)間實(shí)時(shí)帶寬的開銷較大,算法AFERS 使用節(jié)點(diǎn)間延遲來估算帶寬,具體估算方法為:

    其中Dc,yb,i為Nodeyb,i與傳輸目的地節(jié)點(diǎn)c間的傳輸延遲.通常情況下,2 個(gè)節(jié)點(diǎn)間的傳輸延遲越大意味著在2 個(gè)節(jié)點(diǎn)間傳輸數(shù)據(jù)時(shí)的數(shù)據(jù)轉(zhuǎn)發(fā)的次數(shù)越多,而數(shù)據(jù)轉(zhuǎn)發(fā)次數(shù)的增加將導(dǎo)致數(shù)據(jù)傳輸途經(jīng)低帶寬鏈路的概率增加、丟包率提升,進(jìn)而導(dǎo)致傳輸帶寬降低,因此延遲通常與帶寬呈負(fù)相關(guān).此外,實(shí)際測試中發(fā)現(xiàn),傳輸延遲少于1ms 時(shí)(如2 個(gè)節(jié)點(diǎn)處于同一云中)節(jié)點(diǎn)間帶寬將大幅度提高(同云內(nèi)節(jié)點(diǎn)間帶寬遠(yuǎn)高于不同云節(jié)點(diǎn)間帶寬).式(5)符合上述2 項(xiàng)規(guī)律.綜上,可得

    因此,算法AFERS 在訪問數(shù)據(jù)前,用式(7)為各編碼塊評分,當(dāng)傳輸目的地云代理節(jié)點(diǎn)為c時(shí),編碼塊b的傳輸速度評分為Sb,c:

    通常而言,評分越高,編碼塊相對傳輸速度越高.

    (ii)云外計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)時(shí)的編碼塊傳輸速度評估

    在框架IBCS 中,云外計(jì)算節(jié)點(diǎn)需要訪問數(shù)據(jù)時(shí),編碼塊通過TCP 協(xié)議直接從特定云代理節(jié)點(diǎn)傳輸?shù)叫枰L問數(shù)據(jù)的云外計(jì)算節(jié)點(diǎn)(數(shù)據(jù)訪問節(jié)點(diǎn)),并由數(shù)據(jù)訪問節(jié)點(diǎn)將編碼塊解碼為原始數(shù)據(jù)對象.

    上述過程中,影響編碼塊的傳輸速度的主要因素為存儲(chǔ)了編碼塊的云代理節(jié)點(diǎn)與需訪問數(shù)據(jù)的計(jì)算節(jié)點(diǎn)間的實(shí)時(shí)帶寬的最大值.因此,若令o為數(shù)據(jù)訪問節(jié)點(diǎn)(編碼塊傳輸目的地節(jié)點(diǎn)),Eb,o為將編碼塊b傳輸?shù)接?jì)算節(jié)點(diǎn)o的速度,Wb為以pinned 狀態(tài)存儲(chǔ)編碼塊b的云代理節(jié)點(diǎn)數(shù),zb,i(i∈[1,wb])為第i個(gè)存儲(chǔ)編碼塊b的云代理節(jié)點(diǎn)Nodezb,i的序號,Bo,zb,i為Nodezb,i與數(shù)據(jù)訪問節(jié)點(diǎn)o間的實(shí)時(shí)帶寬,則有

    此外,算法AFERS 使用節(jié)點(diǎn)間延遲來估算帶寬,具體估算方法為:

    其中Do,zb,i為Nodezb,i與計(jì)算節(jié)點(diǎn)o間的傳輸延遲.綜上可得

    因此,算法AFERS 在訪問數(shù)據(jù)前,用式(11)為各編碼塊評分,當(dāng)傳輸目的地計(jì)算節(jié)點(diǎn)為o時(shí),編碼塊b的傳輸速度評分為Sb,o:

    通常而言,評分越高,編碼塊相對傳輸速度越高.

    ②編碼數(shù)據(jù)訪問方案制定

    在跨云環(huán)境下,數(shù)據(jù)訪問過程中最耗時(shí)的步驟通常為傳輸編碼塊.因此,編碼數(shù)據(jù)訪問方案制定的主要思想是根據(jù)編碼塊的傳輸速度評分,為不同編碼數(shù)據(jù)訪問方案〈type,blocks〉的編碼塊傳輸速度評分,其中type為編碼數(shù)據(jù)訪問方案類型,blocks為訪問數(shù)據(jù)時(shí)需獲取的編碼塊的列表,并以〈type,blocks〉為主要依據(jù)確定編碼數(shù)據(jù)訪問方案以及編碼訪問方案中各編碼塊的提供節(jié)點(diǎn).

    (i)編碼數(shù)據(jù)訪問方案的編碼塊傳輸速度評分

    通常而言,各節(jié)點(diǎn)的數(shù)據(jù)接收能力遠(yuǎn)高于跨云節(jié)點(diǎn)間的數(shù)據(jù)傳輸能力,且同一節(jié)點(diǎn)可并行接收不同節(jié)點(diǎn)發(fā)來的編碼塊.因此,編碼數(shù)據(jù)訪問方案〈type,blocks〉的編碼塊傳輸速度為blocks中各編碼塊的傳輸速度的最小值.

    由于直接數(shù)據(jù)訪問方案需要傳輸k個(gè)數(shù)據(jù)塊,因此該類方案編碼塊傳輸速度評分Edir為k個(gè)數(shù)據(jù)塊的傳輸速度評分的最小值;由于降級數(shù)據(jù)訪問方案需要傳輸任意n-d+1 個(gè)編碼塊,因此該類方案的編碼塊傳輸速度評分Eun為傳輸速度評分第n-d+1 高的編碼塊的傳輸速度評分.

    (ii)編碼數(shù)據(jù)訪問方案選擇

    算法AFERS 結(jié)合各類數(shù)據(jù)訪問方案的編碼塊傳輸速度評分及計(jì)算開銷確定數(shù)據(jù)訪問方案類型type.由于直接數(shù)據(jù)訪問方案的計(jì)算開銷較小,所以將其編碼塊傳輸速度評分Edir乘上一個(gè)權(quán)值s后與降級數(shù)據(jù)訪問方案的編碼塊傳輸速度評分Eun比較.若sEdir>Eun,則采用直接數(shù)據(jù)訪問方案,反之采用降級數(shù)據(jù)訪問方案.假設(shè)Ddir為直接訪問方案中k個(gè)數(shù)據(jù)塊的傳輸速度評分的最小值所對應(yīng)的代理節(jié)點(diǎn)與云外計(jì)算節(jié)點(diǎn)間的延遲,Dun為降級訪問方案中傳輸速度評分第n-d+1 高的編碼塊所對應(yīng)的代理節(jié)點(diǎn)與云外計(jì)算節(jié)點(diǎn)間的延遲,將式(10)帶入選擇直接數(shù)據(jù)訪問的條件sEdir>Eun,可得Ddir<.換言之,當(dāng)且僅當(dāng)Ddir<時(shí),選擇直接數(shù)據(jù)訪問方案,反之選擇降級數(shù)據(jù)訪問方案.因此,當(dāng)s≤1 時(shí),滿足Ddir≥Dun即選擇降級數(shù)據(jù)訪問方案,此時(shí)忽略了降級數(shù)據(jù)訪問方案帶來的額外計(jì)算開銷,因而s≤1 不合理;當(dāng)s≥2 時(shí),至少滿足Ddir≥才選擇降級數(shù)據(jù)訪問方案,由于滿足不等式Ddir≥的Dun通常遠(yuǎn)小于Ddir,這將造成數(shù)據(jù)傳輸開銷遠(yuǎn)低于直接訪問方案的降級數(shù)據(jù)訪問方案被放棄,因而s≥2 不合理.因此s的合理取值范圍為1<s<2,本文實(shí)驗(yàn)中取s=1.5.

    若采用直接數(shù)據(jù)訪問方案,需要傳輸?shù)木幋a塊blocks為k個(gè)數(shù)據(jù)塊.若采用降級數(shù)據(jù)訪問方案,為了盡可能提高整體編碼塊傳輸速度,需要傳輸?shù)木幋a塊blocks為傳輸速度評分最高的n-d+1 個(gè)編碼塊.

    (iii)提供編碼塊的云代理節(jié)點(diǎn)選擇

    當(dāng)數(shù)據(jù)訪問節(jié)點(diǎn)為云內(nèi)計(jì)算節(jié)點(diǎn)時(shí),該計(jì)算節(jié)點(diǎn)對應(yīng)的云代理節(jié)點(diǎn)只需要提供各需傳輸編碼塊的根哈希,相應(yīng)的編碼塊即可通過P2P 傳輸技術(shù)傳輸?shù)皆撛拼砉?jié)點(diǎn)上,因而此時(shí)無需選擇提供各編碼塊的云代理節(jié)點(diǎn).

    當(dāng)數(shù)據(jù)訪問節(jié)點(diǎn)為云外計(jì)算節(jié)點(diǎn)時(shí),則需要從存儲(chǔ)了需傳輸編碼塊的各云代理節(jié)點(diǎn)中,選擇與計(jì)算節(jié)點(diǎn)間的網(wǎng)絡(luò)延遲最小的云代理節(jié)點(diǎn)作為提供該編碼塊的節(jié)點(diǎn).

    2)算法描述

    算法AFERS 的具體工作流程如算法1 所示.

    算法1.算法AFERS.

    輸入:數(shù)據(jù)訪問節(jié)點(diǎn)accessNode,訪問數(shù)據(jù)IDdataID;

    輸出:編碼數(shù)據(jù)訪問方案〈type,blocks〉,提供各編碼塊的云代理節(jié)點(diǎn)列表nodes.

    若數(shù)據(jù)訪問節(jié)點(diǎn)為云內(nèi)計(jì)算節(jié)點(diǎn)(算法1 的行①),則算法AFERS 運(yùn)行于協(xié)調(diào)節(jié)點(diǎn)上的協(xié)調(diào)組件.首先,AFERS 從協(xié)調(diào)節(jié)點(diǎn)上的元數(shù)據(jù)管理組件獲取數(shù)據(jù)訪問節(jié)點(diǎn)對應(yīng)云代理節(jié)點(diǎn)與存儲(chǔ)被訪問數(shù)據(jù)的編碼塊的云代理節(jié)點(diǎn)間的延遲(各云代理節(jié)點(diǎn)定時(shí)檢測其與其他云代理節(jié)點(diǎn)間的延遲,并將檢測結(jié)果發(fā)往協(xié)調(diào)節(jié)點(diǎn)存儲(chǔ)),以及被訪問數(shù)據(jù)的編碼塊的信息,具體包括:存儲(chǔ)各編碼塊的節(jié)點(diǎn)、編碼塊在各節(jié)點(diǎn)上的存儲(chǔ)狀態(tài)tmp 或pinned、處于tmp 狀態(tài)的編碼塊的存入時(shí)間等(算法1 的行②③).然后,AFERS 根據(jù)從元數(shù)據(jù)管理組件獲取的信息,計(jì)算各編碼塊的傳輸速度評分(如式(7)),并根據(jù)評分選擇編碼數(shù)據(jù)訪問方案的類型和用于重構(gòu)數(shù)據(jù)的編碼塊(算法1 的行④~⑥).

    若數(shù)據(jù)訪問節(jié)點(diǎn)為云外計(jì)算節(jié)點(diǎn)(算法1 的行⑧),則算法AFERS 運(yùn)行于數(shù)據(jù)訪問節(jié)點(diǎn).首先,AFERS 從協(xié)調(diào)節(jié)點(diǎn)的元數(shù)據(jù)管理組件獲取被訪問數(shù)據(jù)對應(yīng)編碼塊的信息,主要包括:存儲(chǔ)了被訪問數(shù)據(jù)對應(yīng)pinned 狀態(tài)編碼塊的節(jié)點(diǎn)ID(算法1 的行⑨).然后,如果數(shù)據(jù)訪問節(jié)點(diǎn)未初始化,則數(shù)據(jù)訪問節(jié)點(diǎn)先測試其與被訪問數(shù)據(jù)對應(yīng)pinned 狀態(tài)編碼塊所在云代理節(jié)點(diǎn)間的延遲,并存于本地內(nèi)存;如果數(shù)據(jù)訪問節(jié)點(diǎn)已初始化,則直接從本地內(nèi)存獲得其與各pinned 狀態(tài)編碼塊所在節(jié)點(diǎn)間的延遲(算法1 的行⑩~?).接著,AFERS 計(jì)算各編碼塊的傳輸速度評分(如式(11)),并根據(jù)評分選擇編碼數(shù)據(jù)訪問方案的類型type和用于重構(gòu)數(shù)據(jù)的編碼塊blocks(算法1 的行?~?).最后,AFERS 依據(jù)數(shù)據(jù)訪問節(jié)點(diǎn)與被訪問數(shù)據(jù)對應(yīng)pinned 狀態(tài)編碼塊所在云代理節(jié)點(diǎn)間的延遲,選擇提供blocks中編碼塊的云代理節(jié)點(diǎn)(算法1的行?).

    3)算法分析

    ①算法AFERS 針對2 種不同類型數(shù)據(jù)訪問節(jié)點(diǎn)訪問數(shù)據(jù)的過程,分別設(shè)計(jì)了編碼塊傳輸速度評估模型,且評估各編碼塊傳輸速度時(shí)考慮了各緩存編碼塊的分布情況,能較為準(zhǔn)確地評估框架IBCS 下不同類型數(shù)據(jù)訪問節(jié)點(diǎn)訪問數(shù)據(jù)時(shí)各編碼塊的速度.同時(shí),AFERS 能以編碼塊傳輸速度評估值為依據(jù)制定編碼塊傳輸速度較高的編碼數(shù)據(jù)訪問方案,從而能提高不同訪問節(jié)點(diǎn)訪問數(shù)據(jù)的速度.

    ②算法AFERS 只需要測試各云代理節(jié)點(diǎn)和云外計(jì)算節(jié)點(diǎn)間的延遲,相較于現(xiàn)有的需要測試節(jié)點(diǎn)間實(shí)時(shí)帶寬、各節(jié)點(diǎn)實(shí)時(shí)性能的算法,AFERS 對各云代理節(jié)點(diǎn)的影響較低.

    3.2 基于數(shù)據(jù)訪問過程感知的緩存管理算法(CADA)

    1)主要思想

    算法CADA 首先以數(shù)據(jù)對象為單位進(jìn)行緩存管理,當(dāng)決定緩存或驅(qū)逐某個(gè)數(shù)據(jù)對象后,再對該數(shù)據(jù)對象的各編碼塊進(jìn)行差異化的操作, 各緩存編碼塊被切分為若干數(shù)據(jù)分片進(jìn)行管理,可節(jié)省緩存空間.

    ①數(shù)據(jù)對象級緩存管理

    當(dāng)某個(gè)云代理節(jié)點(diǎn)對應(yīng)的云內(nèi)計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)時(shí),算法CADA 會(huì)將該數(shù)據(jù)對象的部分編碼塊加入緩存,加入緩存的編碼塊的初始存儲(chǔ)狀態(tài)均為pinned.

    此外,CADA 可適配任意用戶自定義的數(shù)據(jù)對象級緩存驅(qū)逐算法.當(dāng)觸發(fā)緩存驅(qū)逐操作后,CADA將使用用戶自定義的緩存驅(qū)逐算法初步?jīng)Q定驅(qū)逐哪些數(shù)據(jù)對象的編碼塊.緩存驅(qū)逐操作一方面會(huì)定時(shí)觸發(fā),另一方面會(huì)在剩余緩存空間不足以緩存待緩存編碼塊時(shí)觸發(fā).

    ②編碼塊級緩存管理

    緩存編碼塊在云代理節(jié)點(diǎn)的存儲(chǔ)空間內(nèi)有pinned 和tmp 這2 種狀態(tài).編碼塊狀態(tài)為pinned 時(shí),存在緩存優(yōu)先級(取值包括0 或1);編碼塊為tmp 狀態(tài)時(shí),沒有緩存優(yōu)先級,且會(huì)被IPFS 組件的垃圾回收程序定時(shí)清理.tmp 狀態(tài)的編碼塊被回收之前仍保留在云代理節(jié)點(diǎn)上,可以作為緩存讀取.

    當(dāng)某個(gè)云代理節(jié)點(diǎn)對應(yīng)的云內(nèi)計(jì)算節(jié)點(diǎn)訪問數(shù)據(jù)時(shí),CADA 會(huì)選擇該數(shù)據(jù)對象的部分編碼塊加入緩存,并為這些編碼塊設(shè)置緩存優(yōu)先級.緩存驅(qū)逐時(shí),首先由用戶自定義的數(shù)據(jù)對象級緩存驅(qū)逐算法決定待驅(qū)逐的數(shù)據(jù)對象,CADA 會(huì)根據(jù)緩存優(yōu)先級更改pinned 緩存編碼塊的狀態(tài).其中緩存優(yōu)先級為1 的編碼塊將被設(shè)為0,仍保留pinned 狀態(tài);緩存優(yōu)先級為0 的編碼塊將被設(shè)為tmp 狀態(tài),如圖10 所示.

    圖10 CADA 編碼塊緩存狀態(tài)管理原理Fig.10 Principle of coding blocks cache state management in CADA

    設(shè)置編碼塊緩存優(yōu)先級的主要策略為:優(yōu)先緩存易被算法AFERS 選中的編碼塊(本次訪問數(shù)據(jù)時(shí)已被AFERS 選中的編碼塊)以提高緩存的命中量;優(yōu)先緩存實(shí)際傳輸速度遠(yuǎn)低于所有被訪問編碼塊實(shí)際傳輸速度平均值的編碼塊,使得緩存命中時(shí)可通過大幅度提高各編碼塊傳輸速度的下限而大幅度縮短編碼塊傳輸用時(shí)(即緩存命中增效較大).

    因此,具體的緩存優(yōu)先級設(shè)置過程為:首先,獲取被AFERS 選中的各編碼塊的實(shí)際傳輸用時(shí),并計(jì)算出各編碼塊的實(shí)際傳輸用時(shí)的平均值和標(biāo)準(zhǔn)差 σ.然后,得到實(shí)際傳輸用時(shí)大于的編碼塊(j為經(jīng)驗(yàn)常量,即使用j-sigma 原則進(jìn)行緩存決策),并將這些編碼塊加入緩存,其中,傳輸用時(shí)最長的編碼塊的緩存優(yōu)先級將被設(shè)為1,其他編碼塊的優(yōu)先級將被設(shè)為0.

    ③數(shù)據(jù)分片級緩存管理

    加入緩存的編碼塊被劃分為若干個(gè)大小不超過256 KB 的數(shù)據(jù)分片并以Merkle DAG 組織存儲(chǔ)在云代理節(jié)點(diǎn)上,由IPFS 組件維護(hù).緩存編碼塊(以哈希值標(biāo)識)對應(yīng)Merkle DAG 的一個(gè)根節(jié)點(diǎn),內(nèi)容為其葉節(jié)點(diǎn)所對應(yīng)數(shù)據(jù)分片的組合.

    算法CADA 通過IPFS 獲取待緩存編碼塊哈希在Merkle DAG 上末端節(jié)點(diǎn)的各數(shù)據(jù)分片哈希值,與本地已有分片的哈希進(jìn)行比對,以判斷數(shù)據(jù)分片的命中情況.利用IPFS 的數(shù)據(jù)分片管理機(jī)制,在緩存空間中內(nèi)容完全相同的數(shù)據(jù)分片僅存儲(chǔ)1 份,該數(shù)據(jù)分片在Merkle DAG 中指向多個(gè)包含該數(shù)據(jù)分片的頂端節(jié)點(diǎn),對應(yīng)不同的緩存編碼塊.數(shù)據(jù)分片級緩存管理可節(jié)省緩存空間,增加云代理節(jié)點(diǎn)上可緩存的編碼塊數(shù).

    2)算法描述

    算法CADA 的工作流程如算法2 所示.

    算法2.算法CADA.

    輸入:緩存量閾值Rthreshold,用戶選擇的數(shù)據(jù)對象級緩存驅(qū)逐算法F.

    算法CADA 運(yùn)行于云內(nèi)計(jì)算節(jié)點(diǎn)對應(yīng)的云代理節(jié)點(diǎn)上,會(huì)不停阻塞讀取事件隊(duì)列中的事件(算法2的行①②),其中包括數(shù)據(jù)訪問事件和定時(shí)緩存回收事件等.

    若讀取到數(shù)據(jù)訪問事件,則從事件中獲取被算法AFERS 選中的編碼塊信息,以及各編碼塊的實(shí)際傳輸用時(shí)(算法2 的行③~⑤).然后,根據(jù)獲得的信息得到被AFERS 選中的編碼塊中傳輸用時(shí)較長的編碼塊列表slowBlocks,傳輸用時(shí)較長的編碼塊指實(shí)際傳輸用時(shí)大于的編碼塊,其中tˉ, σ分別為各編碼塊傳輸用時(shí)的平均值和標(biāo)準(zhǔn)差(算法2 的行⑥),j為經(jīng)驗(yàn)常量.接著,將slowBlocks中的編碼塊加入緩存,并將其中傳輸用時(shí)最長的編碼塊的緩存優(yōu)先級設(shè)為1,其他編碼塊的緩存優(yōu)先級設(shè)為0(算法2 的行⑦).隨后,如果當(dāng)前緩存的總數(shù)據(jù)量超過閾值,則調(diào)用用戶選擇的數(shù)據(jù)對象級緩存驅(qū)逐算法F確定擬驅(qū)逐的數(shù)據(jù)對象(算法2 的行⑧~⑩).最后,調(diào)整擬驅(qū)逐數(shù)據(jù)對象的編碼塊的緩存優(yōu)先級(將緩存優(yōu)先級為1 的編碼塊的緩存優(yōu)先級調(diào)為0)并將緩存優(yōu)先級為0 的編碼塊設(shè)為tmp 狀態(tài)(算法2 的行?).

    若讀取到定時(shí)緩存回收事件,則調(diào)用用戶選擇的數(shù)據(jù)對象級緩存驅(qū)逐算法F確定擬驅(qū)逐的數(shù)據(jù)對象,并調(diào)整擬驅(qū)逐數(shù)據(jù)對象的編碼塊的緩存優(yōu)先級(將緩存優(yōu)先級為1 的編碼塊的緩存優(yōu)先級調(diào)為0)并將緩存優(yōu)先級為0 的編碼塊設(shè)為tmp 狀態(tài)(算法2的行?~?).

    3)算法分析

    ①算法CADA 選擇緩存被算法AFERS 選中且實(shí)際傳輸用時(shí)較長的編碼塊,可以提高緩存命中量和緩存命中增效,從而縮短編碼塊傳輸用時(shí),進(jìn)而提高數(shù)據(jù)訪問速度.

    ②算法CADA 對實(shí)際傳輸用時(shí)相對較長的編碼塊(緩存優(yōu)先級為1)進(jìn)行了保護(hù),使其需要經(jīng)歷2 次緩存驅(qū)逐操作且期間未被命中才會(huì)被清理,有利于提高緩存命中增效.

    ③不同數(shù)據(jù)對象級緩存驅(qū)逐算法適用于不同的場景,由于算法CADA 可適配用戶自定義的數(shù)據(jù)對象級緩存驅(qū)逐算法,故其適用場景較為豐富.

    4 實(shí)驗(yàn)與結(jié)果

    4.1 原型實(shí)現(xiàn)

    為評估方法AECAM 的性能,我們實(shí)現(xiàn)了一個(gè)面向跨云存算聯(lián)調(diào)的存儲(chǔ)系統(tǒng)(cross-cloud storage system for collaborative scheduling of storage and computation,C2S2),并在該系統(tǒng)中實(shí)現(xiàn)了AECAM.

    C2S2 遵循基于IPFS 的跨云存儲(chǔ)系統(tǒng)框架IBCS,該框架由協(xié)調(diào)組件、元數(shù)據(jù)組件、代理組件、IPFS 組件、客戶端組成,如圖11 所示.

    圖11 C2S2 各組件間消息交互示意圖Fig.11 Illustration of communications between C2S2 modules

    為避免單點(diǎn)故障,協(xié)調(diào)組件有多個(gè),運(yùn)行于多個(gè)協(xié)調(diào)節(jié)點(diǎn)上.各協(xié)調(diào)組件不斷阻塞讀取競爭消息隊(duì)列中的消息,并在成功讀取消息后將其解析執(zhí)行.其中,消息由客戶端寫入,包括文件寫入請求、訪問請求等.

    每個(gè)云代理節(jié)點(diǎn)上運(yùn)行一個(gè)代理組件.代理組件不斷阻塞讀取其專有消息隊(duì)列中的消息,并在成功讀取消息后將其解析執(zhí)行.其中,消息由協(xié)調(diào)組件寫入,包括具體的編碼塊操作指令.此外,代理組件上運(yùn)行著gRPC(Google remote procedure call)服務(wù),負(fù)責(zé)與客戶端進(jìn)行數(shù)據(jù)傳輸.

    各協(xié)調(diào)節(jié)點(diǎn)元數(shù)據(jù)組件共同構(gòu)成mysql 集群,負(fù)責(zé)存儲(chǔ)系統(tǒng)中的各類元數(shù)據(jù):存儲(chǔ)服務(wù)元數(shù)據(jù)、數(shù)據(jù)對象元數(shù)據(jù)、代理節(jié)點(diǎn)元數(shù)據(jù)、代理節(jié)點(diǎn)編碼塊元數(shù)據(jù)、云內(nèi)計(jì)算節(jié)點(diǎn)數(shù)據(jù)對象元數(shù)據(jù)、編碼塊元數(shù)據(jù).為保證元數(shù)據(jù)安全,該mysql 集群只能被協(xié)調(diào)組件通過mysql 指令訪問.

    每個(gè)云代理節(jié)點(diǎn)上運(yùn)行一個(gè)IPFS 組件,各IPFS組件組成IPFS 集群.各IPFS 組件可被其所在云代理節(jié)點(diǎn)上的代理組件通過IPFS API 訪問,也可與IPFS集群中的其他IPFS 組件通過IPFS 協(xié)議共同完成編碼塊的P2P 傳輸.

    4.2 實(shí)驗(yàn)設(shè)置

    實(shí)驗(yàn)環(huán)境包括阿里云和華為云在北京和上海的3 個(gè)云數(shù)據(jù)中心的6 個(gè)節(jié)點(diǎn)(云主機(jī)),各云數(shù)據(jù)中心間的帶寬如圖12 所示.華為云主機(jī)配備2 核第3 代Intel 至強(qiáng)3.0 GHz 處理器、4 GiB 內(nèi)存和40 GB 云硬盤;阿里云主機(jī)配備2 核第3 代Intel Xeon2.7 GHz 處理器,4 GiB 內(nèi)存和40 GB 云硬盤.其中,節(jié)點(diǎn)1~5 為云代理節(jié)點(diǎn),同時(shí)充當(dāng)云內(nèi)計(jì)算節(jié)點(diǎn);節(jié)點(diǎn)6 為協(xié)調(diào)節(jié)點(diǎn),同時(shí)充當(dāng)云外計(jì)算節(jié)點(diǎn).其中,華為云主機(jī)對應(yīng)的云存儲(chǔ)服務(wù)為MinIO 對象存儲(chǔ)服務(wù),阿里云主機(jī)對應(yīng)的云存儲(chǔ)服務(wù)為OSS 對象存儲(chǔ)服務(wù).

    圖12 跨云實(shí)驗(yàn)環(huán)境示意圖Fig.12 Illustration of cross-cloud experimental environment

    為評估C2S2 的性能,我們將其與2 個(gè)引入緩存的基于糾刪碼的存儲(chǔ)系統(tǒng)Agar 和POCache 進(jìn)行了對比測試.

    Agar[16]默認(rèn)采取直接數(shù)據(jù)訪問方案,將編碼塊的全局訪問次數(shù)與各數(shù)據(jù)訪問節(jié)點(diǎn)獲取該編碼塊開銷的乘積作為各數(shù)據(jù)訪問節(jié)點(diǎn)緩存該編碼塊的預(yù)期收益,并將預(yù)期收益較高的編碼塊緩存到對應(yīng)的數(shù)據(jù)訪問節(jié)點(diǎn).

    POCache[15]將校驗(yàn)塊緩存到數(shù)據(jù)訪問節(jié)點(diǎn)附近,在訪問數(shù)據(jù)時(shí)請求所有的數(shù)據(jù)塊.當(dāng)訪問的數(shù)據(jù)對象存在校驗(yàn)塊緩存時(shí),POCache 同時(shí)從緩存節(jié)點(diǎn)請求校驗(yàn)塊,等待k個(gè)編碼塊到達(dá)后采取直接或降級數(shù)據(jù)訪問方案解碼計(jì)算重構(gòu)原始數(shù)據(jù)對象.

    實(shí)驗(yàn)采用的參數(shù)及默認(rèn)值如表2 所示.

    Table 2 Parameters in Experiments表2 實(shí)驗(yàn)參數(shù)

    緩存容量Sc是指緩存空間大小與待讀取數(shù)據(jù)對象總大小之比.

    實(shí)驗(yàn)中,數(shù)據(jù)對象的訪問服從Zipfian 分布[25],少數(shù)熱點(diǎn)數(shù)據(jù)的訪問次數(shù)占總數(shù)據(jù)訪問次數(shù)的比例越大,Zipfian 分布的參數(shù)a越大.

    數(shù)據(jù)相似度Sf是指2 個(gè)數(shù)據(jù)對象在內(nèi)容上的相似程度.在本次實(shí)驗(yàn)中,按照數(shù)據(jù)相似度將每2 個(gè)數(shù)據(jù)對象劃分為一個(gè)小組,小組內(nèi)的2 個(gè)數(shù)據(jù)對象在內(nèi)容上相似,相似度為Sf;任意小組之間的數(shù)據(jù)對象數(shù)據(jù)相似度為0.

    4.3 評價(jià)指標(biāo)

    我們使用3 個(gè)指標(biāo)來評價(jià)面向跨云存算聯(lián)調(diào)的存儲(chǔ)系統(tǒng)C2S2 的性能.

    1)緩存命中量

    若存儲(chǔ)系統(tǒng)以編碼塊為粒度進(jìn)行緩存管理,則該存儲(chǔ)系統(tǒng)的緩存命中量HS為經(jīng)過多輪數(shù)據(jù)訪問操作后被命中的緩存編碼塊的總大小HSblock;若存儲(chǔ)系統(tǒng)以數(shù)據(jù)分片為粒度進(jìn)行緩存管理,則該存儲(chǔ)系統(tǒng)的緩存命中量HS為經(jīng)過多輪數(shù)據(jù)訪問操作后被命中的緩存數(shù)據(jù)分片的總大小HSslice.

    2)跨云傳輸量

    若存儲(chǔ)系統(tǒng)以編碼塊為粒度進(jìn)行緩存管理,則該存儲(chǔ)系統(tǒng)的跨云傳輸量CT為經(jīng)過多輪數(shù)據(jù)訪問操作后被跨云傳輸?shù)木幋a塊的總大小CTblock;若存儲(chǔ)系統(tǒng)以數(shù)據(jù)分片為粒度進(jìn)行緩存管理,則該存儲(chǔ)系統(tǒng)的跨云傳輸量CT為經(jīng)過多輪數(shù)據(jù)訪問操作后被跨云傳輸?shù)臄?shù)據(jù)分片的總大小CTslice.

    3)數(shù)據(jù)訪問速度

    若被訪問數(shù)據(jù)大小為M,且從用戶發(fā)起數(shù)據(jù)訪問命令到云內(nèi)計(jì)算節(jié)點(diǎn)對應(yīng)的云代理節(jié)點(diǎn)將數(shù)據(jù)重構(gòu)出來并上傳到對應(yīng)的云存儲(chǔ)服務(wù)上所消耗的時(shí)間為t1,則云內(nèi)計(jì)算節(jié)點(diǎn)訪問該數(shù)據(jù)的速度為M/t1;若被訪問數(shù)據(jù)大小為M,且從用戶發(fā)起數(shù)據(jù)訪問命令,到云外計(jì)算節(jié)點(diǎn)對應(yīng)的云代理節(jié)點(diǎn)上將數(shù)據(jù)重構(gòu)出來所消耗的時(shí)間為t2,則云外計(jì)算節(jié)點(diǎn)訪問該數(shù)據(jù)的速度為M/t2.

    實(shí)驗(yàn)中的緩存命中量、跨云傳輸量由仿真實(shí)驗(yàn)測得,數(shù)據(jù)訪問用時(shí)由真實(shí)跨云環(huán)境下的實(shí)驗(yàn)測得.

    4.4 緩存命中量

    圖13 顯示了緩存命中量隨編碼塊緩存決策所采取的j-sigma 原則中經(jīng)驗(yàn)常量j的變化而變化.隨著j的增加,緩存命中量逐漸上升.當(dāng)j增加到3 后,緩存命中量基本上不再隨j的增加而顯著增加.因此,本文實(shí)驗(yàn)中取j=3.

    圖13 緩存命中量隨緩存決策j-sigma 原則的參數(shù)j 的變化Fig.13 Variation of cache hit volume with parameter j of the j-sigma caching decision principle

    圖14 顯示了不同Zipfian 分布參數(shù)a下Agar,POCache,C2S2 的緩存命中量.Agar,POCache,C2S2的緩存命中量隨a的增大而增加.這是由于a越大,熱點(diǎn)數(shù)據(jù)訪問次數(shù)占總數(shù)據(jù)訪問次數(shù)的比例越大,因而存儲(chǔ)系統(tǒng)緩存的熱點(diǎn)數(shù)據(jù)的編碼塊被命中的次數(shù)越多.

    圖14 不同Zipfian 分布參數(shù)a 下緩存命中量對比Fig.14 Comparison of cache hit volume under different Zipfian distribution parameter a

    圖15 顯示了不同緩存容量下Agar,POCache,C2S2的緩存命中量.Agar,POCache,C2S2 的緩存命中量均隨著緩存容量的增加而增加,這是由于緩存容量越大,可緩存的編碼塊越多.

    圖15 不同緩存容量下緩存命中量對比Fig.15 Comparison of cache hit volume under different cache sizes

    圖16 顯示了不同編碼參數(shù)下Agar,POCache,C2S2的緩存命中量.Agar 和C2S2 的緩存命中量對編碼參數(shù)的變化不敏感,而POCache 的緩存命中量對編碼參數(shù)的變化較為敏感且其緩存命中量除編碼參數(shù)(5,3)外均低于Agar 和C2S2.這是因?yàn)镻OCache 僅緩存校驗(yàn)塊,使得其對編碼塊中校驗(yàn)塊的占比較為敏感.校驗(yàn)塊占比越少,可緩存的編碼塊越少,進(jìn)而可命中的編碼塊越少.

    圖16 不同編碼參數(shù)下緩存命中量對比Fig.16 Comparison of cache hit volume under different encoding parameters

    圖17 顯示了不同數(shù)據(jù)相似度下Agar,POCache,C2S2 的緩存命中量.C2S2 的緩存命中量隨著數(shù)據(jù)相似度的增加而增加,而Agar 和POCache 的緩存命中量幾乎不受數(shù)據(jù)相似度影響.這是由于C2S2 實(shí)現(xiàn)了數(shù)據(jù)分片級的緩存管理,相似數(shù)據(jù)的編碼塊中的相同數(shù)據(jù)分片僅被存儲(chǔ)了1 次,因而數(shù)據(jù)相似度越大,緩存空間中能存儲(chǔ)的編碼塊越多,使得緩存命中量越大.

    總體而言,C2S2 的平均緩存命中量比Agar 和POCache 高了10.05% 和65.4%,主要原因?yàn)椋?)C2S2實(shí)現(xiàn)了細(xì)粒度的緩存管理;2)C2S2 為各已緩存的編碼塊設(shè)置了優(yōu)先級,可以更持久地保留數(shù)據(jù)訪問方案中傳輸效率低的編碼塊,有利于減少緩存抖動(dòng),提高緩存命中量;3)C2S2 可以根據(jù)實(shí)際情況緩存各類編碼塊,而POCache 只能緩存校驗(yàn)塊且Agar 只能緩存數(shù)據(jù)塊.

    4.5 跨云傳輸量

    圖18 顯示了不同Zipfian 分布參數(shù)a下Agar,POCache,C2S2 的跨云傳輸量.Agar 和C2S2 的跨云傳輸量隨a的增大而顯著減少.這是因?yàn)閰?shù)a越大,熱點(diǎn)數(shù)據(jù)訪問次數(shù)占總數(shù)據(jù)訪問次數(shù)的比例越大,因而存儲(chǔ)系統(tǒng)緩存的熱點(diǎn)數(shù)據(jù)的編碼塊被命中的次數(shù)越多,進(jìn)而從緩存中直接獲取的數(shù)據(jù)的總量越大.然而,POCache 的跨云傳輸量受a的影響較小.這是由于POCache 在訪問數(shù)據(jù)時(shí)首先訪問所有的數(shù)據(jù)塊,然后舍棄最后到達(dá)的數(shù)據(jù)塊,使得其跨云傳輸量與緩存是否命中幾乎無關(guān).

    圖18 不同Zipfian 分布參數(shù)a 下跨云傳輸量對比Fig.18 Comparison of cross-cloud transfer volume under different Zipfian distribution parameter a

    圖19 顯示了不同緩存容量Sc下Agar,POCache,C2S2 的跨云傳輸量.隨著緩存容量的增大,C2S2 的跨云傳輸量有明顯下降,這是由于緩存容量越大,可緩存的編碼塊越多,緩存命中量越大.然而,POCache和Agar 的跨云傳輸量并沒有隨著緩存容量的增加而明顯下降.這是因?yàn)锳gar 需要定期進(jìn)行預(yù)緩存和緩存調(diào)整,帶來了額外的跨云傳輸量,而POCache 在每次訪問數(shù)據(jù)時(shí)都會(huì)請求所有的數(shù)據(jù)塊.

    圖19 不同緩存容量下跨云傳輸量Fig.19 Comparison of cross-cloud transfer volume under different cache sizes

    圖20 顯示了不同編碼參數(shù)下Agar,POCache,C2S2 的跨云傳輸量.三者跨云傳輸量基本上不受編碼參數(shù)的影響.這是由于C2S2,Agar 的緩存命中量對編碼參數(shù)不敏感,且POCache 在任何編碼參數(shù)下訪問數(shù)據(jù)時(shí)都會(huì)請求所有的數(shù)據(jù)塊.

    圖20 不同編碼參數(shù)下跨云傳輸量對比Fig.20 Comparison of cross-cloud transfer volume under different encoding parameters

    圖21 顯示了不同數(shù)據(jù)相似度Sf下Agar,POCache,C2S2 的跨云傳輸量.C2S2 的跨云傳輸量隨著數(shù)據(jù)相似度的增加而減少;Agar,POCache 的跨云傳輸量幾乎不受數(shù)據(jù)相似度影響.這是由于C2S2 實(shí)現(xiàn)了細(xì)粒度的緩存管理,在訪問數(shù)據(jù)時(shí)可以利用相似數(shù)據(jù)的編碼塊緩存來減少跨云傳輸量.

    圖21 不同數(shù)據(jù)相似度下跨云傳輸量對比Fig.21 Comparison of cross-cloud transfer volume under different data similarity

    總體而言,C2S2 的平均跨云傳輸量比Agar 和POCache 分別低了30.13% 和53.69%,主要原因?yàn)椋?)C2S2 只針對讀取到的數(shù)據(jù)進(jìn)行緩存,不產(chǎn)生額外的跨云傳輸量.2)C2S2 利用數(shù)據(jù)內(nèi)容尋址機(jī)制,可以讓相似數(shù)據(jù)對象從緩存中讀取一致的數(shù)據(jù)分片,減少跨云傳輸量.

    4.6 數(shù)據(jù)訪問速度

    圖22 顯示了不同數(shù)據(jù)相似度下Agar,POCache,C2S2 的數(shù)據(jù)訪問速度.當(dāng)數(shù)據(jù)相似度為0 時(shí),C2S2 與POCache 和Agar 相比,可將數(shù)據(jù)訪問速度提升28.58%~33.04%.這是由于C2S2 的緩存命中量更高、緩存命中增效高,可有效降低低帶寬云間的數(shù)據(jù)傳輸量.

    圖22 不同數(shù)據(jù)相似度下平均數(shù)據(jù)訪問速度Fig.22 Comparison of average data access speed under different data similarity

    此外,當(dāng)數(shù)據(jù)相似度為30%,60%,90%時(shí),C2S2的數(shù)據(jù)訪問速度逐漸升高.這是由于C2S2 支持細(xì)粒度的緩存管理,在訪問數(shù)據(jù)時(shí)可以利用相似數(shù)據(jù)的編碼塊緩存來減少跨云傳輸量.

    整體而言,C2S2 的數(shù)據(jù)訪問速度平均比POCache和Agar 高75.22%~81.29%.主要原因?yàn)椋?/p>

    1) C2S2 使用IPFS 集群從多個(gè)云代理節(jié)點(diǎn)以數(shù)據(jù)分片為單位并發(fā)傳輸編碼塊,能夠有效提高編碼塊傳輸速度;

    2) C2S2 可以評估各編碼塊的傳輸速度,并自適應(yīng)制定編碼數(shù)據(jù)訪問方案以規(guī)避傳輸速度慢的編碼塊;

    3) C2S2 的緩存管理算法可對數(shù)據(jù)訪問過程進(jìn)行感知,并通過設(shè)置優(yōu)先級,更為持久地保留數(shù)據(jù)訪問方案中傳輸效率最低的瓶頸編碼塊,提高緩存命中增效.

    5 總 結(jié)

    在框架創(chuàng)新方面,本文提出了一種基于IPFS 的跨云存儲(chǔ)系統(tǒng)框架(IBCS),使用IPFS 集群存儲(chǔ)和緩存數(shù)據(jù),并有效利用IPFS 的數(shù)據(jù)分片管理機(jī)制實(shí)現(xiàn)細(xì)粒度的緩存管理,因而能提高緩存命中率.

    在技術(shù)創(chuàng)新方面,本文提出了一種面向存算聯(lián)調(diào)的跨云糾刪碼自適應(yīng)數(shù)據(jù)訪問方法(AECAM),實(shí)現(xiàn)了糾刪碼編碼數(shù)據(jù)緩存管理策略與編碼數(shù)據(jù)訪問方案選擇策略深度協(xié)同優(yōu)化,在選擇編碼數(shù)據(jù)訪問方案時(shí)以各編碼塊的存儲(chǔ)和緩存情況為依據(jù),在設(shè)置編碼數(shù)據(jù)緩存優(yōu)先級時(shí)以編碼數(shù)據(jù)訪問方案對各編碼塊的評估結(jié)果和實(shí)際傳輸時(shí)間為依據(jù),可同時(shí)提高緩存命中量和命中增效.

    在軟件實(shí)現(xiàn)方面,本文基于IPFS 的跨云存儲(chǔ)系統(tǒng)框架(IBCS)和面向存算聯(lián)調(diào)的跨云糾刪碼自適應(yīng)數(shù)據(jù)訪問方法(AECAM),設(shè)計(jì)實(shí)現(xiàn)了一種面向跨云存算聯(lián)調(diào)的存儲(chǔ)系統(tǒng)(C2S2).與現(xiàn)有引入緩存的基于糾刪碼的存儲(chǔ)系統(tǒng)POCache 和Agar 相比,可將數(shù)據(jù)訪問速度提高75.22%~81.29%.

    未來,我們計(jì)劃進(jìn)一步研究框架IBCS 的數(shù)據(jù)修復(fù)和數(shù)據(jù)更新性能優(yōu)化問題.具體研究如何通過合理管理緩存編碼塊來縮短數(shù)據(jù)修復(fù)用時(shí),以及如何利用框架IBCS 的數(shù)據(jù)分片管理機(jī)制降低數(shù)據(jù)更新開銷.

    作者貢獻(xiàn)聲明:張凱鑫提出主要研究思路,完成實(shí)驗(yàn)并撰寫論文;王意潔提出指導(dǎo)意見,修改和審核論文;包涵提出實(shí)驗(yàn)方案,參與修改論文;闞浚暉協(xié)助完成實(shí)驗(yàn).

    猜你喜歡
    傳輸速度分片代理
    上下分片與詞的時(shí)空佈局
    詞學(xué)(2022年1期)2022-10-27 08:06:12
    分片光滑邊值問題的再生核方法
    CDN存量MP4視頻播放優(yōu)化方法
    SSD移動(dòng)硬盤大降價(jià),可以考慮了
    基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
    代理圣誕老人
    代理手金寶 生意特別好
    復(fù)仇代理烏龜君
    電網(wǎng)中無線通信技術(shù)的應(yīng)用探析
    淺談提升互聯(lián)網(wǎng)信息傳輸速度技術(shù)分析
    国产伦理片在线播放av一区| 男男h啪啪无遮挡| 久久久精品94久久精品| 婷婷丁香在线五月| 精品国产乱码久久久久久小说| 成年人黄色毛片网站| 亚洲五月婷婷丁香| 国产黄色免费在线视频| 国产成人精品无人区| 亚洲av日韩在线播放| 国产三级黄色录像| 久久天堂一区二区三区四区| h视频一区二区三区| 两个人免费观看高清视频| 国产淫语在线视频| 成人午夜精彩视频在线观看| 日韩视频在线欧美| 午夜福利一区二区在线看| 久久天堂一区二区三区四区| 一二三四社区在线视频社区8| 视频区欧美日本亚洲| 丝袜美腿诱惑在线| 国产伦人伦偷精品视频| 伊人亚洲综合成人网| 久久精品亚洲av国产电影网| 欧美日韩视频精品一区| 中文欧美无线码| 中文字幕人妻熟女乱码| 日本wwww免费看| 日韩一卡2卡3卡4卡2021年| 18禁黄网站禁片午夜丰满| 欧美日韩福利视频一区二区| 欧美黄色淫秽网站| 国产视频首页在线观看| 日日夜夜操网爽| 又黄又粗又硬又大视频| 国产精品久久久久久精品电影小说| 亚洲欧美日韩另类电影网站| 美女视频免费永久观看网站| 十八禁高潮呻吟视频| 国产成人系列免费观看| 国产一区有黄有色的免费视频| 成年动漫av网址| 深夜精品福利| www.av在线官网国产| www.av在线官网国产| 老司机影院毛片| 男女之事视频高清在线观看 | 日韩大码丰满熟妇| 这个男人来自地球电影免费观看| 香蕉国产在线看| 国产精品秋霞免费鲁丝片| 国产麻豆69| 中文精品一卡2卡3卡4更新| 亚洲精品国产色婷婷电影| 人人澡人人妻人| 日日夜夜操网爽| 欧美日韩国产mv在线观看视频| 我要看黄色一级片免费的| 亚洲精品日本国产第一区| 亚洲三区欧美一区| 亚洲精品国产av蜜桃| 亚洲精品一区蜜桃| 国产av一区二区精品久久| 国产一卡二卡三卡精品| 国产在线免费精品| 一级毛片黄色毛片免费观看视频| 日韩大码丰满熟妇| 极品人妻少妇av视频| 可以免费在线观看a视频的电影网站| 久久热在线av| netflix在线观看网站| 亚洲自偷自拍图片 自拍| 国产精品久久久久久精品电影小说| 丰满饥渴人妻一区二区三| 久久精品久久久久久久性| 精品亚洲成国产av| 国产又爽黄色视频| 在线精品无人区一区二区三| 美女脱内裤让男人舔精品视频| 欧美精品人与动牲交sv欧美| 国产高清videossex| 国产精品久久久久久人妻精品电影 | 国产主播在线观看一区二区 | 国产精品三级大全| 国产片内射在线| 久久久久久久精品精品| 亚洲精品av麻豆狂野| av国产久精品久网站免费入址| 国产老妇伦熟女老妇高清| 啦啦啦啦在线视频资源| 中文乱码字字幕精品一区二区三区| 最近手机中文字幕大全| 国产精品三级大全| 可以免费在线观看a视频的电影网站| 中文字幕人妻熟女乱码| 国产成人欧美在线观看 | www.精华液| 久久久久久久精品精品| 精品国产国语对白av| 欧美精品亚洲一区二区| 亚洲精品中文字幕在线视频| www.自偷自拍.com| 精品国产一区二区三区四区第35| 考比视频在线观看| www.av在线官网国产| 99国产精品一区二区蜜桃av | 国产av精品麻豆| 日韩人妻精品一区2区三区| 国产精品国产三级专区第一集| av片东京热男人的天堂| 在线观看国产h片| 在线观看免费高清a一片| 777久久人妻少妇嫩草av网站| 老汉色∧v一级毛片| 欧美在线黄色| 亚洲久久久国产精品| 久久国产精品大桥未久av| 国产精品久久久久久人妻精品电影 | 自拍欧美九色日韩亚洲蝌蚪91| 可以免费在线观看a视频的电影网站| 免费av中文字幕在线| 亚洲情色 制服丝袜| 好男人视频免费观看在线| 国产老妇伦熟女老妇高清| 热re99久久精品国产66热6| 国产野战对白在线观看| 80岁老熟妇乱子伦牲交| 亚洲av日韩精品久久久久久密 | 男女边吃奶边做爰视频| 91精品伊人久久大香线蕉| 午夜激情av网站| 中文字幕制服av| 日韩欧美一区视频在线观看| 女人久久www免费人成看片| 婷婷色麻豆天堂久久| 亚洲av成人精品一二三区| 国产精品 欧美亚洲| 啦啦啦中文免费视频观看日本| 久久久久网色| www.自偷自拍.com| 亚洲视频免费观看视频| 亚洲人成77777在线视频| 国产精品久久久久久人妻精品电影 | 大片免费播放器 马上看| 欧美成人午夜精品| 久久精品国产a三级三级三级| 亚洲人成网站在线观看播放| 亚洲av电影在线进入| 国产女主播在线喷水免费视频网站| 国产麻豆69| 50天的宝宝边吃奶边哭怎么回事| 亚洲欧美清纯卡通| 黄网站色视频无遮挡免费观看| 少妇精品久久久久久久| 另类亚洲欧美激情| 免费高清在线观看日韩| 亚洲人成电影观看| 少妇的丰满在线观看| 久久 成人 亚洲| 9热在线视频观看99| 国产精品久久久久久精品古装| 亚洲精品久久成人aⅴ小说| 黄色视频不卡| 日韩人妻精品一区2区三区| 极品人妻少妇av视频| 国产人伦9x9x在线观看| 我要看黄色一级片免费的| 少妇粗大呻吟视频| 精品人妻在线不人妻| 色94色欧美一区二区| 亚洲精品自拍成人| 女人精品久久久久毛片| 亚洲精品av麻豆狂野| 欧美日韩精品网址| 亚洲国产毛片av蜜桃av| 精品少妇黑人巨大在线播放| 日韩一本色道免费dvd| 国产精品亚洲av一区麻豆| 啦啦啦中文免费视频观看日本| 建设人人有责人人尽责人人享有的| 一级毛片我不卡| 男人爽女人下面视频在线观看| 精品亚洲乱码少妇综合久久| 亚洲中文av在线| 国产成人影院久久av| 日韩中文字幕视频在线看片| 99久久综合免费| 晚上一个人看的免费电影| 国产精品国产av在线观看| 中文字幕人妻丝袜制服| 午夜老司机福利片| 亚洲,一卡二卡三卡| 欧美日韩黄片免| 久热这里只有精品99| 中文字幕人妻丝袜制服| 亚洲国产av影院在线观看| 日日夜夜操网爽| 999精品在线视频| 成人午夜精彩视频在线观看| 国产伦人伦偷精品视频| 又大又黄又爽视频免费| 91老司机精品| 中文乱码字字幕精品一区二区三区| 自线自在国产av| 午夜福利,免费看| 亚洲精品久久久久久婷婷小说| 国产一区亚洲一区在线观看| 人人妻人人添人人爽欧美一区卜| 亚洲一区中文字幕在线| 亚洲 国产 在线| www.999成人在线观看| 久久精品成人免费网站| 2018国产大陆天天弄谢| 丰满少妇做爰视频| 自线自在国产av| 午夜福利免费观看在线| 久9热在线精品视频| 黑人猛操日本美女一级片| 日韩免费高清中文字幕av| 亚洲 国产 在线| 色94色欧美一区二区| 最黄视频免费看| 一级毛片女人18水好多 | 国产成人精品久久久久久| 在线观看免费午夜福利视频| 欧美大码av| 亚洲欧美日韩另类电影网站| 国产在线观看jvid| 免费观看人在逋| 操美女的视频在线观看| 99久久99久久久精品蜜桃| 久久久久久人人人人人| 80岁老熟妇乱子伦牲交| 亚洲国产精品一区二区三区在线| 各种免费的搞黄视频| 我要看黄色一级片免费的| 丁香六月天网| 免费高清在线观看日韩| 人人妻人人澡人人看| 制服人妻中文乱码| 亚洲三区欧美一区| 黄片小视频在线播放| 亚洲美女黄色视频免费看| www.熟女人妻精品国产| 下体分泌物呈黄色| 天天影视国产精品| 欧美日韩亚洲综合一区二区三区_| 一区在线观看完整版| 久久久久久久久免费视频了| 亚洲欧美精品综合一区二区三区| 国产xxxxx性猛交| 亚洲一码二码三码区别大吗| 国产男女内射视频| 超碰成人久久| 日韩视频在线欧美| 亚洲国产精品一区二区三区在线| 精品欧美一区二区三区在线| 热99国产精品久久久久久7| 在线观看人妻少妇| 精品久久久久久久毛片微露脸 | 色94色欧美一区二区| 亚洲天堂av无毛| 色播在线永久视频| 国产深夜福利视频在线观看| 夫妻性生交免费视频一级片| 精品国产一区二区久久| 欧美乱码精品一区二区三区| videos熟女内射| 天天添夜夜摸| 久久久久久亚洲精品国产蜜桃av| 无限看片的www在线观看| 精品亚洲成国产av| 久久精品国产亚洲av高清一级| 免费av中文字幕在线| 97人妻天天添夜夜摸| 免费看不卡的av| 如日韩欧美国产精品一区二区三区| 亚洲av电影在线观看一区二区三区| 手机成人av网站| 国产精品国产av在线观看| 成人黄色视频免费在线看| 脱女人内裤的视频| 超碰97精品在线观看| 久久av网站| 亚洲精品久久久久久婷婷小说| 成人18禁高潮啪啪吃奶动态图| 一级黄色大片毛片| 18禁国产床啪视频网站| 精品熟女少妇八av免费久了| 久久国产精品人妻蜜桃| 国产亚洲av高清不卡| 1024香蕉在线观看| 国产黄频视频在线观看| 亚洲国产精品一区三区| 天堂俺去俺来也www色官网| 中文字幕人妻丝袜一区二区| 99香蕉大伊视频| 亚洲中文日韩欧美视频| 久久人人97超碰香蕉20202| 久久女婷五月综合色啪小说| 成人国产av品久久久| 19禁男女啪啪无遮挡网站| 又大又黄又爽视频免费| 咕卡用的链子| 日本欧美视频一区| 国产有黄有色有爽视频| 亚洲人成电影观看| 丰满迷人的少妇在线观看| 久久久久久久大尺度免费视频| 国产精品.久久久| 精品欧美一区二区三区在线| 亚洲精品一卡2卡三卡4卡5卡 | 免费看av在线观看网站| 久久毛片免费看一区二区三区| 日韩大码丰满熟妇| 黄色怎么调成土黄色| 午夜免费成人在线视频| 国产免费福利视频在线观看| www.熟女人妻精品国产| 97人妻天天添夜夜摸| 亚洲国产精品999| 国产精品成人在线| 91精品伊人久久大香线蕉| 国产在线观看jvid| 亚洲国产欧美一区二区综合| 伦理电影免费视频| 飞空精品影院首页| 叶爱在线成人免费视频播放| 美女扒开内裤让男人捅视频| 国产视频一区二区在线看| 19禁男女啪啪无遮挡网站| 国产精品亚洲av一区麻豆| 久久久久国产精品人妻一区二区| 黄片小视频在线播放| bbb黄色大片| 五月天丁香电影| 国产av一区二区精品久久| 日本av免费视频播放| 精品少妇内射三级| 男女无遮挡免费网站观看| 欧美激情极品国产一区二区三区| 欧美日韩视频精品一区| 亚洲,一卡二卡三卡| 亚洲熟女毛片儿| 久久女婷五月综合色啪小说| 老司机午夜十八禁免费视频| www日本在线高清视频| 亚洲av综合色区一区| 色94色欧美一区二区| 国产男人的电影天堂91| 一级黄片播放器| 国产欧美亚洲国产| 中文精品一卡2卡3卡4更新| 亚洲欧美精品综合一区二区三区| 91精品三级在线观看| 国产成人一区二区三区免费视频网站 | 日本av手机在线免费观看| 午夜福利视频在线观看免费| 亚洲精品自拍成人| 国精品久久久久久国模美| 欧美av亚洲av综合av国产av| 久久久亚洲精品成人影院| 啦啦啦视频在线资源免费观看| 国产又爽黄色视频| 男的添女的下面高潮视频| 亚洲av电影在线观看一区二区三区| 成人国产一区最新在线观看 | 一本大道久久a久久精品| 午夜免费观看性视频| bbb黄色大片| 一边摸一边抽搐一进一出视频| 国产不卡av网站在线观看| 免费高清在线观看视频在线观看| 精品少妇内射三级| 在线观看一区二区三区激情| 18在线观看网站| 丁香六月欧美| 久久精品熟女亚洲av麻豆精品| 婷婷色综合大香蕉| 色婷婷久久久亚洲欧美| 热99久久久久精品小说推荐| 精品熟女少妇八av免费久了| 老司机亚洲免费影院| 久久av网站| 自拍欧美九色日韩亚洲蝌蚪91| 老司机靠b影院| 天天操日日干夜夜撸| av在线播放精品| 久久国产精品男人的天堂亚洲| 在线观看免费日韩欧美大片| 日韩免费高清中文字幕av| 黄片小视频在线播放| 日韩制服骚丝袜av| 国产黄色视频一区二区在线观看| 看十八女毛片水多多多| 十分钟在线观看高清视频www| 午夜两性在线视频| 国产av精品麻豆| av天堂久久9| 久久精品国产a三级三级三级| 亚洲精品日韩在线中文字幕| 亚洲色图综合在线观看| 国产精品久久久av美女十八| 十八禁人妻一区二区| 日韩免费高清中文字幕av| 国产午夜精品一二区理论片| 亚洲av成人精品一二三区| 九色亚洲精品在线播放| 视频区欧美日本亚洲| 久久久久视频综合| 国产亚洲av高清不卡| 亚洲av电影在线进入| 中文字幕最新亚洲高清| 天天躁狠狠躁夜夜躁狠狠躁| 18在线观看网站| 婷婷色综合www| 亚洲精品美女久久久久99蜜臀 | 亚洲av在线观看美女高潮| 天天躁夜夜躁狠狠久久av| 在线观看免费高清a一片| 80岁老熟妇乱子伦牲交| 久久精品久久久久久噜噜老黄| 一二三四在线观看免费中文在| 国产av精品麻豆| 色视频在线一区二区三区| avwww免费| 亚洲av男天堂| 丝袜在线中文字幕| 视频在线观看一区二区三区| 一区二区三区四区激情视频| 另类亚洲欧美激情| 各种免费的搞黄视频| 欧美亚洲日本最大视频资源| 亚洲精品自拍成人| 国产在视频线精品| 欧美激情 高清一区二区三区| 日韩大片免费观看网站| 午夜两性在线视频| 亚洲七黄色美女视频| 日日摸夜夜添夜夜爱| 另类亚洲欧美激情| 欧美精品一区二区免费开放| 成人国产av品久久久| 免费高清在线观看视频在线观看| av国产久精品久网站免费入址| 亚洲,欧美,日韩| 国产亚洲午夜精品一区二区久久| 乱人伦中国视频| 午夜av观看不卡| 久久久久国产精品人妻一区二区| 中文字幕另类日韩欧美亚洲嫩草| xxxhd国产人妻xxx| 亚洲视频免费观看视频| 色综合欧美亚洲国产小说| 999久久久国产精品视频| 国产精品偷伦视频观看了| 国产片特级美女逼逼视频| 久久精品人人爽人人爽视色| 国产亚洲午夜精品一区二区久久| 精品亚洲成国产av| 亚洲欧美成人综合另类久久久| 一区二区三区激情视频| 永久免费av网站大全| 亚洲欧美清纯卡通| 成人免费观看视频高清| 亚洲情色 制服丝袜| 欧美黑人精品巨大| 可以免费在线观看a视频的电影网站| 婷婷成人精品国产| 丝袜人妻中文字幕| 97精品久久久久久久久久精品| 天天操日日干夜夜撸| 99国产精品一区二区三区| 99国产综合亚洲精品| 亚洲,一卡二卡三卡| 亚洲第一青青草原| 免费av中文字幕在线| 中文字幕亚洲精品专区| 国产免费福利视频在线观看| 国产视频首页在线观看| 国产视频一区二区在线看| 亚洲av美国av| 汤姆久久久久久久影院中文字幕| 高清欧美精品videossex| 91精品三级在线观看| 少妇的丰满在线观看| 日韩 亚洲 欧美在线| 晚上一个人看的免费电影| 久久国产精品男人的天堂亚洲| 波野结衣二区三区在线| 99热网站在线观看| 欧美亚洲日本最大视频资源| 亚洲一码二码三码区别大吗| 亚洲欧美清纯卡通| 老司机影院毛片| 色播在线永久视频| 欧美激情极品国产一区二区三区| 亚洲 欧美一区二区三区| 欧美人与善性xxx| 久久久久久久久免费视频了| 1024香蕉在线观看| 精品一区在线观看国产| 成人午夜精彩视频在线观看| 多毛熟女@视频| 午夜福利视频在线观看免费| 国产97色在线日韩免费| 人人妻,人人澡人人爽秒播 | 免费在线观看日本一区| 人妻一区二区av| 亚洲国产精品一区三区| 久久天堂一区二区三区四区| 欧美国产精品一级二级三级| 国产真人三级小视频在线观看| 成人国语在线视频| 男女午夜视频在线观看| 日本wwww免费看| 晚上一个人看的免费电影| 99精品久久久久人妻精品| 久久久久久人人人人人| 超色免费av| 激情视频va一区二区三区| 欧美亚洲 丝袜 人妻 在线| 一边摸一边做爽爽视频免费| 交换朋友夫妻互换小说| 91精品国产国语对白视频| 国产精品九九99| 91精品国产国语对白视频| 久久久国产精品麻豆| 色播在线永久视频| 色网站视频免费| 超碰成人久久| 大话2 男鬼变身卡| 下体分泌物呈黄色| 色精品久久人妻99蜜桃| 手机成人av网站| 国产成人精品久久二区二区91| 美女国产高潮福利片在线看| 亚洲一码二码三码区别大吗| 成年人午夜在线观看视频| 一级片免费观看大全| 精品少妇一区二区三区视频日本电影| 久久久亚洲精品成人影院| 建设人人有责人人尽责人人享有的| 在线观看免费日韩欧美大片| 在线观看www视频免费| 亚洲精品日韩在线中文字幕| 国产视频一区二区在线看| 国产黄频视频在线观看| 精品国产超薄肉色丝袜足j| 欧美成狂野欧美在线观看| 亚洲精品国产区一区二| 香蕉国产在线看| 国产成人欧美| 视频区图区小说| 午夜免费成人在线视频| 首页视频小说图片口味搜索 | 国产成人欧美在线观看 | 亚洲成色77777| 一区二区三区乱码不卡18| 少妇裸体淫交视频免费看高清 | 免费黄频网站在线观看国产| 国产一区亚洲一区在线观看| 久久狼人影院| 2018国产大陆天天弄谢| av视频免费观看在线观看| 精品第一国产精品| 久久久久精品人妻al黑| 国产av国产精品国产| 国产精品一区二区在线观看99| 欧美日韩国产mv在线观看视频| 中文字幕另类日韩欧美亚洲嫩草| 亚洲精品国产av成人精品| 亚洲欧美一区二区三区黑人| 午夜激情av网站| 又大又爽又粗| 久久精品久久久久久久性| 免费观看a级毛片全部| 丝瓜视频免费看黄片| 亚洲av男天堂| 天天影视国产精品| 免费av中文字幕在线| 欧美黑人欧美精品刺激| 国产免费视频播放在线视频| 人体艺术视频欧美日本| 亚洲一区中文字幕在线| 又大又爽又粗| 老司机靠b影院| 精品久久久久久电影网| 免费少妇av软件| 丰满人妻熟妇乱又伦精品不卡| 亚洲男人天堂网一区| 日日摸夜夜添夜夜爱| 99国产综合亚洲精品| 亚洲午夜精品一区,二区,三区| 丝袜人妻中文字幕| 免费在线观看影片大全网站 | 啦啦啦视频在线资源免费观看| 性高湖久久久久久久久免费观看| 欧美人与性动交α欧美软件| 美女大奶头黄色视频| 性色av一级| 精品久久久久久电影网| 美女中出高潮动态图| 亚洲av电影在线观看一区二区三区| 久久鲁丝午夜福利片| 一区二区三区乱码不卡18| 亚洲国产欧美一区二区综合| 亚洲精品国产区一区二| 日本一区二区免费在线视频| 国产野战对白在线观看| 夫妻午夜视频| 亚洲国产日韩一区二区| 中文字幕精品免费在线观看视频| 国产成人精品在线电影|