精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hadoop技術之Hadoop HA 機制學習

大數據 Hadoop
最近分享過一次關于Hadoop技術主題的演講,由于接觸時間不長,很多技術細節認識不夠,也沒講清楚,作為一個技術人員,本著追根溯源的精神,還是有必要吃透,也為自己的工作沉淀一些經驗總結。

導語

最近分享過一次關于Hadoop技術主題的演講,由于接觸時間不長,很多技術細節認識不夠,也沒講清楚,作為一個技術人員,本著追根溯源的精神,還是有必要吃透,也為自己的工作沉淀一些經驗總結。網上關于Hadoop HA的資料多集中于怎么搭建HA,對于HA為什么要這么做描述甚少,所以本文對于HA是如何搭建的暫不介紹,主要是介紹HA是怎么運作,QJM又是怎么發揮功效的。

一、Hadoop 系統架構

1.1 Hadoop1.x和Hadoop2.x 架構

在介紹HA之前,我們先來看下Hadoop的系統架構,這對于理解HA是至關重要的。Hadoop 1.x之前,其官方架構如圖1所示:

[ 圖1.Hadoop 1.x架構圖 ]

[ 圖1.Hadoop 1.x架構圖 ]

從圖中可看出,1.x版本之前只有一個Namenode,所有元數據由惟一的Namenode負責管理,可想而之當這個NameNode掛掉時整個集群基本也就不可用。

Hadoop 2.x的架構與1.x有什么區別呢。我們來看下2.x的架構:

[ 圖2.Hadoop 2.x架構圖 ]

[ 圖2.Hadoop 2.x架構圖 ]

2.x版本中,HDFS架構解決了單點故障問題,即引入雙NameNode架構,同時借助共享存儲系統來進行元數據的同步,共享存儲系統類型一般有幾類,如:Shared NAS+NFS、BookKeeper、BackupNode 和 Quorum Journal Manager(QJM),上圖中用的是QJM作為共享存儲組件,通過搭建奇數結點的JournalNode實現主備NameNode元數據操作信息同步。Hadoop的元數據包括哪些信息呢,下面介紹下關于元數據方面的知識。

1.2 Hadoop 2.x元數據

Hadoop的元數據主要作用是維護HDFS文件系統中文件和目錄相關信息。元數據的存儲形式主要有3類:內存鏡像、磁盤鏡像(FSImage)、日志(EditLog)。在Namenode啟動時,會加載磁盤鏡像到內存中以進行元數據的管理,存儲在NameNode內存;磁盤鏡像是某一時刻HDFS的元數據信息的快照,包含所有相關Datanode節點文件塊映射關系和命名空間(Namespace)信息,存儲在NameNode本地文件系統;日志文件記錄client發起的每一次操作信息,即保存所有對文件系統的修改操作,用于定期和磁盤鏡像合并成***鏡像,保證NameNode元數據信息的完整,存儲在NameNode本地和共享存儲系統(QJM)中。

如下所示為NameNode本地的EditLog和FSImage文件格式,EditLog文件有兩種狀態: inprocess和finalized, inprocess表示正在寫的日志文件,文件名形式:editsinprocess[start-txid],finalized表示已經寫完的日志文件,文件名形式:edits[start-txid][end-txid]; FSImage文件也有兩種狀態, finalized和checkpoint, finalized表示已經持久化磁盤的文件,文件名形式: fsimage_[end-txid], checkpoint表示合并中的fsimage, 2.x版本checkpoint過程在Standby Namenode(SNN)上進行,SNN會定期將本地FSImage和從QJM上拉回的ANN的EditLog進行合并,合并完后再通過RPC傳回ANN。

  1. data/hbase/runtime/namespace 
  2. ├── current 
  3. │ ├── VERSION 
  4. │ ├── edits_0000000003619794209-0000000003619813881 
  5. │ ├── edits_0000000003619813882-0000000003619831665 
  6. │ ├── edits_0000000003619831666-0000000003619852153 
  7. │ ├── edits_0000000003619852154-0000000003619871027 
  8. │ ├── edits_0000000003619871028-0000000003619880765 
  9. │ ├── edits_0000000003619880766-0000000003620060869 
  10. │ ├── edits_inprogress_0000000003620060870 
  11. │ ├── fsimage_0000000003618370058 
  12. │ ├── fsimage_0000000003618370058.md5 
  13. │ ├── fsimage_0000000003620060869 
  14. │ ├── fsimage_0000000003620060869.md5 
  15. │ └── seen_txid 
  16. └── in_use.lock 

上面所示的還有一個很重要的文件就是seen_txid,保存的是一個事務ID,這個事務ID是EditLog***的一個結束事務id,當NameNode重啟時,會順序遍歷從edits_0000000000000000001到seen_txid所記錄的txid所在的日志文件,進行元數據恢復,如果該文件丟失或記錄的事務ID有問題,會造成數據塊信息的丟失。

HA其本質上就是要保證主備NN元數據是保持一致的,即保證fsimage和editlog在備NN上也是完整的。元數據的同步很大程度取決于EditLog的同步,而這步驟的關鍵就是共享文件系統,下面開始介紹一下關于QJM共享存儲機制。

二、QJM原理

2.1 QJM背景

在QJM出現之前,為保障集群的HA,設計的是一種基于NAS的共享存儲機制,即主備NameNode間通過NAS進行元數據的同步。該方案有什么缺點呢,主要有以下幾點:

  • 定制化硬件設備:必須是支持NAS的設備才能滿足需求
  • 復雜化部署過程:在部署好NameNode后,還必須額外配置NFS掛載、定制隔離腳本,部署易出錯
  • 簡陋化NFS客戶端:Bug多,部署配置易出錯,導致HA不可用

所以對于替代方案而言,也必須解決NAS相關缺陷才能讓HA更好服務。即設備無須定制化,普通設備即可配置HA,部署簡單,相關配置集成到系統本身,無需自己定制,同時元數據的同步也必須保證完全HA,不會因client問題而同步失敗。

2.2 QJM原理

2.2.1 QJM介紹

QJM全稱是Quorum Journal Manager, 由JournalNode(JN)組成,一般是奇數點結點組成。每個JournalNode對外有一個簡易的RPC接口,以供NameNode讀寫EditLog到JN本地磁盤。當寫EditLog時,NameNode會同時向所有JournalNode并行寫文件,只要有N/2+1結點寫成功則認為此次寫操作成功,遵循Paxos協議。其內部實現框架如下:

[ 圖3.QJM內部實現框架 ]

[ 圖3.QJM內部實現框架 ]

從圖中可看出,主要是涉及EditLog的不同管理對象和輸出流對象,每種對象發揮著各自不同作用:

  • FSEditLog:所有EditLog操作的入口
  • JournalSet: 集成本地磁盤和JournalNode集群上EditLog的相關操作
  • FileJournalManager: 實現本地磁盤上 EditLog 操作
  • QuorumJournalManager: 實現JournalNode 集群EditLog操作
  • AsyncLoggerSet: 實現JournalNode 集群 EditLog 的寫操作集合
  • AsyncLogger:發起RPC請求到JN,執行具體的日志同步功能
  • JournalNodeRpcServer:運行在 JournalNode 節點進程中的 RPC 服務,接收 NameNode 端的 AsyncLogger 的 RPC 請求。
  • JournalNodeHttpServer:運行在 JournalNode 節點進程中的 Http 服務,用于接收處于 Standby 狀態的 NameNode 和其它 JournalNode 的同步 EditLog 文件流的請求。

下面具體分析下QJM的讀寫過程。

2.2.2 QJM 寫過程分析

上面提到EditLog,NameNode會把EditLog同時寫到本地和JournalNode。寫本地由配置中參數dfs.namenode.name.dir控制,寫JN由參數dfs.namenode.shared.edits.dir控制,在寫EditLog時會由兩個不同的輸出流來控制日志的寫過程,分別為:EditLogFileOutputStream(本地輸出流)和QuorumOutputStream(JN輸出流)。寫EditLog也不是直接寫到磁盤中,為保證高吞吐,NameNode會分別為EditLogFileOutputStream和QuorumOutputStream定義兩個同等大小的Buffer,大小大概是512KB,一個寫Buffer(buffCurrent),一個同步Buffer(buffReady),這樣可以一邊寫一邊同步,所以EditLog是一個異步寫過程,同時也是一個批量同步的過程,避免每寫一筆就同步一次日志。

這個是怎么實現邊寫邊同步的呢,這中間其實是有一個緩沖區交換的過程,即bufferCurrent和buffReady在達到條件時會觸發交換,如bufferCurrent在達到閾值同時bufferReady的數據又同步完時,bufferReady數據會清空,同時會將bufferCurrent指針指向bufferReady以滿足繼續寫,另外會將bufferReady指針指向bufferCurrent以提供繼續同步EditLog。上面過程用流程圖就是表示如下:

[ 圖4.EditLog輸出流程圖 ]

 

[ 圖4.EditLog輸出流程圖 ]

這里有一個問題,既然EditLog是異步寫的,怎么保證緩存中的數據不丟呢,其實這里雖然是異步,但實際所有日志都需要通過logSync同步成功后才會給client返回成功碼,假設某一時刻NameNode不可用了,其內存中的數據其實是未同步成功的,所以client會認為這部分數據未寫成功。

第二個問題是,EditLog怎么在多個JN上保持一致的呢。下面展開介紹。

1.隔離雙寫:

在ANN每次同步EditLog到JN時,先要保證不會有兩個NN同時向JN同步日志。這個隔離是怎么做的。這里面涉及一個很重要的概念Epoch Numbers,很多分布式系統都會用到。Epoch有如下幾個特性:

  • 當NN成為活動結點時,其會被賦予一個EpochNumber
  • 每個EpochNumber是惟一的,不會有相同的EpochNumber出現
  • EpochNumber有嚴格順序保證,每次NN切換后其EpochNumber都會自增1,后面生成的EpochNumber都會大于前面的EpochNumber

QJM是怎么保證上面特性的呢,主要有以下幾點:

  • ***步,在對EditLog作任何修改前,QuorumJournalManager(NameNode上)必須被賦予一個EpochNumber
  • 第二步, QJM把自己的EpochNumber通過newEpoch(N)的方式發送給所有JN結點
  • 第三步, 當JN收到newEpoch請求后,會把QJM的EpochNumber保存到一個lastPromisedEpoch變量中并持久化到本地磁盤
  • 第四步, ANN同步日志到JN的任何RPC請求(如logEdits(),startLogSegment()等),都必須包含ANN的EpochNumber
  • 第五步,JN在收到RPC請求后,會將之與lastPromisedEpoch對比,如果請求的EpochNumber小于lastPromisedEpoch,將會拒絕同步請求,反之,會接受同步請求并將請求的EpochNumber保存在lastPromisedEpoch

這樣就能保證主備NN發生切換時,就算同時向JN同步日志,也能保證日志不會寫亂,因為發生切換后,原ANN的EpochNumber肯定是小于新ANN的EpochNumber,所以原ANN向JN的發起的所有同步請求都會拒絕,實現隔離功能,防止了腦裂。

2. 恢復in-process日志

為什么要這步呢,如果在寫過程中寫失敗了,可能各個JN上的EditLog的長度都不一樣,需要在開始寫之前將不一致的部分恢復。恢復機制如下:

1 ANN先向所有JN發送getJournalState請求;

2 JN會向ANN返回一個Epoch(lastPromisedEpoch);

3 ANN收到大多數JN的Epoch后,選擇***的一個并加1作為當前新的Epoch,然后向JN發送新的newEpoch請求,把新的Epoch下發給JN;

4 JN收到新的Epoch后,和lastPromisedEpoch對比,若更大則更新到本地并返回給ANN自己本地一個***EditLogSegment起始事務Id,若小則返回NN錯誤;

***NN收到多數JN成功響應后認為Epoch生成成功,開始準備日志恢復;

6 ANN會選擇一個***的EditLogSegment事務ID作為恢復依據,然后向JN發送prepareRecovery; RPC請求,對應Paxos協議2p階段的Phase1a,若多數JN響應prepareRecovery成功,則可認為Phase1a階段成功;

7 ANN選擇進行同步的數據源,向JN發送acceptRecovery RPC請求,并將數據源作為參數傳給JN。

8 JN收到acceptRecovery請求后,會從JournalNodeHttpServer下載EditLogSegment并替換到本地保存的EditLogSegment,對應Paxos協議2p階段的Phase1b,完成后返回ANN請求成功狀態。

9 ANN收到多數JN的響應成功請求后,向JN發送finalizeLogSegment請求,表示數據恢復完成,這樣之后所有JN上的日志就能保持一致。

數據恢復后,ANN上會將本地處于in-process狀態的日志更名為finalized狀態的日志,形式如edits[start-txid][stop-txid]。

3.日志同步

這個步驟上面有介紹到關于日志從ANN同步到JN的過程,具體如下:

1 執行logSync過程,將ANN上的日志數據放到緩存隊列中

2 將緩存中數據同步到JN,JN有相應線程來處理logEdits請求

3 JN收到數據后,先確認EpochNumber是否合法,再驗證日志事務ID是否正常,將日志刷到磁盤,返回ANN成功碼

4 ANN收到JN成功請求后返回client寫成功標識,若失敗則拋出異常

通過上面一些步驟,日志能保證成功同步到JN,同時保證JN日志的一致性,進而備NN上同步日志時也能保證數據是完整和一致的。

2.2.3 QJM讀過程分析

這個讀過程是面向備NN(SNN)的,SNN定期檢查JournalNode上EditLog的變化,然后將EditLog拉回本地。SNN上有一個線程StandbyCheckpointer,會定期將SNN上FSImage和EditLog合并,并將合并完的FSImage文件傳回主NN(ANN)上,就是所說的Checkpointing過程。下面我們來看下Checkpointing是怎么進行的。

在2.x版本中,已經將原來的由SecondaryNameNode主導的Checkpointing替換成由SNN主導的Checkpointing。下面是一個CheckPoint的流向圖:


 

[ 圖5.Checkpointing流向圖 ]

 

[ 圖5.Checkpointing流向圖 ]

總的來說,就是在SNN上先檢查前置條件,前置條件包括兩個方面:距離上次Checkpointing的時間間隔和EditLog中事務條數限制。前置條件任何一個滿足都會觸發Checkpointing,然后SNN會將***的NameSpace數據即SNN內存中當前狀態的元數據保存到一個臨時的fsimage文件( fsimage.ckpt)然后比對從JN上拉到的***EditLog的事務ID,將fsimage.ckpt_中沒有,EditLog中有的所有元數據修改記錄合并一起并重命名成新的fsimage文件,同時生成一個md5文件。將***的fsimage再通過HTTP請求傳回ANN。通過定期合并fsimage有什么好處呢,主要有以下幾個方面:

  • 可以避免EditLog越來越大,合并成新fsimage后可以將老的EditLog刪除
  • 可以避免主NN(ANN)壓力過大,合并是在SNN上進行的
  • 可以保證fsimage保存的是一份***的元數據,故障恢復時避免數據丟失

三、主備切換機制

要完成HA,除了元數據同步外,還得有一個完備的主備切換機制,Hadoop的主備選舉依賴于ZooKeeper。下面是主備切換的狀態圖:

[ 圖6.Failover流程圖 ]

[ 圖6.Failover流程圖 ]

從圖中可以看出,整個切換過程是由ZKFC來控制的,具體又可分為HealthMonitor、ZKFailoverController和ActiveStandbyElector三個組件。

  • ZKFailoverController: 是HealthMontior和ActiveStandbyElector的母體,執行具體的切換操作
  • HealthMonitor: 監控NameNode健康狀態,若狀態異常會觸發回調ZKFailoverController進行自動主備切換
  • ActiveStandbyElector: 通知ZK執行主備選舉,若ZK完成變更,會回調ZKFailoverController相應方法進行主備狀態切換

在故障切換期間,ZooKeeper主要是發揮什么作用呢,有以下幾點:

  • 失敗保護:集群中每一個NameNode都會在ZooKeeper維護一個持久的session,機器一旦掛掉,session就會過期,故障遷移就會觸發
  • Active NameNode選擇:ZooKeeper有一個選擇ActiveNN的機制,一旦現有的ANN宕機,其他NameNode可以向ZooKeeper申請排他成為下一個Active節點
  • 防腦裂: ZK本身是強一致和高可用的,可以用它來保證同一時刻只有一個活動節點

那在哪些場景會觸發自動切換呢,從HDFS-2185中歸納了以下幾個場景:

  • ActiveNN JVM奔潰:ANN上HealthMonitor狀態上報會有連接超時異常,HealthMonitor會觸發狀態遷移至SERVICE_NOT_RESPONDING, 然后ANN上的ZKFC會退出選舉,SNN上的ZKFC會獲得Active Lock, 作相應隔離后成為Active結點。
  • ActiveNN JVM凍結:這個是JVM沒奔潰,但也無法響應,同奔潰一樣,會觸發自動切換。
  • ActiveNN 機器宕機:此時ActiveStandbyElector會失去同ZK的心跳,會話超時,SNN上的ZKFC會通知ZK刪除ANN的活動鎖,作相應隔離后完成主備切換。
  • ActiveNN 健康狀態異常: 此時HealthMonitor會收到一個HealthCheckFailedException,并觸發自動切換。
  • Active ZKFC奔潰:雖然ZKFC是一個獨立的進程,但因設計簡單也容易出問題,一旦ZKFC進程掛掉,雖然此時NameNode是OK的,但系統也認為需要切換,此時SNN會發一個請求到ANN要求ANN放棄主結點位置,ANN收到請求后,會觸發完成自動切換。
  • ZooKeeper奔潰:如果ZK奔潰了,主備NN上的ZKFC都會感知斷連,此時主備NN會進入一個NeutralMode模式,同時不改變主備NN的狀態,繼續發揮作用,只不過此時,如果ANN也故障了,那集群無法發揮Failover, 也就不可用了,所以對于此種場景,ZK一般是不允許掛掉到多臺,至少要有N/2+1臺保持服務才算是安全的。

五、總結

上面介紹了下關于HadoopHA機制,歸納起來主要是兩塊:元數據同步和主備選舉。元數據同步依賴于QJM共享存儲,主備選舉依賴于ZKFC和Zookeeper。整個過程還是比較復雜的,如果能理解Paxos協議,那也能更好的理解這個。希望這篇文章能讓大家更深入了解關于HA方面的知識。

原文鏈接:https://cloud.tencent.com/community/article/282177

作者:溫球良

【本文是51CTO專欄作者“騰訊云技術社區”的原創稿件,轉載請通過51CTO聯系原作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-10-23 14:14:26

HadoopHadoop HAQJM

2011-08-30 16:26:34

Hadoop

2013-05-28 09:12:59

Hadoop 2.0

2018-07-11 13:33:43

大數據人工智能Hadoop

2010-06-04 09:43:47

hadoop應用

2018-10-09 15:00:43

Hadoop分布式架構

2012-07-03 10:57:54

Hadoop核心機制

2012-12-03 16:57:37

HDFS

2021-06-21 17:04:55

大數據Hadoop

2014-07-29 09:19:07

Hadoop

2012-05-31 02:54:07

HadoopJava

2010-06-03 11:12:55

Hadoop

2010-06-03 11:34:42

Hadoop

2015-04-28 14:55:01

HadoopSpark技術

2010-06-03 19:02:31

Hadoop集群搭建

2015-06-17 11:27:47

Hadoop集群管理安全機制

2019-09-23 13:03:42

NameNode元數據文件

2014-11-10 15:02:21

大數據云計算Hadoop

2013-10-15 10:24:23

hadoop大數據

2013-10-15 10:18:17

點贊
收藏

51CTO技術棧公眾號

国产精品免费aⅴ片在线观看| 91久久黄色| 正在播放一区二区| 国产日韩亚洲欧美在线| 色欲av伊人久久大香线蕉影院| 亚洲一卡久久| 精品国内亚洲在观看18黄| 韩国三级在线看| 亚洲第一影院| 一区二区三区波多野结衣在线观看 | 免费影视亚洲| 久久久综合激的五月天| 成人做爽爽免费视频| 国产成人无码一区二区三区在线| 欧美限制电影| 亚洲韩国日本中文字幕| 怡红院亚洲色图| 久草免费在线视频| 亚洲乱码日产精品bd| 欧美一区免费视频| 日本激情一区二区| 激情五月播播久久久精品| 欧美在线www| 欧美人与禽zozzo禽性配| 超碰成人久久| 亚洲女人被黑人巨大进入| 能看毛片的网站| 小说区图片区亚洲| 色94色欧美sute亚洲线路二| 拔插拔插海外华人免费| a级毛片免费观看在线| 国产精品丝袜91| 免费日韩av电影| 成人午夜免费在线观看| 极品少妇一区二区三区精品视频| 国产精品91在线| 久久久久久久久久久久久av| 狠狠入ady亚洲精品| 久久久99久久精品女同性| 美国黄色特级片| 免费看成人哺乳视频网站| 日韩av网站导航| 无码国产精品一区二区免费式直播| 伊人国产精品| 欧美精品日韩综合在线| 国产日韩欧美久久| 精品久久在线| 777午夜精品视频在线播放| 国产一线二线三线在线观看| 成人软件在线观看| 色婷婷综合久久| 国产一级片黄色| 怡红院成人在线| 在线一区二区三区做爰视频网站| 超碰97人人射妻| 免费日韩电影| 91精品办公室少妇高潮对白| 精品久久久久久无码国产| 日韩免费电影| 欧洲精品一区二区三区在线观看| 久久婷婷国产91天堂综合精品| 欧美舌奴丨vk视频| 欧美影院一区二区三区| 天天综合网天天综合色| 日本中文字幕不卡免费| 国内自拍视频在线播放| 久久精品麻豆| 国产精品美女在线| 亚洲一区二区激情| 国产精品综合网| 不卡一区二区三区视频| 亚洲av成人无码网天堂| 久久你懂得1024| 亚洲午夜精品国产| 在线免费观看污| 亚洲国产你懂的| 日本熟妇人妻xxxxx| 99精品国自产在线| 日韩视频免费观看高清完整版在线观看| 中文字幕avav| 欧美深夜视频| 中文字幕成人在线| 久久久久久av无码免费网站| 国产精品资源| 国产精品稀缺呦系列在线| 国产日韩欧美中文字幕| 99久久99久久精品国产片果冻| 日韩高清在线播放| h视频在线免费观看| 无吗不卡中文字幕| 黄大色黄女片18第一次| 加勒比久久高清| 中文字幕日韩在线播放| 国产一级视频在线播放| 日韩精品久久久久久| 91精品国产综合久久久久久丝袜| 视频二区在线| 亚洲丝袜制服诱惑| 欧美日韩亚洲一| 成人综合日日夜夜| 亚洲男人天堂2023| 九九久久免费视频| 日本v片在线高清不卡在线观看| 91在线看www| 黄色电影免费在线看| 美女被到爽高潮视频| 欧美精选一区| 国产精品尤物福利片在线观看| 亚洲高清视频网站| 国产精品狼人久久影院观看方式| 国产精品久久中文字幕| 亚洲欧洲日韩精品在线| 亚洲精品一二区| 久久免费黄色网址| 日本欧美韩国一区三区| 精品一区二区不卡| 中文字幕有码在线观看| 精品视频1区2区| 国产精品无码久久久久一区二区| 欧美ab在线视频| 国产综合香蕉五月婷在线| 三级在线播放| 五月天亚洲婷婷| 中文字幕第六页| 欧美第一精品| 国产精品毛片a∨一区二区三区|国| 少妇精品视频一区二区| 亚洲精品中文在线影院| 天天干天天操天天做| 国产成人一区| 日本sm极度另类视频| 日本黄视频在线观看| 一区二区三区欧美在线观看| 欧美成人乱码一二三四区免费| 九九视频免费观看视频精品| 午夜精品久久久久久久久久久久| 亚洲国产剧情在线观看| 亚洲乱码精品一二三四区日韩在线| 亚洲一区在线不卡| av在线不卡顿| 国产精品69精品一区二区三区| 青青操视频在线| 欧美日韩激情小视频| 星空大象在线观看免费播放| 欧美a级片一区| 国产高清自拍一区| 91超碰在线| 亚洲第一精品夜夜躁人人躁| 国产在线观看成人| 成人午夜视频免费看| 婷婷无套内射影院| 美女午夜精品| 日韩美女av在线免费观看| 青春有你2免费观看完整版在线播放高清 | 日本中文在线| 欧美一区二区三区男人的天堂| 欧美a级片免费看| 国产一区二区看久久| 超碰在线免费观看97| 无码国模国产在线观看| 久久久久久久一区二区| 日韩一级中文字幕| 欧美性猛交xxxx黑人猛交| 国产精品天天干| 精品一区二区影视| 亚洲色成人www永久在线观看| 国产精品网址| 日韩av日韩在线观看| 欧美性videos| 精品免费一区二区三区| 国产精品久久久久久久妇| 国产肉丝袜一区二区| 日韩成人精品视频在线观看| 综合久久久久| 精品国产一区二区三区麻豆免费观看完整版 | 国产福利一区二区精品秒拍| 91av视频导航| 99免在线观看免费视频高清| 欧美一区二区三区免费观看视频 | 色综合久久久久| 品久久久久久久久久96高清| 国产黄大片在线观看| 亚洲精品wwwww| 久久免费激情视频| 91免费国产视频网站| 久久综合伊人77777麻豆最新章节| 欧美性感美女一区二区| 96sao精品视频在线观看| 国产精品69xx| 国产小视频91| www.com欧美| 一本一道波多野结衣一区二区| 操她视频在线观看| 成人听书哪个软件好| 北条麻妃av高潮尖叫在线观看| 婷婷激情图片久久| 国产综合动作在线观看| 国产精品麻豆成人av电影艾秋| 欧美精品在线免费观看| 三级视频网站在线| 欧美精品少妇一区二区三区| 国产乱码久久久久久| 国产欧美一区二区三区鸳鸯浴| 青青草精品在线| 日韩精品一级中文字幕精品视频免费观看 | 久久久久久久久久一区二区三区 | 四季av中文字幕| 成人久久视频在线观看| 天天影视色综合| 久久中文精品| 国产欧美日韩网站| 亚洲精品va| 色综合电影网| 最新国产一区| 国产欧美日韩一区二区三区| 久久免费影院| 国产成人a亚洲精品| 2021中文字幕在线| 欧美美最猛性xxxxxx| 在线观看av的网站| 精品国产一区二区三区久久影院| 亚洲视频在线观看免费视频| 欧美午夜精品久久久久久久| 国产一级生活片| 亚洲精品视频观看| 天天操天天摸天天舔| 久久久久国产一区二区三区四区| www.四虎在线| 国产白丝网站精品污在线入口| 在线黄色免费看| 日本美女一区二区三区| 亚洲乱码国产一区三区| 亚洲综合丁香| 欧美网站免费观看| 亚洲国产精品第一区二区| 激情视频小说图片| 亚洲综合激情在线| 国产盗摄视频在线观看| 午夜影院欧美| 特级黄色录像片| 亚洲成人精选| 警花观音坐莲激情销魂小说 | 久久这里只有精品8| 国产高清欧美| 中国一级黄色录像| **女人18毛片一区二区| 潘金莲一级淫片aaaaa免费看| 99久久影视| 国产一二三四五| 国产精品xvideos88| a级黄色片免费| 国产精品99久久精品| 一区二区三区一级片| 一区二区三区在线| 91国在线高清视频| 激情一区二区| 丰满少妇被猛烈进入高清播放| 国产精品亚洲综合久久| 99久久国产宗和精品1上映| 石原莉奈在线亚洲二区| 狠狠躁狠狠躁视频专区| 久久91精品久久久久久秒播| 黄色片子免费看| 99精品在线观看视频| 精品少妇人妻一区二区黑料社区| 久久九九久久九九| 一级免费黄色录像| 一区二区三区视频在线看| 国产污视频在线看| 色久优优欧美色久优优| 国产又黄又粗又硬| 亚洲精品在线三区| 无套内谢的新婚少妇国语播放| 国产亚洲精品美女久久久| 国产在线观看a视频| 国语自产在线不卡| 成人看片网页| 99在线高清视频在线播放| 天堂资源在线亚洲| 亚洲电影网站| 在线免费高清一区二区三区| 一本久道综合色婷婷五月| 国产一区三区三区| v8888av| 亚洲日韩欧美一区二区在线| 国产成人无码一区二区三区在线| 欧美中文字幕一区| 成人小说亚洲一区二区三区| 一区二区三区四区在线观看视频| gogo在线观看| 国产精品精品久久久| 亚洲高清在线一区| 日韩高清国产一区在线观看| 在线成人直播| 久久久精品三级| 岛国一区二区在线观看| 欧美极品jizzhd欧美18| 香蕉成人啪国产精品视频综合网 | 欧美精品一区二区视频| 91久久久精品国产| 99999精品视频| 成人在线视频首页| 国产天堂av在线| 日韩欧美国产一区二区| www.黄色片| www.久久色.com| 亚洲三级欧美| 91视频在线免费观看| 第一会所亚洲原创| 国产二区视频在线播放| 国产一区在线视频| a级黄色免费视频| 欧美性猛交丰臀xxxxx网站| 精品毛片在线观看| 神马久久桃色视频| 男人天堂视频在线观看| 91久久偷偷做嫩草影院| 日韩情爱电影在线观看| 欧美精品色婷婷五月综合| 国产91对白在线观看九色| 久久久久久久麻豆| 欧美网站一区二区| 国内在线精品| 亲子乱一区二区三区电影 | 蜜桃av一区二区在线观看| 久久久久国产精品区片区无码| 亚洲香蕉伊在人在线观| 99热这里只有精品在线| 精品国产一区二区三区久久久狼| 欧美日韩激情电影| 日韩欧美一区二区视频在线播放| 国产精品一页| 超碰97人人干| 岛国av一区二区在线在线观看| 秋霞网一区二区| 欧美激情免费看| 国产suv精品一区| 日韩视频在线视频| www.久久精品| 国产女同在线观看| 亚洲国产日韩欧美综合久久| av福利在线导航| 国内精品国语自产拍在线观看| 亚洲福利久久| 亚洲成人av免费在线观看| 欧美日韩人人澡狠狠躁视频| 五月婷婷六月激情| 亚洲日本无吗高清不卡| 国产精品mm| 少妇丰满尤物大尺度写真| 亚洲日本中文字幕区| 亚洲怡红院av| 久久精品欧美视频| 国产欧美日韩电影| 国产经典久久久| 国产福利一区二区三区视频| 青青草在线观看视频| 日韩美女视频一区二区在线观看| 日韩成人伦理| 国产一区喷水| 久久国产精品99国产| 免费看污片的网站| 欧美日韩一区二区电影| 免费人成在线观看播放视频| 91久久久久久久| 国产伊人精品| www.中文字幕av| 欧美日韩亚洲综合一区 | 久久视频精品在线| 午夜视频一区二区在线观看| 拔插拔插海外华人免费| 久久精品视频免费| 国产精品爽爽久久| 午夜精品久久久久久久久久久久久 | 天堂av在线电影| 另类视频在线观看+1080p| 日本亚洲最大的色成网站www| 我要看黄色一级片| 亚洲国产91色在线| 国产一区二区三区四区五区3d| av影院在线播放| 97se亚洲国产综合自在线不卡 | 蜜桃av噜噜一区二区三区| 丝袜美腿亚洲色图| 欧美一区二区三区爽爽爽| 精品国产一区二区三区忘忧草 | 日韩视频免费| 国产又黄又粗的视频| 日韩精品一区国产麻豆| 欧美黄色网页| 久久这里只有精品8| 国产欧美日韩久久| 丰满熟妇乱又伦| 国产精品高潮呻吟视频| 精品福利av| 久草福利资源在线| 亚洲天堂精品在线| 日韩免费一级| 奇米影视四色在线| 欧美日韩精品二区|