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

Mesos 架構以及源碼淺析

開發 開發工具
Mesos 按照官方的介紹,是分布式操作系統的內核。目標是 ”Program against your datacenter like it’s a single pool of resources”,即可以將整個數據中心當做一臺電腦一樣使用。

Mesos 按照官方的介紹,是分布式操作系統的內核。目標是 ”Program against your datacenter like it’s a single pool of resources”,即可以將整個數據中心當做一臺電腦一樣使用。可以說這個目標是所有宣稱自己是DCOS的系統的共同目標,本文從架構和源碼層面分析Mesos以及周邊框架,看看Mesos是如何實現這個目標的,當前距這個目標還有多大差距。最后比較了一下Mesos和Kubernetes這兩個都受Google的Borg影響的系統的異同。

閱讀對象:對Mesos或者分布式系統感興趣的技術人

設計理念以及架構

引用Mesos paper里的一句話,來說明Mesos的設計理念:

define a minimal interface that enables efficient resource sharing across frameworks, and otherwise push control of task scheduling and execution to the frameworks

定義一個最小化的接口來支持跨框架的資源共享,其他的調度以及執行工作都委托給框架自己來控制。

這句話標志Mesos不試圖作為一個一棧式解決問題的系統,而是以最小的成本來實現資源共享。先來看看官方提供的架構圖:

主要組件以及概念:

  • Zookeeper 主要用來實現Master的選舉,支持Master的高可用。
  • Master Mesos的主節點,接受Slave和Framework scheduler的注冊,分配資源。
  • Slave 從節點,接受master發來的task,調度executor去執行。
  • Framework 比如上圖中的Hadoop,MPI就是Framework,包括scheduler,executor兩部分。scheduler獨立運行,啟動后注冊到master,接受master發送的Resource Offer消息,來決定是否接受。Executor是給slave調用的,執行framework的task。Mesos內置了CommandExecutor(直接調用shell)和DockerExecutor兩種executor,其他的自定義Executor需要提供uri,供slave下載。
  • Task Mesos最主要的工作其實就是分配資源,然后詢問scheduler是否可以利用該資源執行Task,scheduler將資源和Task綁定后交由Master發送給指定的Slave執行。Task可以是長生命周期的,也可以使用批量的短生命周期的。

官方提供的另外一個資源分配的例子:

  1. Slave1 向 Master 報告,有4個CPU和4 GB內存可用
  2. Master 發送一個 Resource Offer 給 Framework1 來描述 Slave1 有多少可用資源
  3. FrameWork1 中的 FW Scheduler會答復 Master,我有兩個 Task 需要運行在 Slave1,一個 Task 需要<2個CPU,1 GB內存=””>,另外一個Task需要<1個CPU,2 GB內存=””>
  4. 最后,Master 發送這些 Tasks 給 Slave1。然后,Slave1還有1個CPU和1 GB內存沒有使用,所以分配模塊可以把這些資源提供給 Framework2

這個例子可以看出來,Mesos的核心工作其實很少,資源管理和分配以及task轉發。調度由Framework實現,task的定義以及具體執行也由Framework實現,Mesos的資源分配粒度是按task的,但由于executor執行task可能在同一個進程中實現,所以資源限制只是一種流控的機制,并不能實際的控制到task這個粒度。

看了上面官方的架構說明,大約應該明白了Mesos的大致架構,但具體Mesos為什么要做成這樣,下面我們具體分析下。

歷史演進

我們把時間回退到Mesos發明的2009年,那時候Hadoop逐漸成熟,并廣泛應用,正在吞噬著大家的服務器。Spark當時也在醞釀中。而服務器配置管理領域Puppet還沒發布1.0,Chef才剛出現,"Configuration management Infrastructure as Code" 的思想才慢慢被接受,Ansible/Salt還沒出現。大家管理服務器還是靜態劃分的方式,購買服務器的時候就安排好了,這幾臺服務器上運行什么服務,應該配置多少CPU/內存/磁盤,安裝維護還多用的是shell腳本。

靜態管理服務器,無論是用shell還是Puppet這種工具,一方面是比較浪費資源,另外一方面服務故障恢復,服務遷移都需要人工介入,因為這種工具都只在部署時進行管理,服務進程運行后就不歸部署工具管理了。而Mesos則看到了這種方式的弊端,試圖實現一個資源共享的平臺,提高資源利用率,實現動態運維。

按照這種方式就比較容易理解Mesos的做法,Mesos的master相當于Puppet/Salt的master,Mesos的slave相當于Puppet/Salt的agent,二者干的事情都是把指令通過master發送給slave/agent執行,區別是Puppet/Salt成功執行后就不關心了,而Mesos執行后會在Master維護task的狀態,task掛掉后可以重啟或者遷移。

同時Mesos看到Hadoop等分布式系統都自己實現了scheduler以及executor,所以將scheduler以及executor的具體實現讓出來,通過制定Framework標準,由第三方分布式框架自己實現,自己只負責轉發task到slave,由slave調用Framework的executor去執行task。

也就是說由于歷史時機的問題,Mesos采用了一種保守的策略來進行演進。

資源沖突以及隔離機制

資源共享導致的首要問題就是如何解決資源沖突問題:

  1. cpu/mem 這個Mesos默認內置了一個Mesos Containerizer,可以通過cgroups和namespaces進行限制。
  2. 網絡端口 Mesos默認會給每個task分配一個(可以分配多個端口)隨機的未使用的端口,需要應用從環境變量中獲取到這個端口進行使用,是一種約定的規則,并不強制限制。
  3. 文件系統 默認情況下Mesos的文件系統是多應用共享的,默認給每個task分配一個sandbox目錄作為工作目錄,sandbox在主機上的目錄是和taskid相關的,不會沖突,生命周期和task綁定。另外也支持Persistent Volume,用于應用保存持久數據,也是通過目錄映射的方式實現的。Persistent Volume的生命周期獨立于task,由scheduler決定是否復用,也就是說Mesos將持久化數據和動態遷移之間的沖突問題交給了scheduler自己處理。另外可以選擇使用Docker Containerizer,通過Docker的方式隔離文件系統。
  4. 服務發現以及負載均衡 Mesos默認不支持服務發現和負載均衡,需要用戶自己實現。Mesos之上的Marathon Framework提供了一個marathon-lb,通過監聽Marathon的event修改HAProxy,實現動態的負載均衡,不過只支持通過Marathon部署的應用。
  5. 容器的改進 Mesos內置的容器不是基于Image的,但Docker是基于Image的,帶來的問題就是有些功能要通過兩種方式實現(比如磁盤隔離等)。另外Docker本身的daemon機制讓Mesos不好直接管理容器進程,所以Mesos也在計劃改進內置的容器支持Image,兼容Docker/Appc的Image,不會把Docker作為默認的容器。具體參看:https://github.com/apache/mesos/blob/master/docs/container-image.md,MESOS-2840

源碼架構分析

Mesos的核心是用c++寫的,主要使用了一個libprocess的庫,這是一個c++的actor模型的庫(不太了解actor模型的可以參看我的前一篇文章:并發之痛 Thread,Goroutine,Actor,這個庫順帶把Option,Nothing,Try, Future,Lambda,Defer這些都實現了,讓我充分體會了c++的魔法)。libprocess基本是參考erlang的模式實現的,其中的actor都叫做process,每個process有一個獨立的ID,我們這里為了方便理解,把其中的抽象都叫做actor,具體actor協作模式見下圖:

在Mesos的master節點中,每個Framework以及Slave都是一個遠程的actor。而slave節點上,每個executor是一個actor,只不過內置的executor是在同一個進程中的,而其他自定義的executor是獨立的進程,executor和slave之間通過進程間通信方式(網絡端口)交互。

Mesos通過actor模型,簡化了分布式系統的調用以及并發編程的復雜度,actor之間都通過消息異步通信,只需要知道對方的ID即可,無需了解對方和自己是否在同一個節點上。libprocess封裝的actor manager知道接收方是本地的actor還是遠程的actor,如果是遠程的則通過請求接口轉發消息。libprocess也封裝了網絡層,傳輸層使用的是http協議,使用方對不同的消息注冊不同的handler即可,也支持http的長輪詢模式訂閱事件。mesos為了提高消息傳遞解析效率,消息傳遞支持json和protobuf兩種格式。

這種架構的好處是Mesos省去了對消息隊列的依賴。一般情況下這種分布式消息分發系統都需要消息隊列或者中心存儲的支持,比如Salt使用的是ZeroMQ,Kubenetes使用的是Etcd,而Mesos則不依賴外部的資源支持,只通過actor模型的容錯機制來實現。而缺點也是actor本身的缺點,因為消息都是異步的,需要actor處理消息的丟失以及超時邏輯,Mesos不保證消息的可靠投遞,提供的投遞策略是 “at-most-once”,actor需要通過超時重試機制解決消息丟失的問題。不過任何需要遠程調用的分布式系統需要處理的類似的問題吧。

Framework的實現解析

從上面的分析可以了解到,Framework在Mesos中扮演著重要的角色。如果你自己要開發一個分布式系統,打算運行在Mesos中,就需要考慮自己實現一個Framework。

Mesos提供了一個Framework的基礎庫,第三方只需要實現scheduler,和executor兩個接口即可。基礎庫是用c++實現了,通過jni提供了java版本,通過python的native方式提供了python版本。而golang的版本是獨立開發的,沒有依賴c++庫,代碼架構比較優雅,想用go實現actor的可以參考。這個Framework基礎庫(SchedulerDriver以及ExecutorDriver的實現)主要做的事情就是實現前面我們提到的actor模型,和master以及slave交互,收到消息后回調用戶自定義的scheduler和executor。

下面是java的Scheduler接口:

  1. public interface Scheduler { 
  2.  
  3.   void registered(SchedulerDriver driver, 
  4.   FrameworkID frameworkId, 
  5.   MasterInfo masterInfo); 
  6.  
  7.   void reregistered(SchedulerDriver driver, MasterInfo masterInfo); 
  8.  
  9.   //這個是最主要的一個方法,當系統有空閑資源的時候,會詢問Scheduler, 
  10.   //是否接受或者拒絕該Offer。如果接受,則同時需要封裝使用該Offer的task信息,調用driver去執行。 
  11.   void resourceOffers(SchedulerDriver driver, List<Offer> offers); 
  12.   //如果Offer被取消或者被別的Framework使用,則回調本方法 
  13.   void offerRescinded(SchedulerDriver driver, OfferID offerId); 
  14.   //該Framework啟動的task狀態變化時回調。 
  15.   void statusUpdate(SchedulerDriver driver, TaskStatus status); 
  16.   //自定義的框架消息 
  17.   void frameworkMessage(SchedulerDriver driver,ExecutorID executorId,SlaveID slaveId,byte[]() data); 
  18.  
  19.   void disconnected(SchedulerDriver driver); 
  20.  
  21.   void slaveLost(SchedulerDriver driver, SlaveID slaveId); 
  22.  
  23.   void executorLost(SchedulerDriver driver,ExecutorID executorId,SlaveID slaveId,int status); 
  24.  
  25.   void error(SchedulerDriver driver, String message); 

Mesos的Framework是獨立于Mesos系統的,具體的部署方式,以及高可用都需要Framework自己解決,所以要實現一個完備的,高可用的Framework,復雜度還是挺高的。另外Framwork的機制比較適合需要任務分發以及調度的分布式系統,比如Hadoop,Jenkins等。其他的分布式數據庫比如Cassandra,Mesos做的事情是通過Scheduler調度CassandraExecutor部署和管理(包括節點上的維護操作,比如備份)Cassandra節點,詳細可參看 https://github.com/mesosphere/cassandra-mesos 。

另外Mesos Master本身沒有持久化存儲,所有數據都在內存,重啟后數據會丟失。但活躍的Framework和Slave注冊時會把自己當前的狀態發送給Master,Master通過這種方式恢復數據。所以如果Framework需要持久化Task的執行記錄,需要自己實現持久化存儲。

Mesos Slave提供了recovery的機制,用于實現Slave進程重啟后的恢復。默認情況下,Slave進程重啟后,和該進程相關的executor/task都會被殺掉,但如果Framework配置開啟了checkpoint設置,則該Framework相關的executor/task信息會被持久化到磁盤上,用于重啟后的recovery。

Marathon

Marathon按照官方的說法是個基于Mesos的私有PaaS。它實現了Mesos的Framework,支持通過shell命令和Docker部署應用,提供Web界面,支持cpu/mem,實例數等參數設置,支持單應用的scale,但不支持復雜的集群定義。

Marathon本身是通過Scala實現的,也使用了actor模型。它提供了event bus接口,允許其他應用通過監聽event bus來實現動態配置,比如前面提到的marathon-lb。

Aurora

Aurora試圖用一種自定義的配置語言去定義Mesos之上的task以及順序關系,解決各種環境的異構問題,降低用shell腳本的復雜度。可以理解為Mesos之上的一種粘合劑語言,地位類似于Salt/Ansible的yaml,只不過Mesos本身沒支持類似的配置語言,于是Aurora通過Framework的方式來支持。

Mesos和Kubernetes比較

Mesos和Kubernetes雖然都借鑒了Borg的思想,終極目標類似,但解決方案是不同的。Mesos有點像聯邦制,承認各邦(Framework)的主權,但各邦讓渡一部分公用的機制出來由Mesos來實現,最大化的共享資源,提高資源利用率,Framework和Mesos是相對獨立的關系。而Kubernetes有點像單一制,搭建一個通用的平臺,盡量提供全面的能力(網絡,磁盤,內存,cpu),制定一個集群應用的定義標準,任何復雜的應用都可以按照該標準定義并以最小的變更成本在上面部署運行,主要的變更需求也是因為想享受Kubernetes的動態伸縮能力帶來的。所以Mesos盡量做的比較少,而Kubernetes盡量做的比較多。Mesos定義是DCOS的kernel,但OS的kernel具體應該承擔哪些職責,相關爭論也從來沒停止過。

相對來說Kubernetes使用要比較容易些,而Mesos更靈活些,需要做的定制開發工作也比較多。拿前面提到的cassandra來比較,cassandra-mesos的實現很復雜,而Kubernetes的cassandra例子則只有一個類,就是實現了KubernetesSeedProvider,通過Kubernetes的服務發現機制尋找cassandra的seed節點。當然Mesos上的cassandra可以通過Mesos發送備份等管理任務,而Kubernetes不提供任務轉發的功能,這類需求用戶可以通過kubectl的exec方法實現。從這個例子也大致能明白二者的差異點。

Kubernetes下的Kubernetes on Mesos項目的目的就是利用Mesos的這個特性,實現Kubernetes和Mesos上的其他Framework共享資源。如果想了解Kubernetes的更多資料可以看這次一并推送的文章:"Kubernetes 架構淺析"。

【本文為51CTO專欄作者“王淵命”的原創稿件,轉載請通過作者微信公眾號jolestar-blog獲取授權】

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

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

2014-01-06 17:30:50

ApacheMesos架構

2021-10-26 10:22:27

ArrayList阿里云

2014-01-06 17:13:59

ApacheMesos

2017-07-17 11:52:54

jQuery源碼分析前端框架類庫

2014-01-06 11:23:54

Mesos設計架構

2017-02-27 09:21:23

Kubernetes架構service

2014-02-14 15:12:41

ApacheMesos架構

2022-06-07 10:33:29

Camera組件鴻蒙

2017-11-28 09:32:57

KubernetesDockerMesos Compa

2016-11-04 21:46:46

UnderscoreJavascript

2009-09-21 12:50:34

Hibernate架構

2011-04-19 15:38:16

MongodbCursor

2009-07-08 14:06:22

ClassLoaderJDK源碼

2009-09-09 10:47:29

C# CheckBox

2009-09-07 05:24:22

C#窗體繼承

2009-09-01 18:19:39

C#工作流

2019-09-25 09:28:54

Linux系統架構

2011-12-02 13:04:06

Java

2015-04-27 14:42:24

技術架構服務器性能

2020-03-16 08:55:34

云架構SLA云服務
點贊
收藏

51CTO技術棧公眾號

五月激情综合网| 91香蕉视频在线| 欧美精品久久久久久久久久| 欧美精品欧美极品欧美激情| 蜜桃视频成人m3u8| 亚洲图片自拍偷拍| 午夜久久资源| 色窝窝无码一区二区三区| 免费av成人在线| 欧美在线免费观看视频| 亚洲va天堂va国产va久| 国内精品国语自产拍在线观看| av一级在线观看| 一本一道久久a久久精品蜜桃 | 国产欧美熟妇另类久久久| 亚洲美女黄色| 久久中文字幕在线| 无码人妻精品一区二区中文| 日韩一区二区三区精品视频第3页| 福利视频导航一区| 999久久欧美人妻一区二区| 91在线看片| 久久青草国产手机看片福利盒子 | 亚洲va久久久噜噜噜久久| 欧美一区二区大片| www午夜视频| 不卡av播放| 午夜私人影院久久久久| 视频一区二区视频| 午夜精品一区| 国产精品日产欧美久久久久| 麻豆91蜜桃| 香蕉国产在线视频| av在线综合网| 国产精品免费一区二区三区在线观看| 国产女人18毛片水真多| 久久成人羞羞网站| 国产女精品视频网站免费| 国产成人无码一区二区在线播放| 亚洲精品影视| 91国自产精品中文字幕亚洲| 日本三级午夜理伦三级三| 亚洲视频碰碰| 久久97久久97精品免视看| 无码人妻精品一区二区三区夜夜嗨| 精品久久影院| 色悠悠久久88| jizz18女人高潮| 成人综合专区| 久久精品最新地址| 91嫩草丨国产丨精品| 999成人网| 美日韩精品视频免费看| 青草影院在线观看| 欧美精选一区| 午夜精品三级视频福利| 超碰中文字幕在线| 亚洲欧美激情诱惑| 国产成人在线视频| 中文字幕日韩国产| 久久99这里只有精品| 成人免费自拍视频| 亚洲成人77777| 99久久精品免费| 欧美精品v日韩精品v国产精品| 色视频精品视频在线观看| 久久品道一品道久久精品| 色99中文字幕| 在线欧美三级| 午夜精品福利一区二区三区蜜桃| 99视频在线免费播放| 欧美电影免费观看网站| 欧美日韩国产综合草草| 日本一本在线视频| 激情小说亚洲色图| 中文字幕久久精品| 欧美日韩精品在线观看视频 | 精品999在线| 国产aa精品| 亚洲激情视频在线观看| 亚洲欧美va天堂人熟伦| 小说区亚洲自拍另类图片专区| 色综合老司机第九色激情| 97人人澡人人爽人人模亚洲| 日韩高清不卡在线| 91亚色免费| 三级理论午夜在线观看| 中文字幕日本不卡| 无罩大乳的熟妇正在播放| 99re久久| 精品电影一区二区| 中文字幕免费在线看线人动作大片| 中文字幕一区二区三区在线视频| 91精品国产91久久久久久| 亚洲最新av网站| a级精品国产片在线观看| 日韩欧美亚洲在线| 91超碰在线免费| 欧美日本在线一区| 日韩精品卡通动漫网站| 我不卡神马影院| 琪琪亚洲精品午夜在线| 97人妻精品一区二区三区| 2023国产精品视频| 国产高清不卡无码视频| 另类专区亚洲| 精品99一区二区| 99成人在线观看| 久久动漫亚洲| 国产精品99久久久久久久| 最新97超碰在线| 欧美性猛交xxxx黑人| 在线观看免费看片| 97精品视频在线看| 日本道色综合久久影院| 午夜精品久久久久久久91蜜桃| 欧美激情资源网| 国产91在线视频观看| 亚洲一区二区三区中文字幕在线观看 | 成人免费网站在线| av福利在线播放| 色综合久久中文字幕综合网| 亚洲美女在线播放| 欧美日韩免费| 亚洲专区在线视频| 老司机在线看片网av| 91国偷自产一区二区三区观看 | 国产精品久久福利| 国产偷人视频免费| 网红女主播少妇精品视频| 欧美精品videos性欧美| 国产精品热久久| 亚洲欧洲韩国日本视频| 成人黄色一级大片| 欧美黄色大片在线观看| 国产精品中文在线| 天天影视久久综合| 欧美三日本三级三级在线播放| 瑟瑟视频在线观看| 久久久夜精品| 欧美日本亚洲| **在线精品| 亚洲欧美中文日韩v在线观看| 一级免费在线观看| 9l国产精品久久久久麻豆| 久久久久久免费看| 伊色综合久久之综合久久| 欧美激情a在线| 噜噜噜久久,亚洲精品国产品| 亚洲综合成人在线| 手机在线成人av| 噜噜噜在线观看免费视频日韩 | 精品成人无码一区二区三区| 日韩av电影天堂| 一级做a爰片久久| 国产一区二区三区| 欧美黑人狂野猛交老妇| 免费av网站观看| 精品久久中文字幕久久av| 短视频在线观看| 日日夜夜精品视频天天综合网| 视频一区二区在线| 91麻豆精品| 久久久久免费视频| 深夜福利在线视频| 欧美亚洲愉拍一区二区| 日本精品在线免费观看| 国产91精品在线观看| 人妻夜夜添夜夜无码av| 九一成人免费视频| 成人美女免费网站视频| 欧美性爽视频| 亚洲精选中文字幕| 91麻豆成人精品国产免费网站| 一区二区三区欧美视频| 国产精品久久久免费观看| 日韩av一区二区在线影视| 一区二区三区四区国产| eeuss鲁片一区二区三区| 欧美一级电影免费在线观看| 亚洲麻豆精品| 亚洲精品成人免费| 亚洲天堂aaa| 午夜精品久久久久影视| 国产日韩精品中文字无码| 国产丶欧美丶日本不卡视频| 国产1区2区在线| 天天做天天爱综合| 快播日韩欧美| 欧美午夜在线播放| 国产精品成人国产乱一区| 怡红院av在线| 在线视频精品一| 全部免费毛片在线播放一个| 欧美三级日韩三级| 日韩三级一区二区三区| 中文字幕一区二区在线播放| 成人手机在线免费视频| 国产在线精品一区二区不卡了| 久久久久久久午夜| 亚洲国产日韩欧美在线| 日本欧美色综合网站免费| 无码国模国产在线观看| 国产精品视频中文字幕91| www在线观看黄色| 日韩在线高清视频| 黄色片在线免费观看| 精品国产乱码久久久久久夜甘婷婷 | 亚洲午夜久久久久久尤物| 午夜视频久久久| 西瓜成人精品人成网站| 国产99在线免费| 91丨精品丨国产| 国产成人在线一区二区| 新版的欧美在线视频| 精品视频9999| 麻豆tv免费在线观看| 亚洲最大在线视频| 三级理论午夜在线观看| 精品国产第一区二区三区观看体验| 亚洲视频在线观看免费视频| 欧美日韩国产一区二区三区| 久久午夜鲁丝片午夜精品| 成人免费小视频| 粉嫩精品久久99综合一区| 久久久久青草大香线综合精品| 五月天丁香社区| 成人午夜伦理影院| 可以看的av网址| 国产麻豆精品theporn| 欧美性猛交xxxx乱大交91| 麻豆成人综合网| 美女少妇一区二区| 美女mm1313爽爽久久久蜜臀| 久久久久久久少妇| 日韩黄色片在线观看| 玩弄japan白嫩少妇hd| 久久精品123| 大香煮伊手机一区| 免费视频最近日韩| 污网站免费在线| 久久99精品国产.久久久久久| av网站在线不卡| 精品亚洲aⅴ乱码一区二区三区| 色播五月综合网| 国精产品一区一区三区mba视频 | 久久亚洲国产精品| 国产美女在线观看| 九九久久久久久久久激情| 色www永久免费视频首页在线| 欧美精品制服第一页| 牛牛在线精品视频| 97在线视频观看| 欧美18—19sex性hd| 国产精品久久久久久久久借妻 | 欧洲精品在线一区| 大色综合视频网站在线播放| 一区二区三区四区五区精品| 久久久久久久久久久久久久久久久久 | 黄网址在线观看| 欧美裸体男粗大视频在线观看| 黄页网站在线观看免费| 91精品国产高清久久久久久91| 偷拍视频一区二区三区| 国产欧亚日韩视频| 亚洲网一区二区三区| 久久福利电影| 欧美丰满日韩| 久激情内射婷内射蜜桃| 天堂av在线一区| 亚洲第一天堂久久| 成人午夜电影网站| 亚洲a v网站| 成人欧美一区二区三区视频网页 | 欧美亚一区二区三区| 国产精品国产三级国产aⅴ原创| 91人妻一区二区三区蜜臀| 亚洲成人av中文| 在线观看色网站| 精品国产伦一区二区三区观看体验 | 成人免费观看视频| 国产免费一区二区三区网站免费| 国产精品国产自产拍高清av| 日本熟女一区二区| 欧美午夜精品免费| 日本加勒比一区| 日韩一区二区三区xxxx| www.51av欧美视频| 91麻豆桃色免费看| 要久久爱电视剧全集完整观看| 伊人久久大香线蕉av一区| 99精品热6080yy久久| 九色porny自拍| 91在线一区二区| www.99re7| 欧美在线短视频| 天天操天天干天天爱| 精品国模在线视频| 久久久人成影片一区二区三区在哪下载 | 性欧美xxxx| 成人黄色91| 日韩三级电影| 亚洲影院免费| 制服丝袜在线第一页| 亚洲四区在线观看| 亚洲婷婷久久综合| 日韩av在线一区| 中文字幕在线观看网站| 国产精品久久久久久久久久三级| 国产精品玖玖玖在线资源| av动漫免费观看| 日本午夜一区二区| 李宗瑞91在线正在播放| 亚洲成人在线免费| 亚洲精品成人区在线观看| 精品国产一区二区三区四区在线观看| 小草在线视频免费播放| 国产精品国产三级欧美二区| 性欧美欧美巨大69| 天天干天天综合| 国产视频在线观看一区二区三区| 一级免费在线观看| 亚洲精品在线观看网站| 91精品久久久久久粉嫩| 国产欧美一区二区三区四区| 国产区精品区| 欧美亚洲日本在线观看| 91麻豆免费在线观看| 成年人免费看毛片| 精品国产污网站| 美女91在线| 高清免费日韩| 伊人精品视频| 国产情侣久久久久aⅴ免费| 亚洲制服丝袜在线| 亚洲高清精品视频| 欧美激情久久久久久| 成人自拍在线| 国产精彩视频一区二区| 成人高清伦理免费影院在线观看| 久久久久99精品成人片试看| 日韩亚洲欧美一区二区三区| 中国av在线播放| 成人免费视频网站| 在线看片日韩| 99久久人妻无码中文字幕系列| 精品久久久国产| 国产在线中文字幕| 国产精品入口夜色视频大尺度| 成人嫩草影院| 特级西西444www| 亚洲精品大片www| 蜜桃av中文字幕| 欧美在线性爱视频| 国产精品一区二区av交换| 日本久久久久久久久久久久| 国产精品久久久久影院老司| 一级黄色大片免费观看| 美女精品久久久| 天天躁日日躁成人字幕aⅴ| 国产精品乱码久久久久| 国产精品蜜臀在线观看| 性一交一乱一精一晶| 2019国产精品自在线拍国产不卡| 中文有码一区| 91视频这里只有精品| 亚洲影院久久精品| 日韩二区三区| 成人免费淫片aa视频免费| 亚洲福利电影| 91在线无精精品白丝| 69精品人人人人| 国产在线精彩视频| 亚洲欧美精品在线观看| 国产成人一区二区精品非洲| 国产精品久久久久久久久久精爆| 最近2019年中文视频免费在线观看| 成人噜噜噜噜| 国产乱子伦农村叉叉叉| 日韩一区在线免费观看| 国产又爽又黄网站亚洲视频123| 国产精品久久久一区| 国产综合视频| 日韩免费成人av| 精品捆绑美女sm三区| 日韩精品三区| 成人免费在线网| 国产精品素人视频| 人人妻人人澡人人爽精品日本| 国产精品视频26uuu| 伊人成人在线| 中文字幕乱码av| 精品中文字幕久久久久久| 亚洲欧美专区| 免费午夜视频在线观看| 一区二区三区在线视频观看 | 久久久久久久久久一区二区| 亚洲成人777| 国产黄大片在线观看画质优化| 欧美日韩一区二区三区在线视频|