国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

      本發(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