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

    基于RDMA的分布式存儲系統(tǒng)研究綜述

    2019-02-20 08:33:22陳游旻陸游游羅圣美舒繼武
    計算機研究與發(fā)展 2019年2期
    關(guān)鍵詞:鍵值原語服務(wù)端

    陳游旻 陸游游 羅圣美 舒繼武

    1(清華大學(xué)計算機科學(xué)與技術(shù)系 北京 100084)2 (中興通訊股份有限公司 南京 210012)

    在后摩爾時代,多核CPU已經(jīng)成為發(fā)展趨勢,同時,內(nèi)存日益廉價,這使得構(gòu)建內(nèi)存存儲系統(tǒng)變?yōu)榭赡?;在大?shù)據(jù)計算領(lǐng)域,數(shù)據(jù)規(guī)模大,數(shù)據(jù)維度高,數(shù)據(jù)種類多是其典型特征,內(nèi)存計算技術(shù)逐漸開始發(fā)揮重要作用.加州大學(xué)伯克利分校開發(fā)的Apache Spark[1]以及SAP公司在2012年推出的HANA內(nèi)存計算[2]已經(jīng)得到工業(yè)界的廣泛關(guān)注.

    DRAM相比于磁盤在帶寬和延遲上均有幾個數(shù)量級的優(yōu)勢,能極大地提升本地數(shù)據(jù)存儲性能,然而,DRAM也面臨集成度低等問題,單節(jié)點內(nèi)存最大只能達到幾百GB,很難滿足大型應(yīng)用的存儲需求.構(gòu)建分布式大內(nèi)存系統(tǒng)是一種有效途徑,但傳統(tǒng)以太網(wǎng)帶寬和延遲與DRAM性能具有明顯差異,網(wǎng)絡(luò)性能將成為制約系統(tǒng)性能的最重要因素.近年來, 遠程內(nèi)存直接訪問(remote direct memory access, RDMA)[3]作為一種新興的跨網(wǎng)數(shù)據(jù)傳輸技術(shù)逐漸從高性能計算走進大數(shù)據(jù)領(lǐng)域,并開始受到廣泛關(guān)注.RDMA技術(shù)能夠在遠端CPU不參與的情況下,繞過內(nèi)核直接訪問遠端內(nèi)存,實現(xiàn)零拷貝的數(shù)據(jù)傳輸.近年來,200 Gbps的高速網(wǎng)卡已經(jīng)走向市場,這與DRAM的帶寬進一步靠近.

    然而,簡單地將現(xiàn)有的分布式存儲系統(tǒng)中的網(wǎng)絡(luò)模塊替換為RDMA通信模式,而不優(yōu)化上層軟件邏輯的策略,并不能充分發(fā)揮RDMA網(wǎng)絡(luò)的硬件優(yōu)勢,這主要由3個方面導(dǎo)致:

    1) 硬件管理缺失.一方面,RDMA網(wǎng)卡和處理器均具有獨立的緩存系統(tǒng),并且RDMA網(wǎng)卡的緩存空間尤為有限,因此緩存空間的管理高效與否將直接影響系統(tǒng)整體性能;另一方面,RDMA網(wǎng)卡具有良好的并行性,多核處理器環(huán)境下數(shù)據(jù)傳輸并行化具有較大空間.然而,簡單兼容RDMA的軟件系統(tǒng)很少從硬件角度考慮RDMA通信的效率問題,從而忽視了緩存管理、多核并行、資源共享等方面的重要性,導(dǎo)致系統(tǒng)性能低下.

    2) 軟件邏輯冗余.傳統(tǒng)軟件大多采用模塊化設(shè)計,軟件層次分工明確.在兼容新型硬件時,如果依舊沿用了傳統(tǒng)的軟件層次,將會導(dǎo)致軟件邏輯冗余,效率低下.例如,傳統(tǒng)的分布式文件系統(tǒng)需要部署在本地文件系統(tǒng)之上,通過本地文件系統(tǒng)管理本地數(shù)據(jù),并依靠分布式軟件層構(gòu)建跨節(jié)點統(tǒng)一視圖.基于上述軟件架構(gòu),客戶端通過RDMA網(wǎng)絡(luò)讀取數(shù)據(jù)時,數(shù)據(jù)塊分別經(jīng)過本地文件系統(tǒng)鏡像、頁緩存、用戶態(tài)緩沖區(qū)等位置,將出現(xiàn)多層冗余拷貝.在慢速磁盤和傳統(tǒng)以太網(wǎng)環(huán)境下,內(nèi)存級冗余拷貝對系統(tǒng)整體性能影響甚微,但是,在構(gòu)建基于RDMA的內(nèi)存級分布式文件系統(tǒng)時,多層數(shù)據(jù)拷貝將明顯降低系統(tǒng)整體性能,因此,軟件邏輯重構(gòu)將尤為重要.

    3) 分布式協(xié)議低效.在分布式系統(tǒng)中,多客戶端并發(fā)訪問數(shù)據(jù)時,往往依靠2階段鎖或樂觀并發(fā)處理進行并發(fā)控制,避免客戶端間的訪問干擾;而跨節(jié)點數(shù)據(jù)一致性、系統(tǒng)崩潰一致性則由分布式一致性提交協(xié)議(2階段提交)保證.上述協(xié)議往往牽涉多個節(jié)點協(xié)同工作,流程復(fù)雜,性能低下.為此,基于傳統(tǒng)以太網(wǎng)的分布式系統(tǒng)中,往往通過特定的數(shù)據(jù)放置策略和處理方式避免使用分布式事務(wù)[4].然而,RDMA工作模式具有強一致性,其單向原語和原子操作可以被利用起來,從而設(shè)計新型分布式協(xié)議,滿足系統(tǒng)高效可擴展的需求.

    RDMA技術(shù)在通信模式、網(wǎng)絡(luò)性能等方面呈現(xiàn)出與傳統(tǒng)以太網(wǎng)完全不同的特點.對現(xiàn)有模塊化的軟件架構(gòu)進行簡單的網(wǎng)絡(luò)替換將無法充分發(fā)揮RDMA網(wǎng)絡(luò)性能.為此,需要結(jié)合RDMA網(wǎng)絡(luò)的硬件特性,調(diào)整軟硬件結(jié)構(gòu),從原語使用、數(shù)據(jù)流優(yōu)化、協(xié)議設(shè)計等方面重新設(shè)計軟件邏輯,從而充分發(fā)揮RDMA網(wǎng)絡(luò)的硬件優(yōu)勢.

    1 背景介紹

    目前有3類網(wǎng)絡(luò)架構(gòu)支持RDMA技術(shù),分別是IB(InfiniBand),RoCE(RDMA over converged eth-ernet),iWARP(internet wide area RDMA protocol).其中RoCE和IB具有相同的上層協(xié)議棧,而前者在數(shù)據(jù)鏈路層則完全兼容以太網(wǎng),iWARP保留了TCPIP的完整協(xié)議棧.

    RDMA允許本地CPU繞過操作系統(tǒng),直接讀寫遠端節(jié)點內(nèi)存,該過程無需遠端CPU的參與.以遠程寫操作為例(如圖1),本地CPU直接以MMIO(memory mapped IO)的方式向網(wǎng)卡發(fā)起遠程寫命令,并傳遞相應(yīng)參數(shù),包括待寫入數(shù)據(jù)塊基地址、遠端內(nèi)存地址、寫入數(shù)據(jù)塊大小、遠端注冊內(nèi)存密鑰等信息;本地網(wǎng)卡收到命令之后,立即根據(jù)本地數(shù)據(jù)塊基地址將數(shù)據(jù)塊從主存以DMA Read的方式讀取到網(wǎng)卡緩存,并發(fā)送到遠端;遠端網(wǎng)卡接收到數(shù)據(jù)塊之后,以DMA Write的方式直接將數(shù)據(jù)寫入內(nèi)存對應(yīng)地址.此過程中,RDMA無需像傳統(tǒng)以太網(wǎng)一樣穿越內(nèi)核中的多層網(wǎng)絡(luò)協(xié)議棧,因此實現(xiàn)了跨節(jié)點數(shù)據(jù)傳輸過程中的數(shù)據(jù)零拷貝.

    Fig. 1 Dataflow in RDMA network圖1 RDMA網(wǎng)絡(luò)數(shù)據(jù)收發(fā)過程

    RDMA通信鏈路可以被配置為3種模式,分別是可靠連接(reliable connection, RC)、不可靠連接(unreliable connection, UC)和不可靠數(shù)據(jù)報(un-reliable datagram, UD).其中,UD采用面向無連接的數(shù)據(jù)報發(fā)送方式,支持點對點和點對多的數(shù)據(jù)傳輸,而RC和UC模式僅支持點對點的面向連接的數(shù)據(jù)傳輸.另外,UD模式支持的最大數(shù)據(jù)傳輸單元為4 KB,而RC和UD模式支持多達2 GB的單次數(shù)據(jù)傳輸.

    RDMA訪問遠端內(nèi)存依靠2類原語:1)消息語義,其中Send和Recv是其典型的1組原語,它們類似于套接字編程中的Send和Recv,在發(fā)送消息之前,接收方需提前調(diào)用Recv原語,用于指定接收消息的存放地址.這類原語也被稱作雙向原語.2)內(nèi)存語義,該類原語包含Read,Write以及相應(yīng)的變種(Write-with-imm和原子操作).這類原語能在遠端CPU不介入的情況下直接讀取或更新遠端內(nèi)存,它們亦被稱作單向原語.不同語義在不同的通信鏈路模式下具有不用的支持程度,如表1所示:

    Table 1 RDMA Verbs and MTU Sizes in Different Modes表1 不同模式下的RDMA原語和最大傳輸單元(MTU)

    在RDMA編程中,網(wǎng)卡驅(qū)動分別提供了內(nèi)核態(tài)和用戶態(tài)編程接口,它們被稱作Verbs.以RC模式下的點對點鏈路建立過程為例,應(yīng)用程序需分別經(jīng)歷打開設(shè)備、創(chuàng)建保護域(protection domain, PD)、申請并注冊內(nèi)存、創(chuàng)建完成隊列(completion queue, CQ)、創(chuàng)建收發(fā)隊列(queue pair, QP)、初始化QP等過程.其中,申請的內(nèi)存用于收發(fā)和存儲遠端消息或被遠端網(wǎng)卡直接訪問.內(nèi)存在被遠程訪問之前需注冊到網(wǎng)卡,注冊過程包含:1)建立內(nèi)存虛擬地址到物理地址的映射表,并存儲到網(wǎng)卡緩存;2)生成密鑰對,用于本地或遠端內(nèi)存訪問控制.收發(fā)隊列包含發(fā)送隊列(send queue)和接收隊列(receive queue),用于存放CPU發(fā)起的網(wǎng)絡(luò)請求,網(wǎng)卡從隊列中依次處理原語,當(dāng)原語處理完畢,將相應(yīng)的完成信息存放到綁定的完成隊列中.創(chuàng)建的QP、CQ和注冊內(nèi)存均需綁定到相同PD中才能正常通信.

    RDMA繞過內(nèi)核實現(xiàn)數(shù)據(jù)零拷貝,并借助硬件執(zhí)行數(shù)據(jù)包的派送和解析,從而提供了高帶寬、低延遲的通信特性.但是, 將RDMA技術(shù)應(yīng)用到分布式系統(tǒng)中時,也存在原語漏用、冗余拷貝、協(xié)議低效等問題急需解決.為此,本文將結(jié)合實際系統(tǒng),從以下2個方面分別進行闡述:1)硬件資源的高效管理,在大規(guī)模集群中,高并發(fā)的數(shù)據(jù)傳輸將導(dǎo)致CPU緩存、網(wǎng)卡緩存發(fā)生劇烈競爭,影響系統(tǒng)性能,另外,CPU的多核架構(gòu)為并行處理提供了機遇,如何高效調(diào)度CPU核、提升網(wǎng)絡(luò)數(shù)據(jù)并行處理性能同樣重要.2)RDMA提供了遠程直接讀寫的新型通信原語,這打破了傳統(tǒng)分布式系統(tǒng)中的跨節(jié)點數(shù)據(jù)傳輸模型,促使一些系統(tǒng),例如分布式文件系統(tǒng)[5-7]、分布式鍵值存儲系統(tǒng)[8-14]、分布式事務(wù)系統(tǒng)[15-18]等選擇通過軟件重構(gòu)來充分發(fā)揮RDMA的硬件特性.

    2 RDMA與硬件管理

    RDMA技術(shù)通過硬件解析并處理網(wǎng)絡(luò)數(shù)據(jù)包降低延遲的同時,能有效提升數(shù)據(jù)傳輸?shù)牟⑿心芰?另外,網(wǎng)卡將鏈路狀態(tài)信息等核心數(shù)據(jù)緩存到網(wǎng)卡的緩存空間,用戶程序繞過內(nèi)核直接與硬件交互.因此,構(gòu)建高效的基于RDMA的存儲系統(tǒng)的關(guān)鍵因素在于結(jié)合RDMA的硬件特性,與系統(tǒng)軟件層進行緊耦合設(shè)計.本節(jié)將主要從網(wǎng)卡緩存、CPU緩存以及多核調(diào)度等硬件層次闡述如何設(shè)計高效的系統(tǒng)軟件.

    2.1 緩存管理

    緩存系統(tǒng)是計算機體系結(jié)構(gòu)中的重要組成部分,它將訪問頻繁的數(shù)據(jù)暫存到高速緩存器以加速應(yīng)用,因此,緩存系統(tǒng)對局部性較好的應(yīng)用加速效果顯著.在RDMA網(wǎng)絡(luò)通信中,CPU和網(wǎng)卡均存在獨立的緩存系統(tǒng),緩存使用的好壞將直接影響著節(jié)點間數(shù)據(jù)通信性能.

    網(wǎng)卡緩存用于暫存CPU發(fā)起的網(wǎng)絡(luò)請求和相應(yīng)的網(wǎng)絡(luò)狀態(tài)信息,其主要緩存3類數(shù)據(jù):1)注冊內(nèi)存從邏輯地址到物理地址的映射表,當(dāng)網(wǎng)卡發(fā)送數(shù)據(jù)或接收到數(shù)據(jù)時,將依據(jù)映射表查詢相應(yīng)物理地址;2)QP狀態(tài),存放QP對應(yīng)的元數(shù)據(jù)信息;3)由CPU發(fā)起的網(wǎng)絡(luò)請求條目,網(wǎng)卡根據(jù)請求條目執(zhí)行相應(yīng)處理.在特定場景下,這3類數(shù)據(jù)都會增加網(wǎng)卡緩存缺失率,導(dǎo)致系統(tǒng)性能下降.

    第1方面,內(nèi)存注冊后以頁為單位生成映射表,默認(rèn)情況頁的大小為4 KB,假設(shè)每個映射條目為12 B,則注冊10 GB內(nèi)存需要的映射表大小為30 MB,這將很難全部存放到網(wǎng)卡緩存中.FaRM[13,15]引入內(nèi)核驅(qū)動PhyCo,它在系統(tǒng)啟動時分配2 GB對齊(網(wǎng)卡最大支持2 GB的頁大小)的物理連續(xù)的內(nèi)存區(qū)域,并將其映射到FaRM進程的邏輯地址空間.通過這種方式,映射表大小將縮小為60 B.

    第2方面,RDMA的擴展性問題還源于連接數(shù)量的增加.圖2展示了RDMA網(wǎng)絡(luò)在不同鏈路模式下的吞吐,我們選取1個節(jié)點作為Server,啟動多個線程并行地向多個節(jié)點發(fā)送(接收)32 B的消息.其中向外發(fā)送消息稱作Outbound-Message,反之則為Inbound-Message.如圖2所示,在RC模式下,總吞吐隨著連接數(shù)量的增大而減小,而Outbound相比于Inbound下降更為明顯.相反,UD模式下總吞吐不受到連接數(shù)量的影響.這主要是因為在RC模式下,Server端需要與每個客戶端創(chuàng)建QP并建立連接,當(dāng)連接數(shù)量過多后,QP狀態(tài)信息無法全部存放到網(wǎng)卡緩存,導(dǎo)致數(shù)據(jù)頻繁在網(wǎng)卡緩存和主存間換入換出,影響性能.而UD模式下,Server端只需創(chuàng)建固定數(shù)量的QP,便能與所有的客戶端進行通信,因此服務(wù)端總吞吐不受到客戶端數(shù)量的影響.FaSST RPC[16]是基于UD的RPC系統(tǒng),得益于UD的無連接通信模式,F(xiàn)aSST能夠線性擴展到數(shù)百個節(jié)點.然而,UD同樣也存在其他缺陷,例如不支持遠程直接讀寫,單次最大傳輸數(shù)據(jù)量不能超過4 KB,底層無擁塞控制邏輯,且有丟包或亂序風(fēng)險.因此需要額外的軟件控制來保障UD在真實應(yīng)用中的可靠數(shù)據(jù)傳輸,但軟件控制又將引入新的開銷[19].

    Fig. 2 Scalability issue in different transport modes of RDMA圖2 RDMA在不同鏈路模式下的擴展性問題

    第3方面,CPU發(fā)起網(wǎng)絡(luò)請求時,使用MMIO向網(wǎng)卡發(fā)送命令,這些命令將被臨時緩存到網(wǎng)卡緩存,并由網(wǎng)卡依次處理.然而,當(dāng)CPU發(fā)送命令過快時,網(wǎng)卡緩存不足以存放新的請求,因此之前發(fā)送的未處理的請求將被換出到主存,等到被處理時再換回到網(wǎng)卡緩存.頻繁的換入換出操作將引入大量的PCIe流量,這是制約網(wǎng)絡(luò)吞吐的關(guān)鍵因素.圖3源于文獻[20]中的圖13(b),展示了單節(jié)點向外發(fā)起寫請求時的緩存缺失情況.CPU以批量請求的方式向網(wǎng)卡發(fā)起RC Write請求,通過控制每次批量請求包含的請求數(shù)量來調(diào)節(jié)CPU發(fā)起請求的速度(橫坐標(biāo)).其中CX3和CIB為2類網(wǎng)卡型號,且CIB性能強于CX3.圖3中CX3 WR和CIB WR分別表示在CIB和CX3環(huán)境下RC Write請求的速率.而PCIeRd則表示網(wǎng)卡發(fā)起的PCIe Read的速率,PCIe Read速率越高,代表額外的PCIe流量越高,對性能影響越大.從圖3中我們可以發(fā)現(xiàn),CX3環(huán)境下,當(dāng)每次批量請求的數(shù)量達到16后,RC Write的吞吐有一定下降,而此時PCIeRd的速率明顯上升,表明此時CPU發(fā)送請求速度過快,已經(jīng)存在明顯的緩存缺失現(xiàn)象.CIB環(huán)境下PCIeRd速率一直保持較低水平,且RC Write吞吐幾乎線性提升,這說明CIB網(wǎng)卡能夠支撐CPU發(fā)起的最快請求速度,而不發(fā)生緩存缺失現(xiàn)象.因此,當(dāng)網(wǎng)卡處理能力不及CPU時,需控制CPU請求速率,避免網(wǎng)絡(luò)吞吐下降.

    Fig. 3 NIC cache misses for RC Write operations[20]圖3 RC Write操作對應(yīng)網(wǎng)卡緩存缺失率[20]

    Fig. 4 NIC writes with Intel data direct IO圖4 因特爾數(shù)據(jù)直訪IO技術(shù)下網(wǎng)卡寫操作流程

    CPU緩存在網(wǎng)絡(luò)數(shù)據(jù)收發(fā)過程中扮演重要角色.因特爾至強E5系列處理器提供了獨有的數(shù)據(jù)直訪IO(data direct IO,DDIO)技術(shù),它允許PCIe外設(shè)直接讀寫CPU的末級緩存(LLC,通常為第3級緩存)而繞過對主存的訪問,從而降低IO適配器到內(nèi)存以及內(nèi)存到CPU之間的延遲(如圖4).PCIe外設(shè)以Write Update或Write Allocate的方更新CPU的LLC.當(dāng)訪問數(shù)據(jù)已經(jīng)緩存到LLC時使用前者進行更新,而當(dāng)訪問數(shù)據(jù)不在緩存中時,則使用后者.Write Allocate操作需先分配緩存空間,然后寫入數(shù)據(jù),其開銷大于Write Update.通常情況下,用于DDIO的緩存區(qū)域占整個LLC的10%左右,以防止外設(shè)IO干擾CPU運行應(yīng)用程序的性能.因此,基于RDMA建立的通信模型下,構(gòu)建過大的通信消息池將不能被完全映射到LLC中,從而引入大量的Write Allocate操作,影響系統(tǒng)的整體性能.

    文獻[9]構(gòu)建的HERD RPC系統(tǒng)中,服務(wù)端靜態(tài)分配固定大小的消息池,并劃分為連續(xù)的內(nèi)存塊,用于存放遠端客戶端寫入的新消息.客戶端通過UC Write將請求遠程寫入到消息池中,服務(wù)端處理之后則使用UD Send返回響應(yīng)信息.為避免客戶端在寫入消息時互相干擾,不同客戶端被映射到消息池的不同區(qū)域.在HERD中,每個消息塊大小為1 KB,最大支持的客戶端數(shù)量為200,消息池的大小為6 MB,能完全存放到LLC.但這種靜態(tài)映射方式限制了最大支持的客戶端數(shù)量,同時每個請求的數(shù)據(jù)量也不能超過1 KB.FaSST[16]使用UD Send傳遞請求,數(shù)據(jù)存放地址由接收方?jīng)Q定,因此客戶端之間可共享同一個消息池,消息池大小不會因為客戶端總數(shù)量變化而發(fā)生改變.

    2.2 CPU調(diào)度

    基于RDMA設(shè)計高效的系統(tǒng)軟件,在CPU調(diào)度層面需要考慮以下3個方面的問題.

    1) 多核并發(fā).RDMA網(wǎng)絡(luò)具有良好的并行性,單條鏈路上的網(wǎng)絡(luò)負(fù)載很難達到網(wǎng)卡的峰值處理能力.另一方面,使用單個CPU核不足以處理多條鏈路上的網(wǎng)絡(luò)請求,CPU多核并行同樣重要.如圖5(a)所示,服務(wù)端與客戶端創(chuàng)建多個QP連接,通過變化QP數(shù)量,展現(xiàn)了RDMA不同原語的最大吞吐.我們發(fā)現(xiàn),在QP數(shù)量少于4時,所有原語均不能達到網(wǎng)卡處理峰值.同樣,圖5(b)展現(xiàn)了不同RPC系統(tǒng)的吞吐率,橫坐標(biāo)表示改變服務(wù)端CPU核的數(shù)量,并啟動40個客戶端發(fā)送RPC請求,縱坐標(biāo)表示不同RPC系統(tǒng)的吞吐率,發(fā)現(xiàn)CPU核的數(shù)量超過4時才能達到網(wǎng)卡處理峰值.由此可見,合理增加并發(fā)度,能較大提升RDMA的網(wǎng)絡(luò)性能.DaRPC[21]是一個基于RDMA的RPC系統(tǒng),它在服務(wù)端采用了精細化的并行架構(gòu):初始化階段,服務(wù)端啟動多個線程,并行處理遠端請求,每個客戶端均與服務(wù)端建立獨立的QP鏈路,這些鏈路被映射到不同的服務(wù)端線程,用于并行消息處理.另外,在NUMA架構(gòu)下,網(wǎng)卡、主存等相對于CPU具有非對稱訪問特性,近端CPU訪問網(wǎng)卡和主存能有效降低延遲、提升吞吐.文獻[21]表明,NUMA友好的近端綁定策略能有效提升系統(tǒng)性能達20%左右.

    2) 負(fù)載均衡.服務(wù)端線程靜態(tài)映射的方式能提升并行度,但每個客戶端負(fù)載具有差異性,且相應(yīng)的遠程調(diào)用開銷不盡相同,因此有可能導(dǎo)致個別CPU核處理繁忙,而其他CPU核空閑等待的現(xiàn)象.文獻[21]提出了一種“Work Stealing and Load Balancing”的管理方法,在服務(wù)端引入監(jiān)控器,用于實時統(tǒng)計各CPU核的工作負(fù)載狀態(tài),當(dāng)某CPU核的工作負(fù)載超過某閾值,則將新來的部分請求放入到1個全局隊列中,而其他CPU核在不繁忙時查看全局隊列,并及時處理相應(yīng)請求.這種方式有效解決了各CPU核負(fù)載不均衡的問題,但同時也引入了時序問題,導(dǎo)致早到達的RPC請求在晚到的請求之后被處理.這種亂序響應(yīng)需要在客戶端處理邏輯中被謹(jǐn)慎考慮.

    Fig. 5 Throughput with different QPs and CPU cores圖5 不同QP數(shù)量或CPU核對吞吐的影響

    Fig. 6 Per-thread Read throughput with QP sharing[16]圖6 QP共享模式下Read請求的單線程吞吐率[16]

    3 RDMA與軟件重構(gòu)

    RDMA提供了不同于套接字編程的通訊接口,它允許在遠端CPU不參與的情況下直接訪問遠端內(nèi)存,實現(xiàn)數(shù)據(jù)的零拷貝傳輸,這在一定程度上顛覆了傳統(tǒng)的系統(tǒng)架構(gòu)思想,從而促使了分布式鍵值存儲系統(tǒng)、文件系統(tǒng)以及事務(wù)系統(tǒng)等在軟件層的變革.軟件層次的變化可基本總結(jié)為以下3類:分布式協(xié)議的重構(gòu)、網(wǎng)絡(luò)負(fù)載的分派均衡和數(shù)據(jù)的遠程索引等方面.本節(jié)將從多類分布式存儲系統(tǒng)展開,并闡述軟件層如何從以上3個方面使用和優(yōu)化RDMA網(wǎng)絡(luò).

    3.1 RDMA在Key-Value系統(tǒng)中的應(yīng)用

    在傳統(tǒng)存儲系統(tǒng)中,數(shù)據(jù)的組織和索引由服務(wù)端本地執(zhí)行.一般地,客戶端讀取或更新服務(wù)端數(shù)據(jù)時,首先向服務(wù)端發(fā)送RPC(remote procedure call)請求,服務(wù)端接收到請求后,迭代式地查詢以樹狀或散列組織的數(shù)據(jù),然后將查詢或更新結(jié)果返回給客戶端.Key-Value系統(tǒng)采用平鋪式的數(shù)據(jù)存儲管理模式,僅提供類似Get,Put等接口,系統(tǒng)結(jié)構(gòu)簡單.同時,RDMA可以直接訪問遠端內(nèi)存數(shù)據(jù),這使得分布式鍵值存儲系統(tǒng)中的數(shù)據(jù)索引模式發(fā)生改變.近年,結(jié)合RDMA和Key-Value存儲的分布式鍵值存儲系統(tǒng)[8-14]被廣泛研究,本節(jié)將著重介紹Pilaf[5].

    Pilaf是紐約大學(xué)于2013年提出的一個內(nèi)存級分布式鍵值存儲系統(tǒng),借助RDMA原語實現(xiàn)了極高的系統(tǒng)性能,同時有效降低了服務(wù)端CPU開銷.Pilaf在處理GET請求時,利用RDMA內(nèi)存語義低延遲的特性,通過客戶端發(fā)起多次Read請求完成鍵值查詢,將數(shù)據(jù)索引任務(wù)由服務(wù)端轉(zhuǎn)移到客戶端(見圖7).

    Fig. 7 Overall architecture of Pilaf[8]圖7 Pilaf的總體架構(gòu)[8]

    如圖7所示,Pilaf的鍵值對通過散列表索引,散列表和鍵值對統(tǒng)一存放在內(nèi)存區(qū)域中,散列表中的各表項存放鍵值對的內(nèi)存地址,用于索引真實的鍵值對.存放上述內(nèi)容的內(nèi)存空間在系統(tǒng)初始化時分配,并注冊到網(wǎng)卡,使得客戶端可遠程直接訪問,客戶端在接入時獲取服務(wù)端注冊內(nèi)存的虛擬地址.客戶端在執(zhí)行Get操作時,首先計算出Key相應(yīng)散列值,并根據(jù)散列值確定對應(yīng)表項在散列表中的偏移;然后執(zhí)行RDMA Read讀取散列表在該偏移下的內(nèi)容,如果表項包含1個有效地址,則根據(jù)該地址執(zhí)行第2次Read操作獲取鍵值內(nèi)容.如果獲取的鍵值對匹配,則成功返回;如果散列表項為空,或者鍵值對不匹配,則線性查找下1個表項,直到查詢成功.

    Put操作需要更新散列表和鍵值對,在多客戶端并行訪問場景下,會出現(xiàn)數(shù)據(jù)沖突訪問,因此將Put操作的邏輯完全交由客戶端并不現(xiàn)實.在Pilaf中,所有的更新操作(包括Put,Del等)將按照傳統(tǒng)方式轉(zhuǎn)交給服務(wù)端執(zhí)行.具體方式為:客戶端向服務(wù)端發(fā)起相應(yīng)更新操作的RPC請求,服務(wù)端收到請求之后,在本地執(zhí)行查詢更新,然后返回更新結(jié)果.在讀寫并發(fā)場景下,以上工作流程會引入臟讀.例如,在服務(wù)端更新某一鍵值對的時候,客戶端同時使用Read讀取正在更新的鍵值對,則有可能讀取到1個中間狀態(tài)的值.Pilaf引入自校驗方法來解決臟讀問題.如圖8所示.

    Fig. 8 Self-verifying Hash table structure[8]圖8 自校驗散列表數(shù)據(jù)結(jié)構(gòu)[8]

    在散列表的每一個表項中,添加2層校驗碼,服務(wù)端在處理更新請求時,首先更新鍵值對內(nèi)容,然后根據(jù)鍵值對內(nèi)容計算校驗碼,并更新散列表對應(yīng)表項的第1個校驗值,然后根據(jù)表項更新第2個校驗值.當(dāng)客戶端執(zhí)行Get操作時,通過2次匹配校驗碼來判斷是否發(fā)生臟讀.如果匹配失敗,則等待隨機時間,再次獲取鍵值內(nèi)容,直至匹配成功.Pilaf借助多次Read請求將Get處理邏輯轉(zhuǎn)移到客戶端,這種遠端索引方式一定程度降低了服務(wù)端的處理開銷.同時,依靠RDMA的硬件優(yōu)勢,系統(tǒng)處理請求的能力相比于傳統(tǒng)方式提升顯著.

    表2詳細描述了多種KV存儲系統(tǒng)的實現(xiàn)差異.HERD[9]廣泛地測試了RDMA各類原語的性能差異,總結(jié)出Pilaf在讀取操作中將引入多次RDMA Read操作,效率低下.為此,HERD設(shè)計基于RDMA的高性能RPC系統(tǒng),所有的操作依舊通過服務(wù)端處理,從而每次遠程請求將只引入1次往返網(wǎng)絡(luò)交互.HERD同時還考慮到RDMA網(wǎng)絡(luò)的擴展性問題,采用 UC Write和UD Send分別作為客戶端發(fā)送請求和服務(wù)端發(fā)送反饋信息的原語.HERD能同時保證GetPut請求的高性能,且客戶端數(shù)量能輕松擴展到數(shù)百個.HydraDB[10]則面向通用性中間件,可作為系統(tǒng)緩存層或獨立的存儲層,并提供數(shù)據(jù)復(fù)制功能,保障數(shù)據(jù)容錯,同時結(jié)合NUMA架構(gòu)進行性能優(yōu)化.HydraDB也使用RDMA Read執(zhí)行Get請求,并增加客戶端緩存提升性能.在KV緩存系統(tǒng)中,引入RDMA單向原語將導(dǎo)致服務(wù)端對客戶端訪問特性無法感知,為解決上述問題,C-Hint[12]通過客戶端與服務(wù)端的協(xié)同設(shè)計,以提升KV緩存系統(tǒng)的命中率.RFP[11]針對RDMA的InBound和OutBound原語性能不對稱問題,提出客戶端主動執(zhí)行發(fā)送和接收的新型IO機制.Nessie[14]則配合使用Read、Write以及原子操作(CAS)原語,將KV訪問邏輯完全轉(zhuǎn)交到客戶端,從而避免服務(wù)端CPU參與存儲服務(wù).FaRM[13]將KV存儲系統(tǒng)構(gòu)建在具有事務(wù)接口的分布式共享內(nèi)存處理平臺上,該系統(tǒng)將會在后文進行進一步介紹.目前國內(nèi)針對KV存儲系統(tǒng)的研究也已經(jīng)相應(yīng)展開,但大多基于現(xiàn)有系統(tǒng)進行改造,性能方面局限性較大[22].

    Table 2 Comparison of Implementation Details Between Different KVStores表2 不同鍵值存儲系統(tǒng)實現(xiàn)細節(jié)對比

    3.2 RDMA在文件系統(tǒng)中的應(yīng)用

    總體上,RDMA更多地被應(yīng)用到鍵值存儲和分布式事務(wù)系統(tǒng),而分布式文件系統(tǒng)由于結(jié)構(gòu)復(fù)雜,很難充分發(fā)揮出RDMA的硬件特性.目前,也有部分分布式文件系統(tǒng)開始嘗試支持RDMA網(wǎng)絡(luò),以提供更高的性能[6-7].但是,這些系統(tǒng)大多采用了模塊化的軟件設(shè)計,將網(wǎng)絡(luò)傳輸、文件存儲和控制邏輯嚴(yán)格分離,而在引入RDMA網(wǎng)絡(luò)的時候,僅僅采用了簡單的網(wǎng)絡(luò)通訊模塊替換,而不是選擇重構(gòu)文件系統(tǒng)的內(nèi)部邏輯,因此取得的效果甚微.

    Fig. 9 The overall architecture of Octopus[23]圖9 Octopus整體架構(gòu)[23]

    清華大學(xué)于2017年提出的分布式持久性內(nèi)存文件系統(tǒng)Octopus[23],通過緊密結(jié)合RDMA特性,重新設(shè)計了文件系統(tǒng)軟件邏輯.具體地,各個節(jié)點將數(shù)據(jù)存儲區(qū)注冊到內(nèi)存,并共享到集群使之可被遠程直接訪問,進而構(gòu)建持久性共享內(nèi)存,而元數(shù)據(jù)區(qū)域則由服務(wù)節(jié)點進行本地管理(如圖9).Octopus通過引入持久性共享內(nèi)存以降低數(shù)據(jù)冗余拷貝,進而提供接近硬件的讀寫帶寬;引入客戶端主動式數(shù)據(jù)傳輸來重新均攤客戶端和服務(wù)端之間的網(wǎng)絡(luò)負(fù)載;引入自識別遠程過程調(diào)用協(xié)議以提供低延遲元數(shù)據(jù)訪問性能.

    1) 持久性共享內(nèi)存

    現(xiàn)有的分布式文件系統(tǒng)構(gòu)建在本地文件系統(tǒng)之上,因而存在大量的數(shù)據(jù)冗余拷貝.以文件讀寫為例,數(shù)據(jù)塊需要逐層拷貝到TCPIP協(xié)議棧中的mbuf、用戶態(tài)緩沖區(qū)、內(nèi)核態(tài)頁緩存、文件系統(tǒng)鏡像等位置,最終統(tǒng)計到1次文件讀寫將引入7次數(shù)據(jù)拷貝,這種低效的系統(tǒng)設(shè)計模式嚴(yán)重限制了RDMA網(wǎng)絡(luò)的硬件特性.Octopus則提出了持久性共享內(nèi)存,用于直接管理文件系統(tǒng)數(shù)據(jù).這種設(shè)計移除了本地文件系統(tǒng)層,同時讓客戶端遠程直接訪問,成功將數(shù)據(jù)拷貝次數(shù)降低到4次.

    2) 客戶端主動式數(shù)據(jù)傳輸

    通常情況下,文件讀寫將引入1次網(wǎng)絡(luò)往返請求,以文件讀取為例,客戶端主動發(fā)起文件讀請求,服務(wù)端收到請求之后,查詢并裝填數(shù)據(jù),然后將數(shù)據(jù)返回給客戶端.我們稱這種傳輸模式為服務(wù)端主動式數(shù)據(jù)傳輸,這種工作模式在傳統(tǒng)以太網(wǎng)下工作高效,但是當(dāng)轉(zhuǎn)移到RDMA網(wǎng)絡(luò)上后CPU占用率極高,成為了系統(tǒng)瓶頸.為此提出一種客戶端主動式數(shù)據(jù)傳輸機制,它具有以下3個步驟: ①客戶端向服務(wù)端發(fā)起文件讀寫請求;②服務(wù)端查詢文件元數(shù)據(jù)信息,并將元數(shù)據(jù)直接返回給客戶端;③客戶端根據(jù)元數(shù)據(jù)信息提供的遠程地址,直接執(zhí)行RDMA ReadWrite.其中步驟①②通過發(fā)起RPC請求完成,而步驟③由客戶端主動執(zhí)行,服務(wù)端CPU不參與文件數(shù)據(jù)的傳輸,這種設(shè)計引入了更多的網(wǎng)絡(luò)往返次數(shù),但是將服務(wù)端CPU負(fù)載轉(zhuǎn)移到客戶端,從而提升了并發(fā)文件讀寫性能.

    3) 自識別遠程過程調(diào)用

    RDMA提供了微秒級別的網(wǎng)絡(luò)延遲,為充分利用RDMA低延遲的特性,Octopus設(shè)計并實現(xiàn)了高效的RPC系統(tǒng).RPC主要用于文件元數(shù)據(jù)訪問和分布式事務(wù)的協(xié)調(diào)提交.RDMA的2類原語均可用于設(shè)計RPC系統(tǒng),基于SendRecv的RPC實現(xiàn)簡單,但其性能不如內(nèi)存語義,UD模式具有良好的擴展性和高性能,但其諸多缺陷導(dǎo)致并不適合應(yīng)用到基于可靠傳輸?shù)奈募到y(tǒng)場景.內(nèi)存語義具有極低延遲,在構(gòu)建RPC系統(tǒng)時,由于其單向性,服務(wù)端必須開啟線程輪詢掃描內(nèi)存來檢測新消息,這會導(dǎo)致較高的CPU開銷,且客戶端數(shù)量上升后,CPU需掃描更大范圍的內(nèi)存空間,這也會影響RPC延遲.Octopus選擇了Write-with-imm作為遠程請求的原語,它可在報頭攜帶32 b立即數(shù),用于存放客戶端元數(shù)據(jù)信息,指導(dǎo)服務(wù)端快速定位新消息;同時,該原語將消耗服務(wù)端提前發(fā)起的Recv請求,因此是雙向原語;基于Write-with-imm的RPC系統(tǒng)能幫助服務(wù)端快速檢測到完成信息,根據(jù)立即數(shù)快速定位到新消息,保證RPC性能的同時提供穩(wěn)定的傳輸延遲.

    俄亥俄州立大學(xué)提出的NVFS[7]將非易失內(nèi)存和RDMA結(jié)合起來,用于加速HDFS.但由于HDFS本身軟件設(shè)計厚重,NVFS很難充分發(fā)揮NVM和RDMA的硬件特性.IBM最近提出的Crail[5],其元數(shù)據(jù)跨節(jié)點訪問基于DaRPC[21],其中,DaRPC是一個基于RDMA的RPC系統(tǒng),它將消息處理和網(wǎng)絡(luò)傳輸緊密結(jié)合,并提供高吞吐、低延遲的跨網(wǎng)傳輸性能.Crail相比于Octopus多1次冗余拷貝,因此其帶寬不如Octopus;Crail同時也無法保證數(shù)據(jù)的一致性和持久性,為此,Crail引入多級存儲架構(gòu),并通過后端存儲進行數(shù)據(jù)持久化.

    3.3 RDMA在分布式事務(wù)中的應(yīng)用

    RDMA具有cache強一致性,這意味著,RDMA網(wǎng)卡寫入的最新數(shù)據(jù)能及時被CPU讀取,同時,網(wǎng)卡總是發(fā)送CPU最新更新的數(shù)據(jù); RDMA還具有原子性,它提供2種原子操作原語:CAS和FAA①COMP_AND_SWAP和FETCH_AND_ADD縮寫為CAS和FAA.,它們可以并發(fā)更新同一個內(nèi)存地址上的64 b值而保證1次操作的原子性.RDMA的上述特性將促使分布式協(xié)議的重構(gòu).

    DrTM[17-18]是上海交通大學(xué)2015年提出的一種分布式事務(wù)系統(tǒng),它巧妙地結(jié)合了RDMA和硬件事務(wù)內(nèi)存(hardware transactional memory, HTM),利用它們之間的強一致性設(shè)計并實現(xiàn)了一套高效的分布式事務(wù)協(xié)議.事務(wù)內(nèi)存提供了XBEGIN,XEND和XABORT接口,能夠在硬件層面控制對內(nèi)存的沖突訪問,一旦沖突發(fā)生,只有1個線程成功修改,而其他線程均無條件終止.事實上,RDMA的遠程沖突訪問也將導(dǎo)致本地的事務(wù)性內(nèi)存訪問終止,因此,DrTM利用這種強一致性重新設(shè)計了事務(wù)協(xié)議.

    DrTM在執(zhí)行事務(wù)邏輯時,首先通過RDMA Read將存儲在遠端的讀集和寫集搜集到本地,然后依靠HTM在本地執(zhí)行數(shù)據(jù)更新,最后使用RDMA Write將更新過的數(shù)據(jù)寫回到遠端(如圖10中Case1).其中,圖10中Case2~Case5展示了本地和分布式事務(wù)執(zhí)行沖突的不同場景:圖10中Case2場景中,M1搜集遠端數(shù)據(jù)時,M2正在執(zhí)行本地更新,HTM將強制終止執(zhí)行,2個沖突事務(wù)之間實現(xiàn)了序列化.而圖10中Case2和Case3場景下,M1開始搜集遠端數(shù)據(jù)時,M2還未開始本地執(zhí)行,因此M2事務(wù)不會終止,之后M2也訪問并修改了相同的數(shù)據(jù)項,沖突事務(wù)之間沒實現(xiàn)嚴(yán)格的序列化.為解決上述問題,DrTM借助RDMA原子操作實現(xiàn)了一套分布式鎖,并強制在搜集遠端數(shù)據(jù)之前首先進行數(shù)據(jù)項加鎖.這樣在圖10中Case3~Case5場景中,M2的本地遠程讀寫階段將被阻塞,從而實現(xiàn)事務(wù)間的序列化.DrTM借助RDMA的強一致性和HTM的原子性,重新構(gòu)造了分布式事務(wù)協(xié)議,同時基于RDMA提供的原子操作原語設(shè)計了高效的獨占鎖和共享鎖,用于細粒度的事務(wù)并發(fā)控制.因此,RDMA提供的一致性以及原子性的特點將促使相應(yīng)的分布式協(xié)議發(fā)生重大變化.

    FaRM[13,15]是Microsoft Research在2014年提出的一個基于RDMA的分布式內(nèi)存計算平臺.FaRM提供基于分布式事務(wù)的共享內(nèi)存讀寫接口,通過樂觀鎖和2階段提交協(xié)議來保證事務(wù)執(zhí)行的原子性和可序列化.如圖11是FaRM的事務(wù)執(zhí)行邏輯,其中包含1個協(xié)調(diào)者(C)和3個參與者(P1,P2,P3)以及他們的備份節(jié)點(B1,B2,B3).事務(wù)分為執(zhí)行階段和提交階段,圖11中虛線箭頭代表Read,實線箭頭代表Write.在執(zhí)行階段,協(xié)調(diào)者首先查詢內(nèi)存區(qū)標(biāo)識符,通過散列函數(shù)計算相應(yīng)遠端地址,發(fā)起Read請求,遠程讀取事務(wù)涉及的讀集和寫集,然后根據(jù)讀取的數(shù)據(jù)在本地執(zhí)行事務(wù)邏輯.在提交階段,首先要對寫集對應(yīng)數(shù)據(jù)項加鎖,協(xié)調(diào)者以RPC的方式將加鎖請求寫到參與者的消息區(qū),參與者接收到消息后,對數(shù)據(jù)項加鎖,如果加鎖失敗或數(shù)據(jù)項版本發(fā)生變化,則返回失敗,事務(wù)終止.加鎖階段完成后,需再次核對讀集對應(yīng)版本.若以上2步均成功執(zhí)行,則先后對備份節(jié)點和參與者執(zhí)行數(shù)據(jù)提交.為提高事務(wù)讀寫的并發(fā)性能,F(xiàn)aRM通過增加cache line粒度的版本控制實現(xiàn)無鎖讀,在不加鎖的情況下執(zhí)行事務(wù)讀取,并感知事務(wù)的一致性,判斷是否發(fā)生臟讀.不同于DrTM的是,F(xiàn)aRM無需CPU支持HTM功能,而是通過樂觀鎖進行并發(fā)控制,僅在事務(wù)提交時進行沖突檢查;另一方面,F(xiàn)aRM在事務(wù)執(zhí)行過程中進行數(shù)據(jù)備份,從而提高了數(shù)據(jù)可用性.

    Fig. 10 The cases of conflicts between local and remote txs[17]圖10 本地和分布式事務(wù)之間的沖突情形[14]

    Fig. 11 FaRM commit protocol[15]圖11 FaRM的事務(wù)提交協(xié)議[15]

    CMU于2016年提出的分布式事務(wù)協(xié)議FaSST[16],則側(cè)重于考慮RDMA網(wǎng)絡(luò)的高性能和可擴展,他們發(fā)現(xiàn)UD Send在實際通信場景中根本不出現(xiàn)丟包情況,且表現(xiàn)出極高的性能和擴展性,為此,他們借用FaRM的分布式事務(wù)協(xié)議模型,設(shè)計并實現(xiàn)了新型分布式事務(wù),其性能遠高于DrTM和FaRM.

    3.4 RDMA的通用性優(yōu)化

    RDMA在上述3類系統(tǒng)中得到了廣泛的研究與應(yīng)用.此外,RDMA還在IO負(fù)載分派、數(shù)據(jù)遠程備份等方面提供了新的方式,本節(jié)將著重介紹與RDMA相關(guān)的通用性優(yōu)化技術(shù).

    1) 網(wǎng)絡(luò)負(fù)載重分派

    RDMA單向原語在執(zhí)行過程中僅需發(fā)送方CPU參與,這區(qū)別于傳統(tǒng)套接字的收發(fā)模式.因此從CPU執(zhí)行IO負(fù)載角度來看,RDMA單向原語為網(wǎng)絡(luò)負(fù)載的重分派提供了機遇.從3.3節(jié)事務(wù)提交協(xié)議中可以看到,F(xiàn)aRM在事務(wù)執(zhí)行階段、版本核對階段、備份節(jié)點參與者提交階段以及無鎖讀階段均使用了單向原語,參與者或備份節(jié)點CPU完全不參與事務(wù)執(zhí)行邏輯.通過網(wǎng)絡(luò)負(fù)載的重新分派,協(xié)調(diào)者組織執(zhí)行事務(wù)的大部分邏輯,而參與者較少參與事務(wù)提交,將CPU資源更多的應(yīng)用在本地執(zhí)行邏輯上.實驗表明,90節(jié)點的FaRM系統(tǒng)運行TATP測試集,可提供140 MTPS的事務(wù)執(zhí)行速度.另外,3.1節(jié)提到的Pilaf,HydraDB等鍵值存儲系統(tǒng)將Get請求的網(wǎng)絡(luò)負(fù)載從服務(wù)端重新分派到客戶端,一定程度上減輕了服務(wù)端CPU開銷,同時提升了系統(tǒng)吞吐.而Octopus則進一步改變數(shù)據(jù)IO通路,將傳統(tǒng)的服務(wù)端主動返回文件數(shù)據(jù)的設(shè)計模式改為“服務(wù)端僅返回文件數(shù)據(jù)地址,客戶端主動通過RDMA Read或Write執(zhí)行文件IO”的新型IO機制,從而大幅降低文件服務(wù)器CPU開銷,并提升了數(shù)據(jù)并發(fā)存取吞吐.

    2) 數(shù)據(jù)備份與持久化

    新型非易失存儲器[24-26]提供接近內(nèi)存的訪問速度以及字節(jié)尋址的訪問方式,同時還能像磁盤一樣提供持久性存儲.持久性內(nèi)存的出現(xiàn)改變了計算機體系結(jié)構(gòu)中存儲金字塔的持久性和易失性邊界,數(shù)據(jù)持久化由傳統(tǒng)的軟件控制方式變?yōu)閳?zhí)行CPU刷寫指令的硬件控制方式[27].因此,存儲系統(tǒng)在組織數(shù)據(jù)時需要精細化執(zhí)行數(shù)據(jù)持久化操作或異地備份,以保障數(shù)據(jù)存儲可靠性和故障可恢復(fù).然而,CPU持久化刷寫指令代價高,異地備份則引入額外的網(wǎng)絡(luò)開銷,上述原因都將成為制約非易失內(nèi)存性能的重要因素.RDMA提供極低的網(wǎng)絡(luò)延遲(~1 μs),這與非易失內(nèi)存的訪問延遲幾乎在同一個數(shù)量級,因此,Mojim[28]提出一種基于RDMA的新型數(shù)據(jù)布局和備份方案,并提供了高可靠、高性能的存儲服務(wù).

    Fig. 12 Mojim architecture[28]圖12 Mojim的系統(tǒng)架構(gòu)[28]

    Mojim是一個構(gòu)建在NVMM上的內(nèi)核態(tài)系統(tǒng),圖12描述了Mojim的系統(tǒng)架構(gòu).它可以向上層提供基礎(chǔ)的數(shù)據(jù)讀寫接口和不同級別的持久化接口.Mojim采用了包含主層和輔層的雙層架構(gòu),其中主層包括1個主節(jié)點和1個鏡像節(jié)點,輔層包含一到多個備份節(jié)點.根據(jù)不同的持久化級別,寫入Mojim的數(shù)據(jù)同步或異步地流入到主節(jié)點、鏡像節(jié)點和備份節(jié)點.Mojim包含的持久化級別主要包括M-sync,M-async和M-syncsec.其中,以M-sync模式寫入時,Mojim將數(shù)據(jù)首先寫入到本地(不執(zhí)行CPU緩存數(shù)據(jù)刷寫),然后將數(shù)據(jù)傳輸?shù)界R像節(jié)點,等待對方網(wǎng)卡反饋確認(rèn)信息后成功返回.而鏡像節(jié)點異步將數(shù)據(jù)傳遞到備份節(jié)點.以M-async模式寫入時,主節(jié)點首先刷寫緩存數(shù)據(jù),然后將數(shù)據(jù)傳輸?shù)界R像節(jié)點,在不等待確認(rèn)信息時直接成功返回.M-syncsec則同步等待數(shù)據(jù)寫入到備份節(jié)點之后才成功返回.以上3類持久寫方式具有不同級別的可靠性、可用性和一致性.

    實驗顯示,基于RDMA的異地備份方案性能強于基于本地緩存刷寫的持久化方案,這主要是因為CPU刷寫緩存數(shù)據(jù)以cache line為粒度,且并發(fā)的數(shù)據(jù)持久寫被CPU強制順序性執(zhí)行,并行度嚴(yán)重受到限制.因此,RDMA網(wǎng)絡(luò)為分布式持久性內(nèi)存系統(tǒng)中的數(shù)據(jù)持久化和遠程備份提供了新的機遇.另一方面,基于遠程刷寫的原語[29]也有望出現(xiàn).

    RDMA區(qū)別于傳統(tǒng)的以太網(wǎng)通信方式,它能提供Read,Write等遠程直接訪問的單向原語,在數(shù)據(jù)傳輸過程中無需遠端CPU的參與,這促使系統(tǒng)設(shè)計時重新考慮數(shù)據(jù)的組織和索引方式,以及網(wǎng)絡(luò)負(fù)載的均衡分派;RDMA的低延遲訪問特性徹底改變了傳統(tǒng)分布式系統(tǒng)設(shè)計中對“本地”和“異地”的性能權(quán)衡,為數(shù)據(jù)的多機備份和持久化提供了新的思路;RDMA還能保證緩存數(shù)據(jù)的強一致性,處理器總能夠讀取最新數(shù)據(jù),同時還提供2種原子操作,用于數(shù)據(jù)項的原子性更新,這為設(shè)計新型分布式協(xié)議提供了新的機遇.

    4 總結(jié)與展望

    本文分別從硬件管理和軟件重構(gòu)2個方面闡述了對RDMA的相關(guān)研究,詳細分析了RDMA的內(nèi)在硬件特性、系統(tǒng)軟件設(shè)計的變革以及當(dāng)前RDMA的典型應(yīng)用場景.從硬件角度來看,RDMA網(wǎng)絡(luò)并行數(shù)據(jù)傳輸會受到多處硬件資源的制約,例如網(wǎng)卡緩存、CPU緩存等,因此在系統(tǒng)架構(gòu)上要同時要兼顧其硬件特性,在系統(tǒng)擴展性、可靠性和高性能中權(quán)衡,在CPU資源開銷與網(wǎng)絡(luò)資源共享之間合理取舍.從軟件重塑角度看,RDMA區(qū)別于傳統(tǒng)網(wǎng)絡(luò)的數(shù)據(jù)傳輸接口和其極低的網(wǎng)絡(luò)延遲改變了現(xiàn)有的軟件設(shè)計方式,為數(shù)據(jù)組織與索引、網(wǎng)絡(luò)傳輸重分派和分布式協(xié)議的重構(gòu)等方面提供了新的方法,合理的軟件重構(gòu)更能充分發(fā)揮RDMA網(wǎng)絡(luò)的優(yōu)勢,提升系統(tǒng)的整體性能.

    邁洛斯公司目前已經(jīng)提供超過200 Gbps的傳輸速率的RDMA網(wǎng)卡,傳輸延遲早已突破1μs,其迅速提升的網(wǎng)絡(luò)傳輸性能,正促使RDMA技術(shù)被逐漸應(yīng)用到數(shù)據(jù)中心.針對其擴展性問題,邁洛斯引入動態(tài)鏈接傳輸機制(dynamically connected trans-port, DCT)實現(xiàn)動態(tài)創(chuàng)建銷毀QP鏈接,以保證QP數(shù)量維持穩(wěn)定;Oracle提出的Sonoma處理器則將網(wǎng)卡和FPGA集成到片上,能輕松支持?jǐn)?shù)千個QP鏈路.為增強RDMA網(wǎng)卡設(shè)備的靈活性,邁洛斯還提供了可編程式RDMA網(wǎng)卡,用于協(xié)助用戶進行應(yīng)用數(shù)據(jù)傳輸加速、數(shù)據(jù)壓縮解壓縮和其他功能性優(yōu)化,為上層系統(tǒng)設(shè)計提供了更強的靈活性.RDMA具有獨特的數(shù)據(jù)傳輸模式和極高的數(shù)據(jù)傳輸性能,與此同時,其引入的擴展性等問題正在逐步解決.與RDMA緊耦合的分布式系統(tǒng)軟件設(shè)計將為大數(shù)據(jù)處理和存儲帶來新的機遇.

    猜你喜歡
    鍵值原語服務(wù)端
    測試原語:存儲器故障最小檢測序列的統(tǒng)一特征
    非請勿進 為注冊表的重要鍵值上把“鎖”
    云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
    新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
    密碼消息原語通信協(xié)議介紹及安全分析
    在Windows Server 2008上創(chuàng)建應(yīng)用
    一鍵直達 Windows 10注冊表編輯高招
    電腦愛好者(2017年9期)2017-06-01 21:38:08
    基于原語自動生成的安全協(xié)議組合設(shè)計策略及應(yīng)用研究
    “鴿子”玩升級 黑你沒商量
    “原語效應(yīng)”在漢英口譯中的運用及局限性研究
    国产成人欧美在线观看| 欧美一区二区亚洲| 一区二区三区高清视频在线| 精品久久久久久久久久久久久| 欧美日韩乱码在线| 久久这里只有精品中国| 老司机在亚洲福利影院| 免费在线观看日本一区| 国产69精品久久久久777片| 国产精品 国内视频| 宅男免费午夜| 亚洲av成人不卡在线观看播放网| 免费看光身美女| 国内久久婷婷六月综合欲色啪| 午夜福利视频1000在线观看| 亚洲精品色激情综合| 一区二区三区高清视频在线| 又黄又粗又硬又大视频| 国产伦精品一区二区三区四那| 色尼玛亚洲综合影院| 亚洲av免费高清在线观看| 日本a在线网址| 国产成人福利小说| 国产精品久久久人人做人人爽| 老熟妇仑乱视频hdxx| 麻豆一二三区av精品| 一本精品99久久精品77| 女警被强在线播放| 日本一二三区视频观看| 免费看十八禁软件| 听说在线观看完整版免费高清| 免费电影在线观看免费观看| 免费无遮挡裸体视频| 精品午夜福利视频在线观看一区| 亚洲人与动物交配视频| 午夜亚洲福利在线播放| 亚洲熟妇中文字幕五十中出| av欧美777| 亚洲欧美日韩无卡精品| 一级黄色大片毛片| 手机成人av网站| 欧美乱码精品一区二区三区| 国产精品电影一区二区三区| 精品久久久久久久久久久久久| 97超级碰碰碰精品色视频在线观看| 国产欧美日韩一区二区精品| 夜夜爽天天搞| 亚洲狠狠婷婷综合久久图片| 免费高清视频大片| 久久婷婷人人爽人人干人人爱| 午夜免费成人在线视频| 不卡一级毛片| 少妇熟女aⅴ在线视频| 在线播放国产精品三级| 美女高潮的动态| 欧美乱妇无乱码| 日韩av在线大香蕉| 精品免费久久久久久久清纯| 欧美性猛交╳xxx乱大交人| 成年女人永久免费观看视频| 亚洲片人在线观看| 亚洲av成人不卡在线观看播放网| 我的老师免费观看完整版| 成人欧美大片| 国产老妇女一区| 国产99白浆流出| 婷婷精品国产亚洲av| 免费电影在线观看免费观看| 午夜免费成人在线视频| 日韩欧美 国产精品| 国产精品国产高清国产av| 欧美乱码精品一区二区三区| 午夜免费男女啪啪视频观看 | 免费看十八禁软件| 免费观看人在逋| 亚洲av电影在线进入| 丰满乱子伦码专区| 国产成年人精品一区二区| 亚洲美女视频黄频| 午夜福利欧美成人| 成人三级黄色视频| 国产一区二区在线观看日韩 | 亚洲激情在线av| 男女床上黄色一级片免费看| 日本精品一区二区三区蜜桃| 日韩欧美国产一区二区入口| 精品国产超薄肉色丝袜足j| 小说图片视频综合网站| 757午夜福利合集在线观看| 日韩欧美在线乱码| a级一级毛片免费在线观看| 成人欧美大片| 国产探花在线观看一区二区| 看免费av毛片| 淫妇啪啪啪对白视频| 国产色爽女视频免费观看| 国产综合懂色| 日本一本二区三区精品| 夜夜躁狠狠躁天天躁| 午夜精品一区二区三区免费看| 中文在线观看免费www的网站| 99久久成人亚洲精品观看| www国产在线视频色| 国产亚洲av嫩草精品影院| 免费看十八禁软件| 亚洲五月天丁香| 一个人免费在线观看电影| 久久6这里有精品| 我要搜黄色片| av在线天堂中文字幕| 午夜福利免费观看在线| 久久久久久久午夜电影| 亚洲,欧美精品.| 久久久成人免费电影| 此物有八面人人有两片| 欧美日韩黄片免| 婷婷精品国产亚洲av| 在线十欧美十亚洲十日本专区| 99国产精品一区二区三区| 白带黄色成豆腐渣| 手机成人av网站| 欧美日韩精品网址| 亚洲av中文字字幕乱码综合| 欧美国产日韩亚洲一区| 少妇人妻精品综合一区二区 | 国产97色在线日韩免费| 久久亚洲真实| 中文字幕熟女人妻在线| 国产一区二区在线av高清观看| 国产亚洲欧美在线一区二区| 国产精品爽爽va在线观看网站| 乱人视频在线观看| 欧美一区二区亚洲| 夜夜爽天天搞| 亚洲五月婷婷丁香| 别揉我奶头~嗯~啊~动态视频| 非洲黑人性xxxx精品又粗又长| 久久久国产成人精品二区| 国产精品久久久久久久久免 | 90打野战视频偷拍视频| 中文字幕熟女人妻在线| 国产精品三级大全| 国产精品女同一区二区软件 | 国产午夜精品论理片| 熟妇人妻久久中文字幕3abv| 少妇高潮的动态图| 欧美最新免费一区二区三区 | 久久伊人香网站| 成人欧美大片| 少妇熟女aⅴ在线视频| 夜夜看夜夜爽夜夜摸| 成人av一区二区三区在线看| 人人妻人人澡欧美一区二区| 日韩 欧美 亚洲 中文字幕| 99热只有精品国产| 久久久久久久午夜电影| 亚洲七黄色美女视频| 男人的好看免费观看在线视频| 女警被强在线播放| 亚洲avbb在线观看| 国产色爽女视频免费观看| 18+在线观看网站| 无限看片的www在线观看| 变态另类成人亚洲欧美熟女| 国产免费一级a男人的天堂| 日本与韩国留学比较| 国产一区二区在线观看日韩 | 国产精品av视频在线免费观看| 国产精品av视频在线免费观看| 变态另类丝袜制服| 丰满乱子伦码专区| 久久6这里有精品| 一本一本综合久久| 免费看日本二区| 淫妇啪啪啪对白视频| 人人妻人人看人人澡| 国产老妇女一区| 久久精品人妻少妇| 日韩欧美精品v在线| 嫩草影视91久久| 久久久久久九九精品二区国产| 我的老师免费观看完整版| 12—13女人毛片做爰片一| 国产一区二区三区视频了| 一区二区三区激情视频| 午夜福利高清视频| 99国产极品粉嫩在线观看| 美女免费视频网站| 亚洲自拍偷在线| 97人妻精品一区二区三区麻豆| 日韩欧美 国产精品| 免费在线观看影片大全网站| 中文字幕av成人在线电影| 国产精品综合久久久久久久免费| ponron亚洲| 国产真实伦视频高清在线观看 | 国产一区二区激情短视频| 久久精品综合一区二区三区| 琪琪午夜伦伦电影理论片6080| 国产精品爽爽va在线观看网站| 欧美一区二区亚洲| 欧美黑人巨大hd| 男插女下体视频免费在线播放| 给我免费播放毛片高清在线观看| 精品一区二区三区视频在线 | av福利片在线观看| 免费在线观看影片大全网站| 久久精品国产自在天天线| 欧美性猛交黑人性爽| 欧美一区二区亚洲| 亚洲国产色片| 国产亚洲欧美98| 午夜久久久久精精品| 久久久久免费精品人妻一区二区| 久久精品影院6| 18禁在线播放成人免费| 成人无遮挡网站| 国产真实乱freesex| 亚洲avbb在线观看| 在线国产一区二区在线| 国产精品1区2区在线观看.| 中文字幕av成人在线电影| 黄片小视频在线播放| 香蕉丝袜av| 久久性视频一级片| 亚洲一区高清亚洲精品| 99热精品在线国产| 免费看光身美女| 国产爱豆传媒在线观看| 久久亚洲精品不卡| 偷拍熟女少妇极品色| 日韩高清综合在线| 成年女人毛片免费观看观看9| 观看免费一级毛片| 特级一级黄色大片| 精品不卡国产一区二区三区| 此物有八面人人有两片| 丰满人妻一区二区三区视频av | 久久久色成人| 欧美日韩亚洲国产一区二区在线观看| 脱女人内裤的视频| 黄色成人免费大全| 啦啦啦免费观看视频1| www.999成人在线观看| 99国产综合亚洲精品| 国产精品av视频在线免费观看| 久久久久久久午夜电影| 啪啪无遮挡十八禁网站| 两人在一起打扑克的视频| 最新美女视频免费是黄的| 欧美激情久久久久久爽电影| 成人国产一区最新在线观看| 少妇丰满av| 久久香蕉国产精品| 18美女黄网站色大片免费观看| 在线免费观看不下载黄p国产 | 99久久精品热视频| 中文字幕熟女人妻在线| 国产淫片久久久久久久久 | 亚洲av第一区精品v没综合| 女警被强在线播放| 亚洲精品乱码久久久v下载方式 | 变态另类丝袜制服| 午夜老司机福利剧场| 色综合欧美亚洲国产小说| 看黄色毛片网站| 国产99白浆流出| 国产欧美日韩一区二区三| 久久久国产精品麻豆| 亚洲精品久久国产高清桃花| 性欧美人与动物交配| 色综合婷婷激情| 日韩精品青青久久久久久| 免费高清视频大片| 桃红色精品国产亚洲av| 欧美国产日韩亚洲一区| 一个人看视频在线观看www免费 | 最后的刺客免费高清国语| 少妇的丰满在线观看| 国产免费男女视频| 999久久久精品免费观看国产| 丁香欧美五月| 国产精品一区二区三区四区久久| 最近最新中文字幕大全免费视频| 美女 人体艺术 gogo| 国产av麻豆久久久久久久| 老汉色∧v一级毛片| 国产欧美日韩一区二区三| 在线观看美女被高潮喷水网站 | 亚洲片人在线观看| 69人妻影院| 欧美中文日本在线观看视频| 国产精品亚洲美女久久久| 人妻夜夜爽99麻豆av| 97超视频在线观看视频| 成人无遮挡网站| 亚洲avbb在线观看| 国产亚洲精品一区二区www| 我的老师免费观看完整版| 日本精品一区二区三区蜜桃| 男人的好看免费观看在线视频| 尤物成人国产欧美一区二区三区| 日韩精品中文字幕看吧| 亚洲成人中文字幕在线播放| а√天堂www在线а√下载| 久久久国产成人精品二区| 久久精品国产亚洲av涩爱 | 热99re8久久精品国产| 免费人成在线观看视频色| 婷婷亚洲欧美| 午夜a级毛片| 欧美一区二区亚洲| 色视频www国产| 18+在线观看网站| 亚洲精品在线观看二区| 欧美一区二区亚洲| av片东京热男人的天堂| 欧美乱码精品一区二区三区| 最好的美女福利视频网| 亚洲无线在线观看| 国产麻豆成人av免费视频| 可以在线观看毛片的网站| 1000部很黄的大片| 人妻丰满熟妇av一区二区三区| 国产成人av激情在线播放| 麻豆成人av在线观看| 免费av毛片视频| 国产伦人伦偷精品视频| 中出人妻视频一区二区| 国产免费男女视频| 午夜福利欧美成人| 18禁美女被吸乳视频| 免费看日本二区| 成人永久免费在线观看视频| 久久国产乱子伦精品免费另类| 天美传媒精品一区二区| 欧美色欧美亚洲另类二区| 99热精品在线国产| 日本黄大片高清| 国产私拍福利视频在线观看| 亚洲精华国产精华精| 中文字幕人妻熟人妻熟丝袜美 | 国产高清视频在线观看网站| www.www免费av| 午夜精品一区二区三区免费看| 全区人妻精品视频| 色噜噜av男人的天堂激情| 深爱激情五月婷婷| 欧美日韩一级在线毛片| 日本一本二区三区精品| 成年版毛片免费区| 亚洲精品成人久久久久久| а√天堂www在线а√下载| 亚洲一区高清亚洲精品| 国产伦一二天堂av在线观看| 男女午夜视频在线观看| 亚洲欧美一区二区三区黑人| 免费看日本二区| 成人精品一区二区免费| 国产午夜精品论理片| 日本熟妇午夜| 天堂av国产一区二区熟女人妻| 精品99又大又爽又粗少妇毛片 | 色综合婷婷激情| h日本视频在线播放| 国内揄拍国产精品人妻在线| 高清毛片免费观看视频网站| 国内精品久久久久精免费| ponron亚洲| 99在线人妻在线中文字幕| 无人区码免费观看不卡| 久久精品亚洲精品国产色婷小说| 亚洲美女视频黄频| 日本一二三区视频观看| 高潮久久久久久久久久久不卡| 国产精品综合久久久久久久免费| 极品教师在线免费播放| 成熟少妇高潮喷水视频| 婷婷精品国产亚洲av| 高清日韩中文字幕在线| 午夜精品久久久久久毛片777| 日韩欧美在线乱码| 少妇丰满av| 久久久色成人| 欧美+日韩+精品| 他把我摸到了高潮在线观看| 欧美成狂野欧美在线观看| 人人妻人人看人人澡| av欧美777| 国产亚洲av嫩草精品影院| 午夜免费男女啪啪视频观看 | 日本与韩国留学比较| 免费看十八禁软件| 国产伦精品一区二区三区四那| ponron亚洲| 一夜夜www| 中文字幕人妻熟人妻熟丝袜美 | 毛片女人毛片| 欧美乱码精品一区二区三区| 国产免费av片在线观看野外av| 久久久色成人| 在线国产一区二区在线| 色噜噜av男人的天堂激情| 午夜精品在线福利| 国产成+人综合+亚洲专区| 热99在线观看视频| 国产亚洲精品久久久com| 国产精品野战在线观看| 亚洲成人精品中文字幕电影| 欧美成人a在线观看| 啦啦啦观看免费观看视频高清| av中文乱码字幕在线| 日本免费a在线| 欧美成人免费av一区二区三区| 女同久久另类99精品国产91| 久久久久久久久久黄片| 禁无遮挡网站| 人妻丰满熟妇av一区二区三区| 麻豆久久精品国产亚洲av| 亚洲狠狠婷婷综合久久图片| 精品无人区乱码1区二区| 国产探花极品一区二区| 国产主播在线观看一区二区| 午夜福利视频1000在线观看| 免费一级毛片在线播放高清视频| 一级a爱片免费观看的视频| 亚洲精华国产精华精| 免费观看精品视频网站| 久久久久亚洲av毛片大全| 18禁美女被吸乳视频| 天堂影院成人在线观看| 欧美日韩黄片免| 免费高清视频大片| 夜夜夜夜夜久久久久| 网址你懂的国产日韩在线| 国产成年人精品一区二区| 别揉我奶头~嗯~啊~动态视频| 又黄又粗又硬又大视频| 高清日韩中文字幕在线| 亚洲成人久久爱视频| 亚洲一区二区三区不卡视频| 悠悠久久av| 听说在线观看完整版免费高清| 黄色丝袜av网址大全| 91字幕亚洲| 国产高清有码在线观看视频| 国产又黄又爽又无遮挡在线| 伊人久久大香线蕉亚洲五| 久久精品夜夜夜夜夜久久蜜豆| 天堂动漫精品| 99久久综合精品五月天人人| 免费在线观看影片大全网站| 色播亚洲综合网| 中文字幕高清在线视频| 一a级毛片在线观看| 男插女下体视频免费在线播放| 亚洲午夜理论影院| 岛国视频午夜一区免费看| 亚洲一区高清亚洲精品| 亚洲 欧美 日韩 在线 免费| 超碰av人人做人人爽久久 | 两性午夜刺激爽爽歪歪视频在线观看| 他把我摸到了高潮在线观看| 在线看三级毛片| 精品不卡国产一区二区三区| 99国产综合亚洲精品| 观看免费一级毛片| 精华霜和精华液先用哪个| 国产淫片久久久久久久久 | 首页视频小说图片口味搜索| 亚洲电影在线观看av| 欧美成人性av电影在线观看| 精品久久久久久久久久免费视频| 欧美日本亚洲视频在线播放| 男人的好看免费观看在线视频| 亚洲国产日韩欧美精品在线观看 | 亚洲人成网站在线播| 精品一区二区三区人妻视频| 51午夜福利影视在线观看| 天堂网av新在线| 国产蜜桃级精品一区二区三区| 免费在线观看成人毛片| 精品不卡国产一区二区三区| 舔av片在线| 精品久久久久久久久久免费视频| 欧美在线黄色| 女警被强在线播放| 久久香蕉精品热| 成人午夜高清在线视频| 麻豆一二三区av精品| 久久久成人免费电影| 亚洲成a人片在线一区二区| 1000部很黄的大片| 久久亚洲真实| 欧美高清成人免费视频www| 国产成年人精品一区二区| 亚洲国产中文字幕在线视频| 日韩精品青青久久久久久| 国产精品嫩草影院av在线观看 | 亚洲专区中文字幕在线| 色精品久久人妻99蜜桃| 国产毛片a区久久久久| 一个人免费在线观看的高清视频| 久久久久精品国产欧美久久久| 亚洲自拍偷在线| 亚洲人成伊人成综合网2020| 精品国产超薄肉色丝袜足j| 69av精品久久久久久| netflix在线观看网站| 欧美黄色片欧美黄色片| 亚洲国产中文字幕在线视频| 国产男靠女视频免费网站| tocl精华| 国产精品98久久久久久宅男小说| 男女之事视频高清在线观看| 亚洲成av人片在线播放无| 九色成人免费人妻av| 国内久久婷婷六月综合欲色啪| 欧美又色又爽又黄视频| 国产欧美日韩一区二区精品| 亚洲成人免费电影在线观看| 狠狠狠狠99中文字幕| 午夜日韩欧美国产| 五月玫瑰六月丁香| 高清在线国产一区| 国内揄拍国产精品人妻在线| 美女高潮的动态| 日韩精品青青久久久久久| 可以在线观看的亚洲视频| 欧美区成人在线视频| 嫩草影院入口| 日韩国内少妇激情av| 免费看美女性在线毛片视频| 少妇的逼水好多| 19禁男女啪啪无遮挡网站| 国产精品一区二区免费欧美| 一进一出好大好爽视频| 蜜桃久久精品国产亚洲av| 欧美在线黄色| 中出人妻视频一区二区| 一a级毛片在线观看| 又爽又黄无遮挡网站| 此物有八面人人有两片| 国产欧美日韩一区二区精品| 亚洲中文字幕一区二区三区有码在线看| 日韩欧美精品免费久久 | 色老头精品视频在线观看| 国产精品自产拍在线观看55亚洲| 99热精品在线国产| 免费高清视频大片| 国产精品电影一区二区三区| 老汉色av国产亚洲站长工具| 精品久久久久久久久久免费视频| 亚洲,欧美精品.| 日韩欧美国产在线观看| 国内揄拍国产精品人妻在线| 色av中文字幕| eeuss影院久久| 一卡2卡三卡四卡精品乱码亚洲| 亚洲美女黄片视频| 欧美3d第一页| 最好的美女福利视频网| 一级黄片播放器| 99国产极品粉嫩在线观看| 在线免费观看不下载黄p国产 | 三级毛片av免费| 亚洲专区中文字幕在线| 熟女人妻精品中文字幕| 一进一出抽搐gif免费好疼| 精品欧美国产一区二区三| 三级国产精品欧美在线观看| 亚洲国产色片| 亚洲 国产 在线| 国产精品美女特级片免费视频播放器| 久久精品人妻少妇| 在线免费观看不下载黄p国产 | 黄色片一级片一级黄色片| 好男人电影高清在线观看| 热99re8久久精品国产| 欧美又色又爽又黄视频| 午夜激情欧美在线| 婷婷精品国产亚洲av在线| 国内精品久久久久久久电影| av中文乱码字幕在线| www国产在线视频色| 一级a爱片免费观看的视频| 特大巨黑吊av在线直播| 最新中文字幕久久久久| 国产av一区在线观看免费| 久久久久久久久大av| xxx96com| 国产高清视频在线观看网站| 18禁美女被吸乳视频| 在线a可以看的网站| 久久6这里有精品| 黄色日韩在线| 国模一区二区三区四区视频| 动漫黄色视频在线观看| 1024手机看黄色片| 又粗又爽又猛毛片免费看| 免费在线观看成人毛片| 亚洲国产精品sss在线观看| 欧美极品一区二区三区四区| 丰满的人妻完整版| 亚洲18禁久久av| 中文字幕人妻熟人妻熟丝袜美 | 久久久久性生活片| 美女免费视频网站| 亚洲不卡免费看| 欧美黑人欧美精品刺激| 成人一区二区视频在线观看| 精品久久久久久久毛片微露脸| 又黄又粗又硬又大视频| 亚洲av熟女| 99视频精品全部免费 在线|