[發明專利]一種使用多隊列技術的虛擬機網絡性能優化的實現方法有效
| 申請號: | 201210002171.9 | 申請日: | 2012-01-05 |
| 公開(公告)號: | CN102591715B | 公開(公告)日: | 2012-07-18 |
| 發明(設計)人: | 肖利民;許航;雷松松 | 申請(專利權)人: | 北京航空航天大學 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/455 |
| 代理公司: | 北京慧泉知識產權代理有限公司 11232 | 代理人: | 王順榮;唐愛華 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 使用 隊列 技術 虛擬機 網絡 性能 優化 實現 方法 | ||
1.一種使用多隊列技術的虛擬機網絡性能優化的實現方法,其特征在于:該方法具體步 驟如下:
步驟一:對QEMU的網絡初始化部分進行修改,通過修改QEMU,增加對于多隊列的支持; 這部分的修改涉及以下兩個部分:
1.qemu模塊中和數據傳輸有關的部分——QEMU?TAP初始化
修改數據結構使得能夠支持多隊列,修改了對應隊列的文件描述符,增加了用于指示描 述符個數的項;
針對于數據結構的改變,修改相應的函數以適應新的數據結構;
增加檢測是否啟用多隊列的功能,當不啟用多隊列的時候,支持原本的單隊列傳輸;
2.vhost模塊中和網絡相關的部分——vhost_net初始化
修改數據結構以支持多隊列;
調用修改后的vhost多隊列的ioctl系統調用,用于創建和控制隊列;
步驟二:對vhost多隊列的修改,是為了支持QEMU對多隊列的使用和vhost_net多隊列 網卡的支持,包括針對于一個隊列使用一個線程進行數據傳輸的修改和系統調用的修改;
1.有關隊列使用線程的修改
在非多隊列情況下,一個虛擬機網絡中的虛擬設備vhost_dev對應一個內核線程,但是 現在要實現多隊列,就需要多個內核線程,因此需要一個隊列對應一個線程;
對以下幾個數據結構進行重新設計和修改:vhost_dev的修改針對于內核線程和隊列進行 映射之后,存在一些不再需要的項;vhost_virtqueue中需要指定隊列號,并且對于每一個 隊列標識它所在的工作隊列;因為前兩個數據結構的修改,與其相關的數據結構vhost_poll 和vhost_net也要針對于前面的改動而做一些修改;與這些數據結構相關的函數也需要根據 數據結構的修改進行相應的調整;
2.系統調用的修改
具體修改包括:將open中原先初始化隊列的工作移到ioctl中,因為需要QEMU傳遞隊 列數量到內核態,open系統調用無法滿足此要求,而ioctl可以;將release釋放函數由原 來釋放發送/接收隊列擴展成釋放指定個數的發送/接收隊列;ioctl中增加初始化隊列的 工作,對清理隊列的操作進行修改,將清理單隊列變成清理多個隊列;
步驟三:對vhost模塊中和網絡相關的部分——vhost_net多隊列網卡的修改,使得虛擬 網卡支持多隊列的傳輸;具體的修改包括:增加feature的支持;向virtio_net_config數 據結構中增加用于說明多隊列數目的項;將virtnet_info數據結構中的接收虛擬隊列rvq和 發送虛擬隊列svq單獨作為新的數據結構。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京航空航天大學,未經北京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210002171.9/1.html,轉載請聲明來源鉆瓜專利網。





