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

    基于分片復(fù)用的多版本容器鏡像加載方法*

    2020-09-23 07:33:04陸志剛徐繼偉
    軟件學(xué)報 2020年6期
    關(guān)鍵詞:變化率鏡像決策樹

    陸志剛 , 徐繼偉 , 黃 濤

    1(中國科學(xué)院 軟件研究所 軟件工程技術(shù)中心,北京 100190)2(計算機科學(xué)國家重點實驗室(中國科學(xué)院 軟件研究所),北京 100190)3(中國科學(xué)院大學(xué),北京 100190)

    容器(container)技術(shù)已經(jīng)成為一種被廣泛認可的服務(wù)器資源共享技術(shù)[1].與虛擬機相比,容器具有輕量級的特點,其快速啟動、低系統(tǒng)資源消耗等優(yōu)點使容器技術(shù)在彈性云平臺和自動運維系統(tǒng)方面有著很好的應(yīng)用前景.國內(nèi)外主流云平臺(如亞馬遜AWS、阿里云等)都相繼開始支持Docker 容器部署,各大、中、小型企業(yè)數(shù)據(jù)中心也正致力于采用Docker 容器進行應(yīng)用部署.Docker 容器將應(yīng)用封裝到鏡像(image)中,通過運行鏡像創(chuàng)建應(yīng)用實例.由于鏡像在鏡像庫(repository)中集中存儲,將鏡像從集中存儲加載到本地的過程需要耗費大量的時間,這將導(dǎo)致鏡像實例創(chuàng)建時間由毫秒級延遲為分鐘級,嚴重制約了應(yīng)用在面對突發(fā)高負載時的處理能力,影響應(yīng)用服務(wù)質(zhì)量.雖然Docker 鏡像采用了分層加載的機制,但是由于受到應(yīng)用版本多樣性等因素影響,在不同應(yīng)用版本鏡像之間依然存在重復(fù)存儲和重復(fù)加載的現(xiàn)象.復(fù)用已加載的數(shù)據(jù)可以有效提高鏡像加載速度,對提高應(yīng)用的彈性擴展能力具有重要意義.

    重復(fù)數(shù)據(jù)查找技術(shù)是數(shù)據(jù)去冗余中的一種常用技術(shù),廣泛應(yīng)用于數(shù)據(jù)存儲和數(shù)據(jù)遷移中[2,3],其核心思想是基于內(nèi)容尋址進行數(shù)據(jù)分片復(fù)用.將數(shù)據(jù)去冗余技術(shù)應(yīng)用到容器鏡像存儲和加載過程,可以有效提高容器鏡像存儲設(shè)備利用率、提高容器鏡像加載速度.充分利用舊版本鏡像中的相同數(shù)據(jù),可以有效提高新版本鏡像的加載速度.

    本文分析了Docker 容器鏡像分層存儲和加載機制,提出了一種基于分片復(fù)用的容器鏡像加載方法.方法通過增加元數(shù)據(jù)信息實現(xiàn)對鏡像數(shù)據(jù)的有效組織,使已有鏡像數(shù)據(jù)具有可復(fù)用性,從而達到提高鏡像加載效率的目的.本文的貢獻如下:

    (1) 首次提出了多版本容器鏡像加載過程中存在數(shù)據(jù)重復(fù)加載問題,并對其產(chǎn)生原因進行分析,指出原生加載策略存在的不足;

    (2) 提出一種基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像數(shù)據(jù)分片復(fù)用方法,有效復(fù)用不同版本容器鏡像的相同數(shù)據(jù),降低鏡像加載過程中的網(wǎng)絡(luò)傳輸數(shù)據(jù)量,提高鏡像加載效率;

    (3) 分析鏡像加載策略,針對不同場景下的鏡像加載需求,自動選擇最優(yōu)的鏡像加載策略,減少不必要的操作開銷;

    (4) 采用模擬實驗,通過設(shè)置不同實驗參數(shù)進行多組實驗,驗證本文提出方法的有效性.

    本文第1 節(jié)介紹本文的研究背景和研究動機,主要介紹Docker 容器和鏡像的組成結(jié)構(gòu),分析Docker 鏡像加載過程中存在的問題.第2 節(jié)提出一種基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像加載方法,減少鏡像加載過程中的網(wǎng)絡(luò)傳輸.第3 節(jié)通過實驗驗證本文提出方法的有效性和可行性.第4 節(jié)系統(tǒng)地總結(jié)和分析對比相關(guān)工作.第5 節(jié)對本文工作進行總結(jié).

    1 研究背景與動機

    1.1 Docker容器及鏡像

    容器是一種進程級虛擬化方案,容器鏡像用于容器的數(shù)據(jù)存儲并可以被實例化為容器實例.容器實例在運行過程中會復(fù)用主機的操作系統(tǒng)內(nèi)核,因此,容器鏡像只負責(zé)封裝操作系統(tǒng)庫文件、中間件、應(yīng)用及其配置等內(nèi)容.為了提高存儲和加載效率,Docker 鏡像由一組只讀的文件層組成,每個文件層均為一個單獨的文件系統(tǒng).在鏡像實例化過程中,不同文件層按順序疊加組成了容器實例的根文件系統(tǒng)[4].如圖1 所示,以Ubuntu 17.04 容器鏡像為例,該鏡像包含5 個不同的文件層,每層所包含內(nèi)容為該層文件與上層文件的差異.Docker 鏡像在實例化時,所有的鏡像文件層設(shè)為只讀層,在鏡像文件層上面添加一個可讀寫的層,該層通常被稱為容器層.容器實例運行過程中,所有的文件系統(tǒng)修改操作(如寫文件、修改文件、刪除文件等)均發(fā)生在容器層.

    Docker 容器和Docker 鏡像的最大區(qū)別,就在于最上層的這個可讀寫的文件層.當容器刪除時,最上層的容器層會隨之刪除,而鏡像文件層則不受影響.由于每個容器有不同的容器層并且對于容器的修改都存儲于相應(yīng)的容器層當中,多個容器可以通過共享的方式訪問相同的鏡像文件層,同時具有自己的數(shù)據(jù)狀態(tài).Docker 存儲驅(qū)動采用寫時復(fù)制(copy-on-write)技術(shù)實現(xiàn)上述功能.Docker 容器通過特定的操作可以轉(zhuǎn)化為新的鏡像,即:將可寫的容器層設(shè)為鏡像的最上層,并將其狀態(tài)置為只讀狀態(tài).

    由此可見,鏡像和容器的相互轉(zhuǎn)化關(guān)系是,容器可以直接轉(zhuǎn)化為鏡像,而鏡像不能直接轉(zhuǎn)化為容器,只能通過在最上層添加一個可讀寫文件層實例化為容器.

    Fig.1 Docker container layers圖1 Docker 容器文件層

    1.2 鏡像存儲與加載過程中存在的問題

    在分布式環(huán)境中,同一鏡像對應(yīng)的容器實例會運行在不同的主機上,Docker 采用服務(wù)器/客戶端的模式來存儲和分發(fā)鏡像.用戶一般采用Docker 鏡像庫(docker registry)來集中存儲鏡像.Docker 鏡像庫是Docker 生態(tài)系統(tǒng)中的重要組件,是一個存儲和內(nèi)容分發(fā)系統(tǒng),存儲已命名的鏡像和用不同tag 標記的可用版本.

    鏡像加載是指鏡像從鏡像庫加載到運行主機的過程.由于Docker 鏡像具有分層的特性,且每層均以該層哈希值命名,在加載過程中,只需加載對應(yīng)哈希值不存在的文件層.Docker 鏡像加載過程可分為以下幾步:1.客戶端將鏡像名稱和版本號發(fā)送到相應(yīng)的鏡像庫服務(wù)器;2.服務(wù)器根據(jù)名稱和版本號查找對應(yīng)的鏡像,并將組成該鏡像的不同文件層的相關(guān)信息(如哈希值)返回客戶端;3.客戶端根據(jù)服務(wù)器返回的文件層信息,在本地查找相同文件層;4.如果客戶端在本地沒有找到某文件層,則向服務(wù)器發(fā)送加載該文件層請求;5.服務(wù)器端通過網(wǎng)絡(luò)將步驟4 中請求的文件層發(fā)送到客戶端;6.客戶端根據(jù)步驟2 中返回的信息將各文件層組織為鏡像.因此,Docker 鏡像加載本身是一種文件層去冗余的加載過程.圖2 所示為Vote App 從1.0.0 版本升級為1.1.0 版本過程,其中,L1~L4 文件層均沒有發(fā)生變化,而L5 文件層發(fā)生變化.

    Fig.2 Docker image update diagram圖2 Docker 鏡像升級示意圖

    按照鏡像加載策略,在升級過程中,L1~L4 文件層不需要重新加載,而L5 文件層需要全部重新加載.L5 文件層數(shù)據(jù)量大小約占整個鏡像的47%,而兩個版本的數(shù)據(jù)改變量不到1%.于是,我們可以得出一個結(jié)論:雖然當前的鏡像加載方式采用了去冗余加載的策略,但是在特定的情況下,仍然需要加載大量冗余數(shù)據(jù).主要原因是:當前去冗余加載是以文件層為粒度進行去冗余,而更細粒度的數(shù)據(jù)情況改變無法獲得.Docker 設(shè)計者的本意是鼓勵用戶盡量將應(yīng)用微服務(wù)化,減少每個Docker 容器數(shù)據(jù)量,然而在實際使用過程中,大量應(yīng)用開發(fā)者仍按照舊有思路開發(fā)應(yīng)用,使應(yīng)用對應(yīng)的鏡像文件層數(shù)據(jù)量不斷變大.近年來,隨著DevOps 技術(shù)的不斷發(fā)展和進步,應(yīng)用開發(fā)速度和升級頻率逐漸加快,每天10 次的應(yīng)用發(fā)布頻率已成為很多互聯(lián)網(wǎng)公司的標準配置.因此,在基于Docker 的應(yīng)用部署架構(gòu)中,減少應(yīng)用更新時的網(wǎng)絡(luò)數(shù)據(jù)傳輸量可以加快應(yīng)用更新速度、提高服務(wù)質(zhì)量.

    綜上可知,Docker 鏡像升級過程中可能存在大量數(shù)據(jù)重復(fù)加載的問題,解決這個問題對提升服務(wù)質(zhì)量具有重要意義.

    2 基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像數(shù)據(jù)分片復(fù)用加載方法

    本文的工作目標是:通過復(fù)用重復(fù)數(shù)據(jù)來降低鏡像加載過程時間消耗,提高鏡像加載效率.為達到這個目的,我們首先需要發(fā)現(xiàn)并識別鏡像中的重復(fù)數(shù)據(jù).重復(fù)數(shù)據(jù)識別可包括數(shù)據(jù)塊級重復(fù)數(shù)據(jù)識別[5]和文件級重復(fù)數(shù)據(jù)識別[6],其主要區(qū)別在于:數(shù)據(jù)塊級重復(fù)數(shù)據(jù)識別需要對數(shù)據(jù)進行細粒度切分后再進行比較,而文件級重復(fù)數(shù)據(jù)識別則直接對文件進行比較.因而數(shù)據(jù)塊級重復(fù)數(shù)據(jù)識別更加適用于數(shù)據(jù)流和少量變化頻繁的大文件,而文件級重復(fù)數(shù)據(jù)識別則適用于小文件或變化較少的大文件.容器鏡像加載過程中鏡像文件層以一個整體進行流式傳輸,因此本文中采用數(shù)據(jù)塊級重復(fù)數(shù)據(jù)識別方法.重復(fù)數(shù)據(jù)識別方法原理見公式(1).

    已知存在數(shù)據(jù)塊哈希值集合S,對于任意數(shù)據(jù)塊b,其哈希值h=H(b),則有:

    其中,輸出結(jié)果1 代表數(shù)據(jù)塊為重復(fù)數(shù)據(jù);輸出結(jié)果0 代表數(shù)據(jù)塊為非重復(fù)數(shù)據(jù)塊.此時,則有:

    下面,我們將具體介紹方法細節(jié).

    2.1 邊界匹配數(shù)據(jù)塊切分

    如圖3(a)所示:由于存在對文件層數(shù)據(jù)的插入、修改、刪除等操作,會導(dǎo)致邊界漂移問題的出現(xiàn)[7],固定長度分塊算法無法滿足準確切分冗余數(shù)據(jù)塊的需求.為此,我們需要一種能夠有效識別數(shù)據(jù)塊邊界的可變長度數(shù)據(jù)塊切分方法,如圖3(b)所示.為實現(xiàn)上述目標,我們首先采用一種與邊界相關(guān)的指紋算法計算滑動窗口內(nèi)數(shù)據(jù)指紋,再通過特定條件加以遴選,確定邊界符合條件的數(shù)據(jù)塊.

    Fig.3 Data chunking diagram圖3 數(shù)據(jù)塊切分示意圖

    本文中我們采用Rabin 指紋算法[8].Rabin 指紋算法是一種邊界相關(guān)的指紋算法,其實現(xiàn)如下:給定n位的數(shù)據(jù)m0,m1,…,mn-1,我們將其視作在有限域上度為n-1 的多項式:

    選擇一個度為k的不可約多項式p(x),數(shù)據(jù)指紋通過公式(3)計算:

    給定整數(shù)m,n,若滿足公式(4),則視為滿足邊界條件:

    基于邊界匹配的數(shù)據(jù)塊切分方法如圖4 所示.我們假定滑動大小為W,移動步長為s,最大數(shù)據(jù)塊大小為M.從位置0 開始,通過公式(4)判斷滑動窗口內(nèi)數(shù)據(jù)[0,W]是否滿足邊界條件:若滿足,則將進行切分;若不滿足,則按步長移動滑動窗口至新位置ns,直至滑動窗口內(nèi)數(shù)據(jù)滿足邊界條件,則將[0,ns]數(shù)據(jù)和[ns,ns+W]數(shù)據(jù)分別切分為數(shù)據(jù)塊.移動步長超過最大數(shù)據(jù)塊大小M,則將[0,M]數(shù)據(jù)切分為數(shù)據(jù)塊,并將位置M重置為起始位置0.

    Fig.4 Boundary matching based chunking method diagram圖4 基于邊界匹配的數(shù)據(jù)塊切分方法示意圖

    2.2 B-樹數(shù)據(jù)指紋搜索

    我們通過比較數(shù)據(jù)塊指紋是否相同,來判斷數(shù)據(jù)塊是否為重復(fù)數(shù)據(jù).由于Rabin 指紋算法散列值的空間較小,容易產(chǎn)生哈希沖突,為避免哈希沖突,我們使用SHA-1 算法重新計算每個數(shù)據(jù)塊的指紋,并將該數(shù)據(jù)塊對應(yīng)指紋存儲到指紋庫中.容器鏡像切分后將產(chǎn)生大量數(shù)據(jù)指紋,以數(shù)據(jù)塊平均大小為4KB 計算,1TB 鏡像數(shù)據(jù)切分后,將產(chǎn)生2.7×108條數(shù)據(jù).在數(shù)據(jù)條目多的情況下,散列表將出現(xiàn)大量哈希沖突,嚴重影響搜索效率.因此,我們選擇搜索復(fù)雜度為O[log2N]的B-樹結(jié)構(gòu)進行存儲.另外,散列表的一般利用率約為50%,由于指紋庫數(shù)據(jù)量較大,會浪費大量的存儲空間.

    B-樹是平衡多路查找樹.樹節(jié)點結(jié)構(gòu)設(shè)計如圖5 所示,節(jié)點記錄了數(shù)據(jù)塊對應(yīng)的SHA-1 值、數(shù)據(jù)塊存儲的物理地址(physical address)、數(shù)據(jù)塊相對于物理地址的偏移量(offset)和數(shù)據(jù)塊長度等信息(length).其中,SHA-1值作為節(jié)點的關(guān)鍵字(key),用于數(shù)據(jù)指紋的查找和比對.一棵m階的B-樹中,每個結(jié)點最多含有m個子節(jié)點(m≥2),除根結(jié)點和葉子結(jié)點外,其他每個結(jié)點至少有[m-2]個孩子,每個非葉子結(jié)點中包含有n個關(guān)鍵字信息和n+1 個指針信息:(n,P0,P1,K1,…,Pn,Kn).其中,([m/2]-1)≤n≤(m-1);Ki(i=1,…,n)為關(guān)鍵字,且滿足Ki~1<Ki;Pi為指向子樹指針,且指針Pi~1指向子樹所有結(jié)點的關(guān)鍵字均小于Ki,大于Ki~1.

    Fig.5 Information of B-tree node圖5 B-樹節(jié)點信息

    由于指紋數(shù)據(jù)量大,無法全部加載到內(nèi)存中,降低指紋搜索復(fù)雜度可以有效減少磁盤I/O,提高搜索效率.我們?nèi)〉脭?shù)據(jù)塊指紋之后,在基于B-樹的指紋庫中進行搜索,其搜索過程等價于在指紋全集中做一次二分查找.查找過程中,如果指紋存在,則該數(shù)據(jù)塊為重復(fù)數(shù)據(jù)塊,可不用重復(fù)加載;如果指紋不存在,則該數(shù)據(jù)塊為非重復(fù)數(shù)據(jù)塊,需要進行加載.

    2.3 策略決策

    對鏡像數(shù)據(jù)進行分片處理,可以降低重復(fù)數(shù)據(jù)加載.但同時,由于增加了一些額外的系統(tǒng)開銷(如數(shù)據(jù)塊切分、指紋計算、指紋搜索等),這在一定程度上可能會影響系統(tǒng)效率[9].考慮兩種極端情況:一是當重復(fù)數(shù)據(jù)為0的情況,系統(tǒng)非但沒有達到減少數(shù)據(jù)加載量的目的,還白白增加了額外系統(tǒng)開銷;二是當重復(fù)數(shù)據(jù)為100%的情況下,額外系統(tǒng)開銷沒有發(fā)生變化,而網(wǎng)絡(luò)數(shù)據(jù)傳輸量則減少為0.大多數(shù)時候系統(tǒng)處于這兩種極端情況之間,因此我們需要在基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像數(shù)據(jù)分片復(fù)用加載方法和原生鏡像加載方法之間做權(quán)衡.

    我們就利用決策樹對鏡像加載方法進行選擇.容器鏡像集中存儲在容器庫(repository)中,宿主機發(fā)送鏡像加載請求后,鏡像庫服務(wù)器根據(jù)請求內(nèi)容進行反饋.為應(yīng)用本文提出的方法,我們對傳統(tǒng)的鏡像加載流程進行改造,如圖6 所示.在宿主機和鏡像庫服務(wù)器上分別放置一個Agent 用于監(jiān)測和計算系統(tǒng)當前各資源使用狀態(tài)和鏡像情況等信息,用于作為決策樹判斷的依據(jù).發(fā)起請求時,宿主機將Agent 收集到的信息一并發(fā)送至鏡像庫服務(wù)器,鏡像庫服務(wù)器將宿主機發(fā)送來的信息和本機Agent 上收集的信息發(fā)送給決策樹,由決策樹判定采用何種加載方法.確定之后,系統(tǒng)將根據(jù)所確定的方法傳輸相應(yīng)的數(shù)據(jù)到宿主機,宿主機根據(jù)接收到的數(shù)據(jù)類型重組鏡像,從而完成整個加載流程.

    Fig.6 Decision tree based image load diagram圖6 基于決策樹的鏡像加載示意圖

    決策樹構(gòu)建需要選擇對加載過程產(chǎn)生影響的因子作為特征值,我們從以下幾個方面選取.

    1)數(shù)據(jù)方面.數(shù)據(jù)方面影響因子包括數(shù)據(jù)大小(S)和去冗余率(r),鏡像加載過程中的網(wǎng)絡(luò)傳輸數(shù)據(jù)量可以根據(jù)以上兩個因子計算得出;

    2)網(wǎng)絡(luò)方面.鏡像通過網(wǎng)絡(luò)從鏡像庫加載到宿主機,因此選取網(wǎng)絡(luò)傳輸速度(ns)作為決策樹特征值;

    3)磁盤方面.鏡像庫磁盤讀取速度(R)和宿主機端磁盤寫速度(W)影響鏡像數(shù)據(jù)加載過程,因此選擇這兩個屬性作為特征值;

    4)內(nèi)存方面.鏡像傳輸和B-樹查找都是內(nèi)存密集型運算,我們使用可用內(nèi)存大小(Ma)和指紋庫數(shù)據(jù)大小(A)之間的比值作為決策樹特征值;

    5)CPU 方面.CPU 在數(shù)據(jù)塊指紋計算方面發(fā)揮重要作用,直接影響加載效率,因此選擇CPU 利用率、payload 和real-time 這3 個指標作為特征值;

    6)其他方面.在分布式系統(tǒng)中,系統(tǒng)負載經(jīng)常發(fā)生變化,因此我們需要加以考慮.由于系統(tǒng)負載難以刻畫,而系統(tǒng)負載通常隨時間變化產(chǎn)生周期性變化,因此我們采用時間(t)作為特征值.

    假設(shè)訓(xùn)練決策樹的樣本數(shù)據(jù)集為D,決策樹的輸出有兩種,分別為基于重復(fù)數(shù)據(jù)刪除的鏡像加載和原生鏡像加載方法.在構(gòu)建決策樹時,選擇某個特征值作為樹的節(jié)點.根據(jù)信息論,計算出該數(shù)據(jù)中的信息熵:

    其中,Pi表示類別為i樣本數(shù)量占所有樣本的比例.在特征A作用下的信息熵計算公式如下:

    其中,k表示樣本D分為k個部分.數(shù)據(jù)集D在特征A的作用下信息熵減少的值為信息增益,計算公式如下:

    利用訓(xùn)練樣本數(shù)據(jù)集,根據(jù)上述公式即可構(gòu)建決策樹.

    2.4 方法開銷

    我們在原生方法的基礎(chǔ)上增加了數(shù)據(jù)塊級別重復(fù)數(shù)據(jù)刪除方法和基于決策樹的策略決策方法,因此相比原生方法會產(chǎn)生額外的開銷.本節(jié)我們分別分析兩種方法對系統(tǒng)性能產(chǎn)生的影響.

    數(shù)據(jù)塊級別重復(fù)數(shù)據(jù)刪除方法主要由3 個子任務(wù)構(gòu)成.

    1)數(shù)據(jù)分塊及指紋計算.將鏡像劃分為不同數(shù)據(jù)塊并計算數(shù)據(jù)塊指紋.該操作為CPU 敏感型操作,在服務(wù)器和客戶端分別執(zhí)行;

    2)數(shù)據(jù)塊指紋查找.在指紋庫中查找數(shù)據(jù)塊指紋及數(shù)據(jù)塊存儲地址,用于判斷該數(shù)據(jù)塊是否已存在和確定數(shù)據(jù)塊的讀取位置.該操作為內(nèi)存敏感型操作,在服務(wù)器和客戶端分別執(zhí)行.由于服務(wù)器端指紋庫遠大于客戶端指紋庫,因此資源消耗更多;

    3)網(wǎng)絡(luò)傳輸.將數(shù)據(jù)從服務(wù)器發(fā)送到客戶端,該操作為網(wǎng)絡(luò)敏感型操作.由于只需要發(fā)送發(fā)生變化的數(shù)據(jù)塊,相比鏡像整體傳輸網(wǎng)絡(luò)資源占用會變小.

    從以上分析中可以看出:采用數(shù)據(jù)塊級別重復(fù)數(shù)據(jù)刪除方法進行鏡像加載,在降低網(wǎng)絡(luò)負擔的同時增加了額外的操作.本文中,我們主要關(guān)注任務(wù)的完成時間,所以我們從任務(wù)時間成本出發(fā),提出了基于決策樹的策略決策方法,用于對特定的鏡像選擇合適的加載策略.

    基于決策樹的策略決策方法的建模過程為離線操作,其開銷不在本文討論范圍內(nèi)之內(nèi).在運行過程中,其主要開銷應(yīng)為Agent 對系統(tǒng)資源使用狀態(tài)監(jiān)測,然而資源監(jiān)控是數(shù)據(jù)中心運維的一項重要功能,系統(tǒng)只需要調(diào)用運維監(jiān)控系統(tǒng)的數(shù)據(jù)即可完成數(shù)據(jù)指標采集.在結(jié)果計算過程中,決策時間為毫秒級,在本文中,我們視為可以忽略.

    3 實驗驗證

    我們在Docker 1.9.1 版本和Docker Register V2 版本上實現(xiàn)了基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像數(shù)據(jù)分片復(fù)用加載方法,本節(jié)我們通過實驗驗證方法的有效性和穩(wěn)定性.

    3.1 實驗設(shè)置

    通過實驗,我們首先驗證邊界匹配數(shù)據(jù)塊切分方法去冗余的有效性,然后將基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像加載方法與原生鏡像加載方法進行對比,最后驗證數(shù)據(jù)規(guī)模不斷擴大情況下方法的穩(wěn)定性.

    實驗中,我們采用5 臺刀片服務(wù)器作為實驗設(shè)備,每臺服務(wù)器擁有兩顆Intel Xeno E5645 CPU,600GB 硬盤和32GB 內(nèi)存.其中,4 臺作為宿主機,一臺作為鏡像庫服務(wù)器.鏡像庫存儲采用10TB 空間的存儲集群.所有設(shè)備通過千兆網(wǎng)絡(luò)設(shè)備進行連接.

    我們從OnceCloud[10]云平臺中選取大小不同(100MB~500MB)的10 種不同類型的鏡像,并通過模擬升級的方式進行獨立演化.針對每個鏡像我們模擬了100 個升級版本,版本間數(shù)據(jù)變化率設(shè)置為0.1%~10%,其中,新增數(shù)據(jù)和修改數(shù)據(jù)比例為1:1.實驗中所涉及的數(shù)據(jù)變化率和重復(fù)數(shù)據(jù)率,均指鏡像最上層文件發(fā)生的數(shù)據(jù)變化.實驗用總數(shù)據(jù)量約為200GB.數(shù)據(jù)塊切分時,滑動窗口大小設(shè)為4KB,移動步長設(shè)為512B,最大數(shù)據(jù)塊大小為8KB.宿主機上采用Device Mapper 作為Docker 存儲驅(qū)動.

    3.2 重復(fù)數(shù)據(jù)識別率

    重復(fù)數(shù)據(jù)識別率是衡量數(shù)據(jù)塊切分方法有效性的重要指標,高重復(fù)數(shù)據(jù)識別率表示數(shù)據(jù)塊切分方法更加有效,在鏡像加載過程中可以更大限度減少網(wǎng)絡(luò)傳輸開銷.我們采用邊界匹配數(shù)據(jù)塊切分方法對實驗數(shù)據(jù)集進行切分并查找重復(fù)數(shù)據(jù),以鏡像類型和數(shù)據(jù)變化率兩個維度對切分結(jié)果進行統(tǒng)計,統(tǒng)計結(jié)果分別如圖7 和圖8所示.

    Fig.7 Real duplication rate vs.deduplication rate圖7 實際重復(fù)數(shù)據(jù)率與重復(fù)數(shù)據(jù)識別率對比

    Fig.8 Relationship between real data change rate and recognition data change rate圖8 實際數(shù)據(jù)變化率與識別數(shù)據(jù)變化率對比

    圖7 所示為按鏡像類型進行統(tǒng)計的結(jié)果,其中,橫軸代表10 個不同類型的版本,縱軸代表冗余數(shù)據(jù)率.圖中黑色圖例(real rate)表示同種鏡像不同版本的真實重復(fù)數(shù)據(jù)率的平均值,白色圖例(dedup rate)表示通過數(shù)據(jù)塊切分后重復(fù)數(shù)據(jù)識別率的平均值.從圖中我們可以看出:真實重復(fù)數(shù)據(jù)率與重復(fù)數(shù)據(jù)識別率的最大相差11.4%(圖中第2 個鏡像),最小為5.3%(圖中第6 個鏡像),平均相差7.6%.這說明邊界匹配數(shù)據(jù)塊切分方法能夠很好的識別重復(fù)數(shù)據(jù),可以有效應(yīng)用于鏡像分片復(fù)用加載.

    圖8 所示為按鏡像數(shù)據(jù)更新率進行統(tǒng)計的結(jié)果,其中,橫軸表示真實數(shù)據(jù)變化率,recognition rate 圖例表示重復(fù)數(shù)據(jù)識別方法識別出的數(shù)據(jù)變化率,diff rate 圖例表示識別數(shù)據(jù)變化率與真實數(shù)據(jù)變化率之間的差值.從圖中我們可以看出:(1) 隨著數(shù)據(jù)變化率不斷增大,識別數(shù)據(jù)變化率也隨之增加,其識別數(shù)據(jù)變化率始終大于真實數(shù)據(jù)變化率,這是因為我們所用的鏡像不存在內(nèi)部重復(fù)數(shù)據(jù)[11],且每次版本更新與之前,版本沒有相同的數(shù)據(jù)塊;(2) 隨著數(shù)據(jù)變化率不斷增大,識別數(shù)據(jù)變化率與真實數(shù)據(jù)變化率之間的差值也在不斷增大.但當數(shù)據(jù)變化率增大到一定程度時,該值變化趨于穩(wěn)定,其波動范圍在6%~8%之間.實驗結(jié)果表明:邊界匹配數(shù)據(jù)塊切分方法能在5.3%~11.4%誤差范圍內(nèi)識別重復(fù)數(shù)據(jù),且受到數(shù)據(jù)變化率的影響較小,證明方法具有較好的有效性和穩(wěn)定性.

    3.3 加載效率

    我們通過實際系統(tǒng)測試對比基于重復(fù)數(shù)據(jù)分片復(fù)用加載方法和原生加載方法的加載效率,實驗結(jié)果以鏡像類型和數(shù)據(jù)變化率兩個維度進行統(tǒng)計,結(jié)果分別如圖9 和圖10 所示.我們將原生加載方法的加載速度作為基準,考察基于重復(fù)數(shù)據(jù)分片復(fù)用加載方法的加載速度與原生加載方法加載速度的比值,即方法的加速比,圖中用Speed Factor 表示.

    Fig.9 Average speed factor of different image types圖9 不同類型鏡像平均加載比

    Fig.10 Relationship between real data change rate and recognition data change rate圖10 實際數(shù)據(jù)變化率與識別數(shù)據(jù)變化率對比

    圖9 所示為不同鏡像類型各版本的平均加速比,其中,橫軸代表10 個不同類型的版本,縱軸代表方法的加速比.從圖中我們可以看出:基于重復(fù)數(shù)據(jù)分片復(fù)用加載方法平均可以提高7X 左右的加載速度,最高平均可提高7.82X 的加載速度,最低平均可提高6.25X 的加載速度.

    圖10 所示為不同鏡像更新率下方法的加速比,其中,橫軸代表不同的鏡像更新率,縱軸代表方法加速比.從圖中我們可以看出:當鏡像更新率小于0.2%時,方法可以達到300X~700X 的加速比;當鏡像更新率在4%左右時,方法可以達到10X 以上的加速比;當鏡像更新率為10%時,方法加速比約為5.8X.方法的加速比隨著鏡像更新率的不斷提高而逐漸減小.這是因為鏡像更新率越高,鏡像不同版本之間的重復(fù)數(shù)據(jù)越少,可復(fù)用的數(shù)據(jù)越少,鏡像加載時通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)就越多.

    實驗結(jié)果表明,基于重復(fù)數(shù)據(jù)分片復(fù)用加載方法可以有效提高鏡像加載效率.

    3.4 指紋查找時間

    在前面的實驗中,我們假設(shè)內(nèi)存足夠大可以加載整個數(shù)據(jù)塊指紋庫,但在實際系統(tǒng)中,數(shù)據(jù)塊指紋庫會隨著鏡像的增多而不斷增大.我們采用SHA-1 散列值作為數(shù)據(jù)塊指紋,每個數(shù)據(jù)塊指紋大小為20B.按平均每個數(shù)據(jù)塊大小為4KB 計算,20GB 非重復(fù)數(shù)據(jù)對應(yīng)的指紋庫大小為100MB.我們通過實驗的方式驗證當可用內(nèi)存大小超出指紋庫大小時,指紋查找的效率.我們將可用內(nèi)存大小設(shè)置為100MB,數(shù)據(jù)塊指紋庫大小從100MB 遞增到500MB.我們選取一個大小為200MB 的容器鏡像的指紋序列(約為5 000 條指紋)進行指紋搜索操作,記錄不同指紋庫大小時查詢操作所需要的時間.

    實驗結(jié)果如圖11 所示,其中,橫軸代表指紋庫大小,縱軸代表查詢操作所需要的時間.當指紋庫大小為100MB,內(nèi)存剛好容納可以所有數(shù)據(jù)指紋時,查詢操作所需要的時間為0.2s.隨著指紋庫逐漸增大,查詢操作所需要的時間也隨之增加.當指紋庫大小為500MB 時,查詢操作所需要的時間約為8s.實驗結(jié)果表明:當可用內(nèi)存大于指紋庫時,指紋查找時間可用忽略不計;但當可用內(nèi)存小于指紋庫時,指紋查找時間顯著增加,可能會影響方法的效率.若指紋查找時間超過分片復(fù)用加載方法所帶來的的時間收益時,本文方法反而會使加載過程變慢.

    Fig.11 Relationship between fingerprint repository size and search time圖11 指紋庫大小與查找時間的關(guān)系

    3.5 策略決策比例

    圖12 所示為實驗過程中經(jīng)過策略決策后所采用的兩種加載方法所占的比例,其中,橫軸代表10 個不同類型的鏡像版本,縱軸代表兩種方法在經(jīng)過決策后所占在比例.圖中黑色圖例代表采用基于重復(fù)數(shù)據(jù)刪除技術(shù)加載方法所占的比例,白色圖例代表采用原生鏡像加載方法所占的比例.從圖中我們可以看出:本文提出的基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像加載方法所占最小的比例約為86.2%,最大比例約為88.8%,平均比例約為87.8%;而原生鏡像加載方法所占最小比例約為11.2%,最大比例約為13.8%,平均比例約為12.2%.

    Fig.12 Ratio of the two loading methods圖12 兩種加載方法所占比例

    實驗結(jié)果表明:本文提出的基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像加載方法可以有效應(yīng)對多版本鏡像升級這一使用場景,提高升級版本鏡像的加載效率.

    4 相關(guān)工作

    如何提高Docker 鏡像加載效率,已成為一個熱點研究問題[12].為解決該問題,研究人員針對不同的場景提出了不同的解決方案.Wang 等人[13]針對大規(guī)模鏡像加載并發(fā)沖突問題,提出了基于P2P 的鏡像加載解決方案.Liang 等人[14]將P2P 加載方法和原生鏡像加載方法相結(jié)合,提出了一種混合鏡像加載方法.基于P2P 的鏡像加載方法充分利用了節(jié)點間的網(wǎng)絡(luò)帶寬,提高了鏡像加速效率.Du 等人[15]使用Ceph 作為共享存儲,利用Ceph 提供的快照克隆等功能,來提高不同節(jié)點之間鏡像加載效率.以上方法提高了特定情況下的鏡像加載效率,但鏡像加載所需要的網(wǎng)絡(luò)數(shù)據(jù)傳輸總量沒有變化.Harter 等人[16]將共享存儲和重復(fù)數(shù)據(jù)刪除技術(shù)相結(jié)合,提出了Slacker平臺.Slacker 基于共享的NFS 文件系統(tǒng),在所有節(jié)點和Registry 之間共享鏡像.這種懶加載方式可以大大提高鏡像加載效率,然而為了便于快照和克隆,Slacker 需要將Docker 鏡像扁平化為單獨一層,這與Docker 方便創(chuàng)建和更新鏡像的設(shè)計理念相沖突.本文僅針對鏡像升級這一特殊卻又廣泛存在的使用場景,提出利用重復(fù)數(shù)據(jù)刪除技術(shù)進行鏡像加載,同時考慮到方法開銷與收益的平衡,又提出利用決策樹進行方法選擇.與上述方法相比,本文方法在鏡像升級這一應(yīng)用場景下,可以有效降低網(wǎng)絡(luò)數(shù)據(jù)傳輸,提高鏡像加載效率.

    重復(fù)數(shù)據(jù)刪除技術(shù)[17,18]本質(zhì)上是一種數(shù)據(jù)壓縮技術(shù),可以用于消除單個或多個數(shù)據(jù)文件中的重復(fù)數(shù)據(jù),保證相同的數(shù)據(jù)只存儲一份,以達到降低存儲空間和傳輸開銷的目的.按照去冗余數(shù)據(jù)單元粒度劃分,可以將去冗余方法分為文件級別去冗余[6]和數(shù)據(jù)塊級別去冗余[18]:文件級別去冗余首先計算文件的哈希值作為文件指紋,然后與指紋庫中的哈希值進行比較判斷文件是否重復(fù);數(shù)據(jù)塊級別去冗余首先將數(shù)據(jù)切分粒度較小的數(shù)據(jù)塊,計算每個數(shù)據(jù)塊的哈希值,與指紋庫中的哈希值進行比較,來判斷數(shù)據(jù)塊是否重復(fù).數(shù)據(jù)塊切分方法可以分為兩種:一種是固定長度切分方法[5,18,19],一種是可變長度切分方法[20-22].本文采用的是可變長度分塊方法.Policroniades 等人[23]對文件哈希、固定長度哈希和可變長度哈希算法進行了比較,實驗結(jié)果顯示,三者對相同大小數(shù)據(jù)進行處理的時間分別為62s,71s 和340s.可見,可變長度切分去冗余將大大提高操作的時間復(fù)雜度.

    重復(fù)數(shù)據(jù)刪除技術(shù)可以應(yīng)用于數(shù)據(jù)備份、數(shù)據(jù)遷移、文件系統(tǒng)管理等多種不同場景.Fu 等人提出的應(yīng)用感知的數(shù)據(jù)去冗余技術(shù)[24]應(yīng)用于云備份服務(wù)中,主要解決數(shù)據(jù)傳輸效率問題.該方法通過特定的索引機制,將全部索引劃分為若干相互獨立且具有典型應(yīng)用特性的組織形式,達到緩解索引查找瓶頸的目的.基于語義的源端重復(fù)數(shù)據(jù)刪除技術(shù)[25]主要用來解決備份中的數(shù)據(jù)量傳輸過高導(dǎo)致備份時間窗口長的問題,該方法通過混合重復(fù)數(shù)據(jù)刪除技術(shù)和語義層冗余數(shù)據(jù)消除技術(shù)來降低備份過程中的數(shù)據(jù)傳輸量.基于Hadoop 重復(fù)數(shù)據(jù)刪除方法[26,27]和基于固態(tài)硬盤的重復(fù)數(shù)據(jù)刪除方法[28]可以用于在特定應(yīng)用場景下加速重復(fù)數(shù)據(jù)刪除過程.Zhang 等人將重復(fù)數(shù)據(jù)刪除技術(shù)應(yīng)用到OpenStack 中,開發(fā)了虛擬機鏡像管理系統(tǒng)IM-dedup[29].該系統(tǒng)采用固定分塊的技術(shù)將虛擬機鏡像切分為大小相等的數(shù)據(jù)塊,通過使用指紋驗證是否重復(fù)數(shù)據(jù)塊的方式,避免冗余數(shù)據(jù)塊通過網(wǎng)絡(luò)進行重復(fù)傳輸;同時,通過部署采用了去冗余技術(shù)的內(nèi)核態(tài)文件系統(tǒng)來降低存儲空間占用.Ng 等人開發(fā)了LiveFS 系統(tǒng)實現(xiàn)鏡像存儲的實時去冗余[30],降低磁盤存儲空間使用.分布式多層次選擇去冗余[31]系統(tǒng)在Inner-VM 去冗余階段實現(xiàn)虛擬機內(nèi)部數(shù)據(jù)塊級重復(fù)數(shù)據(jù)刪除,在Cross-VM 去冗余階段,針對不同類型的操作系統(tǒng)進行分組,對分組內(nèi)的虛擬機鏡像進行去冗余,因而可以利用較小的內(nèi)存空間完成指紋查找過程.Zhang 等人[32-34]將重復(fù)數(shù)據(jù)刪除技術(shù)應(yīng)用于虛擬機遷移過程中,通過數(shù)據(jù)指紋發(fā)現(xiàn)相同內(nèi)存頁,減少遷移內(nèi)存數(shù)據(jù)量.由于需要解決尖峰負載、即時失效、集群維護等問題,數(shù)據(jù)中心可能會面臨虛擬機組遷移(gang migration)的問題.不同宿主機內(nèi)存中可能存在大量相同的內(nèi)存頁,Deshprade 等人提出了集群范圍內(nèi)去冗余方案(GMGD)[35],方法通過一種冗余跟蹤機制對不同虛擬機中的相同內(nèi)存頁進行跟蹤,利用一種分布式協(xié)調(diào)機制阻止相同的數(shù)據(jù)塊通過核心鏈路進行重新發(fā)送.

    5 總結(jié)

    將重復(fù)數(shù)據(jù)刪除技術(shù)用于容器鏡像加載,可以提高容器鏡像加載速度.容器鏡像采用聯(lián)合文件系統(tǒng)技術(shù)實現(xiàn)了可以實現(xiàn)文件層級別的數(shù)據(jù)復(fù)用.由于以文件層為單位進行劃分粒度較粗,無法實現(xiàn)對同一文件層內(nèi)部重復(fù)數(shù)據(jù)的復(fù)用.在鏡像版本升級時,復(fù)用文件層內(nèi)部數(shù)據(jù)可以有效提高鏡像加載效率.我們提出一種基于重復(fù)數(shù)據(jù)刪除技術(shù)的鏡像數(shù)據(jù)分片復(fù)用加載方法提高原生容器鏡像加載過程,利用邊界匹配數(shù)據(jù)塊切分方法和B-樹搜索發(fā)現(xiàn)重復(fù)數(shù)據(jù)塊并加以復(fù)用.由于重復(fù)數(shù)據(jù)刪除技術(shù)需要一定的資源開銷,在實際使用中需要平衡方法的收益與開銷,以達到最優(yōu)效果.為此,我們利用決策樹選擇合適的加載方法.實驗結(jié)果顯示:我們的方法穩(wěn)定有效,可以提高5.8X 以上的鏡像加載速度.在今后的工作中,我們將繼續(xù)優(yōu)化該方法,并在實際系統(tǒng)中檢驗方法的穩(wěn)定性和有效性.

    猜你喜歡
    變化率鏡像決策樹
    基于電流變化率的交流濾波器失諧元件在線辨識方法
    湖南電力(2021年4期)2021-11-05 06:44:42
    鏡像
    當代黨員(2020年20期)2020-11-06 04:17:52
    例談中考題中的變化率問題
    一種針對不均衡數(shù)據(jù)集的SVM決策樹算法
    決策樹和隨機森林方法在管理決策中的應(yīng)用
    電子制作(2018年16期)2018-09-26 03:27:06
    鏡像
    小康(2018年23期)2018-08-23 06:18:52
    基于決策樹的出租車乘客出行目的識別
    利用基波相量變化率的快速選相方法
    川滇地區(qū)地殼應(yīng)變能密度變化率與強震復(fù)發(fā)間隔的數(shù)值模擬
    鏡像
    小康(2015年4期)2015-03-31 14:57:40
    国产欧美日韩一区二区精品| 久久亚洲真实| 哪里可以看免费的av片| 日韩欧美免费精品| 日本一二三区视频观看| 国产成人aa在线观看| 欧美黄色淫秽网站| 蜜桃久久精品国产亚洲av| 国产精品 欧美亚洲| 久久久久精品国产欧美久久久| 午夜福利成人在线免费观看| 91麻豆av在线| 国产精品久久电影中文字幕| 级片在线观看| 国产在线精品亚洲第一网站| 啦啦啦韩国在线观看视频| 亚洲av片天天在线观看| 老司机深夜福利视频在线观看| 免费看光身美女| 国产精品98久久久久久宅男小说| 女同久久另类99精品国产91| 成年女人看的毛片在线观看| 999久久久国产精品视频| 日本免费一区二区三区高清不卡| 一a级毛片在线观看| 俄罗斯特黄特色一大片| 狂野欧美激情性xxxx| 午夜日韩欧美国产| 成年女人看的毛片在线观看| 美女大奶头视频| 亚洲18禁久久av| 狠狠狠狠99中文字幕| 嫩草影院入口| 香蕉国产在线看| 麻豆国产av国片精品| 国产精品美女特级片免费视频播放器 | 亚洲九九香蕉| 免费看十八禁软件| 无人区码免费观看不卡| 91麻豆av在线| 黄色丝袜av网址大全| 国产亚洲欧美98| 老司机午夜福利在线观看视频| 99久久成人亚洲精品观看| 国产精品久久电影中文字幕| 怎么达到女性高潮| 一级毛片女人18水好多| 亚洲av中文字字幕乱码综合| 成人国产综合亚洲| 久久婷婷人人爽人人干人人爱| 色播亚洲综合网| 欧美日韩亚洲国产一区二区在线观看| 黑人巨大精品欧美一区二区mp4| 九九久久精品国产亚洲av麻豆 | 天堂av国产一区二区熟女人妻| av在线蜜桃| 亚洲精品美女久久久久99蜜臀| 禁无遮挡网站| 99国产精品99久久久久| 国产精品久久久av美女十八| 精品免费久久久久久久清纯| 亚洲精品乱码久久久v下载方式 | 国产高清视频在线观看网站| 国产欧美日韩一区二区精品| 亚洲中文日韩欧美视频| 丁香欧美五月| 国产精品 国内视频| 午夜成年电影在线免费观看| 网址你懂的国产日韩在线| 免费观看的影片在线观看| 中文字幕精品亚洲无线码一区| 日韩欧美国产在线观看| 国产精品亚洲美女久久久| av中文乱码字幕在线| 精华霜和精华液先用哪个| 19禁男女啪啪无遮挡网站| 亚洲色图 男人天堂 中文字幕| 国产成人av激情在线播放| 国产极品精品免费视频能看的| 亚洲av美国av| 亚洲国产色片| 亚洲午夜理论影院| 男女下面进入的视频免费午夜| 夜夜爽天天搞| 高潮久久久久久久久久久不卡| 两个人的视频大全免费| 精品国产乱码久久久久久男人| 成年免费大片在线观看| 一个人看视频在线观看www免费 | 午夜免费激情av| 国产高清三级在线| 亚洲精品在线观看二区| 久久中文字幕人妻熟女| 99久久综合精品五月天人人| 一区二区三区激情视频| 免费高清视频大片| 日本撒尿小便嘘嘘汇集6| 韩国av一区二区三区四区| 国产野战对白在线观看| 久久久久久久精品吃奶| 91老司机精品| 午夜免费成人在线视频| 亚洲精华国产精华精| xxx96com| www.自偷自拍.com| 99国产精品一区二区蜜桃av| 亚洲欧美日韩高清在线视频| 日本免费一区二区三区高清不卡| 俄罗斯特黄特色一大片| 国产精品 欧美亚洲| 小说图片视频综合网站| 国产一区在线观看成人免费| 嫩草影院精品99| 亚洲成av人片免费观看| 亚洲av电影不卡..在线观看| 久久人妻av系列| netflix在线观看网站| 亚洲人成网站在线播放欧美日韩| 免费看a级黄色片| 亚洲av免费在线观看| 久久久国产精品麻豆| 日韩高清综合在线| 97超级碰碰碰精品色视频在线观看| 久久久久精品国产欧美久久久| 国产成人精品久久二区二区免费| 亚洲熟女毛片儿| 无遮挡黄片免费观看| 亚洲熟妇熟女久久| 这个男人来自地球电影免费观看| 亚洲av电影不卡..在线观看| 男人和女人高潮做爰伦理| 搡老妇女老女人老熟妇| 欧美黑人巨大hd| 欧美丝袜亚洲另类 | 亚洲第一电影网av| 老熟妇乱子伦视频在线观看| 久久国产乱子伦精品免费另类| 久久中文看片网| 90打野战视频偷拍视频| 欧美成狂野欧美在线观看| 免费在线观看成人毛片| 国内久久婷婷六月综合欲色啪| 成人精品一区二区免费| 日本成人三级电影网站| 国产高潮美女av| 在线永久观看黄色视频| 51午夜福利影视在线观看| 中文字幕精品亚洲无线码一区| 精品国产乱子伦一区二区三区| 国产精品乱码一区二三区的特点| 日韩免费av在线播放| 在线永久观看黄色视频| 91久久精品国产一区二区成人 | 九色国产91popny在线| 欧美一区二区精品小视频在线| 我要搜黄色片| 人妻丰满熟妇av一区二区三区| 久久欧美精品欧美久久欧美| 18美女黄网站色大片免费观看| 中文字幕久久专区| 色噜噜av男人的天堂激情| 一本久久中文字幕| 日韩国内少妇激情av| 午夜免费观看网址| 国产精品亚洲av一区麻豆| 黄色日韩在线| 十八禁网站免费在线| 欧美色欧美亚洲另类二区| 老司机在亚洲福利影院| 亚洲av日韩精品久久久久久密| 欧美成人免费av一区二区三区| 精品国产亚洲在线| 极品教师在线免费播放| 啦啦啦观看免费观看视频高清| 国产av在哪里看| 岛国在线免费视频观看| 99久久成人亚洲精品观看| 亚洲专区中文字幕在线| 亚洲五月天丁香| 脱女人内裤的视频| 男人舔女人下体高潮全视频| 两性夫妻黄色片| 亚洲国产日韩欧美精品在线观看 | 中国美女看黄片| 日日摸夜夜添夜夜添小说| 一级a爱片免费观看的视频| 成年人黄色毛片网站| 亚洲avbb在线观看| 午夜视频精品福利| 国产高清有码在线观看视频| 人人妻人人看人人澡| 美女午夜性视频免费| 免费观看的影片在线观看| 久久久久免费精品人妻一区二区| 黄片小视频在线播放| 欧美色欧美亚洲另类二区| 变态另类成人亚洲欧美熟女| 色综合站精品国产| 午夜久久久久精精品| 男人舔奶头视频| 男女视频在线观看网站免费| 亚洲国产欧美网| 热99在线观看视频| 性欧美人与动物交配| 国产精品亚洲一级av第二区| 一夜夜www| 国产高清三级在线| 久久亚洲精品不卡| 美女高潮的动态| 日本黄色视频三级网站网址| av视频在线观看入口| 啦啦啦韩国在线观看视频| 国产不卡一卡二| 最近在线观看免费完整版| 国产伦一二天堂av在线观看| 长腿黑丝高跟| 天堂影院成人在线观看| 巨乳人妻的诱惑在线观看| 99在线视频只有这里精品首页| 757午夜福利合集在线观看| 99精品欧美一区二区三区四区| 性欧美人与动物交配| 三级国产精品欧美在线观看 | 熟女电影av网| 日日干狠狠操夜夜爽| 精品国内亚洲2022精品成人| 精品国产美女av久久久久小说| 操出白浆在线播放| 亚洲精品在线美女| 精品久久久久久久末码| 99国产精品一区二区三区| 天堂动漫精品| av黄色大香蕉| 国产不卡一卡二| 非洲黑人性xxxx精品又粗又长| 精品不卡国产一区二区三区| 亚洲国产精品成人综合色| 成人欧美大片| 99精品欧美一区二区三区四区| 婷婷丁香在线五月| 国产男靠女视频免费网站| 美女cb高潮喷水在线观看 | 性色avwww在线观看| 国产精品亚洲美女久久久| 长腿黑丝高跟| 亚洲人成网站高清观看| 99久久精品热视频| 熟女少妇亚洲综合色aaa.| 伊人久久大香线蕉亚洲五| 麻豆av在线久日| 中文资源天堂在线| 亚洲无线在线观看| 精品国产乱子伦一区二区三区| 男女下面进入的视频免费午夜| 美女 人体艺术 gogo| 精品不卡国产一区二区三区| 久久亚洲真实| 欧美激情久久久久久爽电影| av在线天堂中文字幕| 怎么达到女性高潮| 久久久久久久久久黄片| 精品一区二区三区四区五区乱码| 999久久久精品免费观看国产| а√天堂www在线а√下载| 高潮久久久久久久久久久不卡| 国产主播在线观看一区二区| e午夜精品久久久久久久| 我的老师免费观看完整版| 母亲3免费完整高清在线观看| 韩国av一区二区三区四区| 老汉色av国产亚洲站长工具| 国产在线精品亚洲第一网站| 久久精品国产清高在天天线| 精品99又大又爽又粗少妇毛片 | 中文在线观看免费www的网站| 欧美av亚洲av综合av国产av| 97超级碰碰碰精品色视频在线观看| 人妻夜夜爽99麻豆av| 麻豆av在线久日| 欧美绝顶高潮抽搐喷水| 听说在线观看完整版免费高清| 99久久成人亚洲精品观看| 搡老岳熟女国产| 精品一区二区三区四区五区乱码| 成人国产一区最新在线观看| 欧美在线一区亚洲| 亚洲av成人精品一区久久| 又紧又爽又黄一区二区| 欧美绝顶高潮抽搐喷水| 色在线成人网| 叶爱在线成人免费视频播放| 校园春色视频在线观看| 成人av一区二区三区在线看| 亚洲国产欧美一区二区综合| 国产1区2区3区精品| 男女下面进入的视频免费午夜| 精品欧美国产一区二区三| 又黄又粗又硬又大视频| 国产私拍福利视频在线观看| 国产成人av教育| 亚洲成人免费电影在线观看| 99国产综合亚洲精品| 99久国产av精品| 熟妇人妻久久中文字幕3abv| 国产精品一及| e午夜精品久久久久久久| 成人特级黄色片久久久久久久| 最近视频中文字幕2019在线8| svipshipincom国产片| 好男人电影高清在线观看| a级毛片在线看网站| 日韩大尺度精品在线看网址| 熟女电影av网| 偷拍熟女少妇极品色| 国产人伦9x9x在线观看| 国内少妇人妻偷人精品xxx网站 | 久久伊人香网站| 精品国产超薄肉色丝袜足j| 丰满人妻一区二区三区视频av | 天堂√8在线中文| 国产亚洲av嫩草精品影院| 怎么达到女性高潮| 2021天堂中文幕一二区在线观| 亚洲av熟女| 精品久久久久久久久久久久久| 精品国产亚洲在线| 黄色视频,在线免费观看| 欧美中文日本在线观看视频| 国语自产精品视频在线第100页| 天天躁狠狠躁夜夜躁狠狠躁| av视频在线观看入口| 九色国产91popny在线| 久久久久久九九精品二区国产| 亚洲性夜色夜夜综合| 国产成人av教育| 老司机深夜福利视频在线观看| 国产私拍福利视频在线观看| 欧洲精品卡2卡3卡4卡5卡区| av欧美777| 精品午夜福利视频在线观看一区| 搡老岳熟女国产| 久久久国产成人精品二区| 九色成人免费人妻av| 亚洲在线自拍视频| 五月玫瑰六月丁香| 国产探花在线观看一区二区| 久久久水蜜桃国产精品网| 中文在线观看免费www的网站| 国产精品av视频在线免费观看| 91麻豆av在线| 日本 av在线| 成熟少妇高潮喷水视频| 久久精品aⅴ一区二区三区四区| 老司机福利观看| 亚洲国产精品sss在线观看| 美女高潮的动态| 亚洲乱码一区二区免费版| 午夜精品在线福利| 成人av一区二区三区在线看| 国产麻豆成人av免费视频| 黄色日韩在线| 我要搜黄色片| 欧美乱色亚洲激情| 免费大片18禁| 99热精品在线国产| 国产精品久久久人人做人人爽| 国产精品 欧美亚洲| 久久精品aⅴ一区二区三区四区| 美女扒开内裤让男人捅视频| 久久精品aⅴ一区二区三区四区| 欧美中文综合在线视频| 久久99热这里只有精品18| 国内久久婷婷六月综合欲色啪| 国产蜜桃级精品一区二区三区| 国产精品 欧美亚洲| 久久婷婷人人爽人人干人人爱| 人妻久久中文字幕网| www日本黄色视频网| 国产亚洲欧美98| 国产av在哪里看| 桃色一区二区三区在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 美女扒开内裤让男人捅视频| 在线永久观看黄色视频| 最近最新中文字幕大全电影3| 午夜免费观看网址| 一级毛片女人18水好多| 欧美性猛交黑人性爽| 少妇的逼水好多| 噜噜噜噜噜久久久久久91| 久久精品国产综合久久久| 欧美性猛交╳xxx乱大交人| 成人永久免费在线观看视频| 亚洲欧美日韩卡通动漫| h日本视频在线播放| 午夜福利在线观看吧| 亚洲专区国产一区二区| 香蕉国产在线看| 成人av一区二区三区在线看| 亚洲人成电影免费在线| 神马国产精品三级电影在线观看| 少妇的丰满在线观看| 中文字幕人成人乱码亚洲影| 色尼玛亚洲综合影院| 宅男免费午夜| 成人一区二区视频在线观看| 国产精品精品国产色婷婷| 两性午夜刺激爽爽歪歪视频在线观看| 69av精品久久久久久| 国产精品99久久99久久久不卡| 国模一区二区三区四区视频 | aaaaa片日本免费| 国产三级在线视频| 校园春色视频在线观看| 美女黄网站色视频| 天堂av国产一区二区熟女人妻| 天天添夜夜摸| 在线十欧美十亚洲十日本专区| 啪啪无遮挡十八禁网站| 精品国产超薄肉色丝袜足j| 国产淫片久久久久久久久 | 国产亚洲精品一区二区www| 久久中文字幕一级| 国产精品国产高清国产av| 啪啪无遮挡十八禁网站| 国产极品精品免费视频能看的| 在线观看免费午夜福利视频| 色在线成人网| 亚洲第一电影网av| 哪里可以看免费的av片| 国产伦在线观看视频一区| 性色av乱码一区二区三区2| 亚洲av五月六月丁香网| 午夜福利视频1000在线观看| 欧美+亚洲+日韩+国产| 久久精品综合一区二区三区| 香蕉久久夜色| 欧美zozozo另类| 国产精品亚洲一级av第二区| 欧美日韩一级在线毛片| 亚洲真实伦在线观看| 婷婷丁香在线五月| 精品乱码久久久久久99久播| 国产伦精品一区二区三区四那| 成在线人永久免费视频| 757午夜福利合集在线观看| 一边摸一边抽搐一进一小说| 国产爱豆传媒在线观看| 久久草成人影院| 久久精品国产亚洲av香蕉五月| 国产aⅴ精品一区二区三区波| www.999成人在线观看| 在线国产一区二区在线| 日日干狠狠操夜夜爽| 一级黄色大片毛片| 熟女人妻精品中文字幕| 亚洲欧美日韩无卡精品| 级片在线观看| 成人特级av手机在线观看| 国产精品亚洲美女久久久| 天天躁日日操中文字幕| 我的老师免费观看完整版| 99久久精品国产亚洲精品| 男女下面进入的视频免费午夜| 两个人看的免费小视频| or卡值多少钱| 网址你懂的国产日韩在线| 午夜精品在线福利| 男女午夜视频在线观看| 黄色丝袜av网址大全| 床上黄色一级片| 国产熟女xx| 免费人成视频x8x8入口观看| 国产极品精品免费视频能看的| 精品无人区乱码1区二区| 国产一区二区在线观看日韩 | 国产午夜精品论理片| 日本 欧美在线| 12—13女人毛片做爰片一| 国产69精品久久久久777片 | 真人做人爱边吃奶动态| 两个人视频免费观看高清| 一区二区三区激情视频| 99久久精品国产亚洲精品| 久久亚洲精品不卡| 一级毛片精品| 最近最新中文字幕大全免费视频| 亚洲熟女毛片儿| 在线免费观看不下载黄p国产 | 成人一区二区视频在线观看| 日本a在线网址| 女同久久另类99精品国产91| 无人区码免费观看不卡| 国产高清激情床上av| 看免费av毛片| 国产伦人伦偷精品视频| 成年女人看的毛片在线观看| 最新在线观看一区二区三区| 国产精品,欧美在线| 一级毛片高清免费大全| 啪啪无遮挡十八禁网站| 国产爱豆传媒在线观看| 精品99又大又爽又粗少妇毛片 | www日本在线高清视频| 男插女下体视频免费在线播放| 欧美又色又爽又黄视频| 午夜成年电影在线免费观看| 久久精品综合一区二区三区| 老司机在亚洲福利影院| 国产美女午夜福利| 久久这里只有精品中国| 一级毛片高清免费大全| 日本 欧美在线| 999久久久国产精品视频| 色av中文字幕| 国产午夜精品久久久久久| 免费在线观看视频国产中文字幕亚洲| 十八禁人妻一区二区| 好男人电影高清在线观看| 美女扒开内裤让男人捅视频| 亚洲精品粉嫩美女一区| 亚洲国产精品合色在线| 亚洲人成电影免费在线| 久久亚洲精品不卡| 小蜜桃在线观看免费完整版高清| 日本 欧美在线| www.自偷自拍.com| 亚洲精品456在线播放app | 久久午夜综合久久蜜桃| 最好的美女福利视频网| 欧美色欧美亚洲另类二区| 亚洲乱码一区二区免费版| 首页视频小说图片口味搜索| 亚洲自拍偷在线| 少妇的丰满在线观看| 美女午夜性视频免费| 成年免费大片在线观看| 韩国av一区二区三区四区| 天堂动漫精品| 看免费av毛片| 国产三级黄色录像| netflix在线观看网站| 日本免费a在线| 搡老熟女国产l中国老女人| 久久中文字幕一级| 亚洲无线观看免费| 叶爱在线成人免费视频播放| 一本综合久久免费| 俄罗斯特黄特色一大片| 好看av亚洲va欧美ⅴa在| 日本免费a在线| 又黄又爽又免费观看的视频| 亚洲国产欧美一区二区综合| 日本成人三级电影网站| 美女cb高潮喷水在线观看 | 夜夜爽天天搞| 国产精品亚洲一级av第二区| 免费观看的影片在线观看| 亚洲成人久久性| 中文字幕精品亚洲无线码一区| 午夜影院日韩av| 欧美日韩亚洲国产一区二区在线观看| 久久婷婷人人爽人人干人人爱| 久久午夜综合久久蜜桃| 天堂√8在线中文| 9191精品国产免费久久| 亚洲欧美一区二区三区黑人| 黄色日韩在线| 国产欧美日韩一区二区精品| 又粗又爽又猛毛片免费看| 国产亚洲欧美98| 男女做爰动态图高潮gif福利片| 黑人欧美特级aaaaaa片| 淫秽高清视频在线观看| 不卡av一区二区三区| 欧美成人一区二区免费高清观看 | 欧美成狂野欧美在线观看| 欧美又色又爽又黄视频| 国产久久久一区二区三区| 国产av不卡久久| 在线十欧美十亚洲十日本专区| 美女cb高潮喷水在线观看 | 国产成人av教育| 国产不卡一卡二| 亚洲av片天天在线观看| 毛片女人毛片| 国内揄拍国产精品人妻在线| 久久久久久久久中文| 美女cb高潮喷水在线观看 | 免费观看精品视频网站| 亚洲国产欧美一区二区综合| 男女午夜视频在线观看| 脱女人内裤的视频| 欧美xxxx黑人xx丫x性爽| 日韩欧美精品v在线| 脱女人内裤的视频| 中国美女看黄片| 美女大奶头视频| 一区二区三区国产精品乱码| a在线观看视频网站| 美女午夜性视频免费| 在线国产一区二区在线| 午夜精品在线福利| 国产精品av视频在线免费观看| 亚洲一区二区三区不卡视频| 欧美成狂野欧美在线观看| 热99在线观看视频| 国产成+人综合+亚洲专区| 一级作爱视频免费观看| 国产精品久久久久久精品电影| 搞女人的毛片| 三级毛片av免费| 中文字幕人妻丝袜一区二区| 国产精品1区2区在线观看.| 国产69精品久久久久777片 |