一種數(shù)據(jù)傳輸方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸方法及裝置。
【背景技術(shù)】
[0002]虛擬化(Virtualizat1n)是一種資源管理技術(shù),是將計算機(jī)的各種實(shí)體資源,如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,予以抽象和轉(zhuǎn)換后呈現(xiàn)出來,打破實(shí)體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原本的組態(tài)更好的方式來應(yīng)用這些資源。在現(xiàn)有的虛擬化環(huán)境中,以Linux虛擬機(jī)(英文全稱:Virtual Machine,英文簡稱:VM)為例,用戶使用的虛擬磁盤是由hypervisor (虛擬化管理器)進(jìn)行模擬形成的。
[0003]如圖1所示,虛擬機(jī)磁盤的輸入或輸出(英文全稱:Input/0utput,英文簡稱:10)處理的示意圖。hypervisor包括后端驅(qū)動(blkback)和存儲單元,后端驅(qū)動用于處理處理環(huán)(ring)與存儲單元之間的輸入請求或輸出請求,存儲單元用于存儲數(shù)據(jù)。虛擬機(jī)包括虛擬磁盤和前端驅(qū)動(blkfront),前端驅(qū)動用于處理ring與虛擬磁盤之間的輸入請求或輸出請求,虛擬磁盤用于存儲數(shù)據(jù)。ring用于hypervisor與虛擬機(jī)之間的共享內(nèi)存之間的數(shù)據(jù)交換。在hypervisor需要將大量的數(shù)據(jù)傳輸?shù)教摂M機(jī),或者虛擬機(jī)將大量的數(shù)據(jù)傳輸?shù)絟ypervisor時,后端驅(qū)動、前端驅(qū)動和ring之間需要傳輸?shù)臄?shù)據(jù)較多,從而影響虛擬機(jī)的每秒進(jìn)行讀寫操作的次數(shù)(英文全稱:lnput/0utput Operat1ns Per Second,英文簡稱:I OPS)的能力。
[0004]現(xiàn)有技術(shù)中,主機(jī)在使用互聯(lián)網(wǎng)協(xié)議存儲局域網(wǎng)絡(luò)(Internet Protocol StorageArea Network,英文簡稱:IPSAN)時,可以使用多路徑來提高輸入輸出性能及可靠性。如圖2所示,主機(jī)在使用IPSAN多路徑輸入輸出處理的示意圖。主機(jī)包括實(shí)體磁盤和通過小型計算機(jī)系統(tǒng)接口(英文全稱:Internet Small Computer System Interface,英文簡稱:iSCSI)掛載的虛擬磁盤。IPSAN通過IP協(xié)議與主機(jī)進(jìn)行通信,提供虛擬磁盤服務(wù)。主機(jī)與IPSAN之間通過光纖交換機(jī)或者多塊網(wǎng)卡(英文全稱:Network Interface Card,英文簡稱:NIC)與IPSAN連接,主機(jī)的每個磁盤對應(yīng)一個網(wǎng)卡,主機(jī)到IPSAN之間的輸入輸出由多條路徑可以選擇,即使用主機(jī)的多個網(wǎng)卡來同時訪問IPSAN的同一個存儲,提升訪問性能及可靠性。但是,提高主機(jī)與IPSAN之間輸入輸出性能及可靠性的方法只能用于ISCSI,并不能應(yīng)用到虛擬環(huán)境的數(shù)據(jù)傳輸中,現(xiàn)有的虛擬磁盤10處理方式將成為性能瓶頸。因此,如何提高虛擬磁盤的輸入輸出性能和可靠性是一個亟待解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的實(shí)施例提供一種數(shù)據(jù)傳輸方法及裝置,能夠提高虛擬磁盤的輸入輸出性能和可靠性。
[0006]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0007]第一方面,提供一種數(shù)據(jù)傳輸方法,包括:
[0008]配置至少兩條路徑,每條所述路徑為虛擬化管理器hypervisor的存儲單元到虛擬機(jī)的虛擬磁盤之間的路徑,每條所述路徑包括后端驅(qū)動、環(huán)ring和前端驅(qū)動,所述hypervisor包括存儲單元和后端驅(qū)動,所述虛擬機(jī)包括虛擬磁盤和前端驅(qū)動;
[0009]通過所述至少兩條路徑進(jìn)行所述虛擬磁盤與所述存儲單元之間的數(shù)據(jù)傳輸。
[0010]結(jié)合第一方面,在第一種可實(shí)現(xiàn)方式中,所述配置至少兩條路徑包括:
[0011 ] 掛載所述虛擬磁盤,得到至少兩個虛擬磁盤;
[0012]配置每個所述虛擬磁盤與所述存儲單元之間的路徑,其中,每個所述虛擬磁盤對應(yīng)一個前端驅(qū)動,每個所述前端驅(qū)動對應(yīng)一個ring,每個所述ring對應(yīng)一個后端驅(qū)動,每個所述后端驅(qū)動對應(yīng)同一個所述存儲單元,每個所述虛擬磁盤與所述存儲單元之間的路徑不同。
[0013]結(jié)合第一方面,在第二種可實(shí)現(xiàn)方式中,所述配置至少兩條路徑包括:
[0014]配置至少兩個所述后端驅(qū)動;
[0015]配置所述存儲單元通過每個所述后端驅(qū)動與所述虛擬磁盤之間的路徑,其中,每個所述后端驅(qū)動對應(yīng)一個ring,每個所述ring對應(yīng)同一個前端驅(qū)動,所述虛擬磁盤與所述存儲單元之間的每個路徑不同。
[0016]結(jié)合第一方面,在第三種可實(shí)現(xiàn)方式中,所述配置至少兩條路徑包括:
[0017]掛載所述虛擬磁盤,得到至少兩個虛擬磁盤;
[0018]配置每個所述虛擬磁盤與所述存儲單元之間的路徑,其中,每個所述虛擬磁盤對應(yīng)一個前端驅(qū)動,每個所述前端驅(qū)動對應(yīng)一個ring,每個所述ring對應(yīng)同一個后端驅(qū)動,每個所述虛擬磁盤與所述存儲單元之間的路徑不同。
[0019]結(jié)合第一方面,在第四種可實(shí)現(xiàn)方式中,所述配置至少兩條路徑包括:
[0020]在所述后端驅(qū)動和所述前端驅(qū)動之間配置至少兩個ring ;
[0021]配置所述存儲單元通過每個所述ring與所述虛擬磁盤之間的路徑,其中,每個所述ring對應(yīng)同一個前端驅(qū)動和同一個虛擬磁盤,所述虛擬磁盤與所述存儲單元之間的每個路徑不同。
[0022]結(jié)合第一方面,第一種可實(shí)現(xiàn)方式和第四種可實(shí)現(xiàn)方式中任意一種,在第五種可實(shí)現(xiàn)方式中,所述方法還包括:
[0023]配置所述后端驅(qū)動與所述存儲單元之間的至少兩個線程,每個所述ring對應(yīng)一個線程,每個所述線程用于從所述存儲單元中讀取或?qū)懭霐?shù)據(jù)。
[0024]第二方面,提供一種數(shù)據(jù)傳輸裝置,包括:
[0025]配置單元,用于配置至少兩條路徑,每條所述路徑為虛擬化管理器hypervisor的存儲單元到虛擬機(jī)的虛擬磁盤之間的路徑,每條所述路徑包括后端驅(qū)動、環(huán)ring和前端驅(qū)動,所述hypervisor包括存儲單元和后端驅(qū)動,所述虛擬機(jī)包括虛擬磁盤和前端驅(qū)動;
[0026]傳輸單元,用于通過所述配置單元配置的至少兩條路徑進(jìn)行所述虛擬磁盤與所述存儲單元之間的數(shù)據(jù)傳輸。
[0027]結(jié)合第二方面,在第一種可實(shí)現(xiàn)方式中,所述配置單元具體用于:
[0028]掛載所述虛擬磁盤,得到至少兩個虛擬磁盤;
[0029]配置每個所述虛擬磁盤與所述存儲單元之間的路徑,其中,每個所述虛擬磁盤對應(yīng)一個前端驅(qū)動,每個所述前端驅(qū)動對應(yīng)一個ring,每個所述ring對應(yīng)一個后端驅(qū)動,每個所述后端驅(qū)動對應(yīng)同一個所述存儲單元,每個所述虛擬磁盤與所述存儲單元之間的路徑不同。
[0030]結(jié)合第二方面,在第二種可實(shí)現(xiàn)方式中,所述配置單元具體用于:
[0031]配置至少兩個所述后端驅(qū)動;
[0032]配置所述存儲單元通過每個所述后端驅(qū)動與所述虛擬磁盤之間的路徑,其中,每個所述后端驅(qū)動對應(yīng)一個ring,每個所述ring對應(yīng)同一個前端驅(qū)動,所述虛擬磁盤與所述存儲單元之間的每個路徑不同。
[0033]結(jié)合第二方面,在第三種可實(shí)現(xiàn)方式中,所述配置單元具體用于:
[0034]掛載所述虛擬磁盤,得到至少兩個虛擬磁盤;
[0035]配置每個所述虛擬磁盤與所述存儲單元之間的路徑,其中,每個所述虛擬磁盤對應(yīng)一個前端驅(qū)動,每個所述前端驅(qū)動對應(yīng)一個ring,每個所述ring對應(yīng)同一個后端驅(qū)動,每個所述虛擬磁盤與所述存儲單元之間的路徑不同。
[0036]結(jié)合第二方面,在第三種可實(shí)現(xiàn)方式中,所述配置單元具體用于:
[0037]在所述后端驅(qū)動和所述前端驅(qū)動之間配置至少兩個ring ;
[0038]配置所述存儲單元通過每個所述ring與所述虛擬磁盤之間的路徑,其中,每個所述ring對應(yīng)同一個前端驅(qū)動和同一個虛擬磁盤,所述虛擬磁盤與所述存儲單元之間的