一種數(shù)據(jù)傳輸方法、相關(guān)裝置及數(shù)據(jù)傳輸系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例公開(kāi)了數(shù)據(jù)傳輸方法,包括:獲取系統(tǒng)中所有HBA卡的硬件配置信息;根據(jù)硬件配置信息,分析每個(gè)HBA卡的硬件性能參考信息;根據(jù)每個(gè)HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。相應(yīng)地,本發(fā)明還公開(kāi)了一種數(shù)據(jù)傳輸裝置、網(wǎng)絡(luò)設(shè)備和數(shù)據(jù)傳輸系統(tǒng),采用本發(fā)明,通過(guò)獲取所有HBA卡的硬件配置信息,分析每個(gè)HBA卡的硬件性能參考信息,選擇高性能的路徑下發(fā)I/O,解決了現(xiàn)有技術(shù)中未能充分考慮實(shí)際使用環(huán)境中各路徑的HBA卡硬件差異,導(dǎo)致I/O的處理效率不高,硬件利用率較低的問(wèn)題,而且能有效的預(yù)防I/O擁塞發(fā)生。
【專利說(shuō)明】一種數(shù)據(jù)傳輸方法、相關(guān)裝置及數(shù)據(jù)傳輸系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸方法、相關(guān)裝置及數(shù)據(jù)傳輸系統(tǒng)。
【背景技術(shù)】
[0002]為了提高數(shù)據(jù)傳輸?shù)目煽啃?,避免單點(diǎn)故障,應(yīng)用服務(wù)器與存儲(chǔ)系統(tǒng)之間往往采用多條鏈路(稱為路徑)相連的方式來(lái)進(jìn)行數(shù)據(jù)傳輸。多路徑軟件負(fù)責(zé)管理多條路徑,并選取優(yōu)選路徑下發(fā)輸入/輸出(Input/Output,I/O)以保證業(yè)務(wù)性能,并負(fù)責(zé)路徑故障時(shí)I/O能切換到備用路徑下發(fā):
[0003]當(dāng)前的選路算法中,如圖1,有些是在選擇路徑時(shí)僅考慮選擇優(yōu)選控制器中的路徑,發(fā)送所有I/o到該單條路徑(即圖1中的路徑2),在該算法中,若某條路徑發(fā)生故障,那么選擇備用路徑來(lái)發(fā)送所有的I/O ;如圖2,還有些是將I/O平均分布于所有可用的優(yōu)選控制器路徑上(即圖2中的路徑I和路徑2平分進(jìn)行數(shù)據(jù)傳輸)。
[0004]然而,上述選路方法未充分考慮實(shí)際使用環(huán)境中各路徑的主機(jī)總線適配器(HostBus Adapter,HBA)卡硬件差異,存在所選擇路徑未在高性能HBA卡最優(yōu)的路徑上下發(fā)的可能,或者未能合理利用高性能HBA卡的性能優(yōu)勢(shì),導(dǎo)致I/O的處理效率不高,硬件利用率較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種數(shù)據(jù)傳輸方法、數(shù)據(jù)傳輸方法裝置、網(wǎng)絡(luò)設(shè)備以及數(shù)據(jù)傳輸系統(tǒng),可保證I/o的處理效率,提高硬件利用率,并能有效的預(yù)防I/o擁塞發(fā)生。
[0006]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,包括:
[0007]獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息;
[0008]根據(jù)所述硬件配置信息,分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息;
[0009]根據(jù)所述每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息的步驟包括:
[0011]向系統(tǒng)發(fā)送查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息;
[0012]接收系統(tǒng)根據(jù)所述查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息返回的主機(jī)總線適配器HBA卡列表信息;
[0013]根據(jù)所述主機(jī)總線適配器HBA卡列表信息,向系統(tǒng)查詢列表中每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息;
[0014]獲取系統(tǒng)返回的每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息。
[0015]結(jié)合第一方面,或者第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:[0016]選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,
[0017]按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0018]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述硬件配置信息包括光纖通道鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)大小c ;
[0019]所述分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息的步驟包括:
[0020]選取其中任意一個(gè)主機(jī)總線適配器HBA卡的硬件配置信息為參考值,所述參考值為所述選取的主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積;
[0021]分別計(jì)算每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息。
[0022]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
[0023]確定所述比值中最高的主機(jī)總線適配器HBA卡作為硬件性能最好的主機(jī)總線適配器HBA卡,選取所述確定的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;
[0024]所述按比例分配路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
[0025]以每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的比值作為比例大小,分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0026]第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸裝置,包括:
[0027]獲取模塊,用于獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息;
[0028]硬件性能分析模塊,用于根據(jù)所述獲取模塊獲取的硬件配置信息,分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息;
[0029]調(diào)用選擇模塊,用于根據(jù)所述硬件性能分析模塊分析出的每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
[0030]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述獲取模塊包括:
[0031]查詢列表請(qǐng)求發(fā)送單元,用于向系統(tǒng)發(fā)送查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求
信息;
[0032]列表接收單元,用于接收系統(tǒng)根據(jù)所述查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息返回的主機(jī)總線適配器HBA卡列表信息;
[0033]查詢配置請(qǐng)求發(fā)送單元,用于根據(jù)所述列表接收單元接收的主機(jī)總線適配器HBA卡列表信息,向系統(tǒng)發(fā)送查詢列表中每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息的請(qǐng)求信
[0034]配置信息獲取單元,用于獲取系統(tǒng)返回的每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息。
[0035]結(jié)合第二方面,或者第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述調(diào)用選擇模塊包括:
[0036]數(shù)據(jù)傳輸選取單元,用于選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,
[0037]數(shù)據(jù)傳輸分配單元,用于按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0038]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述硬件配置信息包括光纖通道鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)大小c ;
[0039]所述硬件性能分析模塊包括:
[0040]參考值選取單元,用于選取其中任意一個(gè)主機(jī)總線適配器HBA卡的硬件配置信息為參考值,所述參考值為所述選取的主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積;
[0041]比值計(jì)算單元,用于分別計(jì)算每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息。
[0042]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)傳輸選取單元,具體用于確定所述比值中最高的主機(jī)總線適配器HBA卡作為硬件性能最好的主機(jī)總線適配器HBA卡,選取所述確定的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;
[0043]所述數(shù)據(jù)傳輸分配單元,具體用于以每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的比值作為比例大小,分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0044]第三方面,本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)設(shè)備,包括:輸入裝置、輸出裝置、存儲(chǔ)器和處理器;
[0045]其中,所述處理器執(zhí)行如下步驟:
[0046]獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息;根據(jù)所述硬件配置信息,分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息;根據(jù)所述每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
[0047]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述處理器獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息的步驟包括:
[0048]向系統(tǒng)發(fā)送查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息;接收系統(tǒng)根據(jù)所述查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息返回的主機(jī)總線適配器HBA卡列表信息;根據(jù)所述主機(jī)總線適配器HBA卡列表信息,向系統(tǒng)查詢列表中每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息;獲取系統(tǒng)返回的每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息。
[0049]結(jié)合第三方面,或者第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述處理器選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
[0050]選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0051]結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述硬件配置信息包括光纖通道鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)大小c ;
[0052]所述處理器分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息的步驟包括:
[0053]選取其中任意一個(gè)主機(jī)總線適配器HBA卡的硬件配置信息為參考值,所述參考值為所述選取的主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積;分別計(jì)算每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息。
[0054]結(jié)合第三方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述處理器選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:[0055]確定所述比值中最高的主機(jī)總線適配器HBA卡作為硬件性能最好的主機(jī)總線適配器HBA卡,選取所述確定的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;
[0056]所述處理器按比例分配路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:
[0057]以每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的比值作為比例大小,分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0058]第四方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸系統(tǒng),包括應(yīng)用服務(wù)器和存儲(chǔ)系統(tǒng),所述應(yīng)用服務(wù)器包括結(jié)合第三方面、或者第三方面的第一種可能的實(shí)現(xiàn)方式,或者第三方面的第二種可能的實(shí)現(xiàn)方式,或者第三方面的第三種可能的實(shí)現(xiàn)方式,或者第三方面的第四種可能的實(shí)現(xiàn)方式中的網(wǎng)絡(luò)設(shè)備,并通過(guò)所述網(wǎng)絡(luò)設(shè)備控制應(yīng)用服務(wù)器與所述存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)傳輸。
[0059]通過(guò)實(shí)施本發(fā)明實(shí)施例,獲取所有HBA卡的硬件配置信息,分析每個(gè)HBA卡的硬件性能參考信息,選擇高性能的路徑下發(fā)1/0,解決了現(xiàn)有技術(shù)中未能充分考慮實(shí)際使用環(huán)境中各路徑的HBA卡硬件差異,導(dǎo)致I/O的處理效率不高,硬件利用率較低的問(wèn)題,不僅能保證I/O的處理效率,提高硬件利用率,而且能有效的預(yù)防I/O擁塞發(fā)生。
【專利附圖】
【附圖說(shuō)明】
[0060]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域 普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
差現(xiàn)有技術(shù)中數(shù)據(jù)傳輸?shù)谝粚?shí)施例的組網(wǎng)示意圖;
差現(xiàn)有技術(shù)中數(shù)據(jù)傳輸?shù)诙?shí)施例的組網(wǎng)示意圖;
[0061]圖[0062]圖[0063]圖[0064]圖[0065]圖[0066]圖[0067]圖[0068]圖[0069]圖[0070]圖:實(shí)施例的組網(wǎng)示意圖
【具體實(shí)施方式】
[0071]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0072]參見(jiàn)圖3,是本發(fā)明提供的數(shù)據(jù)傳輸方法的流程示意圖,該方法包括:
[0073]步驟S300:獲取系統(tǒng)中所有HBA卡的硬件配置信息;
[0074]步驟S302:根據(jù)所述硬件配置信息,分析每個(gè)HBA卡的硬件性能參考信息;[0075]步驟S304:根據(jù)所述每個(gè)HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
[0076]具體地,通過(guò)預(yù)設(shè)不同的路徑選擇算法,可以選取硬件性能最好的HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,可以按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0077]進(jìn)一步地,如圖4示出的本發(fā)明獲取硬件配置信息的流程示意圖,步驟S300可以包括: [0078]步驟S3000:向系統(tǒng)發(fā)送查詢HBA卡列表的請(qǐng)求信息;
[0079]具體地,路徑控制軟件向操作系統(tǒng)發(fā)送請(qǐng)求信息,以查詢HBA卡列表信息;詳細(xì)地,可以通過(guò)HBA_GetAdapterAttributes接口查詢當(dāng)前的HBA卡設(shè)備數(shù)目,通過(guò)HBA_GetAdapterName查詢HBA卡的名稱;
[0080]步驟S3002:接收系統(tǒng)根據(jù)所述查詢HBA卡列表的請(qǐng)求信息返回的HBA卡列表信息;
[0081]步驟S3004:根據(jù)所述HBA卡列表信息,向系統(tǒng)查詢列表中每個(gè)HBA卡的硬件配
置信息;
[0082]具體地,路徑控制軟件分別向操作系統(tǒng)發(fā)送查詢各個(gè)HBA卡硬件配置信息的請(qǐng)求,操作系統(tǒng)接收到每個(gè)請(qǐng)求后,查詢出每個(gè)HBA卡的硬件配置信息,并向路徑控制軟件返回;詳細(xì)地,可以使用hbaGetAdaptersInfo接口查詢每個(gè)HBA卡對(duì)應(yīng)的硬件配置信息。
[0083]步驟S3006:獲取系統(tǒng)返回的每個(gè)HBA卡的硬件配置信息。
[0084]本發(fā)明實(shí)施例中的硬件配置信息包括光纖通道(Fiber Channel, FC)鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)(Direct Memory Access, DMA)大小c ;
[0085]再進(jìn)一步地,步驟S302可以包括:根據(jù)所述硬件配置信息,選取其中任意一個(gè)HBA卡的硬件配置信息為參考值,所述參考值為所述選取的HBA卡對(duì)應(yīng)的a、b與c的乘積;分別計(jì)算每個(gè)HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)HBA卡的硬件性能參考信息。
[0086]具體地,該比值可以作為硬件性能影響因子X(jué):
「 na*b*c..^
[0087]X = —j~ 公式 I
[0088]其中:
[0089]公式I中的a'、b'和c'分別為任意選取的一個(gè)HBA卡對(duì)應(yīng)的FC鏈路速率、隊(duì)列深度和DMA大小,即,a,作為參考值;
[0090]公式I中a、b和c分別為當(dāng)前要計(jì)算的HBA卡對(duì)應(yīng)的FC鏈路速率、隊(duì)列深度和DMA大?。?br>
[0091]那么,計(jì)算出的硬件性能影響因子X(jué)可以為HBA卡的硬件性能參考信息;
[0092]再進(jìn)一步地,步驟S304中,根據(jù)所述每個(gè)HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,可以選取硬件性能最好的HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;具體地:
[0093]根據(jù)計(jì)算出的每個(gè)HBA卡對(duì)應(yīng)的硬件性能影響因子X(jué),可以調(diào)用failover算法,假設(shè)原路徑優(yōu)先級(jí)為P,則優(yōu)化后的路徑優(yōu)先級(jí)為:P' =p/x,然后每個(gè)重新優(yōu)化后的路徑優(yōu)先級(jí)來(lái)進(jìn)行選路;即,計(jì)算出的哪個(gè)HBA卡對(duì)應(yīng)的硬件性能影響因子X(jué)越高,該路徑優(yōu)先級(jí)將越高,并最終選取優(yōu)先級(jí)最高的路徑進(jìn)行數(shù)據(jù)傳輸。[0094]為了更好地理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面結(jié)合一個(gè)具體場(chǎng)景下的實(shí)施方式為例進(jìn)行介紹。參考圖5示出的本發(fā)明基于HBA卡的數(shù)據(jù)傳輸?shù)谝粚?shí)施例的組網(wǎng)示意圖進(jìn)行說(shuō)明,假設(shè)4G HBA卡的隊(duì)列深度、DMA大小都比2GHBA卡大,F(xiàn)C鏈路速率一樣;那么根據(jù)計(jì)算出的每個(gè)HBA卡對(duì)應(yīng)的硬件性能影響因子X(jué),調(diào)用failover算法進(jìn)行路徑,4G HBA卡的硬件性能影響因子X(jué)比GHBA卡硬件性能影響因子X(jué)大,最后選取了路徑2作為優(yōu)選路徑進(jìn)行數(shù)據(jù)傳輸,路徑4作為備用路徑。
[0095]再進(jìn)一步地,步驟S304中,還可以根據(jù)所述每個(gè)HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,按比例分配路徑進(jìn)行數(shù)據(jù)傳輸;具體地:
[0096]可以根據(jù)計(jì)算出的每個(gè)HBA卡對(duì)應(yīng)的硬件性能影響因子X(jué),可以調(diào)用round_robin算法,根據(jù)計(jì)算出的每個(gè)HBA卡對(duì)應(yīng)的硬件性能影響因子X(jué),調(diào)用failover算法,使用各個(gè)HBA卡硬件性能影響因子X(jué)作為發(fā)送到各路徑上I/O的比例;即,假設(shè)某個(gè)HBA卡的硬件性能影響因子X(jué)為2,那么在該HBA卡對(duì)應(yīng)的路徑上發(fā)送2個(gè)I/O后,才會(huì)在選取為參考值的HBA卡對(duì)應(yīng)的路徑上發(fā)送I個(gè)I/O。
[0097]為了更好地理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面結(jié)合一個(gè)具體場(chǎng)景下的實(shí)施方式為例進(jìn)行介紹。參考圖6示出的本發(fā)明基于HBA卡的數(shù)據(jù)傳輸?shù)诙?shí)施例的組網(wǎng)示意圖進(jìn)行說(shuō)明,假設(shè)4G HBA卡的隊(duì)列深度、DMA大小都比2GHBA卡大,F(xiàn)C鏈路速率一樣;那么根據(jù)計(jì)算出的每個(gè)HBA卡對(duì)應(yīng)的硬件性能影響因子X(jué),調(diào)用rouncLrobin算法進(jìn)行路徑,假設(shè)4G HBA卡的硬件性能影響因子X(jué)比G HBA卡硬件性能影響因子x大兩倍,那么最后通過(guò)4G HBA卡的路徑2下發(fā)的I/O比通過(guò)2G HBA卡的路徑I下發(fā)的I/O高兩倍,路徑3和路徑4作為備用路徑。
[0098]需要說(shuō)明的是,本發(fā)明實(shí)施例中的HBA卡的硬件性能參考信息不限于比值x(即硬件性能影響因子X(jué)),還可以其他反映HBA卡硬件性能參考信息的數(shù)值,本領(lǐng)域技術(shù)人員應(yīng)知曉,這里不再贅述;另外,本發(fā)明實(shí)施例不限于調(diào)用failover算法,或者round_robin算法來(lái)進(jìn)行路徑選取,本領(lǐng)域技術(shù)人員應(yīng)知曉,這里不再贅述。
[0099]實(shí)施本發(fā)明實(shí)施例的數(shù)據(jù)傳輸方法,通過(guò)獲取所有HBA卡的硬件配置信息,分析每個(gè)HBA卡的硬件性能參考信息,具體可以在各基本選路算法的基礎(chǔ)上增加HBA卡硬件性能作為路徑優(yōu)先級(jí)的影響因子,代入每個(gè)HBA卡的硬件性能影響因子后重新計(jì)算各路徑的優(yōu)先級(jí)或1/0分發(fā)比重,實(shí)現(xiàn)了選擇高性能的路徑下發(fā)1/0,解決了現(xiàn)有技術(shù)中未能充分考慮實(shí)際使用環(huán)境中各路徑的HBA卡硬件差異,導(dǎo)致1/0的處理效率不高,硬件利用率較低的問(wèn)題,不僅能保證1/0的處理效率,提高硬件利用率,而且能有效的預(yù)防1/0擁塞發(fā)生。
[0100]上述詳細(xì)闡述了本發(fā)明實(shí)施例的數(shù)據(jù)傳輸方法,下面為了便于更好地實(shí)施本發(fā)明實(shí)施例的上述方案,相應(yīng)地,下面還提供用于配合實(shí)施上述方案的相關(guān)裝置。
[0101]如圖7示出的本發(fā)明實(shí)施例的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖,包括:獲取模塊70、硬件性能分析模塊72和調(diào)用選擇模塊74,其中
[0102]獲取模塊70用于獲取系統(tǒng)中所有HBA卡的硬件配置信息;
[0103]硬件性能分析模塊72用于根據(jù)獲取模塊70獲取的硬件配置信息,分析每個(gè)HBA卡的硬件性能參考信息;
[0104]調(diào)用選擇模塊74用于根據(jù)硬件性能分析模塊72分析出的每個(gè)HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。[0105]具體地,通過(guò)預(yù)設(shè)不同的路徑選擇算法,可以選取硬件性能最好的HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,可以按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。即調(diào)用選擇模塊74可以包括:數(shù)據(jù)傳輸選取單元740,用于選取硬件性能最好的HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,數(shù)據(jù)傳輸分配單元742,用于按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
[0106]進(jìn)一步地,如圖8示出的本發(fā)明實(shí)施例的獲取模塊的結(jié)構(gòu)示意圖,進(jìn)一步說(shuō)明本發(fā)明實(shí)施例中數(shù)據(jù)傳輸裝置,獲取模塊70包括:查詢列表請(qǐng)求發(fā)送單元700、列表接收單元702、查詢配置請(qǐng)求發(fā)送單元704和配置信息獲取單元706,其中
[0107]查詢列表請(qǐng)求發(fā)送單元700用于向系統(tǒng)發(fā)送查詢HBA卡列表的請(qǐng)求信息;
[0108]具體地,查詢列表請(qǐng)求發(fā)送單元700向操作系統(tǒng)發(fā)送請(qǐng)求信息,以查詢HBA卡列表信息;詳細(xì)地,可以通過(guò)HBA_GetAdapterAttributes接口查詢當(dāng)前的HBA卡設(shè)備數(shù)目,通過(guò)HBA_GetAdapterName 查詢 HBA 卡的名稱;
[0109]列表接收單元702用于接收系統(tǒng)根據(jù)所述查詢HBA卡列表的請(qǐng)求信息返回的HBA卡列表信息;
[0110]查詢配置請(qǐng)求發(fā)送單元704用于根據(jù)列表接收單元702接收的HBA卡列表信息,向系統(tǒng)發(fā)送查詢列表中每個(gè)HBA卡的硬件配置信息的請(qǐng)求信息;
[0111]具體地,查詢配 置請(qǐng)求發(fā)送單元704分別向操作系統(tǒng)發(fā)送查詢各個(gè)HBA卡硬件配置信息的請(qǐng)求,操作系統(tǒng)接收到每個(gè)請(qǐng)求后,查詢出每個(gè)HBA卡的硬件配置信息,并向路徑控制軟件返回;詳細(xì)地,可以使用hbaGetAdaptersInfo接口查詢每個(gè)HBA卡對(duì)應(yīng)的硬件配 置信息。
[0112]配置信息獲取單元7 06用于獲取系統(tǒng)返回的每個(gè)HBA卡的硬件配置信息。
[0113]本發(fā)明實(shí)施例中的硬件配置信息包括光纖通道(Fiber Channel, FC)鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)(Direct Memory Access, DMA)大小c ;
[0114]再進(jìn)一步地,硬件性能分析模塊72可以包括:參考值選取單元和比值計(jì)算單元,其中
[0115]參考值選取單元用于選取其中任意一個(gè)HBA卡的硬件配置信息為參考值,所述參考值為所述選取的HBA卡對(duì)應(yīng)的a、b與c的乘積;
[0116]比值計(jì)算單元用于分別計(jì)算每個(gè)HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)HBA卡的硬件性能參考信息。
[0117]具體地,該比值可以作為硬件性能影響因子X(jué):
[0118]
【權(quán)利要求】
1.一種數(shù)據(jù)傳輸方法,其特征在于,包括:獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息;根據(jù)所述硬件配置信息,分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息;根據(jù)所述每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息的步驟包括:向系統(tǒng)發(fā)送查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息;接收系統(tǒng)根據(jù)所述查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息返回的主機(jī)總線適配器HBA卡列表信息;根據(jù)所述主機(jī)總線適配器HBA卡列表信息,向系統(tǒng)查詢列表中每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息;獲取系統(tǒng)返回的每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括: 選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述硬件配置信息包括光纖通道鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)大小c ;所述分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息的步驟包括:選取其中任意一個(gè)主機(jī)總線適配器HBA卡的硬件配置信息為參考值,所述參考值為所述選取的主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積;分別計(jì)算每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:確定所述比值中最高的主機(jī)總線適配器HBA卡作為硬件性能最好的主機(jī)總線適配器HBA卡,選取所述確定的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;所述按比例分配路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:以每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的比值作為比例大小,分配路徑進(jìn)行數(shù)據(jù)傳輸。
6.一種數(shù)據(jù)傳輸裝置,其特征在于,包括:獲取模塊,用于獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息;硬件性能分析模塊,用于根據(jù)所述獲取模塊獲取的硬件配置信息,分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息;調(diào)用選擇模塊,用于根據(jù)所述硬件性能分析模塊分析出的每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述獲取模塊包括:查詢列表請(qǐng)求發(fā)送單元,用于向系統(tǒng)發(fā)送查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信列表接收單元,用于接收系統(tǒng)根據(jù)所述查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息返回的主機(jī)總線適配器HBA卡列表信息;查詢配置請(qǐng)求發(fā)送單元,用于根據(jù)所述列表接收單元接收的主機(jī)總線適配器HBA卡列表信息,向系統(tǒng)發(fā)送查詢列表中每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息的請(qǐng)求信息;配置信息獲取單元,用于獲取系統(tǒng)返回的每個(gè)主機(jī)總線適配器HBA卡的硬件配置信肩、O
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述調(diào)用選擇模塊包括:數(shù)據(jù)傳輸選取單元,用于選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,數(shù)據(jù)傳輸分配單元,用于按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述硬件配置信息包括光纖通道鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)大小c ;所述硬件性能分析模塊包括:參考值選取單元,用于選取其中任意一個(gè)主機(jī)總線適配器HBA卡的硬件配置信息為參考值,所述參考值為所述選取的主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積;比值計(jì)算單元,用于分別計(jì)算每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)傳輸選取單元,具體用于確定所述比值中最高的主機(jī)總線適配器HBA卡作為硬件性能最好的主機(jī)總線適配器HBA卡,選取所述確定的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;所述數(shù)據(jù)傳輸分配單元,具體用于以每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的比值作為比例大小,分配路徑進(jìn)行數(shù)據(jù)傳輸。
11.一種網(wǎng)絡(luò)設(shè)備,其特征在于,包括:輸入裝置、輸出裝置、存儲(chǔ)器和處理器;其中,所述處理器執(zhí)行如下步驟:獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息;根據(jù)所述硬件配置信息,分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息;根據(jù)所述每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息,調(diào)用預(yù)設(shè)的路徑選擇算法,選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸。
12.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理器獲取系統(tǒng)中所有主機(jī)總線適配器HBA卡的硬件配置信息的步驟包括:向系統(tǒng)發(fā)送查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息;接收系統(tǒng)根據(jù)所述查詢主機(jī)總線適配器HBA卡列表的請(qǐng)求信息返回的主機(jī)總線適配器HBA卡列表信息;根據(jù)所述主機(jī)總線適配器HBA卡列表信息,向系統(tǒng)查詢列表中每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息;獲取系統(tǒng)返回的每個(gè)主機(jī)總線適配器HBA卡的硬件配置信息。
13.根據(jù)權(quán)利要求11或12所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理器選擇系統(tǒng)中主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;或者,按比例分配路徑進(jìn)行數(shù)據(jù)傳輸。
14.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述硬件配置信息包括光纖通道鏈路速率a、隊(duì)列深度b和直接存儲(chǔ)器訪問(wèn)大小c ;所述處理器分析每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息的步驟包括:選取其中任意一個(gè)主機(jī)總線適配器HBA卡的硬件配置信息為參考值,所述參考值為所述選取的主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積;分別計(jì)算每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的a、b與c的乘積與所述參考值的比值,得出每個(gè)主機(jī)總線適配器HBA卡的硬件性能參考信息。
15.根據(jù)權(quán)利要求14所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理器選取硬件性能最好的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:確定所述比值中最高的主機(jī)總線適配器HBA卡作為硬件性能最好的主機(jī)總線適配器HBA卡,選取所述確定的主機(jī)總線適配器HBA卡對(duì)應(yīng)的路徑進(jìn)行數(shù)據(jù)傳輸;所述處理器按比例分配路徑進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E包括:以每個(gè)主機(jī)總線適配器HBA卡對(duì)應(yīng)的比值作為比例大小,分配路徑進(jìn)行數(shù)據(jù)傳輸。
16.一種數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括應(yīng)用服務(wù)器和存儲(chǔ)系統(tǒng),所述應(yīng)用服務(wù)器包括如權(quán)利要求11-15任一項(xiàng)所述的網(wǎng)絡(luò)設(shè)備,通過(guò)所述網(wǎng)絡(luò)設(shè)備控制應(yīng)用服務(wù)器與所述存儲(chǔ)系統(tǒng)之間的數(shù)據(jù) 傳輸。
【文檔編號(hào)】G06F13/20GK103559155SQ201310511619
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月25日 優(yōu)先權(quán)日:2013年10月25日
【發(fā)明者】李梁 申請(qǐng)人:華為技術(shù)有限公司