專利名稱:網絡接口適配器注冊方法及驅動設備、服務器的制作方法
技術領域:
本發明涉及通信技術,尤其涉及一種網絡接口適配器注冊方法及驅動設備、服務器。
背景技術:
在虛擬化技術中,首先出現了軟件虛擬化技術,但是由于軟件虛擬化本身會造成一定的資源開銷,所以芯片廠商逐步由軟件虛擬化發展為硬件輔助虛擬化,從而大大提升虛擬化性能。在虛擬化領域,中央處理器(Central Processing Unit,簡稱CPU)及內存虛擬化已經相對成熟,相對而言,輸入輸出端口(input/output,簡稱I/O)虛擬化和網絡虛擬化起步相對較晚,目前還不是很成熟。在網絡領域,已經由傳統的單隊列網絡接口適配器(簡稱網卡)經過多隊列網卡發
展為現在的支持硬件虛擬化的多隊列網卡。多隊列網卡有多個收發隊列,能夠同時進行數據收發,提升了網絡的性能。為了更好的支持虛擬化技術,芯片廠商將虛擬機管理器程序(Virtual Machine Monitor,簡稱VMM)分發數據包的功能轉移到芯片上,于是出現了支持虛擬化的多隊列網卡。某些芯片廠商有自己的網絡虛擬化技術如虛擬機設備隊列(Virtual MachineDevice Queue,簡稱VMDq)和單根輸入/輸出虛擬化(Single Root I0V,簡稱SR-I0V)。其中,VMDq網卡包含多個硬件隊列,網卡將收到的數據包根據介質訪問控制層(MediumAccess Control,簡稱MAC)地址或者虛擬局域網身份標識(Virtual Local Area NetworkIDentity,簡稱VLAN ID)將數據包分發到不同的硬件隊列中。當虛擬機需要通過網卡發送數據到網絡中時,根據數據特征值(如源MAC地址、源VLANID或者對應的哈希值等)選擇一個硬件隊列進行數據發送。當前,在Linux Kernel Mainline中,VMDq網卡驅動設備向內核注冊一個網絡設備(net_deViCe),對其所有硬件隊列進行統一管理。在注冊的網絡設備中,每個硬件隊列對應一個抽象,這個抽象對該硬件隊列進行管理,同時保存有數據包的描述信息(如數據包的發送時間戳、數據包協議等)。特別地,在VMM層,存在一個軟交換機(如L2 Software Switch),該交換機實現網絡設備中硬件隊列抽象與應用的映射,這樣應用就能夠接收到來自同一局域網中其他物理機的數據。例如,應用發送數據時,首先將數據發給軟交換機,由軟交換機選擇物理隊列進行發送。然而,上述網絡設備對網卡的所有硬件隊列進行統一管理,其通過軟交換機實現映射,使得應用無法對單一硬件隊列進行管理和直接操作;進一步地,若其中一個硬件隊列出現錯誤,可能導致整個網卡復位,影響其他應用業務。
發明內容
有鑒于此,針對現有技術中的缺陷,本發明提供一種網絡接口適配器注冊方法及驅動設備、服務器,用于解決現有技術中無法對網絡接口適配器的單一硬件隊列進行管理和直接操作的問題。一方面,本發明提供的網絡接口適配器注冊方法,包括服務器的驅動設備將網絡接口適配器向服務器內核注冊為物理網絡設備;以及所述驅動設備將所述網絡接口適配器的部分或全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備;其中,所述物理網絡設備用于管理所述網絡接口適配器及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。另一方面,本發明提供的網絡接口適配器注冊方法,包括服務器的驅動設備將網絡接口適配器的全部硬件隊列收發組向所述服務器內核·注冊為各自獨立的虛擬網絡設備;所述驅動設備選取所述虛擬網絡設備中的其中一個虛擬網絡設備管理所述其他的虛擬網絡設備。第三方面,本發明提供的驅動設備,包括第一注冊單元,用于將網絡接口適配器向服務器內核注冊為物理網絡設備;第二注冊單元,用于將所述網絡接口適配器的部分或全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備;其中,所述物理網絡設備用于管理所述網絡接口適配器及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。第四方面,本發明提供的驅動設備,包括注冊單元,用于將網絡接口適配器的全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備; 選取單元,用于選取所述虛擬網絡設備中的其中一個虛擬網絡設備管理所述其他的虛擬網絡設備。第五方面,本發明提供的服務器,包括本發明任一所述的驅動設備。由上述技術方案可知,本發明實施例的網絡接口適配器注冊方法及驅動設備、月艮務器,通過驅動設備將網絡接口適配器注冊為物理網絡設備,以及將網絡接口適配器的部分/全部硬件隊列收發組向服務器內核注冊為各自獨立的虛擬網絡設備,實現了物理網絡設備管理用于接收或發送服務器內應用或芯片的數據的虛擬網絡設備,進而解決了現有技術中無法對網絡接口適配器的單一硬件隊列進行管理和直接操作的問題。
為了更清楚地說明本發明的技術方案,下面將對實施例中所需要使用的附圖作一簡單地介紹,顯而易見地下面附圖只是本發明的一些實施例的附圖,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得同樣能實現本發明技術方案的其它附圖。圖I為KVM策略中網絡設備中數據收發的示意圖;圖2為本發明一實施例提供的網絡接口適配器注冊方法的流程示意圖;圖3為本發明一實施例提供的虛擬網絡設備的映射的示意圖;圖4為本發明一實施例提供的網絡接口適配器注冊方法的流程示意圖5為本發明一實施例提供的網絡接口適配器注冊方法的流程示意圖;圖6為本發明一實施例提供的虛擬網絡設備的映射的示意圖;圖7為本發明一實施例提供的網絡接口適配器注冊方法的流程示意圖;圖8A為本發明一實施例提供的驅動設備的結構示意圖;圖8B為本發明另一實施例提供的驅動設備的結構示意圖;圖9為本發明另一實施例提供的驅動設備的結構示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明的技術方案進行清楚、完整地描述。顯然,下述的各個實施例都只是本發明一部分的實施例。基于本發明下述的各個實施例,本領域普通技術人員即使沒有作出創造性勞動,也可以通過等效變換部分甚至全部的技術特征,而獲得能夠解決本發明技術問題,實現本發明技術效果的其它實施例,而這些變換而來的各個實施例顯然并不脫離本發明所公開的范圍。為描述方便,本發明中將網絡適配器簡稱為網卡,硬件隊列簡稱為隊列。當前,為解決單一隊列無法管理和操作的問題,在KVM策略中,如圖I所示,將VMDq網卡隊列進行單獨管理,同時嘗試與傳統的單隊列網卡進行兼容。VMDq驅動將傳統網卡的隊列或者VMDq網卡的一個收發隊列組在操作系統DomO (內核)中注冊一個Vqueue,用于屏蔽傳統網卡與VMDq網卡的硬件差異。同時,KVM需要在DomO開啟一個qemu進程,這個進程是一個后端服務程序,主要負責虛擬機與網卡驅動的交互工作。在虛擬機端,需要有一個前端網卡驅動。在數據接收鏈路中,虛擬機前端驅動向qemu進程提供頭信息和數據包地址,qemu會發送異步IO的系統調用,系統調用通過驅動將請求轉給網絡設備(如網卡);當網卡收到數據后,驅動會向qemu發送狀態信息,qemu會根據頭信息通知對應的虛擬機。上述技術雖在某種程度上屏蔽VMDq與傳統網卡差異,但并不能屏蔽與SR-IOV網卡差異。上述數據收發可以實現數據零拷貝,但是整體流程復雜且為異步,不利于數據量較大的業務場景,同時后端服務本身成為一個瓶頸。進一步地,上述技術使用的是前后端模式,需額外驅動,同時存在單一對應關系,不便于熱遷移。也就是說,當服務器中存在多種不同類型的網卡,虛擬機使用某一種網卡時,必須使用特定的驅動,此時,無法實現服務器中虛擬機的熱遷移。本發明提供一種網絡接口適配器注冊方法,其利用了當前VMDq網卡的硬件特點,實現對網絡接口適配器的單一隊列進行獨立管理和操作,減少了隊列間的相互影響。圖2示出了本發明一實施例提供的網絡接口適配器注冊方法的流程示意圖,如圖2所示,本實施例中的網絡接口適配器注冊方法如下文所述。201、服務器的驅動設備將網絡接口適配器(簡稱網卡)向服務器內核注冊為物理網絡設備。在本實施例中,上述的服務器內核為服務器操作系統內核,如Iinux內核等。前述的網卡為硬件多隊列網卡。舉例來說,上述的網卡可為VMDq網卡、智能網絡接口卡(Intelligent Network Interface Card,簡稱 iNIC)網卡和 / 或 SR-I0V 網卡。應了解的是,VMDq屬于intel (因特爾)網絡虛擬化中的第一代硬件虛擬技術,SR-IOV屬于intel網絡虛擬化中的第二代硬件虛擬技術。在本實施例中,前述的物理網絡設備可以是一個類物理功能(physicalfunction,簡稱PF)的網絡設備,用來管理和維護整個網卡。例如,為網卡申請輸入輸出(Input Output,簡稱10)資源、建立鏈路連接關系等。202、驅動設備將網絡接口適配器的部分或全部硬件隊列收發組向服務器內核注冊為多個各自獨立的虛擬網絡設備;其中,物理網絡設備用于管理網卡及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。上述的虛擬網絡設備可以是一個類虛擬功能(virtual function,簡稱VF)的網絡設備,可以收發數據,以及完成自己的流量統計和網絡鏈接狀態監控等。本實施例中的類VF
的網絡設備主要功能是負責使用隊列進行數據傳輸,同時涉及到一些管理操作(如響應PF的管理操作)等。在本實施例中,上述的虛擬網絡設備具有自己的硬件收發隊列組,有MAC地址、IP地址、VLAN ID、數據收發流程接口,以及管理工具接口(如ethtool接口)等。由上述實施例可知,本實施例的網絡接口適配器注冊方法,通過驅動設備將網卡注冊為物理網絡設備,以及將網絡接口適配器的部分/全部硬件隊列收發組向服務器內核注冊為虛擬網絡設備,實現了物理網絡設備管理相互獨立的多個虛擬網絡設備,進而解決了現有技術中無法對網絡接口適配器的單一硬件隊列進行管理和直接操作的問題。進一步地,上述方法中的單個物理隊列在服務器中呈現出一個網絡設備,該網絡設備直接可以給應用或者虛擬機使用,不再需要qemu服務進程,減輕VMM負擔,同時呈現出的是一個網絡設備,不再需要特殊的前后端驅動,簡化數據收發流程,實現數據零拷貝。當然,上述方法還可以屏蔽掉物理網卡硬件差異性,向上統一呈現網絡設備接口,對服務器而言,即屏蔽掉VMDq網卡,SR-IOV網卡,傳統單隊列網卡等異構網卡的差異性,使應用能在多個網絡設備之間遷移,即可以實現熱遷移。結合圖3和圖4所示,圖3示出了本發明一實施例提供的虛擬網絡設備的映射的示意圖,圖4示出了本發明一實施例提供的網絡接口適配器注冊方法的流程示意圖;301、服務器的驅動設備將網卡向服務器內核注冊為物理網絡設備。舉例來說,上述的網卡可為VMDq網卡。另外,本實施例中的服務器內核可為物理機操作系統的內核,如Iinux內核等。302、驅動設備將網卡的全部硬件隊列收發組向服務器內核注冊為各自獨立的虛擬網絡設備;其中,物理網絡設備用于管理網卡及所有的虛擬網絡設備,虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。在實際應用中,上述虛擬網絡設備的數量與網卡中支持VMDq功能的硬件隊列收發組的數量一致,上述的物理網絡設備只有一個。也就是說,服務器內可能存在一些網卡的隊列不支持VMDq功能。當然,理想狀態下,服務器內只有VMDq網卡時,VMDq網卡的硬件隊列收發組的數
量與虛擬網絡設備的數量是一致的。上述每一虛擬網絡設備均具有傳統網卡的功能,每個虛擬網絡設備均能進行獨立的配置和管理。舉例來說從用戶角度來看,在虛擬網絡設備打開后,為其配置IP,改變/設置MAC地址,可能還會配置一個VLANID,然后向其發送數據,通過該設備進行數據交換,通過ethtool管理工具查看網卡的硬件信息,驅動版本,固件版本等信息。在其他實施例中,在Iinux下,管理和配置主要指通過ifconfig命令和ethtool命令對網絡設備進行操作。303、驅動設備將虛擬網絡設備的MAC地址添加到與網卡對應硬件隊列的MAC地址過濾列表中。或者,驅動設備將所述虛擬網絡設備的VLANID添加到與網卡對應硬件隊列的VLANID過濾列表中。可以理解的是,在虛擬網絡設備打開時,可將虛擬網絡設備的MAC地址添加到與網卡對應的MAC地址過濾列表中。該處的MAC地址過濾列表與現有的MAC地址過濾列表一致,本實施例中不對其進·行詳細說明。若服務器中的虛擬機使用上述一個虛擬網絡設備發送數據,則根據數據特征值(如VLAN ID)等選擇對應的虛擬網絡設備,進而,通過虛擬網絡設備將對應的隊列中的數據進行發送。在接收數據時,由于虛擬網絡設備具有MAC地址或者VLAN地址,當物理網絡設備接收到數據包時,數據包里面包含一個目的MAC地址的信息,此時把這個MAC地址與MAC地址過濾列表進行對比,發現跟MAC地址過濾列表中的MAC地址一致,可根據數據包中的目的MAC地址或者VLANID可將數據包分發到虛擬網絡設備對應的硬件接收隊列。由此,在上述數據的接收和發送,不再需要現有技術中的軟交換機來實現隊列選擇與映射。進一步地,上述的網絡接口適配器注冊方法還包括如下的圖4中未示出的步驟304。304、驅動設備在服務器內核中設置一軟交換機,用于使服務器內的多個虛擬機進行數據交互。此時,同一臺服務器上虛擬機之間數據不再走網卡。也就是說,將虛擬機與DomO都能訪問的內存區作為skb數據傳輸內存,可以實現數據的零拷貝;即在DomO中開啟一個軟交換機,當在DomO主機上多個虛擬機之間進行數據交換時,可以由軟交換機去進行處理,而不再需要將數據轉給物理網絡設備進行發送和接收,進而提聞網絡效率。如圖3所示,將位于最底層的物理網卡(如VMDq網卡)向服務器內核注冊為一個類PF的網絡設備即物理網絡設備,這個物理網絡設備管理網卡中所有隊列。當“PF”注冊成功后,根據網卡的VMDq隊列數,向服務器內核注冊多個虛擬的類VF的網絡設備即虛擬網絡設備,這些虛擬網絡設備私有數據依賴于“PF”,但每個虛擬網絡設備對應于一個具體的硬件收發隊列組。上述的虛擬網絡設備有自己獨立的MAC地址,IP地址,VLAN Group等,擁有完整的數據收發流程,能夠完成自己的流量統計和網絡鏈接狀態監控。“VF”還擁有一些管理工具接口,如ethtool接口,此時用戶可以通過管理工具接口查看網絡的運行狀態,網絡設備的驅動信息、硬件信息等。另外,在圖3中,位于最底層的物理網卡具有多個硬件收發隊列,驅動設備向服務器內核注冊一個類PF的網絡設備(net_deVice),類PF的網絡設備的私有數據區(如圖3中的private data)對每一個硬件隊列進行抽象,類PF的網絡設備對這些硬件隊列進行統一管理。在PF注冊成功之后,驅動設備將每一 VMDq硬件隊列組向服務器內核注冊一個虛擬網絡設備(即類VF的網絡設備),這個VF私有數據區只有一個隊列組抽象描述,這個抽象不是重新對硬件隊列進行抽象,而是將直接映射到類PF的網絡設備的抽象中去。每個虛擬網絡設備中的隊列抽象映射類PF的網絡設備中唯一的隊列抽象,從虛擬網絡設備角度看,就像他自己擁有一個獨立的隊列一樣。對于虛擬網絡設備,它有自己的MAC地址,IP地址和VLANID,有自己的網絡設備操作接口和ethtool接口。VF打開時,驅動程序將該虛擬網絡設備的MAC地址添加到物理網絡設備的MAC地址過濾列表中去,這樣當有網絡數據發送到這個虛擬網絡設備的MAC地址時,物理網絡設備就會直接將數據分發到這個VF對應的接收隊列,于是VF就擁有了和傳統網卡一樣的功倉泛。上述的虛擬網絡設備可以直接在服務器的主機中使用,也可以直接通過橋接或者其他方式給虛擬機使用,亦可以通過bond等技術對其進行聚合等以增加帶寬然后供特定的應用或者虛擬機使用。在另一應用場景中,圖5示出了本發明另一實施例提供的網絡接口適配器注冊方法的流程示意圖,圖6為本發明一實施例提供的虛擬網絡設備的映射的示意圖,結合圖5和圖6所示,本實施例中的網絡接口適配器注冊方法如下文所述。501、服務器的驅動設備將網絡接口適配器的全部VMDq硬件隊列收發組向服務器內核注冊虛擬網絡設備。該步驟中的虛擬網絡設備具有MAC地址、IP地址、VLAN ID、數據收發流程接口,以
及管理工具接口。502、驅動設備選取虛擬網絡設備中的其中一個虛擬網絡設備管理所有的虛擬網絡設備。具體地,上述驅動設備選取的虛擬網絡設備的一個虛擬網絡設備管理所有虛擬網絡設備的公共資源,如高速外圍組件互聯(Peripheral Component InterconnectExpress,簡稱PCIe)相關的10信息等。本實施例中的網卡可為硬件多隊列網卡,如VMDq網卡、iNIC網卡等。當前,網卡多隊列收發組之間相互獨立,因此可以將每一個隊列收發組分別看成獨立的傳統單隊列網卡,他們共享同一個物理端口連接到外部物理交換機。這些單隊列組分別被注冊為一個類VF的網絡設備即虛擬網絡設備,網絡設備有獨立的MAC地址,IP地址和VLAN Group,能夠獨立完成數據收發,有自己獨立的流量統計和狀態監控,層次結構如圖6所示。在圖6中,將每一個隊列注冊成一個虛擬網絡設備,網絡設備私有數據區有一個隊列抽象,抽象描述網絡設備對應的隊列。驅動設備選取虛擬網絡設備中的其中一個虛擬網絡設備(如圖6中陰影的虛擬網絡設備)管理所有的虛擬網絡設備。對于注冊的虛擬網絡設備,擁有與傳統單隊列網卡完全相同的功能和結構。需要注意的是,該處提及的隊列是指支持VMDq功能的隊列,實際中某些硬件中的部分隊列并不一定都支持VMDq。也就是,虛擬網絡設備有自己獨立的MAC地址,IP地址和VLAN ID,擁有獨立的數據收發功能和管理鏈路。
由于各虛擬網絡設備具有獨立的數據鏈路和管理鏈路,操作不會影響其他虛擬網絡設備,但是所有網絡設備共享一個物理端口,所以需要一個有“特權”的虛擬網絡設備來維護整體鏈路,通常選用隊列0注冊的虛擬網絡設備來承擔這個工作。優選地,上述網絡接口適配器注冊方法還包括如下圖中未示出的步驟503。503、驅動設備將虛擬網絡設備的MAC地址添加到與網絡適配器對應的MAC地址過濾列表中。或者,驅動設備將所述虛擬網絡設備的VLAN ID添加到與網卡對應的VLAN ID過濾列表中。上述網絡接口適配器注冊方法中將VMDq網卡注冊成為多個有獨立網絡功能的虛擬網絡設備,每個虛擬網絡設備對應唯一一個隊列收發組,進一步地,虛擬網絡設備中存在特權虛擬網絡設備,特權虛擬網絡設備對網卡進行管理和維護,若一個虛擬網絡設備/隊列出錯,特權虛擬網絡設備對整個網卡進行維護。·上述的虛擬網絡設備可以直接在服務器的主機中使用,也可以直接通過橋接或者其他方式給虛擬機使用,亦可以通過bond等技術對其進行聚合等以增加帶寬然后供特定的應用或者虛擬機使用。在再一應用場景中,圖7示出了本發明另一實施例提供的網絡接口適配器注冊方法的流程示意圖,如圖7所示,本實施例中的網絡接口適配器注冊方法如下文所述。701、服務器的驅動設備將網卡向服務器內核注冊為物理網絡設備。702、驅動設備將網卡的部分硬件隊列收發組向服務器內核注冊為多個相互獨立的虛擬網絡設備;物理網絡設備用于管理所有的虛擬網絡設備,虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。在本實施例中,上述的服務器內核可為物理機操作系統。703、驅動設備將網卡的其他硬件隊列收發組向服務器內核注冊另一組虛擬網絡設備。即,驅動設備將網卡的其他硬件隊列收發組向服務器內核注冊另一組相互獨立的多個虛擬網絡設備。當然,該處物理網絡設備也用于管理另一組虛擬網絡設備,該另一組虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。本實施例中步驟702中的虛擬網絡設備和步驟703中的另一虛擬網絡設備在用戶層面是一致的,區別僅在于,上述虛擬網絡設備的形成過程是不同。對于步驟702中的虛擬網絡設備,對硬件隊列的抽象是由物理網絡設備完成,虛擬網絡設備只是做一次映射,對于步驟703中的虛擬網絡設備,是去對硬件隊列進行抽象,但用戶看到的都是抽象后的結果。需要說明的是,在所有的虛擬網絡設備沒有管理的物理網絡設備時,此時驅動設備選取虛擬網絡設備中的任一個作為類“PF”,以管理所有虛擬網絡設備的公共資源。但是,若存在物理網絡設備,則不需要再設置一個類“PF”的虛擬網絡設備。由上述實施例可知,本實施例的網絡接口適配器注冊方法,解決了現有技術中無法對網絡接口適配器的單一硬件隊列進行管理和直接操作的問題。另外,本實施例中的網絡接口適配器注冊方法主要應用于數據中心,大型網絡站點的服務器中存在傳統單隊列網卡,VMDq網卡和SR-IOV網卡等多種異構網卡情況下,不同類型的網絡設備的能力、結構、技術等在實現上存在差異,無法實現虛擬機無修改即直接進行熱遷移。本發明中采用驅動設備將VMDq網卡的物理隊列直接注冊成虛擬網絡設備,向上呈現出統一的網絡設備接口,從驅動層面屏蔽了底層硬件的差異,向上提供統一的接口和設備類型,實現了大量異構網卡的無差異化的進行資源管理和分配。本發明中的驅動設備為服務器內的設備驅動程序,也可屬于服務器操作系統軟件的一部分,其可以通過軟件編程來實現。根據本發明的另一方面,本發明還提供一種驅動設備,如圖8A所示,本實施例中的驅動設備包括第一注冊單元81、第二注冊單元82 ;其中,第一注冊單元81用于將網絡接口適配器向服務器內核注冊為物理網絡設備;第二注冊單元82用于將所述網絡接口適配器的部分或全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備;其中,物理網絡設備用于管理所述網絡接口適配器及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。在本實施例中,上述網卡可為硬件多隊列網卡,網卡包括虛擬機設備隊列VMDq網卡、iNIC網卡。前述的虛擬網絡設備具有MAC地址、IP地址、VLAN ID地址、數據收發流程接口,以
及管理工具接口。進一步地,如圖8B所示,本實施例中的驅動設備還包括添加單元83 ;該添加單元用于將所述虛擬網絡設備的MAC地址添加到與所述網絡適配器對應的MAC地址過濾列表中,或者,用于將所述虛擬網絡設備的VLAN ID添加到與所述網絡適配器對應的VLAN ID過濾列表中。另外,上述的驅動設備還包括設置單元(圖中未示出),該設置單元用于在所述服務器內核中設置一軟交換機,用于使所述服務器內的多個虛擬機進行數據交互。本發明中采用驅動設備的第二注冊單元將VMDq網卡的物理隊列直接注冊成虛擬網絡設備,向上呈現出統一的網絡設備接口,從驅動層面屏蔽了底層硬件的差異,向上提供統一的接口和設備類型,實現了大量異構網卡的無差異化的進行資源管理和分配。根據本發明的另一方面,本發明還提供一種驅動設備,如圖9所示,本實施例中的驅動設備包括注冊單元91、選取單元92 ;注冊單元91用于將網絡接口適配器的全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備;選取單元92用于選取所述虛擬網絡設備中的其中一個虛擬網絡設備管理所述其他的虛擬網絡設備。特別地,上述的網卡可為硬件多隊列網卡,網卡包括虛擬機設備隊列VMDq網卡、iNIC網卡。前述的虛擬網絡設備具有MAC地址、IP地址、VLAN ID地址、數據收發流程接口,以及ethtool管理工具接口。根據本發明的另一方面,本發明還提供一種服務器,其包括本發明任意實施例所述的驅動設備。該驅動設備的具體實現方式可以參考本發明其它裝置或方法實施例,在此不再贅述。本領域普通技術人員應理解的是本發明實施例提供的服務器因為應用了本發明實施例提供的驅動設備,所以可以達到本發明實施例提供的驅動設備帶來的有效效果,即從驅動層面屏蔽了底層硬件的差異,向上提供統一的接口和設備類型,實現了大量異構網卡的無差異化的進行資源管理和分配。本領域普通技術人員可以理解實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征
進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。
權利要求
1.一種網絡接口適配器注冊方法,其特征在于,包括 服務器的驅動設備將網絡接口適配器向服務器內核注冊為物理網絡設備;以及 所述驅動設備將所述網絡接口適配器的部分或全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備; 其中,所述物理網絡設備用于管理所述網絡接口適配器及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。
2.根據權利要求I所述的方法,其特征在于,所述網絡接口適配器為硬件多隊列網絡接口適配器,所述網絡接口適配器包括虛擬機設備隊列VMDq網絡接口適配器、智能網絡接口卡iNIC網絡接口適配器。
3.根據權利要求I所述的方法,其特征在于,所述虛擬網絡設備具有MAC地址、IP地址、VLANID、數據收發流程接口,以及管理工具接口。
4.根據權利要求I所述的方法,其特征在于,還包括 所述驅動設備將所述虛擬網絡設備的MAC地址添加到與所述網絡適配器對應的MAC地址過濾列表中,或者 所述驅動設備將所述虛擬網絡設備的VLAN ID添加到與所述網絡適配器對應的VLANID過濾列表中。
5.根據權利要求I所述的方法,其特征在于,還包括 所述驅動設備在所述服務器內核中設置一軟交換機,用于使所述服務器內的多個虛擬機進行數據交互。
6.根據權利要求I所述的方法,其特征在于,在所述驅動設備將所述網絡接口適配器的部分硬件隊列收發組向所述服務器內核注冊虛擬網絡設備之后,還包括 所述驅動設備將所述網絡接口適配器的其他硬件隊列收發組向服務器內核注冊為另一組相互獨立的虛擬網絡設備。
7.—種網絡接口適配器注冊方法,其特征在于,包括 服務器的驅動設備將網絡接口適配器的全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備; 所述驅動設備選取所述虛擬網絡設備中的其中一個虛擬網絡設備管理所述所有虛擬網絡設備的公共資源。
8.根據權利要求7所述的方法,其特征在于,所述網絡接口適配器為硬件多隊列網絡接口適配器,所述網絡接口適配器包括虛擬機設備隊列VMDq網絡接口適配器、iNIC網絡接口適配器。
9.根據權利要求7所述的方法,其特征在于,所述虛擬網絡設備具有MAC地址、IP地址、VLAN ID、數據收發流程接口,以及管理工具接口。
10.根據權利要求7所述的方法,其特征在于,還包括 所述驅動設備將所述虛擬網絡設備的MAC地址添加到與所述網絡適配器對應的MAC地址過濾列表中,或者 所述驅動設備將所述虛擬網絡設備的VLAN ID添加到與所述網絡適配器對應的VLANID過濾列表中。
11.一種驅動設備,其特征在于,包括第一注冊單元,用于將網絡接口適配器向服務器內核注冊為物理網絡設備; 第二注冊單元,用于將所述網絡接口適配器的部分或全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備; 其中,所述物理網絡設備用于管理所述網絡接口適配器及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。
12.根據權利要求11所述的驅動設備,其特征在于,所述網絡接口適配器為硬件多隊列網絡接口適配器,所述網絡接口適配器包括虛擬機設備隊列VMDq網絡接口適配器、iNIC網絡接口適配器。
13.根據權利要求11所述的驅動設備,其特征在于,所述虛擬網絡設備具有MAC地址、IP地址、VLAN ID地址、數據收發流程接口,以及管理工具接口。
14.根據權利要求11所述的驅動設備,其特征在于,還包括 添加單元,用于將所述虛擬網絡設備的MAC地址添加到與所述網絡適配器對應的MAC地址過濾列表中,或者 用于將所述虛擬網絡設備的VLAN ID添加到與所述網絡適配器對應的VLAN ID過濾列表中。
15.根據權利要求11至14任一所述的驅動設備,其特征在于,還包括 設置單元,用于在所述服務器內核中設置一軟交換機,用于使所述服務器內的多個虛擬機進行數據交互。
16.一種驅動設備,其特征在于,包括 注冊單元,用于將網絡接口適配器的全部硬件隊列收發組向所述服務器內核注冊為各自獨立的虛擬網絡設備; 選取單元,用于選取所述虛擬網絡設備中的其中一個虛擬網絡設備管理所述所有的虛擬網絡設備的公共資源。
17.一種服務器,其特征在于,包括如上權利要求11至15任一所述的驅動設備,或者包括如上權利要求16所述的驅動設備。
全文摘要
本發明提供一種網絡接口適配器注冊方法及驅動設備、服務器,其中,所述方法包括服務器的驅動設備將網絡接口適配器向服務器內核注冊為物理網絡設備;以及所述驅動設備將所述網絡接口適配器的部分或全部硬件隊列收發組向所述服務器內核注冊虛擬網絡設備;所述物理網絡設備用于管理網絡接口適配器及所有的虛擬網絡設備,所述虛擬網絡設備用于接收或發送服務器內應用或芯片的數據。上述方法解決了現有技術中無法對網絡接口適配器的單一硬件隊列進行管理和直接操作的問題。
文檔編號H04L29/06GK102790777SQ20121027813
公開日2012年11月21日 申請日期2012年8月7日 優先權日2012年8月7日
發明者李力軍, 章曉峰 申請人:華為技術有限公司