多操作系統(tǒng)中網(wǎng)卡之間的切換方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例涉及計(jì)算機(jī)操作系統(tǒng)領(lǐng)域,尤其涉及一種多操作系統(tǒng)中網(wǎng)卡之間的切換方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著硬件的計(jì)算能力和存儲能力的逐年提高,在現(xiàn)有的計(jì)算機(jī)操作系統(tǒng)領(lǐng)域興起了利用多內(nèi)核多操作系統(tǒng)調(diào)用系統(tǒng)的硬件資源技術(shù),該技術(shù)能夠更好的保證操作系統(tǒng)高效利用硬件資源。這種多內(nèi)核多操作系統(tǒng)經(jīng)常出現(xiàn)在SMP(Symmetric Mult1-Processing,對稱多處理)和眾核(Many Core)平臺中。
[0003]在多內(nèi)核多操作系統(tǒng)中,可以通過對多個(gè)物理網(wǎng)卡的綁定并向外提供統(tǒng)一的IP地址,實(shí)現(xiàn)多物理網(wǎng)卡共用,提高了吞吐量和網(wǎng)絡(luò)可使用率。同時(shí),對于單個(gè)操作系統(tǒng)內(nèi)核,可以同時(shí)在其內(nèi)部設(shè)置物理網(wǎng)卡和虛擬網(wǎng)卡,當(dāng)一個(gè)失效時(shí),另一個(gè)接管,提高信息傳輸?shù)姆€(wěn)定性。
[0004]為了實(shí)現(xiàn)這樣的技術(shù)效果,這一設(shè)計(jì)的關(guān)鍵技術(shù)就是操作系統(tǒng)需要根據(jù)操作系統(tǒng)對數(shù)據(jù)處理的不同的需求實(shí)現(xiàn)在單個(gè)操作系統(tǒng)中物理網(wǎng)卡和虛擬網(wǎng)卡的動態(tài)切換。
[0005]現(xiàn)有技術(shù)提出了分離網(wǎng)卡驅(qū)動的模式:物理網(wǎng)卡驅(qū)動和虛擬網(wǎng)卡驅(qū)動分別使用不同的數(shù)據(jù)結(jié)構(gòu),全局變量和收發(fā)函數(shù)定義不同的網(wǎng)卡驅(qū)動和物理內(nèi)存緩沖區(qū)。當(dāng)操作系統(tǒng)通過其管理的物理網(wǎng)卡接收或發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)通過物理內(nèi)存緩沖區(qū)和物理網(wǎng)卡的直接內(nèi)存訪問控制寄存器(Direct Memory Access,簡稱“DMA寄存器”)在物理網(wǎng)卡驅(qū)動的控制下進(jìn)行數(shù)據(jù)傳輸;當(dāng)操作系統(tǒng)通過其管理的虛擬網(wǎng)卡接收或發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)通過虛擬內(nèi)存緩沖區(qū)和物理網(wǎng)卡的直接內(nèi)存訪問DMA寄存器在虛擬網(wǎng)卡驅(qū)動前后端的控制下進(jìn)行數(shù)據(jù)傳輸。
[0006]目前,這種技術(shù)方案雖然可以保證操作系統(tǒng)在物理網(wǎng)卡模式和虛擬網(wǎng)卡模式時(shí)數(shù)據(jù)的傳輸,但是在物理網(wǎng)卡和虛擬網(wǎng)卡的切換中,現(xiàn)有技術(shù)存在一定的缺陷。首先,在物理網(wǎng)卡與虛擬網(wǎng)卡的切換過程中,網(wǎng)卡驅(qū)動要重新建立和目標(biāo)網(wǎng)卡的連接,之前源網(wǎng)卡連接會失效而造成數(shù)據(jù)丟失。其次,切換后的目標(biāo)網(wǎng)卡需要預(yù)熱和額外的資源配置工作,會造成信息傳輸?shù)臅簳r(shí)性中斷?,F(xiàn)有技術(shù)的這兩個(gè)缺點(diǎn)會直接影響到網(wǎng)卡切換的速度和效率,影響技術(shù)方案的實(shí)現(xiàn)效果。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的實(shí)施例的實(shí)施例提供了一種多操作系統(tǒng)中網(wǎng)卡之間的切換方法和系統(tǒng),能夠有效的實(shí)現(xiàn)源網(wǎng)卡向目的網(wǎng)卡聞速聞效的切換。
[0008]本發(fā)明的一方面提供了一種多操作系統(tǒng)中源網(wǎng)卡與目標(biāo)網(wǎng)卡的切換方法,該方法包括:所述多操作系統(tǒng)中負(fù)載操作系統(tǒng)的雙模式網(wǎng)卡驅(qū)動根據(jù)所述多操作系統(tǒng)中管理操作系統(tǒng)發(fā)送的網(wǎng)卡切換信號將所述目標(biāo)網(wǎng)卡進(jìn)行初始化,使所述目標(biāo)網(wǎng)卡能夠使用所述源網(wǎng)卡占用的共享緩沖區(qū);所述目標(biāo)網(wǎng)卡初始化完成后,所述雙模式網(wǎng)卡驅(qū)動根據(jù)所接收的網(wǎng)卡切換信號停止源網(wǎng)卡驅(qū)動并啟動目標(biāo)網(wǎng)卡驅(qū)動。
[0009]本發(fā)明進(jìn)一步揭示了,當(dāng)該方法用于物理網(wǎng)卡和虛擬網(wǎng)卡間的切換時(shí),所述雙模式網(wǎng)卡驅(qū)動根據(jù)所述多操作系統(tǒng)中管理操作系統(tǒng)發(fā)送的網(wǎng)卡切換信號將所述目標(biāo)網(wǎng)卡初始化,包括:所述雙模式網(wǎng)卡驅(qū)動對所述網(wǎng)卡切換信號進(jìn)行解析,確定所述源網(wǎng)卡的類型和所述目標(biāo)網(wǎng)卡的類型;當(dāng)確定所述源網(wǎng)卡的類型為物理網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為虛擬網(wǎng)卡時(shí),所述雙模式網(wǎng)卡驅(qū)動將所述虛擬網(wǎng)卡初始化,使所述虛擬網(wǎng)卡能夠使用所述物理網(wǎng)卡當(dāng)前占用的共享緩沖區(qū);當(dāng)確定所述源網(wǎng)卡的類型為虛擬網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為物理網(wǎng)卡時(shí),所述雙模式網(wǎng)卡驅(qū)動將所述物理網(wǎng)卡初始化,使所述物理網(wǎng)卡能夠使用所述虛擬網(wǎng)卡當(dāng)前占用的共享緩沖區(qū)。
[0010]本發(fā)明進(jìn)一步揭示了,所述雙模式網(wǎng)卡驅(qū)動將所述虛擬網(wǎng)卡初始化,包括:所述雙模式網(wǎng)卡驅(qū)動向所述管理操作系統(tǒng)發(fā)送創(chuàng)建虛擬網(wǎng)卡驅(qū)動后端信號;待虛擬網(wǎng)卡驅(qū)動后端創(chuàng)建完畢后,所述雙模式網(wǎng)卡驅(qū)動向所述虛擬網(wǎng)卡驅(qū)動后端發(fā)送共享緩沖區(qū)的地址信息,使所述虛擬網(wǎng)卡驅(qū)動后端能夠根據(jù)所述地址信息調(diào)用物理網(wǎng)卡所占用的共享緩沖區(qū)。
[0011]本發(fā)明進(jìn)一步揭示了,所述雙模式網(wǎng)卡驅(qū)動將所述物理網(wǎng)卡初始化,包括:雙模式網(wǎng)卡驅(qū)動根據(jù)所述共享緩沖區(qū)的地址信息設(shè)置待切換物理網(wǎng)卡的直接內(nèi)存訪問控制器,使待切換物理網(wǎng)卡的直接內(nèi)存訪問控制器能夠調(diào)用虛擬網(wǎng)卡所占用的共享緩沖區(qū)。
[0012]本發(fā)明進(jìn)一步揭示了,當(dāng)該方法用于物理網(wǎng)卡和虛擬網(wǎng)卡間的切換時(shí),所述雙模式網(wǎng)卡驅(qū)動根據(jù)所接收的網(wǎng)卡切換信號停止源網(wǎng)卡驅(qū)動并啟動目標(biāo)網(wǎng)卡驅(qū)動,包括:當(dāng)確定所述源網(wǎng)卡的類型為物理網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為虛擬網(wǎng)卡時(shí),所述雙模式網(wǎng)卡驅(qū)動關(guān)閉物理網(wǎng)卡驅(qū)動并開啟虛擬網(wǎng)卡驅(qū)動前端和后端的運(yùn)行;當(dāng)確定所述源網(wǎng)卡的類型為虛擬網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為物理網(wǎng)卡時(shí),雙模式網(wǎng)卡驅(qū)動關(guān)閉虛擬網(wǎng)卡驅(qū)動并開啟物理網(wǎng)卡驅(qū)動。
[0013]本發(fā)明的另一方面提供了一種應(yīng)用于多操作系統(tǒng)中源網(wǎng)卡與目標(biāo)網(wǎng)卡的切換系統(tǒng),該系統(tǒng)包括:雙模式網(wǎng)卡驅(qū)動,用于根據(jù)所述多操作系統(tǒng)中管理操作系統(tǒng)發(fā)送的網(wǎng)卡切換信號將所述目標(biāo)網(wǎng)卡進(jìn)行初始化,使所述目標(biāo)網(wǎng)卡能夠使用所述源網(wǎng)卡當(dāng)前占用的共享緩沖區(qū),并在初始化完成后根據(jù)所述接收的網(wǎng)卡切換信號停止源網(wǎng)卡驅(qū)動并啟動目標(biāo)網(wǎng)卡驅(qū)動;共享緩沖區(qū),用于對所述目標(biāo)網(wǎng)卡和所述源網(wǎng)卡所傳輸數(shù)據(jù)進(jìn)行緩沖。
[0014]本發(fā)明進(jìn)一步揭示了,當(dāng)該系統(tǒng)僅適用于物理網(wǎng)卡和虛擬網(wǎng)卡間的切換時(shí),其特征在于,所述雙模式網(wǎng)卡驅(qū)動,包括:解析模塊,用于對所述網(wǎng)卡切換信號進(jìn)行解析,確定所述源網(wǎng)卡的類型信息和所述目標(biāo)網(wǎng)卡的類型。初始化模塊,用于:當(dāng)所述解析模塊確定所述源網(wǎng)卡的類型為物理網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為虛擬網(wǎng)卡時(shí),將所述虛擬網(wǎng)卡進(jìn)行初始化,使所述虛擬網(wǎng)卡能夠使用所述物理網(wǎng)卡當(dāng)前占用的共享緩沖區(qū);當(dāng)所述解析模塊確定所述源網(wǎng)卡的類型為虛擬網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為物理網(wǎng)卡時(shí),將物理網(wǎng)卡初始化,使所述物理網(wǎng)卡能夠使用所述虛擬網(wǎng)卡當(dāng)前占用的共享緩沖區(qū)。
[0015]本發(fā)明進(jìn)一步揭示了,所述初始化模塊,包括:虛擬網(wǎng)卡初始化模塊,用于向所述管理操作系統(tǒng)創(chuàng)建的虛擬網(wǎng)卡驅(qū)動后端發(fā)送共享緩沖區(qū)的地址信息,使所述虛擬網(wǎng)卡驅(qū)動后端能夠根據(jù)所述地址信息調(diào)用物理網(wǎng)卡所占用的共享緩沖區(qū);物理網(wǎng)卡初始化模塊,用于根據(jù)所述共享緩沖區(qū)的地址信息設(shè)置待切換物理網(wǎng)卡的直接內(nèi)存訪問控制器,使待切換物理網(wǎng)卡的直接內(nèi)存訪問控制器能夠調(diào)用虛擬網(wǎng)卡所占用的共享緩沖區(qū)。
[0016]本發(fā)明進(jìn)一步揭示了,所述雙模式網(wǎng)卡驅(qū)動中還包括:執(zhí)行模塊,用于:當(dāng)所述解析模塊確定所述源網(wǎng)卡的類型為物理網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為虛擬網(wǎng)卡且所述初始化模塊完成初始化后,關(guān)閉物理網(wǎng)卡驅(qū)動并啟動虛擬網(wǎng)卡驅(qū)動前端和后端;當(dāng)所述解析模塊確定所述源網(wǎng)卡的類型為虛擬網(wǎng)卡且所述目標(biāo)網(wǎng)卡的類型為物理網(wǎng)卡且所述初始化模塊完成初始化后,關(guān)閉虛擬網(wǎng)卡驅(qū)動前端和后端并開啟物理網(wǎng)卡驅(qū)動。
[0017]基于上述技術(shù)方案,本發(fā)明實(shí)施例的多操作系統(tǒng)中源網(wǎng)卡與目標(biāo)網(wǎng)卡的切換方法和系統(tǒng),通過向通過在網(wǎng)卡切換執(zhí)行前,雙模式網(wǎng)卡驅(qū)動根據(jù)網(wǎng)卡切換信號將所述目標(biāo)網(wǎng)卡進(jìn)行初始化,使所述目標(biāo)網(wǎng)卡能夠使用所述源網(wǎng)卡的共享緩沖區(qū),從而能夠有效地實(shí)現(xiàn)源網(wǎng)卡向目的網(wǎng)卡穩(wěn)定高效的切換。
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對本發(fā)明實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1是對一個(gè)典型的多內(nèi)核多操作系統(tǒng)進(jìn)行描述的示意性框圖。
[0020]圖2是根據(jù)本發(fā)明實(shí)施例的多操作系統(tǒng)中源網(wǎng)卡與目標(biāo)網(wǎng)卡的切換系統(tǒng)的示意性框圖。
[0021]圖3是當(dāng)相互切換的網(wǎng)卡為物理網(wǎng)卡和虛擬網(wǎng)卡時(shí),雙模式網(wǎng)卡驅(qū)動的示意性框圖。
[0022]圖4是雙模式網(wǎng)卡驅(qū)動中的初始化模塊的解析模塊和初始化模塊示意性框圖。
[0023]圖5是雙模式網(wǎng)卡驅(qū)動中初始化模塊的執(zhí)行模塊示意性框圖。
[0024]圖6示出了根據(jù)本發(fā)明實(shí)施例的多操作系統(tǒng)中源網(wǎng)卡與目標(biāo)網(wǎng)卡的切換方法的示意性流程圖。
[0025]圖7示出了雙模式網(wǎng)卡驅(qū)動根據(jù)網(wǎng)卡切換信號將目標(biāo)網(wǎng)卡初始化的方法的示意性流程圖。
[0026]圖8示出了雙模式網(wǎng)卡驅(qū)動將虛擬網(wǎng)卡初始化的方法的示意性流程圖。
[0027]圖9示出了雙模式網(wǎng)卡驅(qū)動將物理網(wǎng)卡初始化的方法的示意性流程圖。
[0028]圖10是當(dāng)相互切換的網(wǎng)卡為物理網(wǎng)卡和虛擬網(wǎng)卡時(shí),雙模式網(wǎng)卡驅(qū)動根據(jù)所接收的網(wǎng)卡切換信號停止源網(wǎng)卡驅(qū)動并啟動目標(biāo)網(wǎng)卡驅(qū)動的方法的示意性流程圖。
【具體實(shí)施方式】
[0029]在本方案的描述中,會涉及到一些計(jì)算機(jī)操作系統(tǒng)領(lǐng)域,特別是多操作系統(tǒng)領(lǐng)域和虛擬化領(lǐng)域的專業(yè)術(shù)語和技術(shù),這些術(shù)語和技術(shù)雖然是本領(lǐng)域現(xiàn)有技術(shù),但為了說明書讀者的閱讀之便,特在此對其中重要概念作一簡述。
[0030]首先,本發(fā)明的實(shí)施例所涉及的虛擬網(wǎng)卡驅(qū)動的前端和后端是在虛擬化領(lǐng)域中的技術(shù)概念。虛擬網(wǎng)卡驅(qū)動的前端其功能為模擬物理網(wǎng)卡的輸入和輸出,在本發(fā)明的實(shí)施例中虛擬網(wǎng)卡驅(qū)動的前端為負(fù)載操作系統(tǒng)提供類似于物理網(wǎng)卡驅(qū)動的服務(wù)。虛擬網(wǎng)卡驅(qū)動后端其功能為處理和分配虛擬網(wǎng)卡驅(qū)動前端傳輸?shù)臄?shù)據(jù),在本發(fā)明的實(shí)施例的實(shí)施例中,虛擬網(wǎng)卡驅(qū)動后端與管理操作系統(tǒng)的網(wǎng)橋相連,從而保證前端所傳輸?shù)臄?shù)據(jù)最終通過網(wǎng)橋進(jìn)行輸入和輸出。
[0031]其次,本發(fā)明的實(shí)施例所涉及的這種多操作系統(tǒng)通常實(shí)現(xiàn)在SMP (SymmetricMult1-Processing,對稱多處理)和眾核(Many Core)平臺中。通常情況下,這種多操作系統(tǒng)由一個(gè)管理操作系統(tǒng)和至少一個(gè)負(fù)載操作系統(tǒng)構(gòu)成。下面將結(jié)合圖1對一個(gè)典型的多操作系統(tǒng)進(jìn)行描述的示意性框圖。如圖1所示,多內(nèi)核多操作系統(tǒng)由一個(gè)管理操作系統(tǒng)100,負(fù)載操作系統(tǒng)200,物理緩沖區(qū)模塊300和物理網(wǎng)卡模塊400構(gòu)成。
[0032]管理操作系統(tǒng)100是對所管理的軟件和硬件設(shè)備資源的分配、回收、虛擬化和協(xié)調(diào)等功能的通用操作系統(tǒng)。在運(yùn)行的過程中,它是在系統(tǒng)硬件上第一個(gè)啟動的操作系統(tǒng)。
[0033]負(fù)載操作系統(tǒng)200是基于管理操作系統(tǒng)100上創(chuàng)建的定制的輕量級操作系統(tǒng)。負(fù)載操作系統(tǒng)在本發(fā)明實(shí)例中功能是根據(jù)管理操作系統(tǒng)