無限帶寬上的網(wǎng)絡(luò)虛擬化的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開內(nèi)容涉及無限帶寬上的網(wǎng)絡(luò)虛擬化。
【背景技術(shù)】
[0002]無限帶寬(InfiniBand)提供用于連接諸如服務(wù)器、裝置和盤陣列的節(jié)點(diǎn)的穩(wěn)健的、可伸縮的且故障保護(hù)的體系結(jié)構(gòu)。無限帶寬通常用在高性能服務(wù)器集群和數(shù)據(jù)中心中。在一個(gè)特定的應(yīng)用中,無限帶寬被用來將服務(wù)器連接至輸入/輸出(I/o)導(dǎo)向器,該I/O導(dǎo)向器向該服務(wù)器提供高效虛擬化的、共享的且容錯(cuò)的I/o資源,比如主機(jī)總線適配器(HBA)和網(wǎng)絡(luò)接口卡(NIC)。
[0003]然而,用于隔離或分開無限帶寬架構(gòu)上的通信的機(jī)制是受限的。此外,諸如無限帶寬(IB)上的因特網(wǎng)協(xié)議(IP)的其他機(jī)制不能容易地提供高效的虛擬化。因此,提供技術(shù)和機(jī)制以增強(qiáng)無限帶寬上的通信并且提供無限帶寬上的網(wǎng)絡(luò)虛擬化。
【附圖說明】
[0004]通過參考以下說明并結(jié)合示出特定示例實(shí)施例的附圖,可以最好地理解本公開內(nèi)容。
[0005]圖1示出具有連接到I/O導(dǎo)向器的服務(wù)器的系統(tǒng)的一個(gè)示例。
[0006]圖2示出在無限帶寬上具有多個(gè)服務(wù)器和多個(gè)專用虛擬互連(PVI)的系統(tǒng)的一個(gè)示例。
[0007]圖3示出用于創(chuàng)建PVI的技術(shù)的一個(gè)示例。
[0008]圖4示出轉(zhuǎn)發(fā)表的一個(gè)示例。
[0009]圖5示出用于發(fā)送數(shù)據(jù)的技術(shù)的一個(gè)示例。
[0010]圖6提供能夠被用來實(shí)現(xiàn)一個(gè)或多個(gè)機(jī)制的系統(tǒng)的一個(gè)示例。
【具體實(shí)施方式】
[0011]現(xiàn)在將詳細(xì)參考本發(fā)明的一些具體示例,包括由發(fā)明人構(gòu)想的用于執(zhí)行本發(fā)明的最佳模式。在附圖中示出這些具體實(shí)施例的示例。盡管結(jié)合這些具體實(shí)施例說明本發(fā)明,但將理解到,并非旨在將本發(fā)明限制到所述實(shí)施例。相反,旨在覆蓋可以包含在由所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi)的替換、修改和等價(jià)形式。
[0012]例如,將在無限帶寬和輸入/輸出(I/O)導(dǎo)向器的背景下說明本發(fā)明的技術(shù)和機(jī)制。然而,應(yīng)當(dāng)注意,本發(fā)明的技術(shù)和機(jī)制適用于無限帶寬變型和其他類型的網(wǎng)絡(luò)以及不包括I/o導(dǎo)向器的體系結(jié)構(gòu)。在下面說明中,闡述了眾多具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。本發(fā)明的特定示例實(shí)施例可以在沒有這些具體細(xì)節(jié)中的一些或者全部的情況下被實(shí)現(xiàn)。在其他情況下,未詳細(xì)說明眾所周知的處理操作,以便避免不必要地使發(fā)明晦澀難懂。
[0013]為清楚起見,本發(fā)明的各種技術(shù)和機(jī)制有時(shí)將以單數(shù)形式進(jìn)行說明。然而,應(yīng)當(dāng)注意,除非另外指出,否則一些實(shí)施例包括技術(shù)的多次迭代或者機(jī)制的多個(gè)實(shí)例化。例如,在各種背景下系統(tǒng)使用處理器。但是,將理解到,除非另外指出,否則系統(tǒng)能夠使用多個(gè)處理器并同時(shí)保留在本發(fā)明的范圍內(nèi)。此外,本發(fā)明的技術(shù)和機(jī)制有時(shí)將說明兩個(gè)實(shí)體之間的連接。應(yīng)當(dāng)注意,兩個(gè)實(shí)體之間的連接并非必須意指直接的、無阻礙的連接,因?yàn)楦鞣N其他實(shí)體可以駐留在該兩個(gè)實(shí)體之間。例如,處理器可以被連接到存儲器,但是將理解到,各種橋和控制器可以駐留在該處理器和存儲器之間。因此,除非另外指出,否則連接并非必須意指直接的、無阻礙的連接。
[0014]概述
[0015]提供機(jī)制以允許在無限帶寬架構(gòu)上連接的服務(wù)器使用多個(gè)專用虛擬互連(PVI)進(jìn)行通信。在特定實(shí)施例中,對于各個(gè)服務(wù)器和在這些各個(gè)服務(wù)器上運(yùn)行的虛擬機(jī)上的用戶,PVI以虛擬以太網(wǎng)網(wǎng)絡(luò)出現(xiàn)。在服務(wù)器上每個(gè)PVI由虛擬網(wǎng)絡(luò)接口卡(VNIC)表示,并且每個(gè)PVI被映射到它自己的無限帶寬多播組。在PVI上,數(shù)據(jù)能夠作為包括層2頭域的、完全封裝在無限帶寬消息內(nèi)的以太網(wǎng)分組被傳送。使用無限帶寬傳播廣播和多播幀。
[0016]示例實(shí)施例
[0017]無限帶寬是提供高帶寬、低延遲、服務(wù)質(zhì)量和故障切換能力的交換架構(gòu)。無限帶寬提供點(diǎn)對點(diǎn)雙向串行鏈路以連接服務(wù)器、盤陣列和裝置等。無限帶寬提供單播、多播和廣播支持,并且通常用于云計(jì)算集群和數(shù)據(jù)中心中。
[0018]在特定實(shí)施例中,在無限帶寬架構(gòu)上將服務(wù)器連接到I/O導(dǎo)向器。該I/O導(dǎo)向器向該服務(wù)器提供共享的且虛擬化的I/o資源。用于向服務(wù)器和其他主機(jī)提供I/O連通性的常用方法是在該服務(wù)器自己內(nèi)部提供I/O控制器。I/O控制器包括以太網(wǎng)網(wǎng)絡(luò)接口卡(NIC)、光纖通道、iSCSI和SAS主機(jī)總線適配器(HBA)等。然后使用線纜將I/O控制器連接到外部設(shè)備。外部設(shè)備包括交換機(jī)、存儲設(shè)備、顯示設(shè)備和其他設(shè)備。在具有大量服務(wù)器、網(wǎng)絡(luò)和存儲設(shè)備的數(shù)據(jù)中心中,線纜連接很快變得難以管理。
[0019]在一些實(shí)施方式中,I/O控制器被卸載到在本文中被稱為I/O導(dǎo)向器的外部共享系統(tǒng)上。I/o導(dǎo)向器包括連接到諸如交換機(jī)和存儲裝置的外部設(shè)備的實(shí)際I/O資源。通過無限帶寬將主機(jī)連接到I/o導(dǎo)向器,但是提供冗余和容錯(cuò)所需的線纜數(shù)量遠(yuǎn)遠(yuǎn)低于當(dāng)每個(gè)主機(jī)具有它自己的I/o資源時(shí)所需的線纜數(shù)量。在許多情況下,部署I/O導(dǎo)向器將每服務(wù)器I/o線纜數(shù)量從六個(gè)或十二個(gè)減少到一個(gè)或兩個(gè)線纜。提供VNIC驅(qū)動器用于與I/O導(dǎo)向器處的VNIC I/O模塊進(jìn)行通信,并且用于提供在服務(wù)器上的網(wǎng)絡(luò)設(shè)備服務(wù),該網(wǎng)絡(luò)設(shè)備服務(wù)對應(yīng)于由本地物理NIC提供的那些服務(wù)。最終結(jié)果是,使用虛擬I/O設(shè)備,服務(wù)器具有到任何數(shù)量的不同數(shù)據(jù)和存儲網(wǎng)絡(luò)的連通性。
[0020]盡管服務(wù)器能夠使用虛擬化的I/O資源高效地與外部網(wǎng)絡(luò)上的外部實(shí)體進(jìn)行通信,然而與同一無限帶寬架構(gòu)上的其他服務(wù)器的通信卻不一定是高效的。與同一無限帶寬架構(gòu)上的其他服務(wù)器的通信仍然需要經(jīng)過I/o導(dǎo)向器處的I/O模塊。讓本地通信經(jīng)過I/O導(dǎo)向器處的I/o模塊是低效的,并且引入了極大的帶寬、延遲和吞吐量限制。此外,若希望使用虛擬網(wǎng)絡(luò),每個(gè)分開的虛擬網(wǎng)絡(luò)需要I/o模塊處的一個(gè)端口。在需要成千上萬個(gè)虛擬網(wǎng)絡(luò)的系統(tǒng)中,這可能造成問題。
[0021]因此,本發(fā)明的技術(shù)提供用于在無限帶寬架構(gòu)中實(shí)現(xiàn)虛擬網(wǎng)絡(luò)的機(jī)制。根據(jù)各種實(shí)施例,使用虛擬NIC (VNIC)在無限帶寬架構(gòu)上連接服務(wù)器,該虛擬NIC將包含層2頭域的以太網(wǎng)分組封裝在無限帶寬消息中。服務(wù)器和虛擬機(jī)能夠像使用以太網(wǎng)體系結(jié)構(gòu)連接該服務(wù)器和虛擬機(jī)一樣進(jìn)行通信。為每個(gè)虛擬網(wǎng)絡(luò)提供不同的VNIC。根據(jù)各種實(shí)施例,本文中每個(gè)虛擬網(wǎng)絡(luò)指專用虛擬互連(PVI)。每個(gè)PVI提供邏輯上隔離的通信。服務(wù)器可以是任何數(shù)量的PVI的成員。
[0022]根據(jù)各種實(shí)施例,管理員使用管理系統(tǒng)來向服務(wù)器指派PVI。每個(gè)PVI在服務(wù)器上由用來訪問該P(yáng)VI的VNIC表示。每個(gè)PVI被映射到它自己的無限帶寬多播組,該多播組用作每個(gè)PVI自己的廣播域。PVI單播幀整體被封裝在無限帶寬可靠連接(RC)和不可靠數(shù)據(jù)報(bào)(UD)協(xié)議消息內(nèi)。相比之下,諸如在無限帶寬上的IP的機(jī)制在封裝中不包括層2頭域。
[0023]使用無限帶寬多播操作傳播廣播和多播幀。在特定實(shí)施例中,提供機(jī)制用于學(xué)習(xí)在PVI中使用的層2地址及其對應(yīng)的無限帶寬端點(diǎn)之間的映射。支持鏈路或交換故障情況下的故障切換。
[0024]根據(jù)各種實(shí)施例,能夠以允許高性能的服務(wù)器到服務(wù)器的通信的方式來創(chuàng)建和擴(kuò)展非常大量隔離的虛擬網(wǎng)絡(luò)。該機(jī)制是可伸縮的、易于管理的且為各種應(yīng)用提供顯著收益。在特定實(shí)施例中,所有的智能能夠被保持在各個(gè)服務(wù)器處的VNIC驅(qū)動器內(nèi)。不需要集中式的控制器。使用現(xiàn)有的無限帶寬消息能夠獨(dú)立自主地執(zhí)行發(fā)現(xiàn)。服務(wù)器和虛擬機(jī)上的用戶可以訪問它們自己的網(wǎng)絡(luò),對于它們該網(wǎng)絡(luò)作為以太網(wǎng)網(wǎng)絡(luò)出現(xiàn)。
[0025]圖1示出包括使用無限帶寬架構(gòu)連接到I/O導(dǎo)向器的多個(gè)服務(wù)器的系統(tǒng)的一個(gè)示例。在特定實(shí)施例中,通過諸如無限帶寬架構(gòu)的互連131連接多個(gè)服務(wù)器101、103、105、107和109。根據(jù)各種實(shí)施例,服務(wù)器101、103、105、107和109使用封裝在無限帶寬消息中的以太網(wǎng)分組進(jìn)行通信。分別為服務(wù)器101、103、105、107和109提供VNIC111、115、119、123和127。根據(jù)各種實(shí)施例,VNIC 111、115、119、123和127是