通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動的制作方法

            文檔序號:6492583閱讀:410來源:國知局
            通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動的制作方法
            【專利摘要】本發明公開了一種通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動。一種通過半虛擬化驅動訪問硬件的方法包括:特權虛擬機的后端驅動接收非特權虛擬機的前端驅動通過事件通道發送的目標事件通知;從I/O共享環中獲取目標I/O請求,該目標I/O請求攜帶有目標授權項的標識;根據授權表,確定該目標授權項的標識對應的目標偽物理地址;根據預設的索引表,確定該目標偽物理地址對應的目標本地虛擬地址;利用該目標本地虛擬地址,讀取該目標偽物理地址所對應目標共享內存資源中的網絡數據,并將該網絡數據轉發給相應的硬件,以此實現對該硬件的本次訪問。通過利用本方案,可以降低虛擬機網絡時延機CPU占用率。
            【專利說明】通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動
            【技術領域】
            [0001]本發明涉及虛擬機【技術領域】,特別是涉及一種通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動。
            【背景技術】
            [0002]所謂Xen虛擬化技術分為三層:最底層為擁有最高特權級別的虛擬機監控器(Hypervisor),其直接運行于硬件之上,負責其上的虛擬機的內存分配和運行調度;往上為擁有直接操作底層硬件權限且唯一存在的特權虛擬機(DomO),其為系統中運行的第一個虛擬機,負責其他非特權虛擬機(DomU)的管理;非特權虛擬機(DomU)沒有直接操作硬件的權限,每個系統可以同時運行多個DomU,每個DomU對外表現為一個標準的物理機。
            [0003]在虛擬化環境下,若干DomU運行在同一物理機上,出于系統安全方面的考慮,DomU不能直接訪問物理機上的各種物理設備(例如:網卡、磁盤設備等),而由DomO通過模擬指令完成訪問。但是,對于磁盤設備、網絡設備等I/O訪問非常頻繁的物理設備而言,僅靠指令模擬的方式來訪問硬件,其性能無法滿足實際應用的需要。為了解決DomU通過模擬指令訪問硬件性能差的問題,當前主要有兩種方式用于提升虛擬機IO特性:(I)直接將物理機上真實的硬件透傳給指定的DomU,相當于給予了指定的DomU直接操作硬件的特權;
            (2)采用半虛擬化驅動的方式。
            [0004]其中,半虛擬化驅動由前端驅動和后端驅動組成。所謂前端驅動為運行在DomU內核態的驅動程序,其負責創建虛擬設備,并且轉發虛擬設備的I/o請求;所謂后端驅動為運行在DomO內核態的驅動程序,其負責接收前端驅動轉發的I/O請求,并且通過真正的設備驅動來訪問物理設備,進而完成I/o請求;并且Hypervisor通過提供事件通道、授權表和I/O共享環緩沖區等技術來幫助前端驅動和后端驅動進行通信。其中,半虛擬化驅動方式對應的虛擬架構如圖1所示。
            [0005]現有技術中,半虛擬化驅動的基本IO流程為:
            [0006]前端驅動接收到DomU內核下發的網絡數據,從I/O共享環中取出一個I/O請求;
            [0007]前端驅動從授權表中申請授權項,在該授權項里填充該網絡數據所在內存資源的偽物理地址,再將該授權項對應標識填充到上一步取出的1/0請求中;
            [0008]在虛擬機監控器的作用下,前端驅動通過事件通道向后端驅動發送事件通知;
            [0009]后端驅動通過事件通道接收前端驅動發送的事件通知;
            [0010]后端驅動從1/0共享環中取出前端驅動放入的1/0請求;
            [0011]后端驅動查詢授權表,確定1/0請求中所填充的標識對應的該偽物理地址;
            [0012]通過共享內存技術,后端驅動查詢到DomU中該偽物理地址所對應的物理地址,并將該物理地址通過本地偽物理地址映射到自身的本地虛擬地址,此后后端驅動通過訪問該本地虛擬地址便能直接訪問前端驅動接收到的網絡數據;
            [0013]后端驅動將該網絡數據發送給真實的設備驅動來訪問物理設備,完成1/0請求;
            [0014]后端驅動接收到真實的設備驅動發回的響應,將其放入1/0共享環,并解除對前端驅動共享內存資源的映射關系,通過事件通道向前端驅動發送事件通知;
            [0015]前端驅動通過事件通道接收到后端驅動發送的事件通知;
            [0016]前端驅動從I/O共享環中取出響應進行處理,并回收共享內存資源。
            [0017]上述IO流程中,關鍵步驟在于=DomO通過共享內存技術,將DomU指定的內存資源映射到自身的內存空間中,從而直接訪問到DomU的內存資源,實現內存共享,最終完成網絡數據從DomU轉發到DomO的過程。
            [0018]其中,每次由DomU向外界傳輸數據時,都需要將DomU中攜帶數據的內存資源動態映射給DomO,由DomO使用完數據之后再解除映射關系。由于每次I/O請求都涉及到共享內存的動態映射和解映射,當網絡負載很高時,該方式需要頻繁地更新偽物理地址到物理地址的映射關系,且每次更新都涉及到系統從DomO切換到Hypervisor完成映射和解映射,這種頻繁的切換導致虛擬機網絡時延增長,同時CPU占用率較高。

            【發明內容】

            [0019]本發明實施例提供了 一種通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動,以降低虛擬機網絡時延及CPU占用率,技術方案如下:
            [0020]第一方面,從特權虛擬機的后端驅動的角度,本發明實施例提供了一種通過半虛擬化驅動訪問硬件的方法,適用于物理機上,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述方法包括:
            [0021]所述特權虛擬機的所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/O請求;
            [0022]從所述I/O共享環中獲取目標I/O請求,所述目標I/O請求攜帶有目標授權項的標識;
            [0023]根據所述授權表,確定所述目標授權項的標識對應的目標偽物理地址,其中,所述授權表的授權項在所述非特權虛擬機初始化預先構建的共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化;
            [0024]根據預設的索引表,確定所述目標偽物理地址對應的目標本地虛擬地址,其中,所述索引表在所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程中創建,其用于指明所述共享內存池中的共享內存資源與所述特權虛擬機的內存空間的映射關系;
            [0025]利用所述目標本地虛擬地址,讀取所述目標偽物理地址所對應目標共享內存資源中的網絡數據,并將所述網絡數據轉發給相應的硬件,以此實現對所述硬件的本次訪問。
            [0026]更進一步的,第一方面中所提供的通過半虛擬化驅動訪問硬件的方法還包括:
            [0027]在所述目標I/O請求完成后,通過所述事件通道向所述前端驅動反饋I/O請求完成通知,以指示所述前端驅動釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            [0028]其中,第一方面中所提供的通過半虛擬化驅動訪問硬件的方法中,所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程,包括:
            [0029]所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的初始化通知;
            [0030]從所述I/O共享環中獲取I/O請求,所述I/O請求中攜帶授權項的標識;
            [0031]根據所述授權表,確定所述I/O請求中所述授權項的標識對應的偽物理地址;
            [0032]將所述偽物理地址對應的共享內存資源映射到所述特權虛擬機的系統內存中,其中,所述偽物理地址與本地虛擬地址具有唯一對應性;
            [0033]構建關于所述偽物理地址與相應的本地虛擬地址的映射關系的索引表。
            [0034]其中,所述前端驅動為半虛擬化網卡前端驅動,所述后端驅動為半虛擬化網卡后端驅動;
            [0035]或者,
            [0036]所述前端驅動為半虛擬化磁盤前端驅動,所述后端驅動為半虛擬化磁盤后端驅動;
            [0037]或者,
            [0038]所述前端驅動為半虛擬化USB前端驅動,所述后端驅動為半虛擬化USB后端驅動。
            [0039]第二方面,本發明實施例還提供一種后端驅動,設置于物理機中的特權虛擬機中,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述后端驅動包括:
            [0040]目標事件通知接收單元,所述特權虛擬機的所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的目標事件通知,并觸發目標I/o請求獲取單元,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/O請求;
            [0041]所述目標I/O請求獲取單元,用于從所述I/O共享環中獲取目標I/O請求,并觸發目標偽物理地址確定單元,所述目標I/o請求攜帶有目標授權項的標識;
            [0042]所述目標偽物理地址確定單元,用于根據所述授權表,確定所述目標授權項的標識對應的目標偽物理地址,并觸發目標本地虛擬地址確定單元,其中,所述授權表的授權項在所述非特權虛擬機初始化預先構建的共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化;
            [0043]所述目標本地虛擬地址確定單元,用于根據預設的索引表,確定所述目標偽物理地址對應的目標本地虛擬地址,并觸發網絡數據處理單元,其中,所述索引表在第一預映射單元實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程中創建,其用于指明所述共享內存池中的共享內存資源與所述特權虛擬機的內存空間的映射關系;
            [0044]所述網絡數據處理單元,用于利用所述目標本地虛擬地址,讀取所述目標偽物理地址所對應目標共享內存資源中的網絡數據,并將所述網絡數據轉發給相應的硬件,以此實現對所述硬件的本次訪問;[0045]所述第一預映射單元,用于實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射。
            [0046]更進一步的,第二方面中所提供的后端驅動還包括:
            [0047]I/O請求完成通知發送單元,用于在所述目標I/O請求完成后,通過所述事件通道向所述前端驅動反饋I/o請求完成通知,以指示所述前端驅動釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            [0048]其中,第二方面中所提供的后端驅動中,所述第一預映射單元,包括:
            [0049]初始化通知接收子單元,用于接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的初始化通知,并觸發I/o請求獲取子單元;
            [0050]所述I/O請求獲取子單元,用于從所述I/O共享環中獲取I/O請求,所述I/O請求中攜帶授權項的標識,并觸發偽物理地址確定子單元;
            [0051]所述偽物理地址確定子單元,用于根據所述授權表,確定所述I/O請求中所述授權項的標識對應的偽物理地址,并觸發資源映射子單元;
            [0052]所述資源映射子單元,用于將所述偽物理地址對應的共享內存資源映射到所述特權虛擬機的系統內存中,并觸發索引表構建子單元,其中,所述偽物理地址與本地虛擬地址具有唯一對應性;
            [0053]所述索引表構建子單元,用于構建關于所述偽物理地址與相應的本地虛擬地址的映射關系的索引表。
            [0054]第三方面,從非特權虛擬機的前端驅動的角度,本發明實施例還提供一種通過半虛擬化驅動訪問硬件的方法,適用于物理機上,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述方法包括:
            [0055]所述非特權虛擬機的所述前端驅動接收相應內核下發的網絡數據,其中,所述網絡數據為用于訪問硬件的數據;
            [0056]將預設的共享內存池中的處于非占用狀態的共享內存資源作為所述網絡數據對應的目標共享內存資源,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化;
            [0057]確定所述授權表中所述目標共享內存資源的目標偽物理地址所在的目標授權項,其中,所述授權表的授權項在所述非特權虛擬機初始化所述共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;
            [0058]將攜帶所述目標授權項的標識的目標I/O請求放入所述I/O共享環中,其中,所述目標I/o請求在所述前端驅動協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程中構建;
            [0059]通過所述事件通道向所述特權虛擬機的所述后端驅動發送目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/O請求。
            [0060]更進一步的,第三方面中所提供的通過半虛擬化驅動訪問硬件的方法,還包括:[0061]當接收到所述后端驅動反饋的所述目標事件通知對應的請求完成通知后,釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            [0062]其中,第三方面中所提供的通過半虛擬化驅動訪問硬件的方法中,所述非特權虛擬機初始化所述共享內存池的過程包括:
            [0063]所述非特權虛擬機將相應系統內存中的預設數量的內存資源作為處于非占用狀態的共享內存資源;將所述共享內存資源的偽物理地址填充至所述授權表中的授權項,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;將所述共享內存資源和相應授權項的標識放置到所述共享內存池中;
            [0064]其中,所述前端驅動協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程,包括:
            [0065]所述前端驅動從所述共享內存池中獲取所述授權項的標識;
            [0066]構建攜帶所述授權項的標識的I/O請求,并將所述I/O請求放入I/O共享環中,其中,所述授權項的標識與所述I/O請求具有唯一對應性;
            [0067]通過所述事件通道向所述特權虛擬機的所述后端驅動發送預設的初始化通知,其中,所述初始化通知用于指示所述后端驅動開啟所述非特權虛擬機與所述特權虛擬機的資源預映射過程。
            [0068]第四方面,本發明實施例還提供一種前端驅動,設置于物理機中的非特權虛擬機中,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述前驅動包括:
            [0069]網絡數據接收單元,用于接收相應內核下發的網絡數據,并觸發目標內存資源確定單元,其中,所述網絡數據為用于訪問硬件的數據;
            [0070]所述目標內存資源確定單元,用于將預設的共享內存池中的處于非占用狀態的共享內存資源作為所述網絡數據對應的目標共享內存資源,并觸發目標授權項確定單元,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化;
            [0071]所述目標授權項確定單元,用于確定所述授權表中所述目標內存資源的目標偽物理地址所在的目標授權項,并觸發目標I/O請求處理單元,其中,所述授權表的授權項在所述非特權虛擬機初始化所述共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;
            [0072]所述目標I/O請求處理單元,用于將攜帶所述目標授權項的標識的目標I/O請求放入所述I/o共享環中,并觸發目標事件通知發送單元,其中,所述目標I/O請求在第二預映射單元協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程中構建;
            [0073]所述目標事件通知發送單元,用于通過所述事件通道向所述特權虛擬機的所述后端驅動發送目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/O共享環中獲取目標I/O請求;[0074]所述第二預映射單元,用于協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射。
            [0075]更進一步的,第四方面中所提供的前端驅動還包括:
            [0076]目標內存資源處理單元,用于當接收到所述后端驅動反饋的所述目標事件通知對應的請求完成通知后,釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            [0077]其中,第四方面中所提供的前端驅動中,所述非特權虛擬機初始化所述共享內存池的過程包括:
            [0078]所述非特權虛擬機將相應系統內存中的預設數量的內存資源作為處于非占用狀態的共享內存資源;將所述共享內存資源的偽物理地址填充至所述授權表中的授權項,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;將所述共享內存資源和相應授權項的標識放置到所述共享內存池中;
            [0079]相應的,所述第二預映射單元,包括:
            [0080]授權項標識確定子單元,用于從所述共享內存池中獲取所述授權項的標識,并觸發I/O請求處理子單元;
            [0081]所述I/O請求處理子單元,用于構建攜帶所述授權項的標識的I/O請求,并將所述I/o請求放入I/O共享環中,并觸發初始化通知發送子單元,其中,所述授權項的標識與所述I/o請求具有唯一對應性;
            [0082]所述初始化通知發送子單元,用于通過所述事件通道向所述特權虛擬機的所述后端驅動發送預設的初始化通知,其中,所述初始化通知用于指示所述后端驅動開啟所述非特權虛擬機與所述特權虛擬機的資源預映射過程。
            [0083]本發明實施例所提供的技術方案,由于非特權虛擬機預先構建一共享內存池,而特權虛擬機預先將該共享內存池中的共享內存資源映射到自身的內存空間中,并建立指明具體映射關系的索引表,以此實現了非特權虛擬機和特權虛擬機之間的資源預映射,因此,在非特權虛擬機訪問硬件而向外界傳輸數據時,在前端驅動和后端驅動的網絡通信過程中,由于無需進行非特權虛擬機和特權虛擬機之間的資源映射和解映射操作,可以完全避免特權虛擬機和虛擬機監控器之間的切換,從而降低了虛擬機網絡時延機CPU占用率。
            【專利附圖】

            【附圖說明】
            [0084]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
            [0085]圖1為現有的半虛擬化驅動方式所對應虛擬架構的示意圖;
            [0086]圖2為非虛擬化環境下的虛擬地址與物理地址的映射關系的結構示意圖;
            [0087]圖3為虛擬化環境下兩級映射的示意圖;
            [0088]圖4為多虛擬機環境下分配物理內存的示意圖;
            [0089]圖5為虛擬機之間的內存共享的示意圖;
            [0090]圖6為本發明實施例所提供的一種通過半虛擬化驅動訪問硬件的方法的第一種流程圖;
            [0091]圖7為本發明實施例所提供的一種通過半虛擬化驅動訪問硬件的方法的第二種流程圖;
            [0092]圖8為本發明實施例所提供的一種通過半虛擬化驅動訪問硬件方法對應虛擬架構的示意圖;
            [0093]圖9為本發明實施例所提供的一種后端驅動的結構示意圖;
            [0094]圖10為本發明實施例所提供的一種前端驅動的結構示意圖。
            【具體實施方式】
            [0095]為了清楚起見,首先對現有技術中的非虛擬化和虛擬化環境的內存訪問方式、多虛擬機對物理內存的使用方式以及虛擬機之間的內存共享方式進行介紹,以明確虛擬化環境下的物理地址、偽物理地址及虛擬地址之間的關系,以及虛擬機之間的內存共享方式。第一,非虛擬化和虛擬化環境的內存訪問方式
            [0096]在非虛擬化環景下:
            [0097]如圖2所示,應用程序(application)使用VA (Virtual Address,虛擬地址)訪問內存,該訪問內存操作被CPU的MMU (Memory Management Unit,內存管理單元)單元轉換為物理地址,然后物理地址被送到CPU的地址總線上指示將要訪問內存單元。其中,MMU僅負責虛擬地址到物理地址的轉換,其轉換關系是由操作系統內核(kernel)定義的;kernel是整個物理機系統中特權級最高的程序,應用程序無特權,并且,非特權程序對內存的訪問受到特權程序的管制,其目的是為了保護整個系統穩定性,避免非特權程序破壞系統。
            [0098]在虛擬化環景下:
            [0099]如圖3所示,kernel不再是特權級最高的程序,取而代之的是虛擬機監控器(hypervisor),相應的特權級由高到低依次為:hypervisor、kernel、application。
            [0100]在虛擬化環境下,應用程序(其感覺不到虛擬化存在的,因此,和非虛擬化環境一樣)使用VA訪問內存,此時該訪存操作被CPU的MMU單元映射到PA (Pseudo PhysicalAddress,偽物理地址),然后 PA 被 EPT/NPT(Extened Page Table mechanism/Nested PageTables,擴展頁表/嵌套頁表)單元映射到真正物理內存的MA (Machine Address,機器地址),實現了采用兩級映射的方式完成一次內存訪問。
            [0101]增加第二級映射的原因是:①在虛擬化環境下虛擬機操作系統內核不再有最高的特權等級,其如果能直接訪問到物理內存,則一個操作系統的錯誤內存操作將可能影響到同一臺物理機上的其他虛擬機的內存,虛擬機操作系統間將失去獨立性和隔離性,增加系統的不穩定性,所以虛擬機操作系統內核需要受限地訪問PA,而hypervisor為虛擬機建立起PA到MA的映射關系傳統的操作系統需要的是連續的物理內存,在虛擬化環境下虛擬機可能被多次啟動、關閉,一段時間以后不能保證每個虛擬機能分配到連續的物理內存,所以必須提供一種抽象機制將不連續的物理內存映射成虛擬機操作系統可見的連續內存塊(如圖3:EPT/NPT將離散的MA映射成了 Kernel能見到的連續的PA),使得傳統的操作系統能正常運行。因此,虛擬化環境下增加了一級內存映射,采用了兩級映射關系訪問內存。
            [0102]第二,多虛擬機對物理內存的使用
            [0103]如圖4所示,創建虛擬機時,hypervisor根據虛擬機的配置情況,為該虛擬機分配物理地址空間以及對應大小的物理內存,并建立起PA到MA的映射關系。PA之于虛擬機系統相當于MA之于物理機系統,默認情況下虛擬機總是認為自己獨占地訪問分配給它的PA。所以,多個虛擬機存在時,分配它們使用的物理內存是沒有交集的。
            [0104]第三,虛擬機之間的內存共享
            [0105]如圖5所示,以虛擬機Domain X共享PAx給虛擬機Domain Y為例,虛擬機之間共享內存的過程如下:
            [0106]共享內存操作的雙方分別是Domain X和Domain Y兩端的驅動程序(運行在kernel狀態,可以看作是kernel的擴展);
            [0107]Domain X首先申明PAx可以被Domain Y訪問,其中,所申明的內容包括訪問權限;
            [0108]Domain Y的驅動在hypervisor的協助下將原來的PAy到MAy的映射關系解除,其中,MAy可以被hypervisor回收;
            [0109]DomainY的驅動在hypervisor的協助下建立PAy到MAx的映射關系,其中,該映射關系包括映射權限,如果與Domain X申明的訪問權限沖突,本步驟失敗;
            [0110]通過上述方式,Domain X的PAx和Domain Y的PAy指向了同一塊物理內存MAx,使得Domain Y的應用程序通過VAy或者Domain Y的kernel通過PAy訪問內存時,能夠和Domain X的應用程序通過VAx或者Domain X的kernel通過PAx訪問同一塊物理內存MAx,達到了共享內存的目的。
            [0111]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
            [0112]為了降低虛擬機網絡時延及CPU占用率,本發明實施例提供了一種通過半虛擬化驅動訪問硬件的方法、后端驅動及前端驅動。
            [0113]基于上述現有技術中的非虛擬化和虛擬化環境的內存訪問方式、多虛擬機對物理內存的使用方式以及虛擬機之間的內存共享方式,下面首先對本發明實施例所提供的一種通過半虛擬化驅動訪問硬件的方法進行介紹。
            [0114]需要說明的是,本發明實施例所提供方法適用于物理機上,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,該虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助該前端驅動和該后端驅動進行通信。本領域技術人員可以理解的是,不同的外部硬件對應不同的前端驅動和后端驅動,例如:該前端驅動可以為半虛擬化網卡前端驅動,而該后端驅動可以為半虛擬化網卡后端驅動;或者,該前端驅動可以為半虛擬化磁盤前端驅動,而該后端驅動可以為半虛擬化磁盤后端驅動;或者,該前端驅動可以為半虛擬化USB前端驅動,而該后端驅動可以為半虛擬化USB后端驅動,當然并不局限于此。圖8為本發明的通過半虛擬化驅動訪問硬件的方法所對應虛擬架構的結構示意圖。
            [0115]為了實現本發明方案,該非特權虛擬機需要在初始化相應前端驅動時構建共享內存池,并對該共享內存池進行初始化。其中,該非特權虛擬機初始化該共享內存池的過程可以包括:
            [0116]該非特權虛擬機將相應系統內存中的預設數量的內存資源作為處于非占用狀態的共享內存資源;
            [0117]將該共享內存資源的偽物理地址填充至該授權表中的授權項,該偽物理地址與該授權項具有唯一對應性,且每一授權項唯一對應一標識;
            [0118]將該共享內存資源和相應授權項的標識放置到該共享內存池中。
            [0119]需要說明的是,該非特權虛擬機初始化該共享內存池后,該非特權虛擬機的前端驅動需要協助所述特權虛擬機的后端驅動實現所述非特權虛擬機預所述特權虛擬機之間的資源預映射,進而實現后續的非特權虛擬機通過半虛擬化驅動訪問硬件的方法。
            [0120]其中,該前端驅動協助該后端驅動實現該非特權虛擬機與該特權虛擬機之間的資源預映射的過程,可以包括:
            [0121]該前端驅動從該共享內存池中獲取該授權項的標識;
            [0122]構建攜帶該授權項的標識的I/O請求,并將該I/O請求放入I/O共享環中,其中,該授權項的標識與I/o請求具有唯一對應性;
            [0123]通過該事件通道向該特權虛擬機的該后端驅動發送預設的初始化通知,其中,該初始化通知用于指示該后端驅動初始化通過半虛擬化驅動訪問硬件的方法。
            [0124]相應的,該后端驅動實現該非特權虛擬機與該特權虛擬機之間的資源預映射過程,可以包括:
            [0125]該后端驅動接收該非特權虛擬機的該前端驅動通過該事件通道發送的初始化通知;
            [0126]從該I/O共享環中獲取I/O請求,該I/O請求中攜帶授權項的標識;
            [0127]根據該授權表,確定所述I/O請求中所述授權項的標識對應的偽物理地址;
            [0128]將該偽物理地址對應的共享內存資源映射到該特權虛擬機的系統內存中,其中,該偽物理地址與本地虛擬地址具有唯一對應性;
            [0129]構建關于該偽物理地址與相應的本地虛擬地址的映射關系的索引表。綜上可見,本發明實施例給出了:該非特權虛擬機預分配和該特權虛擬機預映射機制,即非特權虛擬機預先分配了 一共享內存池,同時特權虛擬機將該共享內存池中的共享內存資源全部映射到自身的內存空間中,并且建立了索引表以指明具體映射關系。
            [0130]其中,將偽物理地址對應的共享內存資源映射到特權虛擬機的系統內存的方式可以利用上述的現有技術中的虛擬機間的共享內存映射方式,在此不再贅述。
            [0131]為了清楚起見,下面首先從非特權虛擬機的前端驅動角度對本發明實施例所提供的方法進行介紹。
            [0132]如圖6所示,一種通過半虛擬化驅動訪問硬件的方法,可以包括:
            [0133]S101,非特權虛擬機的前端驅動接收相應內核下發的網絡數據;
            [0134]其中,該網絡數據為用于訪問硬件的數據。
            [0135]S102,將預設的共享內存池中的處于非占用狀態的共享內存資源作為該網絡數據對應的目標共享內存資源;
            [0136]其中,該共享內存池為所述非特權虛擬機初始化該前端驅動時由該非特權虛擬機構建并初始化。
            [0137]當非特權虛擬機的前端驅動接收到相應內核下發的網絡數據時,表明該非特權虛擬機需要向外界傳輸數據(即訪問外部硬件),此時,前端驅動可以從預設的共享內存池中選出處于非占用狀態的共享內存資源,并將所選出的共享內存資源作為該網絡數據對應的目標共享內存資源,使得通過訪問該目標共享內存資源對應的目標偽物理地址即可訪問到該網絡數據。
            [0138]其中,作為該目標共享內存資源的共享內存資源屬于被占用狀態,其此時將不屬于該共享內存池的處于非占用狀態的共享內存資源。
            [0139]需要說明的是,該共享內存池、I/O共享環和授權表三者之間是相互獨立的,如圖8所示。
            [0140]S103,確定授權表中該目標共享內存資源的目標偽物理地址所在的目標授權項;
            [0141]其中,該授權表的授權項在該非特權虛擬機初始化所述共享內存池時被填充有該共享內存池中的共享內存資源的偽物理地址,該偽物理地址與該授權項具有唯一對應性,且每一授權項唯一對應一標識。
            [0142]S104,將攜帶該目標授權項的標識的目標I/O請求放入該I/O共享環中;
            [0143]其中,該目標I/O請求在該前端驅動協助該后端驅動實現該非特權虛擬機與該特權虛擬機之間的資源預映射的過程中構建。
            [0144]由于每一共享內存資源的偽物理地址預先填充至一授權項,因此,在確定出該網絡數據對應的目標共享內存資源后,可以從授權表中確定出該目標共享內存資源的目標偽物理地址所在的目標授權項。而由于每一授權項唯一對應一標識,且每一授權項的標識預先唯一對應一 I/O請求,因此,在確定出該目標授權項后,可以確定出該目標授權項的標識所對應的目標I/o請求,進而將該目標I/O請求放入I/O共享環中,以使得特權虛擬機的后端驅動在獲得到相應通知后,能夠從I/o共享環中獲知該目標I/O請求,進而完成該目標I/O請求對應的IO流程,也就是硬件的本次訪問。
            [0145]S105,通過該事件通道向該特權虛擬機的該后端驅動發送目標事件通知。
            [0146]其中,該目標事件通知用于指示該后端驅動從該I/o共享環中獲取目標I/O請求。
            [0147]在將該目標I/O請求放入到I/O共享環后,該前端驅動可以通過事件通道向該特權虛擬機的后端驅動發送目標事件通知,以通知該特權虛擬機的后端驅動從該I/o共享環中獲取該目標I/o請求,進而執行本次IO流程。相應的,該特權虛擬機的該后端驅動在接收到該目標事件通知后,根據預設的索引表,確定該目標偽物理地址對應的目標本地虛擬地址,利用該目標本地虛擬地址,讀取該目標偽物理地址所對應目標共享內存資源中的網絡數據,并將該網絡數據轉發給相應的硬件,以此實現對該硬件的本次訪問,其中,該索引表在該后端驅動實現該非特權虛擬機與該特權虛擬機之間的資源預映射過程中創建,其用于指明該非特權虛擬機對應共享內存池中的共享內存資源與該特權虛擬機的內存空間的映射關系。
            [0148]需要說明的是,更進一步的,當接收到該后端驅動反饋的該目標事件通知對應的請求完成通知后,釋放該目標共享內存資源,將釋放后的該目標共享內存資源確定為該共享內存池中處于非占用狀態的共享內存資源。其中,當該后端驅動獲取到該目標I/o請求后,可以根據授權表及預設的索引表來完成該目標I/o請求對應的IO流程,并在完成該目標I/O請求對應IO流程后,直接向該前端驅動反饋該目標事件通知對應的請求完成通知;而該前端驅動在接收到該后端驅動反饋的該目標事件通知對應的請求完成通知后,釋放該目標共享內存資源,將釋放后的該目標共享內存資源重新確定為該共享內存池中處于非占用狀態的共享內存資源,以便下次執行IO流程時繼續使用該目標內存資源。
            [0149]本實施例所提供的通過半虛擬化驅動訪問硬件的方法中,非特權虛擬機的前端驅動將共享內存池中的共享內存資源作為所接收到網絡數據對應的目標共享內存資源,并將攜帶該目標共享內存資源的目標偽物理地址所在授權項的標識的目標I/O請求放入I/O共享環中,進而向后端驅動發送目標事件通知,以指示后端驅動獲取目標I/o請求,并通過預設的關于該非特權虛擬機對應共享內存池中的共享內存資源與該特權虛擬機的內存空間的映射關系的索引表,實現對該硬件的本次訪問。可見,在前端驅動和后端驅動的網絡通信過程中,由于無需進行非特權虛擬機和特權虛擬機之間的資源映射和解映射操作,可以完全避免特權虛擬機和虛擬機監控器之間的切換,從而降低了虛擬機網絡時延機CPU占用率。
            [0150]下面從特權虛擬機的后端驅動的角度,對本發明實施例所提供的方法進行介紹。
            [0151]如圖7所示,一種通過半虛擬化驅動訪問硬件的方法,可以包括:
            [0152]S201,該特權虛擬機的后端驅動接收該非特權虛擬機的前端驅動通過該事件通道發送的目標事件通知;
            [0153]其中,該目標事件通知用于指示該后端驅動從該I/o共享環中獲取目標I/O請求。
            [0154]S202,從I/O共享環中獲取該目標I/O請求;
            [0155]其中,該目標I/O請求攜帶有目標授權項的標識。
            [0156]在特權虛擬機的后端驅動接收到該非特權虛擬機的前端驅動發送的目標事件通知后,得知該非特權虛擬機需要向外界傳輸數據,此時,需要從I/o共享環中獲取相應的目標I/O請求,進而根據該目標I/O請求完成本次IO流程。
            [0157]S203,根據該授權表,確定該目標授權項的標識對應的目標偽物理地址;
            [0158]其中,該授權表的授權項在該非特權虛擬機初始化預先構建的共享內存池時被填充有該共享內存池中的共享內存資源的偽物理地址,該偽物理地址與該授權項具有唯一對應性,且每一授權項唯一對應一標識,該共享內存池為該非特權虛擬機初始化該前端驅動時由所述非特權虛擬機構建并初始化。
            [0159]S204,根據預設的索引表,確定該目標偽物理地址對應的目標本地虛擬地址;
            [0160]其中,該索引表在該后端驅動實現該非特權虛擬機與所述特權虛擬機之間的資源預映射過程中創建,其用于指明該共享內存池中的共享內存資源與該特權虛擬機的內存空間的映射關系。
            [0161]根據該目標I/O請求確定出目標授權項的標識后,可以根據授權表,確定該目標授權項的標識對應的目標偽物理地址,進而根據預設的關于偽物理地址與相應的本地虛擬地址的映射關系的索引表,確定出該目標偽物理地址對應的目標本地虛擬地址,而無需通過共享內存技術,查詢到非特權虛擬機中該偽物理地址所對應的物理地址,并將該物理地址通過本地偽物理地址映射到自身的本地虛擬地址的過程,同時,由于不存在非特權虛擬機和特權虛擬機之間的本次資源映射操作,因此也不存在解映射操作。
            [0162]S205,利用該目標本地虛擬地址,讀取該目標偽物理地址所對應目標共享內存資源中的網絡數據,并將該網絡數據轉發給相應的硬件。
            [0163]由于該目標本地虛擬地址與該目標偽物理地址指向同一物理內存,因此,后端驅動直接訪問該本地虛擬地址即可讀取到前端驅動所接收到的網絡數據,并將該網絡數據轉發給真實的硬件,由該硬件完成該目標I/o請求,以此實現對該硬件的本次訪問。
            [0164]需要說明的是,更進一步的,在目標I/O請求完成后,通過事件通道向相應的前端驅動反饋目標I/o請求完成通知。其中,當該目標I/O請求完成后,特權虛擬機的后端驅動并不解除對非特權虛擬機的共享內存資源的映射關系,而是直接向前端驅動反饋目標I/O請求完成通知,以指示所述前端驅動釋放該目標內存資源,將釋放后的該目標共享內存資源確定為該共享內存池中處于非占用狀態的共享內存資源,以此完成對所述硬件的本次訪問。
            [0165]本發明實施例所提供的技術方案,由于非特權虛擬機預先構建一共享內存池,而特權虛擬機預先將該共享內存池中的共享內存資源映射到自身的內存空間中,并建立指明具體映射關系的索引表,以此實現了非特權虛擬機和特權虛擬機之間的資源預映射,因此,在非特權虛擬機訪問硬件而向外界傳輸數據時,在前端驅動和后端驅動的網絡通信過程中,由于無需進行非特權虛擬機和特權虛擬機之間的資源映射和解映射操作,可以完全避免特權虛擬機和虛擬機監控器之間的切換,從而降低了虛擬機網絡時延機CPU占用率。
            [0166]下面以半虛擬化網卡驅動作為具體的應用實例,對本發明實施例所提供的一種通過半虛擬化驅動訪問硬件的方法進行介紹。
            [0167]需要說明的是,本發明實施例所提供方法適用于物理機上,所物理機包括:虛擬機監控器(Hypervisor)、設置有半虛擬化網卡后端驅動的特權虛擬機(DomO)以及至少一設置有半虛擬化網卡前端驅動的非特權虛擬機(DomU),其中,該Hypervisor通過至少提供事件通道、授權表和I/O共享環協助半虛擬化網卡前端驅動和半虛擬化網卡后端驅動進行通信。其中,為了描述方便,將半虛擬化網卡前端驅動和半虛擬化網卡后端驅動統稱為半虛擬化網卡驅動。
            [0168]其中,半虛擬化網卡驅動的初始化流程為:
            [0169](I)在DomU初始其半虛擬化網卡前端驅動時,創建自身的共享內存池并初始化該共享內存池:其中,DomU初始化其共享內存池的過程包括:
            [0170]從授權表中預先申請特定數量的授權項;
            [0171]從系統內存中預先分配相應數量的內存資源作為處于非占用狀態的共享內存資源,將每個共享內存資源的偽物理地址填充到相應的授權項中;
            [0172]將填充有偽物理地址的所有授權項的標識和共享內存資源放入共享內存池中;
            [0173](2)該DomU的半虛擬化網卡前端驅動協助DomO的半虛擬化網卡后端驅動實現DomU和DomO之間的資源預映射過程包括:
            [0174]半虛擬化網卡前端驅動從該共享內存池中獲取所有授權項的標識;
            [0175]構建授權項的標識對應的I/O請求,并將I/O請求放入至I/O共享環中,其中,該授權項的標識與I/o請求具有一一對應性;
            [0176]通過事件通道向該DomO的半虛擬化網卡后端驅動發送預設的初始化通知,其中,該初始化通知為:該半虛擬化網卡后端驅動和該半虛擬化網卡前端驅動事先約定的;
            [0177]相應的,該DomO的半虛擬化網卡后端驅動實現DomU和DomO之間的資源預映射過程包括:
            [0178]半虛擬化網卡后端驅動接收到該初始化通知之后,從I/O共享環中取出半虛擬化網卡前端驅動發出的所有I/o請求;[0179]根據授權表,確定I/O請求中授權項的標識所對應的共享內存資源的偽物理地址;
            [0180]將偽物理地址對應的共享內存資源映射到特權虛擬機的系統內存中,其中,偽物理地址與本地虛擬地址具有一一對應性;
            [0181 ] 構建關于該偽物理地址與相應的本地虛擬地址的映射關系的索引表。
            [0182]上述內容給出了 DomU預分配和DomO的預映射機制:DomU在預先分配了一共享內存池,同時DomO預先將該共享內存池中的共享內存資源全部映射到了自身的內存空間中,并已建立了索引表以指明其中的具體映射關系。
            [0183]基于上述的半虛擬化網卡前端驅動預分配和的半虛擬化網卡后端驅動預映射機制,從DomU的半虛擬化網卡前端驅動角度,本發明實施例所提供的通過半虛擬化驅動訪問硬件的方法可以包括:
            [0184](I)DomU的半虛擬化網卡前端驅動每次接收到內核下發的網絡數據時,從預設共享內存池中申請處于非占用狀態的共享內存資源作為目標共享內存資源;
            [0185](2)半虛擬化網卡前端驅動確定授權表中該目標共享內存資源的目標偽物理地址所在的目標授權項;
            [0186](3)半虛擬化網卡前端驅動將攜帶有該目標授權項的標識的目標I/O請求放入I/O共享環中;
            [0187](4)半虛擬化網卡前端驅動通過事件通道向DomO的半虛擬化網卡后端驅動發送目標事件通知;
            [0188](5)當接收到該半虛擬化網卡后端驅動反饋的該目標事件通知對應的請求完成通知后,半虛擬化網卡前端驅動釋放該目標共享內存資源,將釋放后的該目標共享內存資源確定為該共享內存池中處于非占用狀態的共享內存資源。
            [0189]基于上述的半虛擬化網卡前端驅動預分配和的半虛擬化網卡后端驅動預映射機制,從DomO的半虛擬化網卡后端驅動角度,本發明實施例所提供的通過半虛擬化驅動訪問硬件的方法可以包括:
            [0190](I)DomO的半虛擬化網卡后端驅動接收DomU的半虛擬化網卡前端驅動發送的目標事件通知;
            [0191](2)半虛擬化網卡后端驅動從I/O共享環中獲取相應的目標I/O請求,該目標I/O請求攜帶有目標授權項的標識;
            [0192](3)根據授權表,半虛擬化網卡后端驅動確定該目標授權項的標識對應的目標偽物理地址;
            [0193](4)根據預設的索引表,半虛擬化網卡后端驅動確定該目標偽物理地址對應的目標本地虛擬地址;
            [0194](5)利用該本地虛擬地址,半虛擬化網卡后端驅動讀取該目標偽物理地址所對應目標內存資源中的網絡數據,并將該網絡數據轉發給相應的硬件;
            [0195](6)在目標I/O請求完成后,半虛擬化網卡后端驅動通過事件通道向相應的半虛擬化網卡前端驅動反饋目標I/o請求完成通知,以指示該半虛擬化網卡前端驅動釋放該目標共享內存資源,將釋放后的該目標共享內存資源確定為該共享內存池中處于非占用狀態的共享內存資源,以此完成對該網卡的本次訪問。[0196]本發明實施例所提供的技術方案,由于DomU預先構建一共享內存池,而DomO預先將該共享內存池中的共享內存資源映射到自身的內存空間中,并建立指明具體映射關系的索引表,以此實現了 DomU和DomO之間的資源預映射;因此,在DomU訪問網卡而向外界傳輸數據時,在半虛擬化網卡前端驅動和半虛擬化網卡后端驅動的網絡通信過程中,由于無需進行非特權虛擬機和特權虛擬機之間的資源映射和解映射操作,可以完全避免特權虛擬機和虛擬機監控器之間的切換,從而降低了虛擬機網絡時延機CPU占用率。
            [0197]通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。
            [0198]相應于上面的方法實施例,一方面,本發明實施例提供了一種后端驅動,其設置于物理機中的特權虛擬機中,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;如圖9所示,所述后端驅動可以包括:
            [0199]目標事件通知接收單元110,所述特權虛擬機的所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的目標事件通知,并觸發目標I/o請求獲取單元120,其中,所述目標事件通知用于指示所述后端驅動從所述I/O共享環中獲取目標I/O請求;
            [0200]目標I/O請求獲取單元120,用于從所述I/O共享環中獲取目標I/O請求,并觸發目標偽物理地址確定單元130,所述目標I/O請求攜帶有目標授權項的標識;
            [0201]目標偽物理地址確定單元130,用于根據所述授權表,確定所述目標授權項的標識對應的目標偽物理地址,并觸發目標本地虛擬地址確定單元140,其中,所述授權表的授權項在所述非特權虛擬機初始化預先構建的共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化;
            [0202]目標本地虛擬地址確定單元140,用于根據預設的索引表,確定所述目標偽物理地址對應的目標本地虛擬地址,并觸發網絡數據處理單元150,其中,所述索引表在第一預映射單元160實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程中創建,其用于指明所述共享內存池中的共享內存資源與所述特權虛擬機的內存空間的映射關系;
            [0203]網絡數據處理單元150,用于利用所述目標本地虛擬地址,讀取所述目標偽物理地址所對應目標共享內存資源中的網絡數據,并將所述網絡數據轉發給相應的硬件,以此實現對所述硬件的本次訪問;
            [0204]第一預映射單元160,用于實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射。[0205]本發明實施例所提供的技術方案,由于非特權虛擬機預先構建一共享內存池,而特權虛擬機預先將該共享內存池中的共享內存資源映射到自身的內存空間中,并建立指明具體映射關系的索引表,以此實現了非特權虛擬機和特權虛擬機之間的資源預映射,因此,在非特權虛擬機訪問硬件而向外界傳輸數據時,在前端驅動和后端驅動的網絡通信過程中,由于無需進行非特權虛擬機和特權虛擬機之間的資源映射和解映射操作,可以完全避免特權虛擬機和虛擬機監控器之間的切換,從而降低了虛擬機網絡時延機CPU占用率。
            [0206]更進一步的,該后端驅動還可以包括:
            [0207]I/O請求完成通知發送單元,用于在所述目標I/O請求完成后,通過所述事件通道向所述前端驅動反饋I/O請求完成通知,以指示所述前端驅動釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            [0208]其中,所述第一預映射單元160,可以包括:
            [0209]初始化通知接收子單元,用于接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的初始化通知,并觸發I/o請求獲取子單元;
            [0210]所述I/O請求獲取子單元,用于從所述I/O共享環中獲取I/O請求,所述I/O請求中攜帶授權項的標識,并觸發偽物理地址確定子單元;
            [0211]所述偽物理地址確定子單元,用于根據所述授權表,確定所述I/O請求中所述授權項的標識對應的偽物理地址,并觸發資源映射子單元;
            [0212]所述資源映射子單元,用于將所述偽物理地址對應的共享內存資源映射到所述特權虛擬機的系統內存中,并觸發索引表構建子單元,其中,所述偽物理地址與本地虛擬地址具有唯一對應性;
            [0213]所述索引表構建子單元,用于構建關于所述偽物理地址與相應的本地虛擬地址的映射關系的索引表。
            [0214]另一方面,本發明實施例還提供了一種前端驅動,其設置于物理機中的非特權虛擬機中,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;如圖10所示,所述前驅動可以包括:
            [0215]網絡數據接收單元210,用于接收相應內核下發的網絡數據,并觸發目標內存資源確定單元220,其中,所述網絡數據為用于訪問硬件的數據;
            [0216]目標內存資源確定單元220,用于將預設的共享內存池中的處于非占用狀態的共享內存資源作為所述網絡數據對應的目標共享內存資源,并觸發目標授權項確定單元230,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化;
            [0217]目標授權項確定單元230,用于確定所述授權表中所述目標內存資源的目標偽物理地址所在的目標授權項,并觸發目標I/O請求處理單元240,其中,所述授權表的授權項在所述非特權虛擬機初始化所述共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;
            [0218]目標I/O請求處理單元240,用于將攜帶所述目標授權項的標識的目標I/O請求放入所述I/o共享環中,并觸發目標事件通知發送單元250,其中,所述目標I/O請求在第二預映射單元260協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程中構建;
            [0219]目標事件通知發送單元250,用于通過所述事件通道向所述特權虛擬機的所述后端驅動發送目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/o請求;
            [0220]第二預映射單元260,用于協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射。
            [0221]本實施例所提供的技術方案中,非特權虛擬機的前端驅動將共享內存池中的共享內存資源作為所接收到網絡數據對應的目標共享內存資源,并將攜帶該目標共享內存資源的目標偽物理地址所在授權項的標識的目標I/o請求放入I/O共享環中,進而向后端驅動發送目標事件通知,以指示后端驅動獲取目標I/o請求,并通過預設的關于該非特權虛擬機對應共享內存池中的共享內存資源與該特權虛擬機的內存空間的映射關系的索引表,實現對該硬件的本次訪問。可見,在前端驅動和后端驅動的網絡通信過程中,由于無需進行非特權虛擬機和特權虛擬機之間的資源映射和解映射操作,可以完全避免特權虛擬機和虛擬機監控器之間的切換,從而降低了虛擬機網絡時延機CPU占用率。
            [0222]更進一步的,該前端驅動還可以包括:
            [0223]目標內存資源處理單元,用于當接收到所述后端驅動反饋的所述目標事件通知對應的請求完成通知后,釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            [0224]其中,所述非特權虛擬機初始化所述共享內存池的過程可以包括:
            [0225]所述非特權虛擬機將相應系統內存中的預設數量的內存資源作為處于非占用狀態的共享內存資源;將所述共享內存資源的偽物理地址填充至所述授權表中的授權項,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;將所述共享內存資源和相應授權項的標識放置到所述共享內存池中;
            [0226]相應的,第二預映射單元270,可以包括:
            [0227]授權項標識確定子單元,用于從所述共享內存池中獲取所述授權項的標識,并觸發I/O請求處理子單元;
            [0228]所述I/O請求處理子單元,用于構建攜帶所述授權項的標識的I/O請求,并將所述I/o請求放入I/O共享環中,并觸發初始化通知發送子單元,其中,所述授權項的標識與所述I/o請求具有唯一對應性;
            [0229]所述初始化通知發送子單元,用于通過所述事件通道向所述特權虛擬機的所述后端驅動發送預設的初始化通知,其中,所述初始化通知用于指示所述后端驅動開啟所述非特權虛擬機與所述特權虛擬機的資源預映射過程。
            [0230]對于裝置或系統實施例而言,由于其基本相應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置或系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。
            [0231]在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,在沒有超過本申請的精神和范圍內,可以通過其他的方式實現。當前的實施例只是一種示范性的例子,不應該作為限制,所給出的具體內容不應該限制本申請的目的。例如,所述單元或子單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或多個子單元結合一起。另外,多個單元可以或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。
            [0232]另外,所描述系統,裝置和方法以及不同實施例的示意圖,在不超出本申請的范圍內,可以與其它系統,模塊,技術或方法結合或集成。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
            [0233]以上所述僅是本發明的【具體實施方式】,應當指出,對于本【技術領域】的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
            【權利要求】
            1.一種通過半虛擬化驅動訪問硬件的方法,其特征在于,適用于物理機上,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述方法包括: 所述特權虛擬機的所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/o請求; 從所述I/o共享環中獲取目標I/O請求,所述目標I/O請求攜帶有目標授權項的標識;根據所述授權表,確定所述目標授權項的標識對應的目標偽物理地址,其中,所述授權表的授權項在所述非特權虛擬機初始化預先構建的共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化; 根據預設的索引表,確定所述目標偽物理地址對應的目標本地虛擬地址,其中,所述索引表在所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程中創建,其用于指明所述共享內存池中的共享內存資源與所述特權虛擬機的內存空間的映射關系; 利用所述目標本地虛擬地址,讀取所述目標偽物理地址所對應目標共享內存資源中的網絡數據,并將所述網絡數據轉發給相應的硬件,以此實現對所述硬件的本次訪問。
            2.根據權利要求1所述的方法,其特征在于,所述方法還包括: 在所述目標I/o請求完成后,通過所述事件通道向所述前端驅動反饋I/O請求完成通知,以指示所述前端驅動釋放所述`目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            3.根據權利要求1或2所述的方法,其特征在于,所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程,包括: 所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的初始化通知; 從所述I/o共享環中獲取I/O請求,所述I/O請求中攜帶授權項的標識; 根據所述授權表,確定所述I/o請求中所述授權項的標識對應的偽物理地址; 將所述偽物理地址對應的共享內存資源映射到所述特權虛擬機的系統內存中,其中,所述偽物理地址與本地虛擬地址具有唯一對應性; 構建關于所述偽物理地址與相應的本地虛擬地址的映射關系的索引表。
            4.根據權利要求1所述的方法,其特征在于, 所述前端驅動為半虛擬化網卡前端驅動,所述后端驅動為半虛擬化網卡后端驅動; 或者, 所述前端驅動為半虛擬化磁盤前端驅動,所述后端驅動為半虛擬化磁盤后端驅動; 或者, 所述前端驅動為半虛擬化USB前端驅動,所述后端驅動為半虛擬化USB后端驅動。
            5.一種后端驅動,其特征在于,設置于物理機中的特權虛擬機中,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述后端驅動包括: 目標事件通知接收單元,所述特權虛擬機的所述后端驅動接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的目標事件通知,并觸發目標I/o請求獲取單元,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/O請求; 所述目標I/o請求獲取單元,用于從所述I/O共享環中獲取目標I/O請求,并觸發目標偽物理地址確定單元,所述目標I/o請求攜帶有目標授權項的標識; 所述目標偽物理地址確定單元,用于根據所述授權表,確定所述目標授權項的標識對應的目標偽物理地址,并觸發目標本地虛擬地址確定單元,其中,所述授權表的授權項在所述非特權虛擬機初始化預先構建的共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化; 所述目標本地虛擬地址確定單元,用于根據預設的索引表,確定所述目標偽物理地址對應的目標本地虛擬地址,并觸發網絡數據處理單元,其中,所述索引表在第一預映射單元實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射過程中創建,其用于指明所述共享內存池中的共享內存資源與所述特權虛擬機的內存空間的映射關系; 所述網絡數據處理單元,用于利用所述目標本地虛擬地址,讀取所述目標偽物理地址所對應目標共享內存資源中的網絡數據,并將所述網絡數據轉發給相應的硬件,以此實現對所述硬件的本次訪問; 所述第一預映射單元,用于實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射。`
            6.根據權利要求5所述的后端驅動,其特征在于,還包括: I/o請求完成通知發送單元,用于在所述目標I/O請求完成后,通過所述事件通道向所述前端驅動反饋I/o請求完成通知,以指示所述前端驅動釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            7.根據權利要求5或6所述的后端驅動,其特征在于,所述第一預映射單元,包括: 初始化通知接收子單元,用于接收所述非特權虛擬機的所述前端驅動通過所述事件通道發送的初始化通知,并觸發I/o請求獲取子單元; 所述I/o請求獲取子單元,用于從所述I/O共享環中獲取I/O請求,所述I/O請求中攜帶授權項的標識,并觸發偽物理地址確定子單元; 所述偽物理地址確定子單元,用于根據所述授權表,確定所述I/o請求中所述授權項的標識對應的偽物理地址,并觸發資源映射子單元; 所述資源映射子單元,用于將所述偽物理地址對應的共享內存資源映射到所述特權虛擬機的系統內存中,并觸發索引表構建子單元,其中,所述偽物理地址與本地虛擬地址具有唯一對應性; 所述索引表構建子單元,用于構建關于所述偽物理地址與相應的本地虛擬地址的映射關系的索引表。
            8.—種通過半虛擬化驅動訪問硬件的方法,其特征在于,適用于物理機上,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/O共享環協助所述前端驅動和所述后端驅動進行通信;所述方法包括: 所述非特權虛擬機的所述前端驅動接收相應內核下發的網絡數據,其中,所述網絡數據為用于訪問硬件的數據; 將預設的共享內存池中的處于非占用狀態的共享內存資源作為所述網絡數據對應的目標共享內存資源,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化; 確定所述授權表中所述目標共享內存資源的目標偽物理地址所在的目標授權項,其中,所述授權表的授權項在所述非特權虛擬機初始化所述共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識; 將攜帶所述目標授權項的標識的目標I/o請求放入所述I/O共享環中,其中,所述目標I/o請求在所述前端驅動協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程中構建; 通過所述事件通道向所述特權虛擬機的所述后端驅動發送目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/O請求。
            9.根據權利要求8所述的方法,其特征在于,還包括: 當接收到所述后端驅動反饋`的所述目標事件通知對應的請求完成通知后,釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            10.根據權利要求8或9所述的方法,其特征在于,所述非特權虛擬機初始化所述共享內存池的過程包括: 所述非特權虛擬機將相應系統內存中的預設數量的內存資源作為處于非占用狀態的共享內存資源;將所述共享內存資源的偽物理地址填充至所述授權表中的授權項,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;將所述共享內存資源和相應授權項的標識放置到所述共享內存池中; 其中,所述前端驅動協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程,包括: 所述前端驅動從所述共享內存池中獲取所述授權項的標識; 構建攜帶所述授權項的標識的I/o請求,并將所述I/O請求放入I/O共享環中,其中,所述授權項的標識與所述I/o請求具有唯一對應性; 通過所述事件通道向所述特權虛擬機的所述后端驅動發送預設的初始化通知,其中,所述初始化通知用于指示所述后端驅動開啟所述非特權虛擬機與所述特權虛擬機的資源預映射過程。
            11.一種前端驅動,其特征在于,設置于物理機中的非特權虛擬機中,所述物理機包括:虛擬機監控器、設置有后端驅動的特權虛擬機以及至少一設置有前端驅動的非特權虛擬機,其中,所述虛擬機監控器通過至少提供事件通道、授權表和I/o共享環協助所述前端驅動和所述后端驅動進行通信;所述前驅動包括: 網絡數據接收單元,用于接收相應內核下發的網絡數據,并觸發目標內存資源確定單元,其中,所述網絡數據為用于訪問硬件的數據; 所述目標內存資源確定單元,用于將預設的共享內存池中的處于非占用狀態的共享內存資源作為所述網絡數據對應的目標共享內存資源,并觸發目標授權項確定單元,所述共享內存池為所述非特權虛擬機初始化所述前端驅動時由所述非特權虛擬機構建并初始化; 所述目標授權項確定單元,用于確定所述授權表中所述目標內存資源的目標偽物理地址所在的目標授權項,并觸發目標I/o請求處理單元,其中,所述授權表的授權項在所述非特權虛擬機初始化所述共享內存池時被填充有所述共享內存池中的共享內存資源的偽物理地址,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識; 所述目標I/o請求處理單元,用于將攜帶所述目標授權項的標識的目標I/O請求放入所述I/o共享環中,并觸發目標事件通知發送單元,其中,所述目標I/O請求在第二預映射單元協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射的過程中構建; 所述目標事件通知發送單元,用于通過所述事件通道向所述特權虛擬機的所述后端驅動發送目標事件通知,其中,所述目標事件通知用于指示所述后端驅動從所述I/o共享環中獲取目標I/o請求; 所述第二預映射單元,用于協助所述后端驅動實現所述非特權虛擬機與所述特權虛擬機之間的資源預映射。
            12.根據權利要求11所述的前端驅動,其特征在于,還包括:` 目標內存資源處理單元,用于當接收到所述后端驅動反饋的所述目標事件通知對應的請求完成通知后,釋放所述目標共享內存資源,將釋放后的所述目標共享內存資源確定為所述共享內存池中處于非占用狀態的共享內存資源。
            13.根據權利要求11或12所述的前端驅動,其特征在于,所述非特權虛擬機初始化所述共享內存池的過程包括: 所述非特權虛擬機將相應系統內存中的預設數量的內存資源作為處于非占用狀態的共享內存資源;將所述共享內存資源的偽物理地址填充至所述授權表中的授權項,所述偽物理地址與所述授權項具有唯一對應性,且每一授權項唯一對應一標識;將所述共享內存資源和相應授權項的標識放置到所述共享內存池中; 相應的,所述第二預映射單元,包括: 授權項標識確定子單元,用于從所述共享內存池中獲取所述授權項的標識,并觸發I/o請求處理子單元; 所述I/o請求處理子單元,用于構建攜帶所述授權項的標識的I/O請求,并將所述I/O請求放入I/o共享環中,并觸發初始化通知發送子單元,其中,所述授權項的標識與所述I/O請求具有唯一對應性; 所述初始化通知發送子單元,用于通過所述事件通道向所述特權虛擬機的所述后端驅動發送預設的初始化通知,其中,所述初始化通知用于指示所述后端驅動開啟所述非特權虛擬機與所述特權虛擬機`的資源預映射過程。
            【文檔編號】G06F9/455GK103870311SQ201210527643
            【公開日】2014年6月18日 申請日期:2012年12月10日 優先權日:2012年12月10日
            【發明者】唐明 申請人:華為技術有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品