欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種路徑選擇方法及裝置與流程

文檔序號:11199068閱讀:492來源:國知局
一種路徑選擇方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種路徑選擇方法及裝置。



背景技術(shù):

在企業(yè)級應(yīng)用系統(tǒng)中,用于處理業(yè)務(wù)請求的應(yīng)用服務(wù)器與存儲系統(tǒng)通過存儲網(wǎng)絡(luò)san(storageareanetwork,存儲域網(wǎng)絡(luò))互相連接。為了避免單點故障,提高系統(tǒng)可靠性與io(input/output,輸入/輸出)吞吐率,應(yīng)用服務(wù)器與存儲設(shè)備之間通常采用mpio(multiplepathio,多路徑io)訪問。如圖1所示,應(yīng)用服務(wù)器a通過兩個san交換機(jī)與一個具有雙控制器的存儲設(shè)備連接,一共實現(xiàn)了應(yīng)用服務(wù)器a到存儲設(shè)備的4條物理路徑。在多路徑磁盤驅(qū)動程序的幫助下,應(yīng)用服務(wù)器a可以通過任意一條路徑發(fā)起對存儲設(shè)備的io請求。

應(yīng)用服務(wù)器與存儲設(shè)備之間的多條物理路徑通過初始端口-目標(biāo)端口連接(i_tnexus)來標(biāo)識,其中目標(biāo)端口可以根據(jù)訪問狀態(tài)進(jìn)行分組,稱為tpg(targetportgroup,目標(biāo)端口組)。如圖2所標(biāo),存儲服務(wù)器(storage)有兩個控制器(controller-0,controller-1),controller-0上有兩個目標(biāo)端口(t-port0,t-port1),controller-1上有兩個目標(biāo)端口(t-port2,t-port3)。存儲服務(wù)器通常會設(shè)計為同一個控制器上的目標(biāo)端口具有相同一致的目標(biāo)端口訪問狀態(tài),因此,可以將同一個控制器上的目標(biāo)端口分為一個目標(biāo)端口組。圖2中定義有兩個目標(biāo)端口組,tpg0與tpg1,通過不同的目標(biāo)端口組訪問lun0(logicunitnumber邏輯單元編號,也通常用于指代邏輯單元)時,可能有不同的性能表現(xiàn),比如通過tpg0訪問lun0性能較高,通過tpg1訪問lun0性能較低,此即為alua(asymmetriclogicunitaccess,邏輯單元非對稱訪問)。多路徑驅(qū)動程序(mpiodriver)可以發(fā)現(xiàn)存儲服務(wù)器端有關(guān)目標(biāo)端口組的定義,創(chuàng)建對應(yīng)的對象,并在路徑選擇時參考這些對象。

為了實現(xiàn)多路徑訪問的優(yōu)勢,多路徑驅(qū)動程序可以通過多種路徑選擇策略來選擇合適的路徑發(fā)送io請求。目前主要的路徑選擇策略分為以下3種:

failover:故障切換。正常情況下,只使用一個路徑發(fā)送io請求,只有正在使用的路徑出現(xiàn)故障時,才會選擇另外一條路徑。

roundrobin:輪循環(huán)。以輪循的方式使用路徑,即先通過路徑a發(fā)送一定量的io請求,再使用路徑b發(fā)送一定量的io請求。

loadbalance:負(fù)載均衡。通過一種路徑io負(fù)載計算方法,選出當(dāng)前負(fù)載最小的路徑,用于發(fā)送io請求。

但是,上述路徑選擇測量并不能兼顧應(yīng)用服務(wù)器的性能要求,存儲服務(wù)器側(cè)的緩存資源的最大化利用以及cpu資源的最小消耗。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明實施例提供一種路徑選擇方法及裝置,能夠兼顧應(yīng)用服務(wù)器的性能要求,存儲服務(wù)器側(cè)的緩存資源的最大化利用以及cpu資源的最小消耗。

為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:

一種路徑選擇方法,包括:

接收應(yīng)用服務(wù)器側(cè)發(fā)送的io請求;

將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求;

選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,以及,選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器。

優(yōu)選的,所述將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求,包括:

解析scsi命令的operationcode字段以及transferlength字段,將所述io請求劃分為讀請求、小塊寫請求以及大塊寫請求。

優(yōu)選的,所述選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,包括:

根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較高的目標(biāo)端口組選取一個目標(biāo)端口將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器。

優(yōu)選的,所述選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器,包括:

根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較低的目標(biāo)端口組選取一個目標(biāo)端口將所述大塊寫請求發(fā)送至存儲服務(wù)器。

一種路徑選擇裝置,包括:

接收模塊,用于接收應(yīng)用服務(wù)器側(cè)發(fā)送的io請求;

解析模塊,用于將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求;

路徑選擇模塊,用于選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,以及,選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器。

優(yōu)選的,所述解析模塊具體用于:

解析scsi命令的operationcode字段以及transferlength字段,將所述io請求劃分為讀請求、小塊寫請求以及大塊寫請求。

優(yōu)選的,所述路徑選擇模塊具體用于:

根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較高的目標(biāo)端口組選取一個目標(biāo)端口將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器。

優(yōu)選的,所述路徑選擇模塊具體用于:

根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較低的目標(biāo)端口組選取一個目標(biāo)端口將所述大塊寫請求發(fā)送至存儲服務(wù)器。

基于上述技術(shù)方案,本發(fā)明實施例中公開了一種路徑選擇方法及裝置,接收應(yīng)用服務(wù)器側(cè)發(fā)送的io請求;將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求;選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,以及,選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器,能夠兼顧應(yīng)用服務(wù)器的性能要求,存儲服務(wù)器側(cè)的緩存資源的最大化利用以及cpu資源的最小消耗。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本發(fā)明背景技術(shù)提供的應(yīng)用服務(wù)器與存儲設(shè)備之間的架構(gòu)示意圖;

圖2為本發(fā)明背景技術(shù)提供的應(yīng)用服務(wù)器與存儲設(shè)備之間的多條物理路徑示意圖;

圖3為本發(fā)明實施例提供的一種路徑選擇方法的流程示意圖;

圖4為本發(fā)明實施例提供的write(10)的命令描述示意圖;

圖5為本發(fā)明實施例提供的一種路徑選擇方法示例圖;

圖6為本發(fā)明實施例公開的一種路徑選擇裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

應(yīng)用服務(wù)器側(cè)運行的mpio驅(qū)動程序負(fù)責(zé)從多條路徑中選擇一條路徑,將io請求發(fā)送給存儲服務(wù)器。本發(fā)明通過改進(jìn)的mpio驅(qū)動程序,實現(xiàn)新的路徑選擇策略,具體實施方式如下描述:

請參閱附圖3,圖3為本發(fā)明實施例提供的一種路徑選擇方法的流程示意圖,該方法的執(zhí)行主體為應(yīng)用服務(wù)器側(cè)運行的mpio驅(qū)動程序,具體包括如下步驟:

步驟s100,接收應(yīng)用服務(wù)器側(cè)發(fā)送的io請求。

步驟s110,將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求。

需要說明的是,所述將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求,包括:解析scsi命令的operationcode字段以及transferlength字段,將所述io請求劃分為讀請求、小塊寫請求以及大塊寫請求。

每個scsi命令都有定義的命令操作符(operationcode)。規(guī)范定義了一組讀寫操作命令,其中讀命令read(10)的命令操作符為0x28,寫命令write(10)的命令操作符為0x2a。本發(fā)明將使用到scsi命令操作符及參數(shù),以實現(xiàn)定義的特性。圖4是write(10)的命令描述示意圖,byte0(operationcode)是操作符,byte2-byte5(logicblockaddress)是起始block地址,byte7-byte8(transferlength)是block個數(shù)。

步驟s120,選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,以及,選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器。

需要說明的是,所述選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,包括:根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較高的目標(biāo)端口組選取一個目標(biāo)端口將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器。所述選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器,包括:根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較低的目標(biāo)端口組選取一個目標(biāo)端口將所述大塊寫請求發(fā)送至存儲服務(wù)器。

本發(fā)明實施例提供的路徑選擇方法,在mpio驅(qū)動程序中實現(xiàn)一種新的路徑選擇策略,即區(qū)分io請求的讀或?qū)懖僮?,通過性能較高的目標(biāo)端口組發(fā)送全部的讀操作,以及小塊的寫操作,通過性能較低的目標(biāo)端口組發(fā)送大塊的寫操作,在選定的目標(biāo)端口組內(nèi)再實現(xiàn)負(fù)載均衡的路徑選擇策略。這種新的路徑選擇策略兼顧了應(yīng)用服務(wù)器的性能要求,存儲服務(wù)器側(cè)的緩存資源的最大化利用以及cpu資源的最小消耗。

請參閱附圖5,圖5為本發(fā)明實施例提供的一種路徑選擇方法示例圖,如圖5所示,mpio驅(qū)動程序可以通過tpg0,tpg1訪問lun0,其中tpg0提供較高的io性能,tpg1提供較低的io性能。

步驟1,將磁盤驅(qū)動的blockio請求,通過dispatch模塊解析scsi命令的operationcode字段以及transferlength字段,分揀出以下3類:

讀請求:operationcode字段表示操作是read()。

小塊寫請求:operationcode表示操作是write(),transferlength字段小于等于指定的數(shù)值(例如,在blocksize是512情況下,transferlength=8)。

大塊寫請求:operationcode表示操作是write(),transferlength字段大于指定的數(shù)值(例如,在blocksize是512情況下,transferlength>8)。

步驟2,在tpg0內(nèi)的路徑中,通過lb(loadbalance,負(fù)載均衡)或rr(roundrobin,輪循環(huán))策略,選擇一條路徑,發(fā)送讀請求,小塊寫請求。在tpg1內(nèi)的路徑中,通過lb或rr策略,選擇一條路徑,發(fā)送大塊寫請求。

本發(fā)明在mpio驅(qū)動程序中,將io請求分為3個類型(讀請求、小塊寫請求、大塊寫請求),不同類型的io請求,發(fā)送給存儲服務(wù)器的不同的控制節(jié)點。負(fù)責(zé)處理大塊寫操作的節(jié)點無需維護(hù)lun的緩存,只需要寫緩沖區(qū)的開銷。負(fù)責(zé)讀操作及小塊寫操作的節(jié)點負(fù)責(zé)維護(hù)lun的緩存,并執(zhí)行緩存與介質(zhì)之間的操作。這樣,既可以使存儲服務(wù)器的緩存資源實現(xiàn)最大化的利用,減少節(jié)點之間的緩存同步操作,節(jié)省存儲服務(wù)器在節(jié)點同步操作上花費的時間,又可以使應(yīng)用服務(wù)器獲取最優(yōu)的io性能。

請參閱附圖6,圖6為本發(fā)明實施例公開的一種路徑選擇裝置的結(jié)構(gòu)示意圖,該路徑選擇裝置具體包括:

接收模塊100,用于接收應(yīng)用服務(wù)器側(cè)發(fā)送的io請求;

解析模塊110,用于將所述io請求解析為讀請求、小塊寫請求以及大塊寫請求;

路徑選擇模塊120,用于選取性能較高的目標(biāo)端口組將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器,以及,選取性能較低的目標(biāo)端口組將所述大塊寫請求發(fā)送至存儲服務(wù)器。

優(yōu)選的,所述解析模塊具體用于:

解析scsi命令的operationcode字段以及transferlength字段,將所述io請求劃分為讀請求、小塊寫請求以及大塊寫請求。

優(yōu)選的,所述路徑選擇模塊具體用于:

根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較高的目標(biāo)端口組選取一個目標(biāo)端口將所述讀請求以及所述小塊寫請求發(fā)送至存儲服務(wù)器。

優(yōu)選的,所述路徑選擇模塊具體用于:

根據(jù)負(fù)載均衡策略或者輪循環(huán)策略從所述性能較低的目標(biāo)端口組選取一個目標(biāo)端口將所述大塊寫請求發(fā)送至存儲服務(wù)器。

綜上所述:

本發(fā)明實施例提供的路徑選擇方法及裝置,在mpio驅(qū)動程序中實現(xiàn)一種新的路徑選擇策略,即區(qū)分io請求的讀或?qū)懖僮?,通過性能較高的目標(biāo)端口組發(fā)送全部的讀操作,以及小塊的寫操作,通過性能較低的目標(biāo)端口組發(fā)送大塊的寫操作,在選定的目標(biāo)端口組內(nèi)再實現(xiàn)負(fù)載均衡的路徑選擇策略。這種新的路徑選擇策略兼顧了應(yīng)用服務(wù)器的性能要求,存儲服務(wù)器側(cè)的緩存資源的最大化利用以及cpu資源的最小消耗。

本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。

專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機(jī)存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。

對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
西华县| 桑日县| 密山市| 新泰市| 广东省| 板桥市| 万山特区| 合作市| 商南县| 那曲县| 佛山市| 大庆市| 许昌市| 区。| 东至县| 大关县| 高平市| 泗洪县| 肥东县| 读书| 水富县| 浦城县| 镇平县| 寿宁县| 平安县| 特克斯县| 桑日县| 桦川县| 东方市| 中超| 邵阳县| 九江市| 金门县| 石楼县| 扶沟县| 鄂伦春自治旗| 那曲县| 浦江县| 宁晋县| 堆龙德庆县| 德保县|