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

    一種基于RDMA多播機(jī)制的分布式持久性內(nèi)存文件系統(tǒng)

    2021-02-07 02:51:34陳茂棠鄭圣安游理通王晶鈺屠要峰韓銀俊黃林鵬
    計算機(jī)研究與發(fā)展 2021年2期
    關(guān)鍵詞:多播持久性網(wǎng)卡

    陳茂棠 鄭圣安 游理通 王晶鈺 閆 田 屠要峰 韓銀俊 黃林鵬

    1(上海交通大學(xué)計算機(jī)科學(xué)與工程系 上海 200240)2(清華大學(xué)計算機(jī)科學(xué)與技術(shù)系 北京 100084)3(中興通訊股份有限公司 南京 210012)(chenmaotang@sjtu.edu.cn)

    新型的非易失性內(nèi)存(non-volatile memory, NVM)[1-5]技術(shù)的出現(xiàn)為傳統(tǒng)的計算機(jī)存儲結(jié)構(gòu)帶來變革,其中通過內(nèi)存總線連接CPU的NVM形態(tài)也被稱為持久性內(nèi)存(persistent memory, PM).與DRAM相比,持久性內(nèi)存擁有相接近的傳輸帶寬與訪問延遲,但兼具了DRAM不具備的持久性.隨著持久性內(nèi)存的逐漸應(yīng)用,許多研究針對持久性內(nèi)存設(shè)計特異性的文件系統(tǒng),其中大多數(shù)文件系統(tǒng)基于單臺機(jī)器設(shè)計[6-10].但是目前大容量的持久性內(nèi)存價格昂貴,單機(jī)存儲容量難以提高.同時,持久性內(nèi)存運行帶來較高的CPU負(fù)載,單機(jī)大規(guī)模部署持久性內(nèi)存會使CPU成為存儲性能的瓶頸.這些原因使得單機(jī)持久性內(nèi)存文件系統(tǒng)難以滿足日益增長的大規(guī)模數(shù)據(jù)存儲需求,必須開發(fā)基于持久性內(nèi)存的分布式文件系統(tǒng).

    多播技術(shù)同樣在分布式系統(tǒng)中發(fā)揮著重要的作用.多播技術(shù)的應(yīng)用范圍很廣,從多媒體數(shù)據(jù)的直播分發(fā),到數(shù)據(jù)中心的分布式文件系統(tǒng),均需要多播技術(shù)的支持.尤其是在數(shù)據(jù)中心中,數(shù)據(jù)傳輸通常是從源節(jié)點到2個甚至多個目標(biāo)節(jié)點,文件數(shù)據(jù)需要被復(fù)制到多個存儲服務(wù)器[15].這個過程造成的延遲往往占數(shù)據(jù)中心負(fù)載的主要部分,并最終決定了系統(tǒng)的總體IO性能[16].

    盡管多播技術(shù)在系統(tǒng)中起到重要的作用,但是在現(xiàn)有的基于RDMA的分布式文件系統(tǒng)中,往往沒有提供多播傳輸?shù)闹С諿13-14].在需要1對多傳輸?shù)膱鼍跋?,這些系統(tǒng)通常使用每次傳輸?shù)?個節(jié)點的方法,將數(shù)據(jù)依次推送到所有的目標(biāo)節(jié)點[17].為了解決該問題,康奈爾大學(xué)的RDMC基于RDMA的1對1傳輸開發(fā)了多播通信框架[18].但是,由于這種框架的底層依然是基于1對1的連接進(jìn)行通信,當(dāng)多播操作的目標(biāo)節(jié)點較多時,需要占用大量的網(wǎng)卡資源,導(dǎo)致系統(tǒng)難以基于框架進(jìn)行有效的擴(kuò)展.另外,基于框架的編程較為復(fù)雜,不利于分布式系統(tǒng)的應(yīng)用與維護(hù).其他解決方案在獲得可擴(kuò)展性的同時,往往為傳輸過程引入了額外的復(fù)制與延遲,同樣沒有辦法很好地解決分布式系統(tǒng)中的多拷貝文件數(shù)據(jù)傳輸問題[19].

    本文提出了一種基于RDMA多播傳輸機(jī)制的分布式持久性內(nèi)存文件系統(tǒng)(RDMA multicast trans-mission based distributed persistent memory file system, MTFS).通過使用RDMA多播通信語句,實現(xiàn)元數(shù)據(jù)節(jié)點與數(shù)據(jù)節(jié)點之間的1對多通信,提升數(shù)據(jù)傳輸效率.具體地,MTFS實現(xiàn)了低延遲多播通信機(jī)制,基于RDMA多播通信語句搭建內(nèi)核態(tài)RDMA通信模塊,將文件系統(tǒng)中1對多的傳輸請求使用多播通信機(jī)制發(fā)送,并添加無通知機(jī)制與擁塞控制來優(yōu)化RDMA傳輸,從而避免了傳統(tǒng)1對1傳輸機(jī)制帶來的冗余傳輸開銷.為提升傳輸?shù)撵`活性,對分布式文件系統(tǒng)各項功能提供支持,MTFS基于多播通信機(jī)制設(shè)計多模式遠(yuǎn)程過程調(diào)用(remote procedure call, RPC)框架,發(fā)送端將請求相關(guān)信息寫入RPC頭部,接收端通過接收處理程序解析相關(guān)信息,從而定位要執(zhí)行的操作地址與操作類型,保證相應(yīng)文件系統(tǒng)功能得到執(zhí)行.為保證多播傳輸機(jī)制的一致性,MTFS引入輕量級一致性保障機(jī)制,利用持久性內(nèi)存字節(jié)尋址的特性實現(xiàn)錯位的快速糾正,并支持在數(shù)據(jù)無法恢復(fù)時請求重傳.節(jié)點發(fā)生故障時,MTFS為元數(shù)據(jù)節(jié)點與數(shù)據(jù)節(jié)點均提供了故障恢復(fù)機(jī)制,保證文件數(shù)據(jù)的一致性與可靠性.

    本文的主要貢獻(xiàn)有3個方面:

    1) 提出基于RDMA多播機(jī)制的分布式持久性內(nèi)存文件系統(tǒng)MTFS,實現(xiàn)了內(nèi)核態(tài)RDMA通信模塊,通過將文件系統(tǒng)中1對多請求使用RDMA多播語句發(fā)送,避免了額外的開銷.

    2) 提出基于多播傳輸機(jī)制的多模式RPC設(shè)計,提升數(shù)據(jù)傳輸?shù)撵`活性,為分布式文件系統(tǒng)各項功能提供支持.

    3) 引入輕量級一致性保障機(jī)制,使用冗余校驗機(jī)制保證數(shù)據(jù)傳輸過程的可靠性,利用持久性內(nèi)存字節(jié)尋址的特性實現(xiàn)錯位的快速糾正,并為系統(tǒng)中的各個節(jié)點提供故障恢復(fù)功能,從而保證數(shù)據(jù)的可靠性與一致性.

    1 背景介紹

    本節(jié)主要介紹了持久性內(nèi)存技術(shù)與遠(yuǎn)程內(nèi)存直接訪問技術(shù)的基本特征,同時簡要介紹與MTFS相關(guān)的NOVA文件系統(tǒng)實現(xiàn)細(xì)節(jié).

    1.1 持久性內(nèi)存

    持久性內(nèi)存是一種新興的硬件技術(shù),主要包括相變存儲器(phase-change memory, PCM)、憶阻器、自旋矩存儲器(spin-torque transfer ram, STT-RAM)和3D XPoint等技術(shù)[1-4],其中基于3D XPoint的英特爾傲騰持久內(nèi)存目前已經(jīng)投入市場使用[5].

    持久性內(nèi)存的出現(xiàn)打破了內(nèi)外存之間的界限,顛覆了傳統(tǒng)的存儲體系結(jié)構(gòu).一方面,持久性內(nèi)存作為一種內(nèi)存,擁有內(nèi)存的種種特性.持久性內(nèi)存可直接連接于高帶寬的內(nèi)存總線上,傳輸帶寬和訪問延遲均與DRAM相接近,并支持字節(jié)尋址訪問.同時,與DRAM相比,持久性內(nèi)存具有更高的存儲密度和更低的能耗,這為搭建大規(guī)模內(nèi)存文件系統(tǒng)提供了基礎(chǔ).另一方面,持久性內(nèi)存作為一種持久性存儲介質(zhì),與傳統(tǒng)的硬盤和SSD相比,具有更高的帶寬和更低的訪問延遲.同時,由于CPU可以直接對持久性內(nèi)存上的數(shù)據(jù)進(jìn)行訪問,數(shù)據(jù)可以繞過DRAM,無需在內(nèi)存和存儲之間進(jìn)行遷移,數(shù)據(jù)訪問的整體性能得到了大幅的提升.

    持久性內(nèi)存為文件系統(tǒng)的設(shè)計提出了新的要求.基于持久性內(nèi)存的文件系統(tǒng)可以直接通過loadstore指令讀寫持久性內(nèi)存.一些文件系統(tǒng)專為持久性內(nèi)存進(jìn)行特異性設(shè)計[6-9,20],另一些文件系統(tǒng)則基于現(xiàn)有文件系統(tǒng)進(jìn)行改動[10,21],通過添加直接訪問能力,允許應(yīng)用程序繞過頁緩存直接訪問持久性內(nèi)存,從而實現(xiàn)了文件系統(tǒng)對持久性內(nèi)存的適配.

    1.2 遠(yuǎn)程直接內(nèi)存訪問

    近年來,RDMA技術(shù)在業(yè)界受到越來越廣泛的關(guān)注[11,22-24].RDMA技術(shù)允許應(yīng)用程序在不告知遠(yuǎn)端CPU情況下,繞過內(nèi)核直接訪問遠(yuǎn)端內(nèi)存,實現(xiàn)零拷貝的數(shù)據(jù)傳輸,從而實現(xiàn)高帶寬且低延遲的遠(yuǎn)端內(nèi)存訪問[25].目前,RDMA傳輸性能已遠(yuǎn)優(yōu)于現(xiàn)有的固態(tài)硬盤和機(jī)械硬盤的讀寫性能,如果仍使用固態(tài)硬盤或者機(jī)械硬盤搭配RDMA網(wǎng)絡(luò)實現(xiàn)分布式文件系統(tǒng),存儲介質(zhì)的高延遲將使系統(tǒng)無法充分發(fā)揮RDMA網(wǎng)絡(luò)的性能優(yōu)勢,同時文件系統(tǒng)也無法繞過DRAM直接寫入存儲介質(zhì).而持久性內(nèi)存低延遲內(nèi)存訪問的特性,使其能有效適配RDMA技術(shù),實現(xiàn)高效的遠(yuǎn)程存儲訪問.

    RDMA主要提供單邊語句和雙邊語句2種傳輸語句支持.表1展示了每種傳輸語句對應(yīng)的類型.單邊語句主要包括READ和WRITE語句,這些語句可以繞過遠(yuǎn)端節(jié)點的CPU,直接對遠(yuǎn)端內(nèi)存進(jìn)行讀寫操作.此外,RDMA單邊語句還包括compare_and_swap 和fetch_and_add等原子性語句,使RDMA能夠?qū)h(yuǎn)端內(nèi)存進(jìn)行原子性訪問.雙邊語句主要包括SEND和RECV語句,采用類似于socket編程的方式,發(fā)送端和接收端均需要CPU參與.在發(fā)送端進(jìn)行SEND操作之前,接收端需要提前準(zhǔn)備1個RECV請求并放入網(wǎng)卡,該請求中包含待接收數(shù)據(jù)的地址.

    Table 1 Verbs Type of Each Transport Verb表1 每種傳輸語句對應(yīng)的語句類型

    RDMA通過隊列對(queue pair, QP)進(jìn)行傳輸操作.每個隊列對包括1個發(fā)送隊列(send queue, SQ)和1個接收隊列(receive queue, RQ).當(dāng)進(jìn)行傳輸時,使用RDMA的程序首先根據(jù)其傳輸?shù)膬?nèi)容填充1個工作請求(work request, WR),并將其發(fā)布到發(fā)送隊列上.RDMA網(wǎng)卡會依次處理隊列上的WR,執(zhí)行對應(yīng)的傳輸操作.當(dāng)傳輸完成時,網(wǎng)卡會在完成隊列(completed queue, CQ)上發(fā)布1個工作完成(work completion, WC)信息,通知CPU進(jìn)行相應(yīng)處理.如果是雙邊操作,接收端在傳輸進(jìn)行之前還需要提交1個RECV WR并放入其接收隊列.

    RDMA包括有連接和無連接2種形式.有連接的傳輸提供2個QP之間的1對1通信,若需要與多個節(jié)點進(jìn)行通信,則需要創(chuàng)建多個QP分別與多個節(jié)點進(jìn)行1對1通信.而無連接的傳輸基于數(shù)據(jù)報實現(xiàn),通信節(jié)點之間不需要創(chuàng)建連接,每個QP可以和多個QP進(jìn)行通信.用戶可以選擇可靠或不可靠的RDMA傳輸類型.可靠的傳輸可以按照順序交付信息,并在傳輸失敗時返回錯誤信息.不可靠的傳輸則無法提供可靠性保證,但是其通過避免發(fā)送確認(rèn)信息獲取更高的性能.使用不可靠傳輸,RDMA通過數(shù)據(jù)鏈路層提供的一致性保障機(jī)制仍可以在很大程度上保證數(shù)據(jù)傳輸?shù)目煽啃訹22].

    基于傳輸是否有連接與是否可靠,RDMA提供了3種主要的傳輸方式:可靠連接(reliable connec-tion, RC),不可靠連接(unreliable connection, UC)和不可靠數(shù)據(jù)報(unreliable datagram, UD).表2展示了每種傳輸方式可以支持的傳輸語句.可以看到,不同的傳輸方式所支持的傳輸語句不同,RDMA單邊操作只在有連接的傳輸方式下支持,而RDMA多播傳輸只在UD模式下支持,因此用戶需要根據(jù)傳輸需求選擇對應(yīng)的傳輸方式.

    Table 2 Verbs Supported by Each Transport Type表2 每種傳輸方式支持的傳輸語句

    RDMA提供了多播語句支持[26].多播語句是UD模式下雙邊語句的一種特殊形式.用戶使用多播語句進(jìn)行RDMA通信時,首先將所有需要通信的節(jié)點加入同一個多播組.發(fā)送信息時,目標(biāo)地址設(shè)定為多播組的地址,發(fā)送端僅需要1次發(fā)送操作,發(fā)送成功后,所發(fā)送的信息通過交換機(jī)被分發(fā)到多播組中的各個節(jié)點.多播語句為1對多的傳輸場景提供了合適的解決方案,降低了多節(jié)點數(shù)據(jù)傳輸?shù)拈_銷,為解決基于RDMA的分布式系統(tǒng)中的多拷貝文件數(shù)據(jù)傳輸問題提供了有效的支持.

    1.3 NOVA文件系統(tǒng)

    MTFS是基于NOVA實現(xiàn)的.NOVA是加州大學(xué)圣地亞哥分校開發(fā)的一種持久性內(nèi)存文件系統(tǒng)[6].為更好地利用持久性內(nèi)存的諸多優(yōu)秀特性,NOVA做了許多特異性的設(shè)計,使其在保證一致性的基礎(chǔ)上提升文件系統(tǒng)的性能.本節(jié)討論與MTFS相關(guān)的一些NOVA設(shè)計.

    NOVA為每個索引節(jié)點維護(hù)1個單獨的日志鏈表,每塊日志中存儲1次寫入的基本信息與指向?qū)懭霐?shù)據(jù)頁的指針,同時在DRAM中維護(hù)基數(shù)樹索引以加速對文件數(shù)據(jù)的查找.寫入操作使用寫時復(fù)制機(jī)制實現(xiàn),每次寫入時會申請新的日志塊與數(shù)據(jù)頁,在日志中記錄操作相關(guān)信息與指向新寫入數(shù)據(jù)的指針.當(dāng)數(shù)據(jù)成功寫入持久性存儲介質(zhì)后,NOVA更新文件日志的尾指針以及其對應(yīng)的基數(shù)樹索引.當(dāng)讀取數(shù)據(jù)時,NOVA通過基數(shù)樹索引找到對應(yīng)的日志塊,從日志中讀取數(shù)據(jù)地址,并通過地址找到數(shù)據(jù)頁并讀取數(shù)據(jù).

    NOVA使用可利用空間表管理持久性內(nèi)存空間.NOVA將可用的數(shù)據(jù)空間均分給每個CPU進(jìn)行管理以提升并發(fā)文件訪問的性能,每個CPU使用紅黑樹結(jié)構(gòu)管理數(shù)據(jù)空間中的空閑塊,以提升連續(xù)數(shù)據(jù)塊查找的性能.通過這種方式,NOVA提升了持久性內(nèi)存空間分配操作的并行性,減少了空間分配的爭用.

    NOVA提供了故障恢復(fù)機(jī)制.當(dāng)系統(tǒng)從故障中恢復(fù)時,首先,NOVA需要檢查崩潰前寫入的日志,通過日志將未提交的事務(wù)回滾.然后,NOVA并行掃描每個索引節(jié)點,通過日志鏈表恢復(fù)數(shù)據(jù)組織結(jié)構(gòu).通過日志設(shè)計,NOVA保證系統(tǒng)可以從故障中恢復(fù)數(shù)據(jù).

    2 MTFS設(shè)計

    本節(jié)將詳細(xì)介紹MTFS的系統(tǒng)設(shè)計.首先整體描述MTFS的系統(tǒng)架構(gòu),然后分別對MTFS中的低延遲多播通信機(jī)制、多模式多播RPC機(jī)制和輕量級一致性保障機(jī)制進(jìn)行介紹.

    2.1 系統(tǒng)架構(gòu)

    Fig. 1 Overall architecture of MTFS圖1 MTFS系統(tǒng)整體架構(gòu)

    圖1展示了MTFS的系統(tǒng)整體架構(gòu).系統(tǒng)由1個元數(shù)據(jù)節(jié)點和多個數(shù)據(jù)節(jié)點組成.其中元數(shù)據(jù)節(jié)點存儲系統(tǒng)的元數(shù)據(jù)信息,包括文件的元數(shù)據(jù)信息和系統(tǒng)的基本配置與空間管理信息,數(shù)據(jù)節(jié)點中僅存儲文件的數(shù)據(jù).元數(shù)據(jù)節(jié)點與數(shù)據(jù)節(jié)點之間通過RDMA網(wǎng)絡(luò)互連.MTFS采用主從式架構(gòu),將數(shù)據(jù)存儲在多個數(shù)據(jù)節(jié)點上,提升了數(shù)據(jù)訪問的并行性.

    應(yīng)用程序通過可移植操作系統(tǒng)接口(portable operating system interface of UNIX, POSIX)對文件系統(tǒng)進(jìn)行訪問.以數(shù)據(jù)寫入為例,當(dāng)應(yīng)用程序發(fā)起數(shù)據(jù)寫入請求時,MTFS通過訪問元數(shù)據(jù)節(jié)點在各目標(biāo)數(shù)據(jù)節(jié)點分配持久性內(nèi)存空間,然后將數(shù)據(jù)寫入到各數(shù)據(jù)節(jié)點中.待寫入的數(shù)據(jù)通過多播通信模塊(2.2節(jié))以RDMA數(shù)據(jù)報的形式由網(wǎng)卡發(fā)出.網(wǎng)絡(luò)交換機(jī)收到多播數(shù)據(jù)報時,會進(jìn)行分發(fā)操作,將數(shù)據(jù)報發(fā)送到多播組中的每個數(shù)據(jù)節(jié)點.數(shù)據(jù)節(jié)點通過RPC處理模塊(2.3節(jié))識別數(shù)據(jù)報請求體,并通過數(shù)據(jù)一致性保障模塊(2.4節(jié))將數(shù)據(jù)持久化到持久性內(nèi)存.與此同時,元數(shù)據(jù)節(jié)點會提交該次數(shù)據(jù)寫入操作并返回用戶.文件系統(tǒng)的元數(shù)據(jù)訪問則僅通過元數(shù)據(jù)節(jié)點進(jìn)行,無需對數(shù)據(jù)節(jié)點進(jìn)行遠(yuǎn)程訪問.

    2.2 低延遲多播通信機(jī)制

    在分布式文件系統(tǒng)中,節(jié)點間的網(wǎng)絡(luò)傳輸?shù)拈_銷非常高昂.數(shù)據(jù)節(jié)點間等待傳輸完成與確認(rèn)需要耗費大量的時間,從而產(chǎn)生較高的延遲.而在1對多的分發(fā)場景下,傳統(tǒng)的文件系統(tǒng)會發(fā)起多次網(wǎng)絡(luò)傳輸請求,將相同的數(shù)據(jù)逐一發(fā)送到各個節(jié)點,增加了網(wǎng)卡的負(fù)載(圖2(a)).多播通信機(jī)制旨在將多個傳輸相同數(shù)據(jù)的請求合并為多播請求,避免網(wǎng)卡數(shù)據(jù)重復(fù)發(fā)送的冗余開銷,從而大幅提升發(fā)送數(shù)據(jù)的效率.

    Fig. 2 Comparison of traditional and multicast schemes圖2 傳統(tǒng)模式與多播通信機(jī)制對比

    當(dāng)MTFS的元數(shù)據(jù)節(jié)點發(fā)起寫請求時,數(shù)據(jù)將被同時寫入所有的目標(biāo)數(shù)據(jù)節(jié)點:首先多播傳輸模塊會申請1塊發(fā)送結(jié)構(gòu)體,并根據(jù)寫請求對應(yīng)的數(shù)據(jù)地址、數(shù)據(jù)大小等元數(shù)據(jù)信息填寫結(jié)構(gòu)體的頭部字段,同時將數(shù)據(jù)放入發(fā)送結(jié)構(gòu)體的數(shù)據(jù)字段.然后多播傳輸模塊會將RDMA傳輸信息添加到填寫完畢的發(fā)送結(jié)構(gòu)體中,并將其打包成工作請求放入發(fā)送隊列進(jìn)行傳輸;網(wǎng)卡依次對工作請求進(jìn)行處理,將數(shù)據(jù)以RDMA數(shù)據(jù)報的形式發(fā)送到各個目標(biāo)數(shù)據(jù)節(jié)點,由數(shù)據(jù)節(jié)點中的接收處理程序進(jìn)行處理并寫入持久內(nèi)存.當(dāng)發(fā)送操作完成之后,元數(shù)據(jù)節(jié)點會觸發(fā)中斷通知發(fā)送完成處理程序,將工作完成從完成隊列中移出,從中獲取已完成的發(fā)送結(jié)構(gòu)體地址并將對應(yīng)空間釋放回收.執(zhí)行過程如圖3所示.

    Fig. 3 Multicast transmission execution圖3 多播通信運行過程

    為提升系統(tǒng)可擴(kuò)展性,MTFS將數(shù)據(jù)節(jié)點劃分為存儲單元進(jìn)行管理.MTFS將數(shù)據(jù)節(jié)點每2~3個一組劃分為存儲單元,單元內(nèi)的數(shù)據(jù)節(jié)點存儲相同的數(shù)據(jù),并和MTFS的元數(shù)據(jù)節(jié)點加入同一個多播組.多播信息僅在組內(nèi)傳遞,由于不同存儲單元間存儲的數(shù)據(jù)互不相同,存儲單元之間不需要進(jìn)行多播通信.當(dāng)元數(shù)據(jù)節(jié)點發(fā)起寫入請求時,MTFS會選擇剩余空間最多的存儲單元,并將單元內(nèi)的數(shù)據(jù)節(jié)點作為存儲的目標(biāo)數(shù)據(jù)節(jié)點;當(dāng)元數(shù)據(jù)節(jié)點發(fā)起讀取請求時,MTFS會根據(jù)對應(yīng)存儲單元內(nèi)各數(shù)據(jù)節(jié)點正在請求的線程數(shù)量,從中選擇負(fù)載最低的數(shù)據(jù)節(jié)點讀取數(shù)據(jù).通過存儲單元管理,MTFS避免了數(shù)據(jù)冗余存儲,提升了系統(tǒng)的可擴(kuò)展性.

    為減少元數(shù)據(jù)節(jié)點CPU的開銷,MTFS通過RDMA無通知機(jī)制優(yōu)化多播發(fā)送流程.由于RDMA的多播能力由UD模式提供,而UD模式基于無連接數(shù)據(jù)報實現(xiàn),不需要處理接收端的確認(rèn)信息.因此,當(dāng)多播請求發(fā)送完畢后,多播傳輸模塊不會立即通知CPU進(jìn)行處理,而是將工作完成暫存在完成隊列上.當(dāng)完成一定數(shù)量的工作請求之后,為了防止工作完成的堆積,下一次發(fā)送的工作請求會被設(shè)置為完成后通知.當(dāng)該工作請求發(fā)送完成后,網(wǎng)卡會觸發(fā)CPU中斷并轉(zhuǎn)入發(fā)送完成處理程序,對先前放入的工作完成進(jìn)行批量處理.通過無通知發(fā)送的優(yōu)化,MTFS減少了CPU中斷處理的次數(shù),極大地降低了CPU的負(fù)擔(dān).

    為了避免網(wǎng)絡(luò)堵塞引起的發(fā)送隊列擁擠,MTFS實現(xiàn)了擁塞控制系統(tǒng).RDMA的發(fā)送隊列長度固定,當(dāng)網(wǎng)卡處理速率小于工作請求的增加速率時,發(fā)送隊列會被填滿,導(dǎo)致之后的工作請求無法放入發(fā)送隊列.MTFS多播傳輸模塊會對發(fā)送隊列中待發(fā)送的多播請求數(shù)目進(jìn)行實時統(tǒng)計,并據(jù)此控制RDMA多播請求的發(fā)送速率.當(dāng)網(wǎng)絡(luò)擁塞時,發(fā)送隊列中待發(fā)送的請求數(shù)目超過了預(yù)先設(shè)定的閾值.此時發(fā)送隊列將暫緩接受工作請求直到待發(fā)送的請求數(shù)量低于閾值,從而避免了發(fā)送隊列溢出造成的傳輸問題.

    通過上述多播通信機(jī)制,MTFS減少了文件操作過程中RDMA的通信次數(shù),并充分利用UD模式數(shù)據(jù)報通信的優(yōu)勢降低了數(shù)據(jù)的傳輸延遲(圖2(b)).盡管RDMA的UD模式具有一定的可靠性[22],MTFS依然通過發(fā)送端的擁塞控制機(jī)制與接收端的一致性保障機(jī)制(2.4節(jié)),在不顯著增加延遲的情況下盡可能地保證數(shù)據(jù)的可靠性與一致性.

    2.3 多模式多播RPC機(jī)制

    MTFS使用RPC實現(xiàn)元數(shù)據(jù)節(jié)點與數(shù)據(jù)節(jié)點間通信.如圖4所示,RPC采用服務(wù)端主動的方式,元數(shù)據(jù)節(jié)點通過多播通信機(jī)制將RPC請求分發(fā)到數(shù)據(jù)節(jié)點的網(wǎng)卡上,并由網(wǎng)卡放入接收隊列等待處理.接收端處理程序按到達(dá)順序依次處理接收隊列中的RPC請求,對參數(shù)進(jìn)行解析并執(zhí)行相應(yīng)的操作.

    Fig. 4 RPC module design圖4 RPC模塊設(shè)計

    RPC通過源節(jié)點字段和目標(biāo)節(jié)點字段進(jìn)行請求識別,從而判斷該節(jié)點是否需要進(jìn)行處理.由于RPC采用多播通信機(jī)制實現(xiàn),多播組中的所有數(shù)據(jù)節(jié)點均可以接收到元數(shù)據(jù)節(jié)點的請求.為增強RPC的靈活性,請求頭部標(biāo)識了源節(jié)點與目標(biāo)節(jié)點,數(shù)據(jù)節(jié)點收到請求后首先判斷該節(jié)點是否需要執(zhí)行操作,從而避免冗余的請求對數(shù)據(jù)節(jié)點資源的占用.

    RPC通過優(yōu)化返回機(jī)制降低執(zhí)行延遲.接收端根據(jù)其接收到的操作碼對請求進(jìn)行分類:對于不需要返回信息的請求如數(shù)據(jù)寫,數(shù)據(jù)節(jié)點會直接執(zhí)行相應(yīng)操作,不發(fā)送返回信息;對于時效性要求較高的請求如數(shù)據(jù)讀,數(shù)據(jù)節(jié)點會立即進(jìn)行處理并返回完成信息;對于時效性要求較低的請求如數(shù)據(jù)遷移,元數(shù)據(jù)節(jié)點采用異步處理機(jī)制,發(fā)送RPC請求之后繼續(xù)執(zhí)行其他操作,不阻塞等待結(jié)果,當(dāng)收到返回信息后再進(jìn)行結(jié)果處理操作.而數(shù)據(jù)節(jié)點收到請求之后,會在優(yōu)先處理其他請求之后進(jìn)行處理并返回完成信息.通過RPC多模式分類,MTFS減少了部分操作的傳輸次數(shù),并將部分傳輸操作從關(guān)鍵路徑移除,有效提升了文件操作的整體效率.

    考慮到RPC基于多播通信機(jī)制,MTFS的寫請求使用RPC實現(xiàn),保證寫請求通過多播語句1對多地發(fā)送到所有的數(shù)據(jù)節(jié)點.但鑒于讀請求針對單一客戶端的特性,MTFS在實現(xiàn)了基于RPC的讀方法的同時,采用基于RC模式的RDMA讀操作實現(xiàn)了對文件數(shù)據(jù)的讀取操作,避免了集群規(guī)模過大時使用多播通信機(jī)制讀數(shù)據(jù)造成的額外開銷.用戶掛載文件系統(tǒng)時,可以根據(jù)集群配置選擇合適的讀方法.

    2.4 輕量級一致性保障機(jī)制

    MTFS開發(fā)了故障恢復(fù)機(jī)制以有效應(yīng)對各節(jié)點上可能發(fā)生的系統(tǒng)崩潰.MTFS檢測到數(shù)據(jù)節(jié)點崩潰后,會將該數(shù)據(jù)節(jié)點標(biāo)記成為故障節(jié)點,讀請求將被分流到其他數(shù)據(jù)節(jié)點執(zhí)行,不會影響系統(tǒng)正常運行.該數(shù)據(jù)節(jié)點中的數(shù)據(jù)可以通過元數(shù)據(jù)節(jié)點與其他數(shù)據(jù)節(jié)點進(jìn)行恢復(fù).當(dāng)元數(shù)據(jù)節(jié)點崩潰時,系統(tǒng)停止提供服務(wù),等待元數(shù)據(jù)節(jié)點重啟,并通過文件的元數(shù)據(jù)與數(shù)據(jù)日志,將系統(tǒng)恢復(fù)到崩潰前的狀態(tài).通過故障恢復(fù)機(jī)制,MTFS保障了數(shù)據(jù)的高可靠性.

    MTFS使用冗余校驗機(jī)制保證了數(shù)據(jù)傳輸?shù)娜蒎e性(圖5).發(fā)送端打包傳輸數(shù)據(jù)時,會將數(shù)據(jù)分為2部分并分別計算循環(huán)冗余校驗(cyclic redun-dancy check 32, CRC32),校驗結(jié)果存入發(fā)送請求的固定區(qū)域.同時,MTFS對2部分?jǐn)?shù)據(jù)計算奇偶校驗結(jié)果并放入發(fā)送結(jié)構(gòu)體.接收處理程序收到數(shù)據(jù)后會首先計算2部分?jǐn)?shù)據(jù)的CRC32校驗和,與收到數(shù)據(jù)中存儲的校驗和進(jìn)行比對.若2份數(shù)據(jù)校驗和與存儲的校驗和均相同,則說明本次數(shù)據(jù)傳輸沒有發(fā)生錯誤;若僅有1份數(shù)據(jù)校驗和與存儲的校驗和相同,說明另1份數(shù)據(jù)發(fā)生了傳輸錯誤.接收處理程序會通過奇偶校驗結(jié)果查找錯誤發(fā)生的位置,計算出正確的結(jié)果并寫入;若2份數(shù)據(jù)校驗和與存儲的校驗和均不相同,則該次傳輸可能出現(xiàn)了大面積無法恢復(fù)的錯誤,接收處理程序會激活重傳機(jī)制,發(fā)送1個重傳請求到發(fā)送端,請求重新發(fā)送該數(shù)據(jù).通過冗余校驗機(jī)制,MTFS在不顯著影響性能的情況下保證了數(shù)據(jù)傳輸?shù)恼_性.

    Fig. 5 Data verification mechanism圖5 數(shù)據(jù)冗余校驗機(jī)制

    MTFS使用重傳機(jī)制保證文件數(shù)據(jù)的持久性.發(fā)送端申請工作請求時會指定全局唯一的WR_ID,并附在RDMA發(fā)送的立即數(shù)字段一同發(fā)送.接收處理程序會記錄來自同一個節(jié)點的最近1個請求的WR_ID,并在新的請求到達(dá)時讀取立即數(shù)字段進(jìn)行比較.若新接收的請求出現(xiàn)亂序,接收處理程序會發(fā)送重傳請求到發(fā)送端,要求重傳缺失的工作請求.對于傳輸數(shù)據(jù)出現(xiàn)大面積錯誤的情況,接收處理程序會通過最新記錄的WR_ID計算出錯誤的WR_ID并發(fā)送重傳請求到發(fā)送端.發(fā)送端收到重傳請求時,會通過WR_ID查找相應(yīng)的發(fā)送數(shù)據(jù)進(jìn)行重新打包發(fā)送.

    MTFS通過窗口確認(rèn)機(jī)制保證了數(shù)據(jù)一致性.元數(shù)據(jù)節(jié)點記錄了每個索引節(jié)點最后1次寫入操作的WR_ID.各數(shù)據(jù)節(jié)點每隔一段時間會向元數(shù)據(jù)節(jié)點報告TAIL_WR_ID(即節(jié)點已成功接收在該WR_ID之前的所有請求).當(dāng)元數(shù)據(jù)節(jié)點發(fā)起讀請求時,會檢查索引節(jié)點最后1次寫入的WR_ID和目標(biāo)節(jié)點報告的TAIL_WR_ID,確認(rèn)目標(biāo)節(jié)點是否已經(jīng)收到該索引節(jié)點的所有寫請求.若未收到,則說明還有寫請求正處于傳輸?shù)倪^程中,系統(tǒng)會對讀請求進(jìn)行阻塞,直到數(shù)據(jù)節(jié)點確認(rèn)已收到所有的寫請求;若已收到,則元數(shù)據(jù)節(jié)點可以執(zhí)行讀操作.通過窗口確認(rèn)機(jī)制,MTFS避免了文件讀寫出現(xiàn)不一致,保證了數(shù)據(jù)一致性.

    MTFS避免了RDMA網(wǎng)卡的數(shù)據(jù)一致性問題.當(dāng)使用RDMA網(wǎng)卡對遠(yuǎn)端地址進(jìn)行數(shù)據(jù)寫入時,數(shù)據(jù)可能會暫時駐留在RDMA網(wǎng)卡的易失緩存中,由網(wǎng)卡決定寫入內(nèi)存地址的時機(jī),這可能導(dǎo)致數(shù)據(jù)不一致的問題[27].MTFS采用多播發(fā)送語句,遠(yuǎn)端網(wǎng)卡接收到數(shù)據(jù)之后,會通知接收處理程序?qū)?shù)據(jù)寫入持久性介質(zhì),避免數(shù)據(jù)在RDMA網(wǎng)卡緩存中駐留,保證數(shù)據(jù)的一致性.

    3 系統(tǒng)實現(xiàn)

    本節(jié)主要講述了MTFS各項設(shè)計的實現(xiàn)方式與細(xì)節(jié).雖然本文在NOVA的基礎(chǔ)上實現(xiàn)MTFS的各項功能設(shè)計,但MTFS的設(shè)計可以基于現(xiàn)有的單機(jī)持久性內(nèi)存文件系統(tǒng)實現(xiàn),不局限于某個系統(tǒng)的設(shè)計.

    3.1 文件系統(tǒng)相關(guān)實現(xiàn)

    MTFS基于NOVA的元數(shù)據(jù)組織實現(xiàn)元數(shù)據(jù)節(jié)點組織,并沿用了NOVA的元數(shù)據(jù)相關(guān)設(shè)計.由于MTFS元數(shù)據(jù)節(jié)點與數(shù)據(jù)節(jié)點分離的架構(gòu),MTFS優(yōu)化了數(shù)據(jù)日志的格式,將各目標(biāo)數(shù)據(jù)節(jié)點中對應(yīng)的數(shù)據(jù)地址存入日志之中.同時,MTFS對所有的數(shù)據(jù)節(jié)點進(jìn)行統(tǒng)一編址,使用NOVA的可利用空間表數(shù)據(jù)結(jié)構(gòu)進(jìn)行管理.每個CPU在每個數(shù)據(jù)節(jié)點上對應(yīng)1個可利用空間表,并通過可利用空間表管理1塊持久性內(nèi)存空間.當(dāng)執(zhí)行數(shù)據(jù)寫入操作時,元數(shù)據(jù)節(jié)點會從每個目標(biāo)數(shù)據(jù)節(jié)點對應(yīng)的區(qū)域中各分配1段空間,并通過RPC將數(shù)據(jù)遠(yuǎn)程寫入.當(dāng)執(zhí)行數(shù)據(jù)讀取操作時,系統(tǒng)會按照日志塊中記錄的遠(yuǎn)端數(shù)據(jù)的地址從遠(yuǎn)端數(shù)據(jù)節(jié)點讀出數(shù)據(jù).

    3.2 RDMA通信模塊

    MTFS實現(xiàn)了高效的內(nèi)核態(tài)RDMA通信模塊.為了提升通用性,更好地與主流的基于POSIX接口的內(nèi)核態(tài)文件系統(tǒng)適配,MTFS在內(nèi)核態(tài)實現(xiàn)了RDMA通信.同時MTFS將RDMA服務(wù)以模塊的形式呈現(xiàn),封裝RDMA的相關(guān)操作,將復(fù)雜的RDMA操作抽象為通信建立、通信關(guān)閉和操作執(zhí)行等若干類函數(shù),對文件系統(tǒng)屏蔽了RDMA通信的相關(guān)細(xì)節(jié),方便相關(guān)代碼的移植與維護(hù).

    為了方便管理RDMA,MTFS使用RDMA_CM庫管理通信.RDMA_CM可以在RDMA傳輸建立之前,使用基于RDMA網(wǎng)絡(luò)的TCP傳輸在各節(jié)點間傳遞RDMA網(wǎng)絡(luò)參數(shù),并據(jù)此建立RDMA傳輸.RDMA_CM將RDMA通信建立流程封裝成為類似于socket的接口,并在整個通信階段對通信進(jìn)行管理.建立多播通信時,需首先對約定好的多播地址進(jìn)行解析,當(dāng)確認(rèn)解析無誤后將解析到的設(shè)備綁定到CM_ID,然后各節(jié)點加入該多播組并注冊到子網(wǎng)管理器,從而完成多播通信的建立.對于多播傳輸請求,所有加入該多播組的節(jié)點均可以接收.通過使用RDMA_CM庫,MTFS簡化了RDMA編程操作.

    MTFS實現(xiàn)了RDMA發(fā)送與接收請求的統(tǒng)一管理,從而支持了RDMA多播傳輸?shù)母黜梼?yōu)化.為了方便對網(wǎng)絡(luò)請求進(jìn)行統(tǒng)一管理,MTFS在各節(jié)點上分別為RDMA發(fā)送與接收請求維護(hù)全局的工作請求鏈表.正常情況下,當(dāng)有新的請求需要發(fā)送時,MTFS申請1個新的工作請求,相關(guān)信息填寫完畢后,會將工作請求放入鏈表,并生成全局唯一的WR_ID,WR_ID在發(fā)送時被放入數(shù)據(jù)報一起發(fā)送.當(dāng)發(fā)送完成時,發(fā)送完成處理程序通過工作完成找到WR_ID,進(jìn)而找到該次工作請求并回收相關(guān)數(shù)據(jù)結(jié)構(gòu).接收請求的情況與之類似.當(dāng)無通知優(yōu)化功能被啟用時,MTFS會記錄發(fā)送請求的數(shù)量,工作請求通知標(biāo)志的默認(rèn)值為0,當(dāng)一定數(shù)量的數(shù)據(jù)發(fā)送完成后,下一個工作請求的通知標(biāo)志會被置為signaled,發(fā)送完成之后通知處理程序?qū)λ性缦犬a(chǎn)生的工作完成統(tǒng)一進(jìn)行處理.啟用擁塞控制時,MTFS使用原子變量記錄發(fā)送隊列上的待發(fā)送工作請求數(shù)量,通過該原子變量判斷是否暫緩接受發(fā)送請求.通過對RDMA請求的統(tǒng)一管理,MTFS實現(xiàn)了請求的添加、存儲、刪除與查找,為RDMA多播傳輸?shù)母黜梼?yōu)化提供了有效的支持.

    3.3 RPC與一致性保障實現(xiàn)

    MTFS為RPC傳輸設(shè)計了發(fā)送結(jié)構(gòu)體.結(jié)構(gòu)體中包含了該次操作的詳細(xì)信息,包括操作碼、源節(jié)點與目標(biāo)節(jié)點、數(shù)據(jù)長度、數(shù)據(jù)地址和數(shù)據(jù)內(nèi)容等,整個結(jié)構(gòu)體經(jīng)過冗余和校驗處理之后,會統(tǒng)一作為RDMA傳輸?shù)臄?shù)據(jù)進(jìn)行發(fā)送.而工作請求的控制信息會根據(jù)請求類型和待發(fā)送數(shù)據(jù)進(jìn)行填寫,其中立即數(shù)字段填寫全局唯一的WR_ID,填寫完畢之后放入發(fā)送隊列進(jìn)行發(fā)送.接收端收到RPC請求之后,會讀取數(shù)據(jù)并對各字段進(jìn)行解析,執(zhí)行相應(yīng)操作.

    4 實 驗

    本節(jié)將MTFS與其他文件系統(tǒng)對比,對各項性能進(jìn)行評估.首先介紹實驗環(huán)境配置,然后從微觀測試、Filebench測試、Redis測試3個方面對比MTFS與現(xiàn)有的分布式和單機(jī)持久性內(nèi)存文件系統(tǒng),詳細(xì)比較并分析相關(guān)性能差異.

    4.1 實驗配置

    實驗所使用的實驗平臺環(huán)境配置信息如表3所示.各節(jié)點均部署4塊Intel Optane DC 128 GB持久性內(nèi)存,并采用APP-Direct模式.各節(jié)點通過一塊Mellanox ConnectX-5 RDMA網(wǎng)卡與其他節(jié)點通信,網(wǎng)卡配置為Infiniband模式運行,并連接到Infiniband交換機(jī).

    Table 3 Platform Configuration表3 實驗平臺配置

    MTFS使用NOVA的代碼作為基礎(chǔ),在Linux 4.13內(nèi)核上實現(xiàn).MTFS基于Mellanox OFED實現(xiàn)了內(nèi)核態(tài)RDMA通信模塊,并整合入文件系統(tǒng).MTFS最大可支持同一廣播域內(nèi)的所有節(jié)點組成的集群,本實驗中MTFS默認(rèn)在3個節(jié)點組成的集群上部署,包括1個元數(shù)據(jù)節(jié)點與2個數(shù)據(jù)節(jié)點,其中2個數(shù)據(jù)節(jié)點屬于同一個存儲單元.各節(jié)點采用128 GB持久性內(nèi)存作為存儲介質(zhì).

    本實驗主要將MTFS與同樣運行在持久性內(nèi)存與RDMA上的分布式文件系統(tǒng)GlusterFS進(jìn)行比較[28],對各項性能進(jìn)行評估.鑒于MTFS基于單機(jī)文件系統(tǒng)NOVA實現(xiàn),本實驗同樣將與NOVA進(jìn)行性能比較.由于NOVA部署在單臺機(jī)器上,公平起見,MTFS在實驗中數(shù)據(jù)吞吐量均表示集群中單個節(jié)點的吞吐量.

    4.2 微觀測試

    實驗使用Fio進(jìn)行微觀測試,展示MTFS在1對多的場景下進(jìn)行寫操作的吞吐量[29].在測試過程中采用隨機(jī)讀寫,分別通過IO大小變化和文件大小變化,測試Fio的總體吞吐量.

    Fig. 6 Throughput of write syscall with varying I/O sizes圖6 寫系統(tǒng)調(diào)用在不同I/O大小下的吞吐量

    圖7展示了MTFS與其他對比系統(tǒng)在不同的文件大小下的寫系統(tǒng)調(diào)用吞吐量,其中IO大小為2 KB.從圖7中可以看到,與GlusterFS相比,在文件大小為2 KB時,MTFS性能相比GlusterFS提升了145倍,而在文件大小為2 GB時,MTFS對比GlusterFS仍然有10.2倍的提升.同時,隨著文件大小增長,MTFS和NOVA性能均未出現(xiàn)明顯下降.這是因為MTFS與NOVA雖然采用日志結(jié)構(gòu),但相應(yīng)的在DRAM中維護(hù)了作為數(shù)據(jù)索引的基數(shù)樹,當(dāng)文件大小增長時,文件數(shù)據(jù)訪問延遲并不會出現(xiàn)明顯增大.

    Fig. 7 Throughput of write syscall with varying file sizes圖7 寫系統(tǒng)調(diào)用在不同文件大小下的吞吐量

    為了檢驗MTFS在集群中的可擴(kuò)展性,實驗測試了MTFS在不同規(guī)模集群中的性能表現(xiàn),結(jié)果如圖8所示.可以得知,隨著集群中節(jié)點數(shù)量增加,在不同的IO大小下,MTFS吞吐量都能夠基本保持不變,展現(xiàn)出良好的可擴(kuò)展性.

    Fig. 8 Throughput of write syscall in clusters with varying sizes圖8 寫系統(tǒng)調(diào)用在不同規(guī)模集群中的吞吐量

    4.3 Filebench

    MTFS使用Filebench[30]測試評估真實負(fù)載下的表現(xiàn).實驗選擇Filebench的工作負(fù)載Randomwrite來評估MTFS的性能.實驗采用以下參數(shù)進(jìn)行測試:負(fù)載平均文件大小2 KB,數(shù)據(jù)操作的平均IO大小從64 B~2 KB不等.

    圖9展示了各文件系統(tǒng)在Filebench的Random-write工作負(fù)載上的性能表現(xiàn).可以得知,MTFS與NOVA性能相接近,在IO大小為2 KB時,MTFS相比NOVA性能有11%的提升.主要原因是當(dāng)IO大小增大時,NOVA進(jìn)行持久化相關(guān)操作的延遲隨之增大,而MTFS將持久化相關(guān)操作放在遠(yuǎn)端數(shù)據(jù)節(jié)點進(jìn)行處理,從關(guān)鍵路徑移除,減小了數(shù)據(jù)操作的延遲.與GlusterFS相比,MTFS性能仍然有13.7~219倍的提升.

    Fig. 9 Throughput of Randomwrite with varying I/O sizes圖9 Randomwrite在不同I/O大小下的吞吐量

    4.4 Redis

    為進(jìn)一步測試MTFS在真實負(fù)載環(huán)境下的表現(xiàn),實驗采用Redis[31]作為負(fù)載測試各文件系統(tǒng)的表現(xiàn).Redis 是一個高性能的key-value數(shù)據(jù)庫,在企業(yè)級應(yīng)用中被廣泛使用.實驗采用Redis的AOF機(jī)制實現(xiàn)數(shù)據(jù)持久化,持久化策略使用每修改同步策略,數(shù)據(jù)大小從默認(rèn)2 B~2 KB不等.實驗比較Redis在不同文件系統(tǒng)下的每秒請求數(shù).

    Fig. 10 Performance of Redis with varying data sizes圖10 Redis在不同數(shù)據(jù)大小下的性能

    圖10展示了各文件系統(tǒng)運行Redis時的性能表現(xiàn).與上述微觀測試和Filebench測試采用IO密集型負(fù)載不同,Redis包含大量的計算操作,這導(dǎo)致GlusterFS數(shù)據(jù)操作上的性能缺陷在一定程度上被掩蓋,但MTFS與GlusterFS相比仍取得了25.5~42.1倍的性能提升.與NOVA相比,MTFS在Redis負(fù)載上取得了更優(yōu)異的性能表現(xiàn),主要原因是Redis操作中IO密集度下降減輕了網(wǎng)卡的負(fù)載,使得RDMA多播操作發(fā)送延遲下降,進(jìn)而提升了數(shù)據(jù)傳輸效率.

    實驗在Redis負(fù)載上對各文件系統(tǒng)進(jìn)行了線程擴(kuò)展能力測試,結(jié)果如圖11所示.可以看到,MTFS隨線程數(shù)量增加,表現(xiàn)出良好的線程可擴(kuò)展性.

    Fig. 11 Performance of Redis with varying thread numbers圖11 Redis在不同線程數(shù)下的性能

    5 相關(guān)工作

    新興的持久性內(nèi)存技術(shù)與RDMA技術(shù)分別為本地內(nèi)存訪問與遠(yuǎn)程網(wǎng)絡(luò)通信訪問提供了優(yōu)化的可能,現(xiàn)有的一些工作基于這2種技術(shù)提出了針對性設(shè)計.

    5.1 RDMA相關(guān)優(yōu)化

    文獻(xiàn)[11]提出了一個基于RDMA的分布式共享內(nèi)存系統(tǒng)FaRM.FaRM使用單邊RDMA語句實現(xiàn)了無鎖讀取和RPC操作,避免了雙邊RDMA操作帶來的通信延遲與CPU開銷.與基于TCP的系統(tǒng)相比,它的設(shè)計使其在RDMA網(wǎng)絡(luò)上獲得了巨大的性能提升.但是,F(xiàn)aRM使用了RC模式的單邊RDMA操作,對于每組連接都需要創(chuàng)建至少1對QP,而過多的QP會帶來RDMA網(wǎng)卡緩存不足和處理器爭用的問題,這限制了系統(tǒng)在大規(guī)模集群中的表現(xiàn).MTFS基于多播語句實現(xiàn),每對QP都可以發(fā)送信息到所有的節(jié)點,從而大幅減少了對RDMA網(wǎng)卡相關(guān)資源的需求.

    文獻(xiàn)[22]通過實驗證明了在UD模式中,RDMA傳輸依然具有非常高的可靠性,并基于該結(jié)論提出了FaSST.FaSST使用UD模式的雙邊RDMA操作開發(fā)了RPC系統(tǒng),利用UD模式數(shù)據(jù)報傳輸?shù)膬?yōu)勢,通過降低發(fā)送端延遲提高系統(tǒng)性能,并取得了良好的可擴(kuò)展性.然而FaSST只能通過QP進(jìn)行1對1數(shù)據(jù)發(fā)送,當(dāng)需要將相同的數(shù)據(jù)傳輸?shù)讲煌哪康牡貢r,需要進(jìn)行多次發(fā)送操作.盡管MTFS同樣基于UD模式的雙邊RDMA操作,但是在上述情況下,MTFS使用多播語句可以將發(fā)送操作降低到1次,從而有效降低了發(fā)送端的延遲與資源占用.

    文獻(xiàn)[23]提出了一種基于混合RDMA語句的分布式事務(wù)系統(tǒng)DrTM+H.該系統(tǒng)使用了樂觀并發(fā)控制實現(xiàn)事務(wù),按照樂觀并發(fā)控制中的特性比較不同RDMA語句的表現(xiàn),并在事務(wù)執(zhí)行的每個階段選擇最適合的語句進(jìn)行操作,取得了良好的性能表現(xiàn).MTFS也使用了混合RDMA語句,選擇了多種RDMA語句分別進(jìn)行讀取和寫入操作,但是與DrTM+H相比,MTFS將元數(shù)據(jù)操作放在本地執(zhí)行,僅將數(shù)據(jù)放在遠(yuǎn)端存儲,通過減少RDMA操作次數(shù)降低了事務(wù)執(zhí)行延遲.

    5.2 基于持久性內(nèi)存的分布式文件系統(tǒng)

    文獻(xiàn)[17]提出一個分布式文件系統(tǒng)NVFS,在現(xiàn)有的HDFS基礎(chǔ)上進(jìn)行了改進(jìn),使系統(tǒng)可以更好地利用持久性內(nèi)存技術(shù)和RDMA技術(shù)的特性.盡管HDFS表現(xiàn)良好,但HDFS設(shè)計的復(fù)雜性增大了改進(jìn)的難度,導(dǎo)致NVFS無法充分利用硬件的性能.而其他類似的工作只是簡單地用RDMA替換了現(xiàn)有系統(tǒng)中的網(wǎng)絡(luò),同樣無法充分地利用新技術(shù)的特性[28].

    文獻(xiàn)[13]同樣將持久性內(nèi)存與RDMA功能進(jìn)行了緊密結(jié)合,開發(fā)出分布式文件系統(tǒng)Octopus.Octopus基于RDMA的write_with_imm語句構(gòu)建RPC,該語句可以在進(jìn)行單邊寫操作的同時攜帶32 b立即數(shù)字段,通過在該字段中編碼RPC相關(guān)信息,為接收端的相關(guān)處理提供了一定的靈活性與便利.但是在該語句中,當(dāng)遠(yuǎn)端節(jié)點的網(wǎng)卡接收到立即數(shù)字段時,需要觸發(fā)中斷來通知CPU處理立即字段,從而失去了RDMA單邊寫操作無需CPU處理的優(yōu)勢,而僅32 b的字段大小也無法充分實現(xiàn)靈活性.為了滿足靈活性的需求,MTFS采用了UD模式的雙邊操作語句,并設(shè)計了大小可調(diào)整的頭部字段來實現(xiàn)RPC操作.

    上述系統(tǒng)雖然均表現(xiàn)良好,但由于缺少對RDMA多播通信支持,導(dǎo)致難以解決分布式系統(tǒng)中的多拷貝數(shù)據(jù)傳輸問題,造成一定的性能損失.MTFS充分利用RDMA多播通信能力,通過多播傳輸解決了多拷貝數(shù)據(jù)傳輸問題,有效提升了系統(tǒng)數(shù)據(jù)傳輸效率.

    6 總 結(jié)

    持久性內(nèi)存與RDMA技術(shù)的出現(xiàn),為分布式系統(tǒng)的設(shè)計提供了新的思路.現(xiàn)有的基于RDMA的分布式系統(tǒng)未能充分利用RDMA的多播能力,難以解決多拷貝文件數(shù)據(jù)的傳輸問題.本文提出一種基于RDMA多播機(jī)制的分布式持久性內(nèi)存文件系統(tǒng)MTFS,通過低延遲多播通信機(jī)制將數(shù)據(jù)高效傳輸?shù)蕉鄠€數(shù)據(jù)節(jié)點,從而避免了多拷貝傳輸操作.為提升傳輸操作的靈活性,MTFS設(shè)計了多模式多播RPC機(jī)制,并通過優(yōu)化返回機(jī)制將部分操作移出關(guān)鍵路徑,進(jìn)一步降低傳輸延遲.同時MTFS提供了輕量級一致性保障機(jī)制,保證了數(shù)據(jù)的可靠性和一致性.實驗結(jié)果表明,MTFS在各測試集上性能比GlusterFS高10.2~219倍,并在Redis負(fù)載上相比于NOVA取得了最高10.7%的性能提升.MTFS在大規(guī)模數(shù)據(jù)存儲場景中有著廣闊的應(yīng)用前景.

    猜你喜歡
    多播持久性網(wǎng)卡
    在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
    計算機(jī)研究與發(fā)展(2022年12期)2022-12-15 13:18:44
    用于超大Infiniband網(wǎng)絡(luò)的負(fù)載均衡多播路由
    InfiniBand中面向有限多播表條目數(shù)的多播路由算法
    湖北省持久性有機(jī)物(POPs)產(chǎn)排特性分析
    化工管理(2021年7期)2021-05-13 00:44:56
    具有授粉互惠關(guān)系的非自治周期植物傳粉系統(tǒng)的持久性
    Server 2016網(wǎng)卡組合模式
    挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
    一類離散Schoner競爭模型的持久性
    持久性發(fā)疹性斑狀毛細(xì)血管擴(kuò)張一例
    一区二区三区国产精品乱码| 人人妻人人添人人爽欧美一区卜| 日韩视频一区二区在线观看| 黑人巨大精品欧美一区二区mp4| 性欧美人与动物交配| 侵犯人妻中文字幕一二三四区| 日本撒尿小便嘘嘘汇集6| 日韩欧美三级三区| 国产精品国产高清国产av| 亚洲人成电影免费在线| 久久中文看片网| 免费日韩欧美在线观看| 久久精品亚洲av国产电影网| 精品一品国产午夜福利视频| 久久精品国产综合久久久| 欧美精品一区二区免费开放| 在线观看免费视频网站a站| 国产成+人综合+亚洲专区| 日本一区二区免费在线视频| 9191精品国产免费久久| 久久精品91无色码中文字幕| 丁香欧美五月| 亚洲国产欧美网| 亚洲九九香蕉| 日韩精品青青久久久久久| 人人妻人人添人人爽欧美一区卜| 1024视频免费在线观看| 在线观看免费视频网站a站| 欧美性长视频在线观看| 美女 人体艺术 gogo| 亚洲成av片中文字幕在线观看| 亚洲精品一卡2卡三卡4卡5卡| 婷婷丁香在线五月| 国产亚洲精品久久久久5区| 人人妻,人人澡人人爽秒播| 国产成人免费无遮挡视频| www.www免费av| 丁香欧美五月| 欧美人与性动交α欧美软件| 桃色一区二区三区在线观看| 成人亚洲精品一区在线观看| 麻豆久久精品国产亚洲av | a在线观看视频网站| 日韩精品免费视频一区二区三区| 国产成人一区二区三区免费视频网站| 级片在线观看| 亚洲黑人精品在线| 久久久国产欧美日韩av| 欧美日韩精品网址| 午夜成年电影在线免费观看| 欧美激情高清一区二区三区| 国产亚洲精品第一综合不卡| 亚洲欧美精品综合久久99| 国产又爽黄色视频| 又黄又爽又免费观看的视频| av片东京热男人的天堂| 色综合站精品国产| 伊人久久大香线蕉亚洲五| 丰满饥渴人妻一区二区三| 欧美精品一区二区免费开放| 国产高清激情床上av| 国产精品1区2区在线观看.| 午夜久久久在线观看| 一个人观看的视频www高清免费观看 | 99精国产麻豆久久婷婷| 亚洲精品一区av在线观看| 国产成人av激情在线播放| 中文欧美无线码| 午夜a级毛片| 国产伦一二天堂av在线观看| 人人妻人人澡人人看| 美女高潮到喷水免费观看| 久久久久久免费高清国产稀缺| 夫妻午夜视频| 精品免费久久久久久久清纯| 亚洲精品在线观看二区| 50天的宝宝边吃奶边哭怎么回事| 国产免费现黄频在线看| 国产亚洲精品久久久久久毛片| 欧美丝袜亚洲另类 | 成人18禁在线播放| 欧美丝袜亚洲另类 | 少妇裸体淫交视频免费看高清 | www国产在线视频色| 国产成人精品在线电影| 国产无遮挡羞羞视频在线观看| 精品欧美一区二区三区在线| 国产成人精品在线电影| 麻豆久久精品国产亚洲av | 久久青草综合色| 久久精品91无色码中文字幕| 亚洲国产精品sss在线观看 | 天堂√8在线中文| 成年版毛片免费区| 欧美成狂野欧美在线观看| 国产精品国产高清国产av| 国产免费现黄频在线看| 成人18禁在线播放| 免费少妇av软件| 国产极品粉嫩免费观看在线| a级毛片黄视频| 黄频高清免费视频| 亚洲色图综合在线观看| 午夜免费观看网址| 夜夜夜夜夜久久久久| 丝袜在线中文字幕| 免费看十八禁软件| 色婷婷久久久亚洲欧美| 久久精品国产亚洲av香蕉五月| 免费观看精品视频网站| 精品免费久久久久久久清纯| 精品人妻1区二区| 99久久99久久久精品蜜桃| 免费在线观看亚洲国产| 五月开心婷婷网| 99国产极品粉嫩在线观看| 亚洲欧美一区二区三区久久| 性少妇av在线| 精品福利永久在线观看| 男女做爰动态图高潮gif福利片 | 91av网站免费观看| 日韩免费av在线播放| 久久精品国产综合久久久| 欧美成狂野欧美在线观看| 五月开心婷婷网| 亚洲成人免费av在线播放| 国产精品国产高清国产av| 成人18禁高潮啪啪吃奶动态图| 男人操女人黄网站| 久久久久久大精品| 天天躁狠狠躁夜夜躁狠狠躁| 午夜激情av网站| 日韩大尺度精品在线看网址 | 一进一出抽搐gif免费好疼 | 亚洲国产精品999在线| 亚洲午夜精品一区,二区,三区| 最近最新中文字幕大全电影3 | 亚洲av成人av| 亚洲一区二区三区不卡视频| 精品乱码久久久久久99久播| 欧美在线黄色| 亚洲精品成人av观看孕妇| 中文字幕av电影在线播放| 亚洲成国产人片在线观看| 最近最新免费中文字幕在线| 天堂动漫精品| 女人高潮潮喷娇喘18禁视频| 日日摸夜夜添夜夜添小说| 亚洲一卡2卡3卡4卡5卡精品中文| 一个人免费在线观看的高清视频| 一a级毛片在线观看| 亚洲精品成人av观看孕妇| 免费一级毛片在线播放高清视频 | 99热只有精品国产| 伊人久久大香线蕉亚洲五| 欧美 亚洲 国产 日韩一| 久久热在线av| 精品无人区乱码1区二区| 日韩av在线大香蕉| 亚洲精品粉嫩美女一区| 美女午夜性视频免费| 丰满饥渴人妻一区二区三| 精品久久久精品久久久| 国产人伦9x9x在线观看| 美女 人体艺术 gogo| 久久亚洲真实| 女性生殖器流出的白浆| 国产精品香港三级国产av潘金莲| 妹子高潮喷水视频| 9热在线视频观看99| 最近最新中文字幕大全电影3 | 国产精品一区二区三区四区久久 | 欧美乱妇无乱码| 国产有黄有色有爽视频| 国产一卡二卡三卡精品| 国产亚洲精品第一综合不卡| 日本黄色视频三级网站网址| 一本大道久久a久久精品| 亚洲在线自拍视频| 国产区一区二久久| 一区二区三区精品91| 欧美激情高清一区二区三区| 岛国视频午夜一区免费看| 免费看a级黄色片| 免费在线观看日本一区| 丝袜美腿诱惑在线| 国产欧美日韩一区二区三| 在线观看www视频免费| 黄色怎么调成土黄色| 精品久久久久久成人av| 操美女的视频在线观看| 成年人黄色毛片网站| 久久99一区二区三区| 黄色视频不卡| av视频免费观看在线观看| 99久久人妻综合| 亚洲欧美激情在线| 日韩国内少妇激情av| 咕卡用的链子| 久久久久久久久中文| 久久久久久久久中文| 看黄色毛片网站| 一区二区三区国产精品乱码| 真人做人爱边吃奶动态| 看片在线看免费视频| 国产成人免费无遮挡视频| 啦啦啦在线免费观看视频4| xxxhd国产人妻xxx| 黄色怎么调成土黄色| 夜夜躁狠狠躁天天躁| 淫妇啪啪啪对白视频| 久久国产精品人妻蜜桃| 搡老乐熟女国产| 91大片在线观看| 夫妻午夜视频| 无人区码免费观看不卡| 99riav亚洲国产免费| 在线天堂中文资源库| 99热只有精品国产| 亚洲熟妇中文字幕五十中出 | 成人国语在线视频| 99久久综合精品五月天人人| 欧美日韩亚洲国产一区二区在线观看| 精品久久久久久成人av| 男女高潮啪啪啪动态图| 91大片在线观看| 成人三级做爰电影| 十分钟在线观看高清视频www| 男女之事视频高清在线观看| 久久久国产精品麻豆| 99国产精品免费福利视频| 国产精品免费视频内射| 脱女人内裤的视频| 99久久精品国产亚洲精品| 免费人成视频x8x8入口观看| 在线观看免费视频网站a站| 91成人精品电影| 韩国精品一区二区三区| 热re99久久精品国产66热6| 国产精品1区2区在线观看.| 国产精品久久久久成人av| 在线国产一区二区在线| 国产精品一区二区免费欧美| 国产精品永久免费网站| 首页视频小说图片口味搜索| 香蕉国产在线看| 久久久久九九精品影院| 久久亚洲真实| 久久99一区二区三区| 亚洲熟妇中文字幕五十中出 | 成在线人永久免费视频| 亚洲熟妇熟女久久| 欧美激情 高清一区二区三区| 亚洲少妇的诱惑av| 三上悠亚av全集在线观看| 91精品国产国语对白视频| av有码第一页| 亚洲精品美女久久av网站| 999久久久精品免费观看国产| 国产av一区在线观看免费| 欧美日韩一级在线毛片| 美女高潮喷水抽搐中文字幕| 午夜两性在线视频| 日韩欧美在线二视频| 18禁美女被吸乳视频| 亚洲欧美日韩无卡精品| 咕卡用的链子| 亚洲成a人片在线一区二区| 久久久国产精品麻豆| 悠悠久久av| 国产精品电影一区二区三区| 一区二区三区精品91| 黄片小视频在线播放| 一区二区三区激情视频| 久久久久久久久免费视频了| 日韩大码丰满熟妇| 90打野战视频偷拍视频| a在线观看视频网站| 在线观看免费日韩欧美大片| av网站免费在线观看视频| 亚洲国产精品一区二区三区在线| 亚洲人成77777在线视频| 色综合站精品国产| 露出奶头的视频| 大陆偷拍与自拍| 在线免费观看的www视频| 午夜福利,免费看| 国产91精品成人一区二区三区| 欧美午夜高清在线| 另类亚洲欧美激情| 欧美av亚洲av综合av国产av| 男女午夜视频在线观看| 亚洲成人精品中文字幕电影 | 纯流量卡能插随身wifi吗| 麻豆久久精品国产亚洲av | 午夜福利一区二区在线看| 久久亚洲精品不卡| 黄色女人牲交| 国产精品免费一区二区三区在线| 欧美老熟妇乱子伦牲交| 久久中文看片网| 欧美黑人欧美精品刺激| 国产一区二区三区综合在线观看| 免费高清视频大片| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲熟妇中文字幕五十中出 | 女性生殖器流出的白浆| 免费在线观看视频国产中文字幕亚洲| 久久人人爽av亚洲精品天堂| 精品久久久久久久久久免费视频 | 亚洲国产欧美网| 国产免费男女视频| 老司机亚洲免费影院| 成年版毛片免费区| 一级黄色大片毛片| 亚洲精品国产区一区二| 亚洲精品在线观看二区| 嫩草影视91久久| 91成人精品电影| 一区福利在线观看| 亚洲精品一二三| 成年人免费黄色播放视频| 午夜福利在线免费观看网站| 久久中文字幕人妻熟女| 嫩草影院精品99| 免费女性裸体啪啪无遮挡网站| 亚洲一码二码三码区别大吗| 亚洲黑人精品在线| 国产精华一区二区三区| 99香蕉大伊视频| x7x7x7水蜜桃| 人妻久久中文字幕网| 国产精品永久免费网站| 午夜免费鲁丝| 成人亚洲精品av一区二区 | x7x7x7水蜜桃| 一级片免费观看大全| 国产精品成人在线| 国产成人av教育| 亚洲欧美精品综合久久99| 成人18禁在线播放| 日日夜夜操网爽| 高清欧美精品videossex| 色婷婷久久久亚洲欧美| 国产精品亚洲一级av第二区| 老司机靠b影院| 亚洲自拍偷在线| 国产野战对白在线观看| 日韩欧美一区视频在线观看| av在线播放免费不卡| 岛国视频午夜一区免费看| 亚洲av电影在线进入| 啪啪无遮挡十八禁网站| 桃色一区二区三区在线观看| 一级毛片女人18水好多| 中文字幕高清在线视频| 脱女人内裤的视频| 中文亚洲av片在线观看爽| 午夜福利欧美成人| 丝袜美腿诱惑在线| 国产极品粉嫩免费观看在线| 精品第一国产精品| 在线观看66精品国产| 咕卡用的链子| 色尼玛亚洲综合影院| 12—13女人毛片做爰片一| 国产精品二区激情视频| 人成视频在线观看免费观看| 日本撒尿小便嘘嘘汇集6| 免费一级毛片在线播放高清视频 | 欧美日韩国产mv在线观看视频| 国产高清视频在线播放一区| 岛国视频午夜一区免费看| 色精品久久人妻99蜜桃| 老司机福利观看| 两性午夜刺激爽爽歪歪视频在线观看 | 国产片内射在线| 老熟妇乱子伦视频在线观看| 在线观看一区二区三区激情| 大陆偷拍与自拍| 精品久久久久久电影网| 亚洲精品av麻豆狂野| 国产99白浆流出| 美女高潮喷水抽搐中文字幕| 又大又爽又粗| 国产片内射在线| 在线观看66精品国产| 欧美黑人精品巨大| 黄频高清免费视频| 亚洲一区高清亚洲精品| 国产熟女xx| 午夜免费成人在线视频| 成人免费观看视频高清| 中文字幕人妻熟女乱码| 亚洲精品久久午夜乱码| 国产99白浆流出| 十八禁网站免费在线| 香蕉国产在线看| 精品国产乱子伦一区二区三区| 国产视频一区二区在线看| 亚洲激情在线av| 18禁裸乳无遮挡免费网站照片 | 激情在线观看视频在线高清| 久久久国产欧美日韩av| 精品国产乱码久久久久久男人| 免费不卡黄色视频| 亚洲一区二区三区不卡视频| 亚洲美女黄片视频| 香蕉丝袜av| 少妇的丰满在线观看| 欧美乱色亚洲激情| 一级a爱片免费观看的视频| 精品免费久久久久久久清纯| 91麻豆av在线| 欧美不卡视频在线免费观看 | 国产又色又爽无遮挡免费看| 国产免费av片在线观看野外av| 一个人观看的视频www高清免费观看 | 首页视频小说图片口味搜索| av电影中文网址| 日本欧美视频一区| 精品福利永久在线观看| 国产精品永久免费网站| 又紧又爽又黄一区二区| 国产一卡二卡三卡精品| 国产精品成人在线| 啦啦啦在线免费观看视频4| 自线自在国产av| 大陆偷拍与自拍| 婷婷丁香在线五月| 国产精品1区2区在线观看.| 国产欧美日韩一区二区三| 成人手机av| 可以在线观看毛片的网站| 亚洲精品在线观看二区| 免费女性裸体啪啪无遮挡网站| 91麻豆av在线| 一二三四在线观看免费中文在| 免费av毛片视频| tocl精华| 看黄色毛片网站| 国产在线观看jvid| a级毛片在线看网站| 久久久久久久久免费视频了| 成人av一区二区三区在线看| 淫秽高清视频在线观看| 夜夜夜夜夜久久久久| 日韩精品中文字幕看吧| 国产精品国产av在线观看| 久久午夜亚洲精品久久| 丁香六月欧美| 久久久国产欧美日韩av| 男人舔女人下体高潮全视频| ponron亚洲| 村上凉子中文字幕在线| 天堂中文最新版在线下载| 夫妻午夜视频| 老汉色∧v一级毛片| 女性生殖器流出的白浆| 可以免费在线观看a视频的电影网站| 欧美日韩精品网址| 国产精品免费一区二区三区在线| 99香蕉大伊视频| 一本大道久久a久久精品| 两个人免费观看高清视频| 欧美色视频一区免费| 久久久久久久久中文| 啦啦啦免费观看视频1| 高清毛片免费观看视频网站 | 国产精品一区二区精品视频观看| 99精品欧美一区二区三区四区| 无人区码免费观看不卡| 757午夜福利合集在线观看| 一区二区日韩欧美中文字幕| 国产欧美日韩一区二区精品| 亚洲va日本ⅴa欧美va伊人久久| 亚洲久久久国产精品| 精品无人区乱码1区二区| 欧美不卡视频在线免费观看 | 在线免费观看的www视频| 午夜老司机福利片| 免费日韩欧美在线观看| 日韩欧美三级三区| 日韩一卡2卡3卡4卡2021年| 9热在线视频观看99| 亚洲精品美女久久av网站| 久久精品国产99精品国产亚洲性色 | 国产精品av久久久久免费| 日本三级黄在线观看| 麻豆久久精品国产亚洲av | 精品国内亚洲2022精品成人| 国产精品久久久av美女十八| 久久精品亚洲av国产电影网| 亚洲欧美一区二区三区久久| 国产蜜桃级精品一区二区三区| 后天国语完整版免费观看| 香蕉久久夜色| 黄色女人牲交| 很黄的视频免费| 一级黄色大片毛片| 一个人免费在线观看的高清视频| √禁漫天堂资源中文www| 999久久久国产精品视频| 交换朋友夫妻互换小说| 黄色毛片三级朝国网站| 一a级毛片在线观看| 日本一区二区免费在线视频| 老司机在亚洲福利影院| 国产精品日韩av在线免费观看 | 中文字幕色久视频| 天堂俺去俺来也www色官网| 美女高潮喷水抽搐中文字幕| 日韩高清综合在线| 亚洲中文日韩欧美视频| 国产精品国产av在线观看| 日韩一卡2卡3卡4卡2021年| 美国免费a级毛片| 国产三级在线视频| 国产色视频综合| xxxhd国产人妻xxx| 老熟妇仑乱视频hdxx| 老鸭窝网址在线观看| 亚洲av成人一区二区三| 久久精品国产清高在天天线| aaaaa片日本免费| 久久精品91蜜桃| 日本免费a在线| av国产精品久久久久影院| 午夜福利欧美成人| 精品无人区乱码1区二区| 日韩中文字幕欧美一区二区| 免费观看人在逋| 脱女人内裤的视频| 婷婷六月久久综合丁香| 色婷婷av一区二区三区视频| 精品国产亚洲在线| 亚洲欧美一区二区三区黑人| 日日夜夜操网爽| 久久精品国产清高在天天线| 久久久久国内视频| 国产伦一二天堂av在线观看| 日韩欧美三级三区| 成人亚洲精品av一区二区 | 欧美乱妇无乱码| 欧美日韩av久久| 叶爱在线成人免费视频播放| 日韩大尺度精品在线看网址 | 日韩成人在线观看一区二区三区| 麻豆国产av国片精品| 国产精品一区二区精品视频观看| 国产av精品麻豆| 可以在线观看毛片的网站| 他把我摸到了高潮在线观看| 狂野欧美激情性xxxx| 好男人电影高清在线观看| 91国产中文字幕| 九色亚洲精品在线播放| 黄色视频,在线免费观看| 亚洲 欧美一区二区三区| 久久天堂一区二区三区四区| 久久久久国产一级毛片高清牌| 天天躁夜夜躁狠狠躁躁| 丝袜人妻中文字幕| 欧美不卡视频在线免费观看 | 婷婷丁香在线五月| 日本免费一区二区三区高清不卡 | 久久久久久久精品吃奶| 久久 成人 亚洲| 亚洲久久久国产精品| svipshipincom国产片| 亚洲欧美日韩无卡精品| 美女 人体艺术 gogo| 亚洲国产欧美日韩在线播放| 超色免费av| 一级黄色大片毛片| 欧美在线一区亚洲| 老司机深夜福利视频在线观看| 一个人免费在线观看的高清视频| 怎么达到女性高潮| 精品乱码久久久久久99久播| 日本三级黄在线观看| 欧美在线黄色| 久久精品国产99精品国产亚洲性色 | 中国美女看黄片| 777久久人妻少妇嫩草av网站| 日本a在线网址| 欧美人与性动交α欧美软件| 国产精品自产拍在线观看55亚洲| 一级毛片高清免费大全| 日韩三级视频一区二区三区| 人人妻人人添人人爽欧美一区卜| 国产蜜桃级精品一区二区三区| 老司机福利观看| 精品久久久久久,| 成人国语在线视频| 日本五十路高清| 1024视频免费在线观看| 99精品在免费线老司机午夜| 一级a爱片免费观看的视频| 桃红色精品国产亚洲av| 亚洲欧美一区二区三区久久| 国产蜜桃级精品一区二区三区| 99香蕉大伊视频| www日本在线高清视频| 亚洲男人天堂网一区| 桃色一区二区三区在线观看| 久久国产精品影院| 90打野战视频偷拍视频| av网站在线播放免费| 丝袜在线中文字幕| 狠狠狠狠99中文字幕| 久久热在线av| 精品久久久久久,| 久久午夜亚洲精品久久| 两性午夜刺激爽爽歪歪视频在线观看 |