[發明專利]一種基于多核無鎖環形緩沖區的共生虛擬機通信方法有效
| 申請號: | 201611245529.5 | 申請日: | 2016-12-29 |
| 公開(公告)號: | CN106790599B | 公開(公告)日: | 2019-06-28 |
| 發明(設計)人: | 任怡;游資奇;吳慶波;戴華東;譚郁松;劉仁仕;陽國貴 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L12/24;G06F9/455 |
| 代理公司: | 湖南兆弘專利事務所(普通合伙) 43008 | 代理人: | 趙洪;譚武藝 |
| 地址: | 410073 *** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 多核 環形 緩沖區 共生 虛擬機 通信 方法 | ||
本發明公開了一種基于多核無鎖環形緩沖區的共生虛擬機通信方法,實施步驟包括:預先在共享內存中申請固定大小的緩沖區,將所述緩沖區等分劃分為元數據區域,指定一個元數據區域存儲緩沖區的描述信息以及緩沖區的標識變量,將其余的元數據區域在邏輯上組織成環形得到多核無鎖環形緩沖區;當共生虛擬機需要通信時,通信發送方作為寫者,往多核無鎖環形緩沖區中寫通信數據,且同一時刻只允許一個寫者執行寫操作;通信接收方作為讀者,讀者讀取多核無鎖環形緩沖區中的通信數據,且多個讀者可并發執行讀取操作。本發明具有能夠支持接收方高效并發讀取,緩沖區讀寫并發性好,共生虛擬機通信效率高、能夠充分利用處理的多核處理性能的優點。
技術領域
本發明涉及網絡虛擬化技術的共生虛擬機的通信加速技術,具體涉及一種基于多核無鎖環形緩沖區的共生虛擬機通信方法。
背景技術
當前,云計算已經成為了學術界和工業界的研究熱點。作為云平臺的重要支撐技術之一,虛擬化技術提供了資源隔離、容錯、提高資源利用率等諸多重要功能。Xen是目前主流的開源虛擬化平臺之一。在Xen平臺上,每個虛擬機稱為一個域;通常稱處于同一臺物理機上的虛擬機為共生虛擬機。當前的云計算環境中,硬件水平的提升使得每臺物理機上所能容納的虛擬機數量越來越多,共生虛擬機間通信的頻率也越來越高。Xen平臺上,任意的兩臺虛擬機,無論是否存在共生關系,都是使用傳統的TCP/IP協議棧進行通信。這種通信方式存在著通信路徑長、數據拷貝次數多、虛擬機域切換頻繁等問題,因此通信性能存在很大的優化空間。目前一種廣泛采用的通信加速思路是:為共生虛擬機之間建立共享內存數據通道,當通信雙方是共生虛擬機時,通信數據通過共享內存通道進行交換。由于數據旁路減少了通信路徑和數據拷貝次數,同時也避免虛擬機管理器頻繁地在多個域之間切換,這種優化思路通常能夠大幅度提高通信吞吐率。
大部分共生虛擬機通信優化機制的共享內存數據通道采用環形緩沖區實現。數據通信過程中,發送方是緩沖區的生產者,也是緩沖區的寫者;接收方是緩沖區的消費者,也是緩沖區的讀者。環形緩沖區的讀寫過程是一個生產者-消費者模型。圖1表示了一個共生虛擬機間采用共享內存環形緩沖區通信加速的示意,虛擬機A和虛擬機B之間進行通信,則需要使用兩個共享內存環形緩沖區以及兩個事件通道。
Lamport于1977年提出了經典的無鎖環形緩沖區模型用于解決生產者-消費者問題。經典的無鎖環形緩沖區設置為固定大小,并設置了一個頭指針(front指針)指示寫者位置,一個尾指針(back指針)指示讀者位置。寫者寫入數據時,必須保證back < read +BUFFER_SIZE;讀者讀取數據時,必須保證read < back。經典無鎖環形緩沖區的模型示意圖如圖2所示,無鎖環形緩沖區的front指針和back指針作為待讀取數據區域、無數據區域兩者的分界線。目前已有一些研究工作采用了共享內存環形緩沖區來加速共生虛擬機間通信。XWay為每對共生虛擬機間的通信連接設置了一組環形緩沖區,發送方在傳輸層將發送的數據寫入環形緩沖區中。XWay的環形緩沖區采用了經典的lock-free環形緩沖區設計,同一時刻只允許一個讀者或者一個寫者操作緩沖區。XenSocket以socket為模板,設計了一套專用于共生虛擬機間通信的API。上層應用在使用這套API通信時,數據會直接在雙方建立的共享內存中讀寫。XenSocket的共享內存在邏輯上設計成環形,每對通信連接對應一個環形緩沖區。緩沖區同樣采用了經典的lock-free環形緩沖區設計,因此同一時刻只允許一個讀者或者一個寫者操作緩沖區。XenLoop借助Linux內核提供的netfilter編程接口,在協議棧的網絡層截獲IP數據包,并將發往共生虛擬機的數據包寫入共享緩沖區中。XenLoop的共享緩沖區并不是面向連接的,而是每一對共生虛擬機間共用一個環形緩沖。環形緩沖區的設計依然采用的是經典的lock-free模型。XenLoop在環形緩沖區的數據組織上使用了一致大小的數據單元,因此可以供多個連接共同使用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611245529.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:全自動TRAY盤擺放機
- 下一篇:自動鏈道生產組件鋪設站





