一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒把b置的制造方法
【專利摘要】本發(fā)明公開了一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒把b置,該方法包括:接收虛擬機(jī)VM訪問(wèn)文件或者磁盤的IO請(qǐng)求,確定是否通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述IO請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)以及跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;如果確定通過(guò)用戶態(tài)OVS將所述IO請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述IO請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI命令后發(fā)送到所述用戶態(tài)OVS;所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。本發(fā)明公開的方法及裝置解決現(xiàn)有技術(shù)中用戶態(tài)OVS的虛擬機(jī)處理IO請(qǐng)求的性能比較低的問(wèn)題。
【專利說(shuō)明】
一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒把b置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸方法及裝置。
【背景技術(shù)】
[0002]虛擬交換機(jī)主要應(yīng)用于服務(wù)器虛擬化場(chǎng)景,主要實(shí)現(xiàn)兩個(gè)功能:功能I,傳遞虛擬機(jī)(Virtual Machine,VM)之間的網(wǎng)絡(luò)流量;功能2,實(shí)現(xiàn)VM與外界網(wǎng)絡(luò)的通信。
[0003]Linux實(shí)現(xiàn)中把運(yùn)行空間分成兩部分:用戶態(tài)和內(nèi)核態(tài)。其中,用戶態(tài)開放虛擬交換機(jī)(Open vSwitch,0VS)是指該交換機(jī)的數(shù)據(jù)面轉(zhuǎn)發(fā)功能在Linux的用戶態(tài)完成,并且該用戶態(tài)OVS采用數(shù)據(jù)平面開發(fā)套件(Data Plane Development Kit,DI3DK)作為數(shù)據(jù)通道與物理網(wǎng)卡連接;另外,該用戶態(tài)OVS的管理平臺(tái)與內(nèi)核態(tài)OVS共用,該用戶態(tài)OVS設(shè)置有限速功能能夠?qū)崿F(xiàn)對(duì)網(wǎng)卡限速,從而為虛擬化場(chǎng)景提供高性能的虛擬交換機(jī)方案。
[0004]DPDK是一組快速包處理的庫(kù)和驅(qū)動(dòng)程序的集合。運(yùn)行在Linux用戶空間的Linux內(nèi)核中斷機(jī)制無(wú)法滿足大吞吐量網(wǎng)卡(例如40GE)性能要求,Intel提出DPDK就是為了解決該問(wèn)題,采用DPDK后可以達(dá)到網(wǎng)卡限速。
[0005]現(xiàn)有用戶態(tài)OVS方案中,虛擬機(jī)處理1請(qǐng)求的路徑如圖1所示,虛擬磁盤服務(wù)進(jìn)程接收虛擬機(jī)發(fā)送的1請(qǐng)求,并將該1請(qǐng)求放到存儲(chǔ)棧;存儲(chǔ)棧將該1請(qǐng)求轉(zhuǎn)換為1報(bào)文后提交給1協(xié)議棧;然后1協(xié)議棧再通過(guò)socket機(jī)制將該1報(bào)文傳遞給用戶態(tài)0VS,最后由用戶態(tài)OVS通過(guò)DPDK將報(bào)文通過(guò)物理網(wǎng)卡發(fā)送出去。
[0006]通過(guò)用戶態(tài)OVS實(shí)現(xiàn)1報(bào)文轉(zhuǎn)發(fā)的過(guò)程中,1報(bào)文需要從用戶態(tài)OVS切換到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài);所以需要經(jīng)過(guò)上下文切換;同時(shí)將1報(bào)文從用戶態(tài)轉(zhuǎn)發(fā)到內(nèi)核態(tài)的存儲(chǔ)棧時(shí),需要對(duì)1報(bào)文進(jìn)行拷貝,所以現(xiàn)有技術(shù)中存在用戶態(tài)OVS的虛擬機(jī)處理1請(qǐng)求的性能比較低的問(wèn)題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒把b置,本發(fā)明所提供的方法及裝置解決現(xiàn)有技術(shù)中存在用戶態(tài)OVS的虛擬機(jī)處理1請(qǐng)求的性能比較低的問(wèn)題。
[0008]第一方面,提供一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǎ摲椒ò?接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0009]如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0010]在該實(shí)施例中,虛擬機(jī)進(jìn)行1請(qǐng)求的處理時(shí),通過(guò)判斷1請(qǐng)求是否為通過(guò)用戶態(tài)OVS轉(zhuǎn)發(fā)的,如果虛擬機(jī)則直接在用戶態(tài)將1請(qǐng)求轉(zhuǎn)化為用戶態(tài)OVS能夠處理的格式,然后發(fā)送到用戶態(tài)OVS進(jìn)行處理。能夠避免現(xiàn)有技術(shù)中1請(qǐng)求轉(zhuǎn)發(fā)時(shí)的上下文切換,從而能夠有效的提高虛擬機(jī)處理1請(qǐng)求的能力。
[0011]結(jié)合第一方面,在一個(gè)可能的設(shè)計(jì)中,將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令包括:將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口 SCSI命令;在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI頭以獲得所述ISCSI命令。
[0012]可選的,為了實(shí)現(xiàn)對(duì)1請(qǐng)求的分類,將1請(qǐng)求中需要通過(guò)用戶態(tài)OVS發(fā)送的1請(qǐng)求分離出來(lái),則所述確定是否通過(guò)用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡包括:
[0013]確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0014]第二方面,基于第一方面中1請(qǐng)求的發(fā)送過(guò)程,在第二方面提供一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǎ摲椒▽?shí)現(xiàn)1請(qǐng)求的響應(yīng)處理,該方法具體包括:接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0015]在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0016]結(jié)合第二方面,在一個(gè)可能的設(shè)計(jì)中,所述在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)包括:
[0017]將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);
[0018]將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0019]第一方面提供的方法是1請(qǐng)求的發(fā)起過(guò)程,第二方面所提供方法是1請(qǐng)求的響應(yīng)處理過(guò)程,所以在具體實(shí)現(xiàn)時(shí)第二方面所提供方法的具體效果與第一方面方法相同。
[0020]第三方面,提供一種電子設(shè)備,該電子設(shè)備包括:
[0021]確認(rèn)模塊,用于接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0022]轉(zhuǎn)換模塊,用于如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0023]結(jié)合第三方面,在一個(gè)可能的設(shè)計(jì)中,所述確認(rèn)模塊具體用于確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0024]結(jié)合第三方面,在一個(gè)可能的設(shè)計(jì)中,所述轉(zhuǎn)換模塊具體用于將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口 SCSI命令;在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI頭以獲得所述ISCSI命令。
[0025]第四方面,提供一種電子設(shè)備,包括:
[0026]接收模塊,用于接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0027]轉(zhuǎn)換模塊,用于在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0028]在一個(gè)可能的設(shè)計(jì)中,所述轉(zhuǎn)換模塊具體用于將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0029]第五方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有實(shí)現(xiàn)第一方面描述的用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǖ某绦虼a,該程序代碼包含運(yùn)行第一方面描述的用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǖ膱?zhí)行指令。
[0030]第六方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有實(shí)現(xiàn)第二方面描述的用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǖ某绦虼a,該程序代碼包含運(yùn)行第二方面描述的用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǖ膱?zhí)行指令。
[0031]第七方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于儲(chǔ)存為上述基站所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面所設(shè)計(jì)的程序。
[0032]第八方面,提供一種電子設(shè)備,該電子設(shè)備包括虛擬機(jī)、虛擬機(jī)監(jiān)視器和硬件層,其中網(wǎng)絡(luò)接口設(shè)備具體可以為物理網(wǎng)卡。
[0033]該虛擬機(jī)監(jiān)視器可以運(yùn)行在兩個(gè)狀態(tài):用戶態(tài)和內(nèi)核態(tài),在該實(shí)施例中,為了提高虛擬機(jī)處理1請(qǐng)求的能力,在該虛擬機(jī)監(jiān)視器具體用于:
[0034]接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)OVS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0035]第八方面的另外一種設(shè)計(jì)中,該虛擬機(jī)監(jiān)視器用于確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0036]第八方面的另外一種設(shè)計(jì)中,該虛擬機(jī)監(jiān)視器用于將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口 SCSI命令;在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI頭以獲得所述ISCSI命令。
[0037]因?yàn)?請(qǐng)求的響應(yīng)的具體實(shí)現(xiàn)是和上述實(shí)例的電子設(shè)備結(jié)構(gòu)是一樣的,只是虛擬機(jī)監(jiān)視器320在處理物理網(wǎng)卡反饋的響應(yīng)時(shí)的處理方式不同,該虛擬機(jī)監(jiān)視器,用于接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI報(bào)文;并在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī);其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通。
[0038]第八方面的另外一種設(shè)計(jì)中,該虛擬機(jī)監(jiān)視器用于將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0039]上述技術(shù)方案中的一個(gè)或兩個(gè),至少具有如下技術(shù)效果:
[0040]本發(fā)明實(shí)施例提供的方法和裝置,將需要通過(guò)用戶態(tài)OVS發(fā)送到物理網(wǎng)卡的1請(qǐng)求,直接在用戶態(tài)將該1請(qǐng)求轉(zhuǎn)換為用戶態(tài)OVS可以處理的格式后,發(fā)送到用戶態(tài)0VS。這樣避免了將1請(qǐng)求從用戶態(tài)切換到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài)的過(guò)程,所以能夠有效地提升虛擬機(jī)處理1請(qǐng)求的性能。
【附圖說(shuō)明】
[0041 ]圖1為現(xiàn)有用戶態(tài)OVS方案中虛擬機(jī)處理1請(qǐng)求的路徑示意圖;
[0042]圖2為本發(fā)明實(shí)施例所實(shí)用的服務(wù)器虛擬化場(chǎng)景的實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)示意圖;
[0043]圖3為本發(fā)明實(shí)施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖;
[0044]圖4為本發(fā)明實(shí)施例另外一種電子設(shè)備的結(jié)構(gòu)示意圖;
[0045]圖5為本發(fā)明實(shí)施例提供另外一種電子設(shè)備的結(jié)構(gòu)示意圖;
[0046]圖6為本發(fā)明實(shí)施例提供另外一種電子設(shè)備的結(jié)構(gòu)示意圖;
[0047]圖7為本發(fā)明實(shí)施例提供一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D;
[0048]圖8本發(fā)明實(shí)施例中用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒淌疽鈭D;
[0049]圖9為本發(fā)明實(shí)施例提供的另外一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒鞒淌疽鈭D;
[0050]圖10為本發(fā)明實(shí)施例提供的虛擬機(jī)處理1請(qǐng)求的路徑示意圖。
【具體實(shí)施方式】
[0051]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0052]現(xiàn)有用戶態(tài)OVS方案中,虛擬機(jī)處理1請(qǐng)求的性能比較低問(wèn)題,主要的原因包括:Α,Ι0請(qǐng)求從虛擬磁盤服務(wù)進(jìn)程(tapdisk2)發(fā)出后,存在兩次上下文切換(即用戶態(tài)到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài));B,1請(qǐng)求轉(zhuǎn)發(fā)過(guò)程中從存儲(chǔ)棧到用戶態(tài)OVS存在拆報(bào)文的行為;C,而且通過(guò)圖1所示的流程進(jìn)行虛擬機(jī)1請(qǐng)求處理存在兩次服務(wù)質(zhì)量(Quality ofService,QoS)控制,存儲(chǔ)棧中存在QoS控制,同時(shí)用戶態(tài)OVS也存在QoS控制能力。所以在一定程度上影響了虛擬機(jī)處理1請(qǐng)求的性能。
[0053]基于上述原因,本發(fā)明實(shí)施例所提供的方案中,如果有需要通過(guò)用戶態(tài)OVS發(fā)送到物理網(wǎng)卡的1請(qǐng)求,則直接在用戶態(tài)將該1請(qǐng)求轉(zhuǎn)換為可供用戶態(tài)OVS處理的格式后發(fā)送到用戶態(tài)OVS O這樣避免了將1請(qǐng)求從用戶態(tài)切換到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài)的過(guò)程,從而也能避免上述幾個(gè)問(wèn)題,所以能夠有效地提升虛擬機(jī)處理1請(qǐng)求的性能。具體實(shí)現(xiàn)參照以下實(shí)例:
[0054]實(shí)施例一
[0055]本發(fā)明實(shí)施例中服務(wù)器虛擬化場(chǎng)景的實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)如圖2所示。其中,用戶態(tài)OVS實(shí)現(xiàn)虛擬機(jī)之間的網(wǎng)絡(luò)互通,包括同主機(jī)上的虛擬機(jī)和跨主機(jī)的虛擬機(jī)之間。虛擬機(jī)的虛擬磁盤文件存儲(chǔ)在網(wǎng)絡(luò)之間互連的協(xié)議存儲(chǔ)局域網(wǎng)絡(luò)(Internet Protocol StorageArea Network,IPSAN)設(shè)備上,虛擬機(jī)處理1請(qǐng)求通過(guò)用戶態(tài)OVS被發(fā)送到IPSAN設(shè)備上,實(shí)現(xiàn)虛擬存儲(chǔ)訪問(wèn)?;趫D2所示的系統(tǒng)結(jié)構(gòu),本發(fā)明實(shí)施例提供一種電子設(shè)備,該電子設(shè)備具體實(shí)現(xiàn)可以是:
[0056]如圖3所示,本發(fā)明實(shí)施例提供一種電子設(shè)備,該電子設(shè)備包括虛擬機(jī)310、虛擬機(jī)監(jiān)視器320和硬件層330。該虛擬機(jī)310是基于硬件層330構(gòu)建的,并且虛擬機(jī)監(jiān)視器320實(shí)現(xiàn)虛擬機(jī)310和硬件層330之間的數(shù)據(jù)監(jiān)控和傳輸。硬件層330包括處理器331、物理內(nèi)存332、硬盤333和網(wǎng)絡(luò)接口設(shè)備334等,其中網(wǎng)絡(luò)接口設(shè)備334具體可以為物理網(wǎng)卡。
[0057]該虛擬機(jī)監(jiān)視器320可以運(yùn)行在兩個(gè)狀態(tài):用戶態(tài)和內(nèi)核態(tài),在該實(shí)施例中,為了提高虛擬機(jī)處理10請(qǐng)求的能力,在該虛擬機(jī)監(jiān)視器320具體用于:
[0058]接收虛擬機(jī)VM發(fā)送的10請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述10請(qǐng)求發(fā)送到物理網(wǎng)卡;(在該實(shí)施例中,該物理網(wǎng)卡可以是圖3中的網(wǎng)絡(luò)接口設(shè)備334中的一種);其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;如果確定需要通過(guò)所述用戶態(tài)OVS將所述10請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述10請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口( Internet Small Computer SystemInterface,ISCSI)命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0059]可選的,為了該虛擬機(jī)監(jiān)視器320確定是否通過(guò)用戶態(tài)OVS將所述10請(qǐng)求發(fā)送到物理網(wǎng)卡的具體實(shí)現(xiàn)為:
[0060]確定所述10請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述10請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述10請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0061]可選的,為了該虛擬機(jī)監(jiān)視器320將所述10請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI命令包括:
[0062]將所述10請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口SCSI命令;
[0063]在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI頭以獲得所述ISCSI命令。
[0064]因?yàn)?0請(qǐng)求的響應(yīng)的具體實(shí)現(xiàn)是和上述實(shí)例的電子設(shè)備結(jié)構(gòu)是一樣的,只是虛擬機(jī)監(jiān)視器320在處理物理網(wǎng)卡反饋的響應(yīng)時(shí)的處理方式不同,所以基于圖3所示的結(jié)構(gòu),10請(qǐng)求的響應(yīng)的具體實(shí)現(xiàn)可以是:
[0065]虛擬機(jī)監(jiān)視器320,用于接收物理網(wǎng)卡針對(duì)10請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI報(bào)文;并在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為10響應(yīng)后發(fā)送到所述發(fā)起所述10請(qǐng)求的虛擬機(jī);其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述10請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通。
[0066]可選的,虛擬機(jī)監(jiān)視器320在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為10響應(yīng)后發(fā)送到所述發(fā)起所述10請(qǐng)求的虛擬機(jī)具體實(shí)現(xiàn)包括:
[0067]將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);
[0068]將所述SCSI響應(yīng)轉(zhuǎn)換為10響應(yīng),并將所述10響應(yīng)發(fā)送到發(fā)起所述10請(qǐng)求的虛擬機(jī)。
[0069]本發(fā)明實(shí)施例提供的方案中,如果有需要通過(guò)用戶態(tài)OVS發(fā)送到物理網(wǎng)卡的10請(qǐng)求,則直接在用戶態(tài)將該1請(qǐng)求轉(zhuǎn)換為可供用戶態(tài)OVS處理的格式后發(fā)送到用戶態(tài)OVS。這樣避免了將1請(qǐng)求從用戶態(tài)切換到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài)的過(guò)程,從而避免現(xiàn)有技術(shù)中存在用戶態(tài)OVS的虛擬機(jī)處理1請(qǐng)求的性能比較低的問(wèn)題,所以能夠有效地提升虛擬機(jī)處理1請(qǐng)求的性能。
[0070]實(shí)施例二
[0071]如圖4所示,本發(fā)明實(shí)施例提供一種電子設(shè)備,該電子設(shè)備具體可以包括:
[0072]確認(rèn)模塊401,用于接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0073]可選的,該確認(rèn)模塊401確定1請(qǐng)求是否為需要通過(guò)用戶態(tài)OVS發(fā)送到物理網(wǎng)卡時(shí),具體實(shí)現(xiàn)可以是:
[0074]該確認(rèn)模塊401具體用于確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0075]轉(zhuǎn)換模塊402,用于如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0076]可選的,該轉(zhuǎn)換模塊402具體用于將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口SCSI命令;在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI頭以獲得所述ISCSI命令。
[0077]實(shí)施例三
[0078]如圖5所示,本發(fā)明實(shí)施例提供一種電子設(shè)備,該電子設(shè)備具體實(shí)現(xiàn)可以包括:
[0079]接收模塊501,用于接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0080]轉(zhuǎn)換模塊502,用于在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0081 ]可選的,將ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)的具體實(shí)現(xiàn)可以是:
[0082]該轉(zhuǎn)換模塊502具體用于將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0083]實(shí)施例四
[0084]如圖6所示,本發(fā)明還提供另一種電子設(shè)備,用于執(zhí)行前述各個(gè)實(shí)施例中的虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒?,該電子設(shè)備包括至少一個(gè)處理器601(例如CPU),至少一個(gè)網(wǎng)絡(luò)接口 602或者其他通信接口,存儲(chǔ)器603,和至少一個(gè)通信總線604,用于實(shí)現(xiàn)這些裝置之間的連接通信。處理器601用于執(zhí)行存儲(chǔ)器603中存儲(chǔ)的可執(zhí)行模塊,例如計(jì)算機(jī)程序。存儲(chǔ)器603可能包含高速隨機(jī)存取存儲(chǔ)器(RAM:Random Access Memory),也可能還包括非不穩(wěn)定的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。通過(guò)至少一個(gè)網(wǎng)絡(luò)接口602(可以是有線或者無(wú)線)實(shí)現(xiàn)該系統(tǒng)網(wǎng)關(guān)與至少一個(gè)其他網(wǎng)元之間的通信連接,可以使用互聯(lián)網(wǎng),廣域網(wǎng),本地網(wǎng),城域網(wǎng)等。
[0085]在一些實(shí)施方式中,存儲(chǔ)器存儲(chǔ)了程序6031,程序可以被處理器執(zhí)行,這個(gè)程序包括:
[0086]接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0087]如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0088]可選的,所述確定是否通過(guò)用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡包括:
[0089]確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0090]可選的,所述將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI命令包括:
[0091 ]將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口 SCSI命令;
[0092]在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI頭以獲得所述ISCSI命令。
[0093]基于圖6所示的結(jié)構(gòu),為了處理物理網(wǎng)卡返回的1請(qǐng)求的響應(yīng),對(duì)應(yīng)存儲(chǔ)器存儲(chǔ)的程序6031還包括:
[0094]接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0095]在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0096]可選的,所述在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)包括:
[0097]將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);
[0098]將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0099]實(shí)施例五
[0100]基于上述實(shí)施例所提供的裝置結(jié)構(gòu),本發(fā)明實(shí)施例提供一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǎ摲椒ň唧w包括以下步驟(實(shí)現(xiàn)流程如圖7所示):
[0101]在本發(fā)明實(shí)施例所提供的方法可基于圖3、圖4和圖6所示裝置結(jié)構(gòu)實(shí)現(xiàn),其中,基于不同的裝置執(zhí)行本發(fā)明實(shí)施例所述方法的具體功能模塊不同相同,具體實(shí)現(xiàn)本發(fā)明方法的功能模塊可以參見上述實(shí)施例一到實(shí)施例四中不同裝置的具體描述。為了方便描述以下結(jié)合實(shí)施例三對(duì)本發(fā)明實(shí)施例提供的一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ㄟM(jìn)行詳細(xì)的描述:
[0102]步驟701,虛擬機(jī)監(jiān)視器接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0103]可選的,所述確定是否通過(guò)用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡包括:
[0104]確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。
[0105]基于圖2所示的系統(tǒng)結(jié)構(gòu),該遠(yuǎn)端設(shè)備可以是通過(guò)交換機(jī)與實(shí)現(xiàn)本發(fā)明實(shí)施例方法的電子設(shè)備連接的設(shè)備。
[0106]在該實(shí)施例中,如果通過(guò)磁盤信息確定1請(qǐng)求是訪問(wèn)設(shè)備本地磁盤,則直接通過(guò)內(nèi)核態(tài)將1請(qǐng)求轉(zhuǎn)發(fā)到物理網(wǎng)卡。
[0107]步驟702,虛擬機(jī)監(jiān)視器如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為ISCSI命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。
[0108]為了保證1請(qǐng)求能在網(wǎng)絡(luò)上傳輸,1請(qǐng)求跨主機(jī)的時(shí)候,需要把1請(qǐng)求轉(zhuǎn)換為ISCSI命令,然后到目標(biāo)服務(wù)器的時(shí)候,再把報(bào)文轉(zhuǎn)換為1請(qǐng)求。在該實(shí)施例中,為了將tapdisk2發(fā)出的1請(qǐng)求,轉(zhuǎn)換為用戶態(tài)OVS能夠識(shí)別的ISCSI命令,在該實(shí)施例所提供的方案中,可以在用戶態(tài)對(duì)該1請(qǐng)求進(jìn)行轉(zhuǎn)換。
[0109]al,將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口( Smal I Computer SystemInterface,SCSI)命令。
[0110]具體的,從該1請(qǐng)求中獲取該1請(qǐng)求對(duì)應(yīng)的主次設(shè)備號(hào)(包括發(fā)起訪問(wèn)的存儲(chǔ)塊設(shè)備ID和1請(qǐng)求需要訪問(wèn)的存儲(chǔ)塊設(shè)備ID)、起始扇區(qū)、請(qǐng)求大小、請(qǐng)求是讀還是寫;
[0111]將該1請(qǐng)求轉(zhuǎn)換為SCSI命令的具體實(shí)現(xiàn)可以是,將1請(qǐng)求需要訪問(wèn)的存儲(chǔ)塊設(shè)備的ID轉(zhuǎn)換為對(duì)應(yīng)的SCSI命令中的目的主機(jī)邏輯單元號(hào)(Logical Unit Number,LUN),起始扇區(qū)需要轉(zhuǎn)換為物理磁盤地址,讀或?qū)懶枰D(zhuǎn)為SCSI操作方向,實(shí)現(xiàn)上述轉(zhuǎn)換后,將轉(zhuǎn)換后的內(nèi)容組裝成SCSI命令。
[0112]a2,將SCSI命令轉(zhuǎn)換為ISCSI命令。具體實(shí)現(xiàn)為:
[0113]在SCSI命令中增加ISCSI頭,ISCSI頭是根據(jù)ISCSI協(xié)議組裝的,ISCSI頭包括基本頭段(Basic Header Segment,BHS)、附加標(biāo)題段(Addit1nal Header Segment,AHS)、報(bào)文頭摘要(Header-Digest)和數(shù)據(jù)摘要(Data-Digest)等。
[0114]區(qū)別于圖1所示的1請(qǐng)求發(fā)送路徑,本發(fā)明實(shí)施例所提供的方法中,虛擬磁盤服務(wù)發(fā)出的1請(qǐng)求可以在用戶態(tài)直接發(fā)送到用戶態(tài)0VS,具體示意可以如圖8所示。
[0115]通過(guò)本發(fā)明實(shí)施例提供的方法,將需要通過(guò)用戶態(tài)OVS發(fā)送到物理網(wǎng)卡的1請(qǐng)求,直接在用戶態(tài)將該1請(qǐng)求轉(zhuǎn)換為用戶態(tài)OVS可以處理的格式后,發(fā)送到用戶態(tài)0VS。這樣避免了將1請(qǐng)求從用戶態(tài)切換到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài)的過(guò)程,所以能夠有效地提升虛擬機(jī)處理1請(qǐng)求的性能。
[0116]實(shí)施例六
[0117]如圖9所示,本發(fā)明實(shí)施例還提供一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒?,該方法具體包括以下步驟:
[0118]本發(fā)明實(shí)施例所提供的方法可基于圖3、圖5和圖6所示裝置結(jié)構(gòu)實(shí)現(xiàn),其中,基于不同的裝置執(zhí)行本發(fā)明實(shí)施例所述方法的具體功能模塊不相同,具體實(shí)現(xiàn)本發(fā)明方法的功能模塊可以參見上述實(shí)施例一到實(shí)施例四中不同裝置的具體描述。為了方便描述以下結(jié)合實(shí)施例三對(duì)本發(fā)明實(shí)施例提供的一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ㄟM(jìn)行詳細(xì)的描述:
[0119]步驟901,虛擬機(jī)監(jiān)視器接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的ISCSI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通;
[0120]步驟902,在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0121]該實(shí)施例中,所述在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)包括:
[0122]將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);
[0123]將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
[0124]該實(shí)施例所提供的方法是針對(duì)1請(qǐng)求的響應(yīng)流程,該實(shí)施例的方案可以獨(dú)立實(shí)現(xiàn)也可以和實(shí)施例一所提供的方法進(jìn)行結(jié)合,當(dāng)該實(shí)施例方法與實(shí)施例一方法結(jié)合時(shí)候可以實(shí)現(xiàn)1請(qǐng)求和請(qǐng)求響應(yīng)的完整過(guò)程。
[0125]區(qū)別于圖8所示的1請(qǐng)求發(fā)送路徑,本發(fā)明實(shí)施例所提供的方法中,電子設(shè)備在處理1請(qǐng)求的響應(yīng),具體示意可以如圖1O所示。
[0126]本發(fā)明實(shí)施例提供的方法中,電子設(shè)備在處理1請(qǐng)求的響應(yīng)時(shí),不通過(guò)上下文切換直接在用戶態(tài)對(duì)響應(yīng)的報(bào)文進(jìn)行處理轉(zhuǎn)換,從而可以縮短響應(yīng)的處理流程,有效地提升虛擬機(jī)處理1請(qǐng)求的性能。
[0127]本申請(qǐng)實(shí)施例中的上述一個(gè)或多個(gè)技術(shù)方案,至少具有如下的技術(shù)效果:
[0128]本發(fā)明實(shí)施例提供的方案中,如果有需要通過(guò)用戶態(tài)OVS發(fā)送到物理網(wǎng)卡的1請(qǐng)求,則直接在用戶態(tài)將該1請(qǐng)求轉(zhuǎn)換為可供用戶態(tài)OVS處理的格式后發(fā)送到用戶態(tài)0VS。這樣避免了將1請(qǐng)求從用戶態(tài)切換到內(nèi)核態(tài),再由內(nèi)核態(tài)切換到用戶態(tài)的過(guò)程,從而避免現(xiàn)有技術(shù)中存在用戶態(tài)OVS的虛擬機(jī)處理1請(qǐng)求的性能比較低的問(wèn)題,所以能夠有效地提升虛擬機(jī)處理1請(qǐng)求的性能。
[0129]本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0130]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0131]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
[0132]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0133]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0134]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
[0135]所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(R0M,Read-0nly Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0136]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,所述該方法包? 接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通; 如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)0VS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。2.如權(quán)利要求1所述的方法,其特征在于,所述確定是否通過(guò)用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡包括: 確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。3.如權(quán)利要求1或2所述的方法,其特征在于,所述將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令包括: 將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口 SCSI命令; 在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI頭以獲得所述ISCSI命令。4.一種用于虛擬交換機(jī)技術(shù)中數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,所述方法包? 接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 IS C SI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通; 在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。5.如權(quán)利要求4所述的方法,其特征在于,所述在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)包括: 將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng); 將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。6.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括: 確認(rèn)模塊,用于接收虛擬機(jī)VM發(fā)送的1請(qǐng)求,確定是否需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS將所述1請(qǐng)求發(fā)送到物理網(wǎng)卡;其中,所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通; 轉(zhuǎn)換模塊,用于如果確定需要通過(guò)所述用戶態(tài)OVS將所述1請(qǐng)求發(fā)送到所述物理網(wǎng)卡,則在用戶態(tài)將所述1請(qǐng)求轉(zhuǎn)換為網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI命令后發(fā)送到所述用戶態(tài)OVS,以通過(guò)所述用戶態(tài)OVS將所述ISCSI命令發(fā)送到所述物理網(wǎng)卡。7.如權(quán)利要求6所述的電子設(shè)備,其特征在于,所述確認(rèn)模塊具體用于確定所述1請(qǐng)求所訪問(wèn)的磁盤或訪問(wèn)的文件所在磁盤的磁盤信息,根據(jù)所述磁盤信息判斷所述1請(qǐng)求所訪問(wèn)的磁盤是否為遠(yuǎn)端設(shè)備的磁盤,如果是,則確定所述1請(qǐng)求需要通過(guò)所述用戶態(tài)OVS發(fā)送到所述物理網(wǎng)卡。8.如權(quán)利要求6或7所述的電子設(shè)備,其特征在于,所述轉(zhuǎn)換模塊具體用于將所述1請(qǐng)求轉(zhuǎn)換成小型計(jì)算機(jī)系統(tǒng)接口 SCSI命令;在所述SCSI命令中增加網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口ISCSI頭以獲得所述ISCSI命令。9.一種電子設(shè)備,其特征在于,包括: 接收模塊,用于接收物理網(wǎng)卡針對(duì)1請(qǐng)求響應(yīng)的網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口 ISCSI報(bào)文;其中,所述ISCSI報(bào)文需要通過(guò)用戶態(tài)開放虛擬交換機(jī)OVS發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī),所述用戶態(tài)OVS實(shí)現(xiàn)同主機(jī)上的虛擬機(jī)之間或跨主機(jī)的虛擬機(jī)之間的網(wǎng)絡(luò)互通; 轉(zhuǎn)換模塊,用于在用戶態(tài)將所述ISCSI報(bào)文轉(zhuǎn)換為1響應(yīng)后發(fā)送到所述發(fā)起所述1請(qǐng)求的虛擬機(jī)。10.如權(quán)利要求9所述的電子設(shè)備,其特征在于,所述轉(zhuǎn)換模塊具體用于將所述ISCSI報(bào)文轉(zhuǎn)換成SCSI響應(yīng);將所述SCSI響應(yīng)轉(zhuǎn)換為1響應(yīng),并將所述1響應(yīng)發(fā)送到發(fā)起所述1請(qǐng)求的虛擬機(jī)。
【文檔編號(hào)】G06F9/54GK106020926SQ201610286786
【公開日】2016年10月12日
【申請(qǐng)日】2016年4月29日
【發(fā)明人】張明, 陸麗娜
【申請(qǐng)人】華為技術(shù)有限公司