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

Linux 系統虛擬化模型及障礙

系統 Linux 虛擬化
了滿足GeraldJ. Popek和Robert P. Goldberg提出的滿足虛擬化的3個條件,一個典型的解決方案是Trap andEmulate模型。

[[436822]]

x86架構CPU虛擬化

Gerald J. Popek和Robert P. Goldberg在1974年發表的論文“Formal Requirements for Virtualizable[A1] [A2] Third Generation Architectures”中提出了符合虛擬化的3個條件:

(1)等價性,即VMM需要在宿主機上為虛擬機模擬出一個本質上與物理機一致的環境。虛擬機在這個環境上運行與其在物理機上運行別無二致,除了可能因為資源競爭或者VMM的干預導致在虛擬環境中表現上略有差異,比如虛擬機的I/O、網絡等因宿主機的限速或者多個虛擬機共享資源,導致速度可能要比獨占物理機的慢一些。

(2)高效性,即虛擬機指令執行的性能與其在物理機上運行相比并無明顯損耗。該標準要求虛擬機中的絕大部分指令無須VMM干預而直接運行在物理CPU上,比如我們在x86架構上通過Qemu運行的ARM系統并不是虛擬化,而是仿真(Emulator)。

(3)資源控制,即VMM完全控制系統資源。由VMM控制協調宿主機資源給各個虛擬機,而不能由虛擬機控制了宿主機的資源。

陷入和模擬模型

為了滿足GeraldJ. Popek和Robert P. Goldberg提出的滿足虛擬化的3個條件,一個典型的解決方案是Trap andEmulate模型。

一般來說,處理器可以歸結為兩種運行模式:系統模式和用戶模式。相應的,CPU的指令也分為特權指令和非特權指令。特權指令只能在系統模式運行,如果特權指令運行在用戶模式就將觸發處理器異常。操作系統將內核運行在系統模式,因為內核需要管理系統資源,需要運行特權指令,而普通的用戶程序則運行在用戶模式。

在虛擬化場景下,虛擬機的用戶程序仍然運行在用戶模式,但是虛擬機的內核將運行在用戶模式,這種方式稱為Ring Compression。在這種方式下,虛擬機中的非特權指令直接運行在處理器上,滿足了Popek和Goldberg提出的虛擬化標準中高效的要求,即指令的大部分無須VMM干預直接在處理器上運行。但是,當虛擬機執行特權指令時,因為是在用戶模式執行特權指令,將觸發處理器異常,從而陷入到VMM中,由VMM代理虛擬機完成系統資源的訪問,即所謂的模擬(emulate)。如此,又滿足了Popek和Goldberg提出的虛擬化標準中VMM控制系統資源的要求,虛擬機將不會因為可以直接運行特權指令而修改宿主機的資源,從而破壞宿主機的環境。

x86架構虛擬化的障礙

Gerald J. Popek和Robert P. Goldberg指出,修改系統資源的,或者在不同模式下行為有不同表現的,都屬于敏感指令。在虛擬化場景下,VMM需要監測到這些敏感指令。一個支持虛擬化的體系架構的敏感指令都屬于特權指令,即在非特權級別執行這些敏感指令時,CPU會拋出異常,進入VMM的異常處理函數,從而實現了控制VM訪問敏感資源的目的。

但是,x86架構恰恰不能滿足Gerald J. Popek和Robert P. Goldberg定義的這個準則,且并不是所有的敏感指令都是特權指令,有些敏感指令在非特權模式下執行時并不會拋出異常,此時VMM就無法攔截或者處理VM的行為。以修改FLAGS寄存器中的IF(interrupt flag)為例,我們首先使用指令pushfd將寄存器FLAGS的內容壓到棧中,然后將棧頂的IF清0,最后使用popf指令從棧中恢復FLAGS寄存器。如果將虛擬機內核運行在ring 1,x86的CPU并不會拋出異常,而只是默默地忽略指令popfd,因此虛擬機關閉IF的目的并沒有生效。

有人提出半虛擬化的方式,即修改Guest的代碼,但是這不符合虛擬化的透明準則。后來,人們提出了二進制翻譯的方式,包括靜態翻譯和動態翻譯。靜態翻譯就是在運行前,掃描整個可執行文件,對敏感指令進行翻譯,重新形成一個新的文件。靜態翻譯是有其局限性的,必須提前處理,而且有些指令只有在運行時才產生的副作用,無法靜態處理。于是,動態翻譯應運而生,即在運行時以代碼塊為單元動態地修改二進制代碼。動態翻譯在很多VMM中得到應用,而且優化的效果非常不錯。

VMX擴展

雖然程序員們從軟件層面采用了多種方案去解決x86架構在虛擬化方面的問題,但是軟件層的解決方案除了額外的開銷外,也給VMM的實現帶來了巨大的復雜性。于是,Intel嘗試從硬件層面解決這個問題。Intel并沒有將那些非特權的敏感指令修改為特權指令,因為并不是所有的特權指令都需要Trap and Emulate。我們舉個典型的例子,每當操作系統內核切換進程時,都會切換cr3寄存器,使其指向當前運行進程的頁表。當使用影子頁表進行GVA到HPA的映射時,需要捕獲Guest的每一次設置cr3寄存器的操作,VMM模塊使其指向影子頁表。而當啟用了硬件層面的EPT支持后,cr3仍然指向Guest的進程頁表,無須捕捉Guest設置cr3寄存器的操作,也就是說,雖然寫cr3寄存器是特權指令,但是其不需要陷入VMM。

Intel開發了VT技術支持虛擬化,為CPU增加了Virtual-Machine Extensions,簡稱為VMX。一旦啟動了CPU的VMX支持,CPU將提供2種運行模式:VMX Root Mode和VMX non-Root Mode,每一種模式都支持ring0 ~ ring3。VMM運行在VMX RootMode,除了支持VMX外,VMX Root Mode和普通的模式并無本質區別。VM運行在VMX non-Root Mode,Guest無須再采用Ring Compression方式,Guest kernel可以直接運行在VMX non-Root Mode的ring0,如圖1所示。

圖1 VMX運行模式

處在VMX RootMode的VMM可以通過執行CPU提供的虛擬化指令VMLaunch切換到VMX non-Root Mode,因為這個過程相當于進入Guest[3] ,所以通常也被稱為VM entry。當Guest內部執行了敏感指令,比如某些I/O操作后,將觸發CPU發生陷入的動作,從VMX non-Root Mode切換回VMX Root Mode,這個過程相當于退出VM,所以也稱為VM exit。然后VMM將對Guest 的操作進行模擬。相比于Ring Compression方式,即將Guest的內核也運行在用戶模式(ring 1 ~ ring 3)的方式,支持VMX擴展的CPU[4] :

(1)運行于Guest模式時,Guest用戶空間的系統調用直接陷入Guest模式的內核空間,而不是再陷入到Host模式的內核空間。

(2)對于外部中斷,因為需要讓VMM控制系統的資源,所以處于Guest模式的CPU收到外部中斷,則觸發CPU從Guest模式退出到Host模式,由Host內核處理外部中斷。處理完中斷后,再重新切入Guest模式。為了提高I/O效率,Intel支持外設透傳模式,在這種模式下,Guest可以不必產生VM exit,“設備虛擬化”一章將討論這種特殊方式。

(3)不再是所有的特權指令都會導致處于Guest模式的CPU發生VM exit,僅當運行敏感指令時才會導致CPU從Guest模式陷入Host模式,因為有的特權指令并不需要由VMM介入處理。

如同一個CPU可以分時運行多個任務一樣,每個任務有自己的上下文,由調度器在調度時切換上下文,從而實現同一個CPU同時運行多個任務。在VMX擴展下,同一個物理CPU“一人分飾多角”,分時運行著Host及Guest,在不同模式間按需切換,因此,不同模式也需要保存自己的上下文。為此,VMX設計了一個保存上下文的數據結構:VMCS。每一個Guest都有一個VMCS實例,當物理CPU加載了不同的VMCS時,將運行不同的Guest,,如圖2所示。

圖2 多個Guest切換

VMCS中主要保存著兩大類數據,一類是狀態,包括Host的和Guest的,另外一類是控制Guest運行時的行為。

(1)Guest-state area,保存虛擬機狀態的區域。當發生VM exit時,Guest的態保存在這個區域;當VM entry時,這些狀態將被裝載到CPU中。這些都是硬件層面的自動行為,VMM無須編碼干預。

(2)Host-state area,保存宿主機狀態的區域。當發生VM exit時,CPU自動從VMCS裝載這些狀態到物理CPU;當VM entry時,CPU自動將狀態保存到這個區域。

(3)VM-exit information fields。當虛擬機發生VM exit時,VMM需要知道導致VM exit的原因,然后才能對癥下藥,進行相應的模擬操作。為此,CPU會自動將Guest退出的原因保存在這個區域,供VMM使用。

(4)VM-execution control fields。這個區域中的各種字段控制著虛擬機運行時的一些行為,比如設置Guest運行時訪問cr3時是否觸發VM exit;控制VM entry與exit時的行為的VM-entry control fields和VM-exitcontrol fields。我們不再一一列出細節,讀者如有需要可以查閱Intel手冊。

在創建VCPU時,KVM模塊將為每個VCPU申請一個VMCS,每次CPU準備切入Guest模式時,將設置其VMCS指針指向即將切入的Guest對應的VMCS實例:

  1. commit 6aa8b732ca01c3d7a54e93f4d701b8aabbe60fb7 
  2. [PATCH] kvm: userspace interface 
  3. linux.git/drivers/kvm/vmx.c 
  4. static struct kvm_vcpu *vmx_vcpu_load(structkvm_vcpu *vcpu) 
  5.     u64phys_addr = __pa(vcpu->vmcs); 
  6.     int cpu; 
  7.   
  8.     cpu =get_cpu(); 
  9.     … 
  10.     if(per_cpu(current_vmcs, cpu) != vcpu->vmcs) { 
  11.         … 
  12.        per_cpu(current_vmcs, cpu) = vcpu->vmcs; 
  13.         asmvolatile (ASM_VMX_VMPTRLD_RAX "; setna %0" 
  14.                  : "=g"(error) : "a"(&phys_addr),"m"(phys_addr) 
  15.                  : "cc"); 
  16.         … 
  17.     } 
  18.     … 

并不是所有的狀態都由CPU自動保存與恢復,我們還需要考慮效率。以cr2寄存器為例,大多數時候,從Guest退出到Host再次進入Guest期間,Host并不會改變cr2寄存器的值,而且寫cr2的開銷不小,如果每次VM entry都更新一次cr2,除了浪費CPU指令周期,毫無意義。因此,將這些狀態交給VMM由軟件自行控制更合適。

VCPU生命周期

對于每個虛擬處理器(VCPU),VMM使用一個線程代表VCPU這個實體。在Guest運轉過程中,每個VCPU基本都在如圖1-3所示的狀態中不斷地轉換。

圖3 VCPU生命周期

在用戶空間準備好后,VCPU所在線程向內核中KVM模塊向發起一個ioctl請求KVM_RUN,告知內核中的KVM模塊,用戶空間的操作已經完成,可以切入Guest模式運行Guest了。

在進入內核態后,KVM模塊將調用CPU提供的虛擬化指令切入Guest模式。如果是首次運行Guest,則使用VMLaunch指令,否則使用VMResume指令。在這個切換過程中,首先,CPU的狀態,也就是Host的狀態,將會被保存到VMCS中存儲Host狀態的區域,非CPU自動保存的狀態由KVM自行保存。然后,加載存儲在VMCS中的Guest的狀態到物理CPU,非CPU自動恢復的狀態則由KVM自行恢復。

物理CPU切入Guest模式,運行Guest指令。當執行Guest指令遇到敏感指令時,CPU將從Guest模式切回到Host模式的ring0,進入Host內核的KVM模塊。在這個切換過程中,首先,CPU的狀態,也就是Guest的狀態,將會被保存到VMCS中存儲Guest狀態的區域,然后,加載存儲在VMCS中的Host的狀態到物理CPU。同樣的,非CPU自動保存的狀態,由KVM模塊自行保存。

處于內核態的KVM模塊從VMCS中讀取虛擬機退出原因,嘗試在內核中處理。如果內核中可以處理,那么虛擬機就不必再切換到Host模式的用戶態了,處理完后,直接快速切回Guest。這種退出也稱為輕量級虛擬機退出。

如果內核態的KVM模塊不能處理虛擬機退出,那么VCPU將再進行一次上下文切換,從Host的內核態切換到Host的用戶態,由VMM的用戶空間部分進行處理。VMM用戶空間處理完畢后,再次發起切入Guest模式的指令。在整個虛擬機運行過程中,這個過程循環往復。

下面是內核空間切入、切出Guest的代碼:

  1. commit 6aa8b732ca01c3d7a54e93f4d701b8aabbe60fb7 
  2. [PATCH] kvm: userspace interface 
  3. linux.git/drivers/kvm/vmx.c 
  4. static int vmx_vcpu_run(struct kvm_vcpu *vcpu, …) 
  5.     u8 fail; 
  6.     u16fs_sel, gs_sel, ldt_sel; 
  7.     intfs_gs_ldt_reload_needed; 
  8.   
  9. again: 
  10.     … 
  11.         /*Enter guest mode */ 
  12.        "jne launched \n\t" 
  13.        ASM_VMX_VMLAUNCH "\n\t" 
  14.        "jmp kvm_vmx_return \n\t" 
  15.        "launched: " ASM_VMX_VMRESUME "\n\t" 
  16.        ".globl kvm_vmx_return \n\t" 
  17.        "kvm_vmx_return: " 
  18.         /*Save guest registers, load host registers, keep flags */ 
  19.     … 
  20.         if(kvm_handle_exit(kvm_run, vcpu)) { 
  21.             … 
  22.            goto again; 
  23.         } 
  24.     } 
  25.     return 0; 

在從Guest退出時,KVM模塊首先調用函數kvm_handle_exit嘗試在內核空間處理Guest退出。函數kvm_handle_exit有個約定,如果在內核空間可以成功處理虛擬機退出,或者是因為其他干擾比如外部中斷導致虛擬機退出等無須切換到Host的用戶空間,則返回1;否則返回0,表示需要求助KVM的用戶空間部分處理虛擬機退出,比如需要KVM用戶空間的模擬設備處理外設請求。

如果內核空間成功處理了虛擬機的退出,則函數kvm_handle_exit返回1,我們看到上述代碼直接跳轉到標簽again處,然后程序流程會再次切入Guest。這種虛擬機退出被稱為輕量級虛擬機退出。如果函數kvm_handle_exit返回0,則函數vmx_vcpu_run結束執行,CPU從內核空間返回到用戶空間,以kvmtool為例,其相關代碼片段如下:

  1. commit 8d20223edc81c6b199842b36fcd5b0aa1b8d3456 
  2. Dump KVM_EXIT_IO details 
  3. kvmtool.git/kvm.c 
  4. int main(int argc, char *argv[]) 
  5.     … 
  6.     for (;;){ 
  7.        kvm__run(kvm); 
  8.   
  9.        switch (kvm->kvm_run->exit_reason) { 
  10.         caseKVM_EXIT_IO: 
  11.         … 
  12.     } 
  13.     … 

根據代碼可見,kvmtool發起進入Guest的代碼處于一個無限的for循環中。當從KVM內核空間返回用戶空間后,kvmtool在用戶空間處理Guest的請求,比如調用模擬設備處理I/O請求。在處理完Guest的請求后,重新進入下一輪for循環,kvmtool再次請求KVM模塊切入Guest。

王柏生 資深技術專家,先后就職于中科院軟件所、紅旗Linux和百度,現任百度主任架構師。在操作系統、虛擬化技術、分布式系統、云計算、自動駕駛等相關領域耕耘多年,有著豐富的實踐經驗。著有暢銷書《深度探索Linux操作系統》(2013年出版)。

謝廣軍 計算機專業博士,畢業于南開大學計算機系。資深技術專家,多年的IT行業工作經驗。現擔任百度智能云副總經理,負責云計算相關產品的研發。多年來一直從事操作系統、虛擬化技術、分布式系統、大數據、云計算等相關領域的研發工作,實踐經驗豐富。

本文內容節選自《深度探索Linux虛擬化技術》,已獲得機械工業出版社華章公司授權。

本文轉載自微信公眾號「Linux閱碼場」,可以通過以下二維碼關注。轉載本文請聯系Linux閱碼場公眾號。

 

責任編輯:武曉燕 來源: Linux閱碼場
相關推薦

2012-06-20 14:26:23

虛擬化

2011-10-18 16:09:51

廣域網虛擬化

2011-11-02 09:41:15

2009-12-17 15:35:28

2013-07-24 13:26:18

2012-06-06 09:37:58

虛擬化

2018-02-28 14:29:18

2013-07-23 10:10:14

2023-09-19 10:00:34

Linux虛擬

2010-03-16 10:42:27

虛擬化整合比例

2011-10-29 21:20:18

2012-10-17 10:02:38

虛擬化

2010-01-14 09:23:03

數據中心虛擬化

2011-08-08 09:46:18

服務器虛擬化

2010-09-29 10:16:02

Linux集群虛擬化

2014-01-13 10:09:08

存儲虛擬化云計算

2012-04-27 15:22:46

存儲虛擬化障礙

2009-10-28 15:45:22

linux虛擬化技術

2012-05-24 09:29:28

虛擬化ESG服務器虛擬化

2018-02-28 14:41:29

點贊
收藏

51CTO技術棧公眾號

青青艹在线观看| 亚洲精品午夜视频| cao在线视频| 久久影院午夜片一区| 国产在线播放不卡| 国产精久久久久久| 国产传媒欧美日韩成人精品大片| 在线播放国产精品二区一二区四区| 国产爆乳无码一区二区麻豆| 五月婷婷综合久久| 日本欧美韩国一区三区| 欧美黄色片免费观看| 色综合99久久久无码国产精品| 久久久久毛片免费观看| 91久久精品一区二区二区| 国产成人三级视频| 精品资源在线看| 国产精品88av| 国产精品美女免费视频| 日韩精品一区三区| 成人在线免费小视频| 亚洲成色999久久网站| 国产欧美一区二| 亚洲伊人av| 亚洲中国最大av网站| 亚洲激情图片| 噜噜噜噜噜在线视频| 国产不卡视频一区二区三区| 国产精品丝袜视频| 91丝袜一区二区三区| 亚洲无毛电影| 欧美成人激情在线| 国产中文字幕久久| 精品国产乱码久久久久久1区2匹| 亚洲高清色综合| 精品人妻一区二区三区免费| 日韩午夜电影免费看| 日韩欧中文字幕| 成年人午夜免费视频| av在线免费网站| 国产精品美女久久久久久久| 欧美三级华人主播| 香蕉av在线播放| 成人动漫视频在线| 成人免费看片网址| 国产高清第一页| 国产美女久久久久| 成人免费网站在线观看| 亚洲在线观看av| 男女男精品视频| 国产精品自产拍在线观看中文| 久久久久久无码精品大片| 亚洲欧美激情诱惑| 91精品国产电影| 黄网在线观看视频| 亚洲欧美网站| 国产精品大陆在线观看| 国产99久久久久久免费看| 校园春色综合网| 日韩av123| 最新国产中文字幕| 狠狠色丁香婷婷综合| 91免费在线视频网站| 国产视频手机在线观看| 国产成人精品影视| 国产亚洲一区二区三区在线播放| 人妻少妇精品无码专区| av中文字幕在线不卡| 国产一区二区在线免费| 国内精品国产成人国产三级| av日韩一区| 欧美一区二区三区日韩视频| 人妻少妇偷人精品久久久任期| 亚洲精品一区二区三区在线| 国产乱子伦视频一区二区三区 | 久久一区二区三区超碰国产精品| 热久久免费视频精品| 欧美成人国产精品一区二区| 欧美一区亚洲二区| 欧美精品自拍偷拍| 亚洲精品v欧美精品v日韩精品| 国产3p露脸普通话对白| 美女高潮视频在线看| 色综合天天综合狠狠| 亚洲污视频在线观看| 精品中文字幕一区二区三区四区| 欧美精品一区二区三区四区| 亚洲精品乱码久久久久久久久久久久| 日韩精品免费一区二区在线观看| 久久国产精品首页| 成人免费视频毛片| 精一区二区三区| 久久精品国产精品国产精品污 | 大胆亚洲人体视频| 精品在线不卡| 欧美猛烈性xbxbxbxb| 一区二区久久久久久| 国产成人亚洲精品无码h在线| 久久69成人| 欧美精品一区二区在线观看| 国产高清一区二区三区四区| 午夜视频精品| 国产精品久久婷婷六月丁香| 乱精品一区字幕二区| 国产欧美精品一区| 无码粉嫩虎白一线天在线观看 | 麻豆changesxxx国产| 美女国产一区| 成人午夜电影免费在线观看| 91短视频版在线观看www免费| 亚洲伊人伊色伊影伊综合网| 97公开免费视频| 秋霞影视一区二区三区| 另类色图亚洲色图| 最近中文字幕在线观看视频| 91亚洲精品久久久蜜桃| 男人天堂网站在线| 精品久久福利| 亚洲精品中文字幕av| 精品深夜av无码一区二区老年| 轻轻草成人在线| 久久久久久久有限公司| 欧美草逼视频| 538prom精品视频线放| 摸摸摸bbb毛毛毛片| 国产精品久久久久久模特 | 欧美中文字幕在线播放| 亚洲高清在线观看视频| 亚洲欧美日韩久久| 中文字幕 日韩 欧美| 成人羞羞视频在线看网址| 欧美性一区二区三区| 日韩一卡二卡在线| 亚洲伊人色欲综合网| 日韩精品xxx| 91精品国产自产拍在线观看蜜| 国产精品r级在线| 偷拍自拍在线| 亚洲一区二区三区中文字幕| www.久久com| 欧美黄污视频| 亚洲一区二区三区成人在线视频精品| 1769视频在线播放免费观看| 欧美中文字幕不卡| 精品无码人妻一区二区免费蜜桃| 美女黄网久久| 欧美日韩在线精品一区二区三区| 成人影院大全| 一级做a爰片久久毛片美女图片| 久久久久久在线观看| 国产三级一区二区三区| 黄色在线视频网| 国产精品精品国产一区二区| 91精品国产综合久久香蕉最新版| 欧美激情视频在线播放| 7777精品伊人久久久大香线蕉的| 国产精品成人69xxx免费视频| 精品一区二区免费在线观看| 可以在线看黄的网站| 欧美一区一区| 性欧美办公室18xxxxhd| 亚洲 欧美 激情 小说 另类| 色综合夜色一区| 18啪啪污污免费网站| 韩国欧美一区二区| 国产资源在线免费观看| 青青草原在线亚洲| 国产精品久久久久高潮| 免费在线观看黄色网| 日韩美女主播在线视频一区二区三区| 久久久久久蜜桃| 99久久综合色| 色七七在线观看| 亚洲激情中文| 久久www免费人成精品| 成人久久网站| 欧美激情视频播放| 九色在线视频蝌蚪| 欧美丰满少妇xxxxx高潮对白 | 日韩精品黄色| 欧美不卡一二三| 日韩免费av网站| 最新日韩av在线| 这里只有精品在线观看视频| 久久久久久久尹人综合网亚洲| 亚洲日本理论电影| 久久男人av| 国产九九精品视频| 18video性欧美19sex高清| 中文字幕久精品免费视频| www.久久精品.com| 欧美系列亚洲系列| 久久久精品国产sm调教| 国产日韩欧美在线一区| 苍井空张开腿实干12次| 日韩不卡在线观看日韩不卡视频| 久久久久亚洲av无码专区喷水| 日本妇女一区| av蓝导航精品导航| 国产精品黄色片| 国产91精品高潮白浆喷水| 二区在线播放| 亚洲欧美日韩第一区| 亚洲国产一二三区| 欧美日本不卡视频| 日本中文字幕第一页| 一区二区在线观看视频在线观看| 中文字幕国产综合| www..com久久爱| 中文字幕第66页| 热久久国产精品| 青青在线视频观看| 伊人久久亚洲影院| 青青草影院在线观看| 欧美日韩黑人| 欧美日韩国产综合视频在线| 日本少妇精品亚洲第一区| 国产日韩亚洲欧美| 国产精品久久亚洲不卡| 26uuu亚洲伊人春色| 男女在线视频| 久久人人爽人人爽人人片亚洲| 久久99久久| 日韩精品免费在线播放| 在线观看国产精品入口男同| 色拍拍在线精品视频8848| 日本三级黄色大片| 亚洲一线二线三线久久久| 青娱乐国产在线| 亚洲女同一区二区| 北条麻妃在线观看视频| 国产精品麻豆欧美日韩ww| b站大片免费直播| 91免费在线播放| 一区二区不卡免费视频| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧洲av一区二区三区| 久久伊99综合婷婷久久伊| 一级欧美一级日韩片| 波多野结衣在线一区| 黑人玩弄人妻一区二区三区| 成人综合婷婷国产精品久久| 久久黄色一级视频| 成人18视频日本| 久久久久国产精品区片区无码| 99久久精品一区二区| 亚洲天堂美女视频| 91丨九色丨黑人外教| 国产精品揄拍100视频| 久久先锋影音av| 国产人妻大战黑人20p| 中文字幕中文乱码欧美一区二区| 久久成人小视频| 亚洲综合自拍偷拍| 色播视频在线播放| 欧美性黄网官网| 无码人妻精品一区二区三区不卡 | www视频在线| 精品国偷自产国产一区| 日本丰满少妇xxxx| 丝袜诱惑一区二区| 欧美在线视频网| 欧美电影免费观看网站| 国产精品扒开腿做爽爽爽男男 | 欧美色视频在线观看| 中文字幕av久久爽| 91精品国产一区二区三区蜜臀 | 久久精品一级爱片| 亚洲精品国产精品国自| 亚洲欧美在线高清| 久久久久久激情| 欧美性猛交xxx| 亚洲图片视频小说| 欧美电影免费提供在线观看| 五月婷婷狠狠干| 在线观看免费高清视频97| 国产三区视频在线观看| 国内精品400部情侣激情| 成人直播视频| 成人久久18免费网站图片| 色悠久久久久综合先锋影音下载| 久久99精品久久久久久久青青日本 | 国产女人被狂躁到高潮小说| 亚洲一区二区高清| 久久亚洲精品石原莉奈| 91精品国产入口在线| 姝姝窝人体www聚色窝| 在线亚洲欧美视频| 国产伦久视频在线观看| 国产美女久久精品香蕉69| 一区二区亚洲视频| 日韩精品久久久免费观看| 欧美国产激情| 亚洲成色www.777999| 国产成人精品一区二区三区网站观看| 91精品人妻一区二区| 亚洲人成在线播放网站岛国| 中文字幕亚洲高清| 91精品国产综合久久久久久久久久 | 欧美一级大片| 99在线热播| 欧美日韩亚洲在线观看| 久久精品国产sm调教网站演员| 久久www免费人成看片高清| 999精品免费视频| 亚洲天堂免费看| 欧美人一级淫片a免费播放| 精品国产青草久久久久福利| 1769视频在线播放免费观看| 18一19gay欧美视频网站| 久久伊人久久| 亚洲精品影院| 手机精品视频在线观看| 91传媒理伦片在线观看| 亚洲色图欧美在线| 中文字幕乱码人妻无码久久| 日韩经典中文字幕| 蜜桃传媒在线观看免费进入| 成人福利在线观看| 欧美色女视频| 免费日韩视频在线观看| 99久久伊人网影院| jizz国产免费| 日韩欧美国产一区在线观看| 免费在线观看黄色| 91精品久久久久久久久久另类 | 亚洲国产精品三区| 久久精品无码一区二区三区| 日本一区二区欧美| 精品少妇一区二区三区日产乱码| 激情视频在线观看| 国产一区欧美二区三区| 日本久久综合| 冲田杏梨av在线| 国产午夜亚洲精品理论片色戒 | 亚洲成人av资源网| 国产乱码在线| 国产精品露出视频| 尤物在线精品| 在线天堂www在线国语对白| 亚洲国产精品嫩草影院| 殴美一级特黄aaaaaa| 色综合老司机第九色激情| 一区二区三区四区高清视频| 日韩精品久久一区二区| 国产丶欧美丶日本不卡视频| 青青操视频在线播放| 日韩美一区二区三区| 黄色的视频在线观看| 风间由美久久久| 亚洲黄页一区| 激情综合丁香五月| 日韩欧美中文字幕在线播放| 国产香蕉视频在线看| 国产精品久久久久久久久久久新郎| jlzzjlzz亚洲女人| 免费成年人高清视频| 亚洲女性喷水在线观看一区| 亚洲国产精品久久久久爰性色| 欧美精品第一页在线播放| 另类尿喷潮videofree| 国产肥臀一区二区福利视频| 国产亚洲精品aa午夜观看| 在线观看中文字幕码| 久久人人爽人人爽人人片亚洲| 一区二区三区在线免费看| 日本wwww视频| 国产精品久久夜| 精品国产av一区二区| 2019中文字幕在线观看| 国产91久久精品一区二区| 日本黄大片一区二区三区| 一区二区三区在线视频观看| 天天操天天射天天| 国产精品久久久久久久久久新婚| 婷婷亚洲综合| 人妖粗暴刺激videos呻吟| 色噜噜偷拍精品综合在线| 黄色片免费在线观看| 久久爱av电影| 国产综合久久久久久久久久久久 | 欧美色涩在线第一页| 宅男在线观看免费高清网站 | 亚洲成av人片乱码色午夜| 黄色av电影网站| 在线观看视频一区二区| 中文字幕在线三区| 欧美日韩一区二区三区在线观看免| 久久精品国产精品亚洲红杏 | aa级大片欧美三级| 国精产品视频一二二区| 精品sm捆绑视频| 福利一区二区免费视频| 美女黄色免费看| 中文字幕乱码日本亚洲一区二区| 亚洲精品一区二区口爆| 国产精品一区二区久久| 亚洲承认在线| 久久国产精品国语对白| 亚洲欧美日韩精品久久|