精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲第一天堂影院| 91精品国产自产| 深夜国产在线播放| www.欧美色图| 国产精品高精视频免费| 男人av资源站| 九九精品视频免费| 伊人久久久久久久久久久久| 欧美电影一二区| 在线欧美亚洲| 久久婷婷一区二区三区| 国产成人免费av电影| 欧日韩不卡视频| 日本高清中文字幕二区在线| av一区二区高清| 日韩欧美美女一区二区三区| 欧美视频在线一区| 91精品国产亚洲| 中文字幕av久久爽一区| 青娱乐91视频| 福利在线视频网站| 92国产精品观看| 91色在线观看| 亚洲国产av一区二区三区| 伊人久久大香线蕉综合四虎小说| 日韩电影大片中文字幕| 欧美日韩中文字幕在线视频| 国产精品视频资源| 国产一国产二国产三| 国产精品一在线观看| 91麻豆精品91久久久久同性| 久草青青在线观看| 日本道在线视频| 欧美人妻一区二区三区| 9999精品视频| 色婷婷综合久久久久中文一区二区| 中国老女人av| 不卡在线视频| 91女厕偷拍女厕偷拍高清| 一区二区三区国产精品| 亚洲欧美日本国产有色| 色播色播色播色播色播在线| 国内精品国产三级国产a久久 | 一边摸一边做爽的视频17国产| 日本免费一区二区三区等视频| 日韩欧美在线视频免费观看| 18岁网站在线观看| 麻豆视频在线观看免费网站黄| 亚洲午夜激情网页| 日韩免费在线观看av| 亚洲小说区图片区都市| 亚洲猫色日本管| 国产精品久久成人免费观看| 午夜国产福利在线| 国产精品久久久久久久久久免费看 | 国色天香2019中文字幕在线观看| 麻豆一区产品精品蜜桃的特点| 亚洲五月综合| 欧美日韩xxx| 久久亚洲国产成人精品性色| 欧美三区视频| 国外成人性视频| 特黄视频免费看| 久久青草久久| 国产精品人成电影在线观看| 在线观看国产小视频| 久久精品国产一区二区三| 国产成人鲁色资源国产91色综| 日韩黄色av网站| 在线免费观看a级片| 亚洲精品推荐| 中文字幕亚洲欧美一区二区三区 | 亚洲3p在线观看| 国产精品久久久免费视频| 美女诱惑一区| 国产精品一区二区在线| 国产精品福利电影| 国产成人亚洲精品狼色在线| 韩国一区二区三区美女美女秀| 少妇人妻一区二区| 久久精品亚洲国产奇米99| 日韩在线电影一区| h片在线免费| 午夜精品一区二区三区电影天堂| 国产超级av在线| 91九色综合| 欧美sm极限捆绑bd| 久久久久亚洲av成人无码电影| 色综合咪咪久久网| 久久久久国产精品一区| www.日韩一区| 国产91精品免费| 日韩高清国产一区在线观看| 91麻豆国产福利在线观看宅福利| 午夜精品久久久久久久久久| 中国黄色片免费看| 精品三级av| 最近2019中文字幕大全第二页| 欧美卡一卡二卡三| 久久综合伊人| 国产精品国色综合久久| 懂色一区二区三区| 一个色综合av| www.精品在线| 欧美人体视频| 精品中文字幕在线观看| 波多野结衣一区二区三区四区| 国产一区二区三区黄视频| 免费在线观看91| 日本aa在线| 欧美色图12p| 91精品国产自产| 永久91嫩草亚洲精品人人| 日韩美女在线观看一区| 丰满人妻一区二区三区免费视频 | 久久成人免费日本黄色| 丁香五月网久久综合| www.视频在线.com| 舔着乳尖日韩一区| 麻豆精品国产传媒| 成人3d精品动漫精品一二三| 97碰碰碰免费色视频| 99久久精品国产一区二区成人| 久久精品视频免费| 国产青草视频在线观看| 国模私拍国内精品国内av| 精品偷拍一区二区三区在线看 | 99re热久久这里只有精品34| 欧美日韩国产精品| 69xxx免费视频| 久久久久久久久99精品大| 国产精品观看在线亚洲人成网| 五月天丁香视频| 亚洲国产精品一区二区久久| 奇米777在线视频| 婷婷丁香综合| 91九色国产社区在线观看| av在线免费观看网站| 在线观看日韩高清av| 国产人妻一区二区| 在线亚洲成人| 精品乱码一区| 超碰资源在线| 亚洲精品国产综合久久| 黄色小视频在线免费看| 成人美女视频在线观看18| 亚洲乱码日产精品bd在线观看| 欧美日本三级| 欧美大片大片在线播放| 国产黄a三级三级三级| 一区二区三区不卡视频在线观看| www.桃色.com| 欧美va天堂在线| 99精品国产高清一区二区| gogo在线高清视频| 日韩一级成人av| 黄色在线观看免费| 成人午夜电影久久影院| 亚洲熟妇无码一区二区三区| 欧美深夜视频| 国产成人亚洲综合91| 国产区av在线| 91精品国模一区二区三区| 2025国产精品自拍| 国产91丝袜在线观看| 波多野结衣家庭教师在线播放| 亚洲人成精品久久久 | 国产xxxxxx| 亚洲一区在线观看免费| 在线观看国产网站| 奇米精品一区二区三区在线观看| 亚洲精品一区二区三区四区五区| 亚洲男男av| 国内精品中文字幕| 成人免费高清在线播放| 欧美精品自拍偷拍| 久久精品99久久久久久| 成人av网站在线| 日韩欧美黄色大片| 欧美一区在线看| 久久亚洲精品欧美| 欧美天堂一区二区| 欧美国产乱视频| 美女做暖暖视频免费在线观看全部网址91 | 在线播放国产一区二区三区| www.av网站| 色婷婷国产精品| www.com.av| 成人精品小蝌蚪| 亚洲国产高清av| 亚洲精品偷拍| 一区二区三区四区久久| 啪啪激情综合网| 国产综合在线观看视频| 欧亚av在线| 欧美另类xxx| 999国产在线视频| 亚洲精品一区二区三区福利 | 成人bbav| 久久这里有精品视频| 欧美偷拍视频| 日韩精品一区二区三区四区| 免费黄色一级大片| 亚洲图片有声小说| 久久久99999| 久久色.com| 中国黄色片视频| 狠狠色丁香婷综合久久| 国产女女做受ⅹxx高潮| 伊人激情综合| 日韩中文在线字幕| 国产一区2区| 国产伦精品一区二区三区四区视频| 久久天天久久| 日韩免费av一区二区| jizz一区二区三区| 久久国产一区二区三区| 黄色电影免费在线看| 亚洲成人av中文字幕| 99精品在线视频观看| 欧美丰满少妇xxxbbb| 中文字幕手机在线视频| 姬川优奈aav一区二区| 日韩黄色免费观看| 亚洲美女视频在线观看| 久久久久99精品成人| 久久精品视频网| 中出视频在线观看| www.亚洲国产| 亚洲色图欧美日韩| 粉嫩在线一区二区三区视频| 善良的小姨在线| 日韩黄色在线观看| 日韩av播放器| 老牛影视一区二区三区| 男人操女人免费软件| 亚洲欧美bt| 国产a级一级片| 国产农村妇女毛片精品久久莱园子 | www.中文字幕av| 久久久精品免费观看| 97超碰在线免费观看| 99久久99久久精品免费观看| 亚洲色偷偷色噜噜狠狠99网| 粉嫩aⅴ一区二区三区四区| 少妇精品无码一区二区| 懂色av噜噜一区二区三区av| 天天色天天干天天色| 国产精品66部| 秘密基地免费观看完整版中文 | 国产一区二区三区蝌蚪| 亚洲一级片免费观看| 国产91精品一区二区麻豆网站| 一级黄色免费视频| av电影在线观看不卡| 一级做a爰片毛片| 国产午夜精品久久久久久免费视 | 日本中文字幕有码| 国产高清成人在线| 少妇被狂c下部羞羞漫画| hitomi一区二区三区精品| 真人bbbbbbbbb毛片| 久久久99久久| 四虎地址8848| 伊人夜夜躁av伊人久久| 国产一区二区三区影院| 欧美午夜精品久久久久久久| 国产一级精品毛片| 制服.丝袜.亚洲.另类.中文| 精品国产乱码久久久久久蜜臀网站| 精品国偷自产国产一区| 欧美成熟毛茸茸| 日日噜噜噜夜夜爽亚洲精品| 色yeye免费人成网站在线观看| 国内外成人免费激情在线视频 | 97国产超碰| 精品一区在线| 免费在线观看污污视频| 在线播放亚洲| 天天操天天爱天天爽| 国产精品自在在线| 一卡二卡三卡四卡| 亚洲特级片在线| 亚洲熟妇无码乱子av电影| 欧美精品在欧美一区二区少妇| 韩国av免费在线| 一区二区三区动漫| 免费av不卡在线观看| 国产精品国产自产拍高清av水多 | 天天综合av| 成人黄色在线播放| 日本韩国欧美超级黄在线观看| 亚洲精品永久www嫩草| 韩国自拍一区| 欧美wwwwwww| 97久久超碰精品国产| 天天做夜夜爱爱爱| 色婷婷av久久久久久久| 亚洲国产精彩视频| 久久精品小视频| 免费福利视频一区二区三区| 99久久综合狠狠综合久久止| av一区二区在线观看| 国产精品专区在线| 国产一区二区三区免费观看| 摸摸摸bbb毛毛毛片| 午夜欧美大尺度福利影院在线看| 国产绳艺sm调教室论坛| 在线观看精品国产视频| 涩涩视频在线播放| 99精品国产高清一区二区| 99久久亚洲精品蜜臀| 一区二区成人网| 久久久蜜桃精品| 中文字幕在线观看免费视频| 欧美一卡二卡在线观看| eeuss影院www在线播放| 日本视频久久久| 日韩高清三区| 99色这里只有精品| 国产精品77777| 国产一区二区三区在线视频观看| 欧美性猛交xxxxxxxx| 久久av少妇| 欧美在线视频观看免费网站| 国产人妖ts一区二区| 国产精品视频一二三四区| 黄色资源网久久资源365| 337人体粉嫩噜噜噜| 欧洲精品在线观看| 可以在线观看的av| 77777亚洲午夜久久多人| 日韩一区免费| 免费的一级黄色片| 国产91在线看| 国产黄色片视频| 亚洲成人网在线| 9999热视频在线观看| 精品国产一区二区三| 最新成人av网站| 国产精品无码永久免费不卡| 亚洲v日本v欧美v久久精品| 蜜臀av免费在线观看| 久久人人爽人人爽人人片av高请| 亚洲国产精选| 中文字幕在线中文字幕日亚韩一区| 秋霞午夜av一区二区三区| 国产精品久久免费观看| 在线免费观看视频一区| 永久av在线| 成人网在线免费观看| 欧美黄色大片网站| 国产一级免费片| 疯狂欧美牲乱大交777| 精品福利视频导航大全| 国产美女高潮久久白浆| 91影院成人| 欧美一级大片免费看| 亚洲高清三级视频| 天堂av中文在线资源库| 国产成人免费av电影| 国产精品99久久| 亚洲成a人片在线www| 欧美日韩国产中字| 啊v在线视频| 亚洲一区亚洲二区| 亚洲日本视频| 久久久视频6r| 91麻豆精品国产自产在线观看一区| 日本中文字幕中出在线| 久久久久久一区| 免费久久精品视频| a级片在线观看免费| 亚洲精品国产精品国自产观看浪潮| 欧美一区国产| 天天成人综合网| 不卡的看片网站| 中文字幕av片| 欧美富婆性猛交| 国产欧美日韩视频在线| 日韩 国产 一区| 精品久久久中文| 日韩伦理在线观看| 精品亚洲欧美日韩| 免播放器亚洲一区| 日韩精品一卡二卡| 色香阁99久久精品久久久| eeuss国产一区二区三区四区| 激情网站五月天| 亚洲美女免费视频| 国产最新视频在线观看| 91免费在线观看网站| 久久一区视频| 免费人成视频在线| 在线播放日韩av| 亚洲成人一品| 日批视频在线看| 欧美视频你懂的| 免费看男女www网站入口在线 | 日韩欧美自拍偷拍|