本發(fā)明涉及數(shù)據(jù)訪問(wèn)及存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種SCSI驅(qū)動(dòng)側(cè)及I/O請(qǐng)求的控制方法。
背景技術(shù):當(dāng)前,SAN(StorageAreaNetwork,存儲(chǔ)區(qū)域網(wǎng)絡(luò))存儲(chǔ)系統(tǒng)一般包括多個(gè)磁盤(pán)設(shè)備提供的物理塊(PhysicalBlocks,PB),這些物理塊通過(guò)RAID(RedundantArraysofInexpensiveDisks,磁盤(pán)冗余陣列)技術(shù)等組合成存儲(chǔ)資源池,并且將存儲(chǔ)資源池分配為多個(gè)邏輯空間(LogicalUnitNumber,LUN),每一邏輯空間包含一個(gè)或多個(gè)邏輯塊(LogicalBlocks,LB)。在對(duì)邏輯空間的數(shù)據(jù)進(jìn)行訪問(wèn)時(shí),主機(jī)根據(jù)訪問(wèn)需求生成一個(gè)或多個(gè)I/O請(qǐng)求,并將其發(fā)送至SCSI(SmallComputerSystemInterface,小型計(jì)算機(jī)系統(tǒng)接口)驅(qū)動(dòng)側(cè)。然后SCSI驅(qū)動(dòng)側(cè)生成驅(qū)動(dòng)命令并將該驅(qū)動(dòng)命令發(fā)送至SAN存儲(chǔ)系統(tǒng),SAN存儲(chǔ)系統(tǒng)根據(jù)接收到的驅(qū)動(dòng)命令對(duì)邏輯空間的數(shù)據(jù)進(jìn)行讀寫(xiě)?,F(xiàn)有技術(shù)中,為了提升I/O請(qǐng)求的訪問(wèn)性能,SCSI驅(qū)動(dòng)側(cè)通常會(huì)對(duì)多個(gè)I/O請(qǐng)求進(jìn)行合并,以減少其在傳輸通道上的隊(duì)列占用和交互。然而,現(xiàn)有技術(shù)僅能對(duì)分布于同一邏輯空間的多個(gè)I/O請(qǐng)求進(jìn)行合并,對(duì)提升I/O請(qǐng)求的訪問(wèn)性能的作用并不顯著。
技術(shù)實(shí)現(xiàn)要素:鑒于此,本發(fā)明提供一種SCSI驅(qū)動(dòng)側(cè)及I/O請(qǐng)求的控制方法,以顯著提升I/O請(qǐng)求的訪問(wèn)性能。第一方面提供一種I/O請(qǐng)求的控制方法,用于對(duì)SAN存儲(chǔ)系統(tǒng)進(jìn)行數(shù)據(jù)訪問(wèn),該控制方法包括:接收多個(gè)I/O請(qǐng)求,并根據(jù)I/O請(qǐng)求中的邏輯塊地址確定對(duì)應(yīng)的物理塊地址,其中多個(gè)I/O請(qǐng)求為對(duì)多個(gè)邏輯空間的邏輯塊進(jìn)行數(shù)據(jù)訪問(wèn)的請(qǐng)求;根據(jù)物理塊地址的連續(xù)性,對(duì)多個(gè)I/O請(qǐng)求的合并;將合并后的I/O請(qǐng)求聚合為一個(gè)SCSI命令,發(fā)送至SAN存儲(chǔ)系統(tǒng)。結(jié)合第一方面的實(shí)現(xiàn)方式,在第一種可能的實(shí)現(xiàn)方式中,根據(jù)I/O請(qǐng)求中的邏輯塊地址確定對(duì)應(yīng)的物理塊地址的步驟包括:發(fā)送查詢(xún)指令至SAN存儲(chǔ)系統(tǒng),并接收SAN存儲(chǔ)系統(tǒng)反饋的邏輯塊地址與物理塊地址的映射表;根據(jù)映射表,查詢(xún)得到多個(gè)I/O請(qǐng)求中的邏輯塊地址對(duì)應(yīng)的物理塊地址。結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,邏輯塊地址和物理塊地址具有相同的字節(jié)塊大小。結(jié)合第一方面的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,根據(jù)物理塊地址的連續(xù)性,對(duì)多個(gè)I/O請(qǐng)求進(jìn)行合并的步驟包括:選取查詢(xún)得到的物理塊地址中連續(xù)的物理塊地址,并將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行第一次合并;選取查詢(xún)得到的物理塊地址中不連續(xù)的物理塊地址,并對(duì)不連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行排序;將排序后的I/O請(qǐng)求與第一次合并后的I/O請(qǐng)求進(jìn)行第二次合并。結(jié)合第一方面的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,對(duì)多個(gè)I/O請(qǐng)求進(jìn)行合并的步驟之前包括:預(yù)先定義合并區(qū)段;對(duì)所述多個(gè)I/O請(qǐng)求進(jìn)行合并的步驟包括:對(duì)位于同一合并區(qū)段之內(nèi)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,以形成第一I/O請(qǐng)求;對(duì)位于同一合并區(qū)段之外的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求不進(jìn)行合并,以形成第二I/O請(qǐng)求。結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,將合并后的I/O請(qǐng)求聚合為一個(gè)SCSI命令,發(fā)送至SAN存儲(chǔ)系統(tǒng)的步驟包括:將第一I/O請(qǐng)求和第二I/O請(qǐng)求聚合于一個(gè)SCSI命令,并將SCSI命令發(fā)送至SAN存儲(chǔ)系統(tǒng)。第二方面提供一種SCSI驅(qū)動(dòng)側(cè),包括:第一接收單元,用于接收多個(gè)I/O請(qǐng)求,并接收SAN存儲(chǔ)系統(tǒng)根據(jù)I/O請(qǐng)求中的邏輯塊地址確定的對(duì)應(yīng)的物理塊地址,其中多個(gè)I/O請(qǐng)求為對(duì)SAN存儲(chǔ)系統(tǒng)中的多個(gè)邏輯空間的邏輯塊進(jìn)行數(shù)據(jù)訪問(wèn)的請(qǐng)求;第一處理單元,用于根據(jù)第一接收單元接收的物理塊地址的連續(xù)性,對(duì)多個(gè)I/O請(qǐng)求進(jìn)行合并,并將合并后的I/O請(qǐng)求聚合為一個(gè)SCSI命令;第一發(fā)送單元,用于將SCSI命令發(fā)送至SAN存儲(chǔ)系統(tǒng)。結(jié)合第二方面的實(shí)現(xiàn)方式,在第一種可能的實(shí)現(xiàn)方式中,第一處理單元用于根據(jù)第一接收單元接收的多個(gè)I/O請(qǐng)求生成查詢(xún)指令,并控制第一發(fā)送單元將查詢(xún)指令發(fā)送至SAN存儲(chǔ)系統(tǒng),第一接收單元接收SAN存儲(chǔ)系統(tǒng)反饋的邏輯塊地址與物理塊地址的映射表,第一處理單元根據(jù)映射表查詢(xún)得到多個(gè)I/O請(qǐng)求中的邏輯塊地址對(duì)應(yīng)的物理塊地址。結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,邏輯塊地址和物理塊地址具有相同的字節(jié)塊大小。結(jié)合第二方面的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,第一處理單元還用于選取查詢(xún)得到的物理塊地址中連續(xù)的物理塊地址,并將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行第一次合并,以及選取查詢(xún)得到的物理塊地址中不連續(xù)的物理塊地址,并對(duì)不連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行排序,以將排序后的I/O請(qǐng)求與第一次合并后的I/O請(qǐng)求進(jìn)行第二次合并。結(jié)合第二方面的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,第一處理單元還用于預(yù)先定義合并區(qū)段,并對(duì)位于同一合并區(qū)段之內(nèi)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,以形成第一I/O請(qǐng)求,以及對(duì)位于同一合并區(qū)段之外的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求不進(jìn)行合并,以形成第二I/O請(qǐng)求。結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,第一處理單元還用于將第一I/O請(qǐng)求和第二I/O請(qǐng)求聚合于一個(gè)SCSI命令,并控制第一發(fā)送單元將SCSI命令發(fā)送至SAN存儲(chǔ)系統(tǒng)。本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過(guò)獲取多個(gè)I/O請(qǐng)求的邏輯塊地址在SAN存儲(chǔ)系統(tǒng)中對(duì)應(yīng)的物理塊地址,并根據(jù)物理塊地址的連續(xù)性將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,從而能夠完成分布于多個(gè)邏輯空間的I/O請(qǐng)求的合并,減少I(mǎi)/O請(qǐng)求在傳輸通道上的隊(duì)列占用和交互,并顯著提升I/O請(qǐng)求的訪問(wèn)性能。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,,還可以根據(jù)這些附圖獲得其他的附圖。其中:圖1是本發(fā)明第一實(shí)施例的I/O請(qǐng)求的控制方法的流程圖;圖2是本發(fā)明SAN存儲(chǔ)系統(tǒng)優(yōu)選實(shí)施例的原理框圖;圖3是本發(fā)明第一實(shí)施例的I/O請(qǐng)求的控制系統(tǒng)的原理框圖;圖4是本發(fā)明第四實(shí)施例的I/O請(qǐng)求的控制系統(tǒng)的原理框圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例。本發(fā)明提供一種I/O請(qǐng)求的控制方法,請(qǐng)參見(jiàn)圖1所示的本發(fā)明第一實(shí)施例的控制方法的流程圖。本實(shí)施例的I/O請(qǐng)求的控制方法用于對(duì)圖2所示的SAN存儲(chǔ)系統(tǒng)210中存儲(chǔ)資源池240中的多個(gè)邏輯空間LUN0、LUN1、…、LUNx進(jìn)行數(shù)據(jù)訪問(wèn),即對(duì)每一邏輯空間LUN0、LUN1、…、LUNx包括的多個(gè)邏輯塊LB0、LB1、…LBa、…、LBn進(jìn)行數(shù)據(jù)訪問(wèn)。上述對(duì)邏輯空間LUN0、LUN1、…、LUNx進(jìn)行的數(shù)據(jù)訪問(wèn),最終實(shí)體表現(xiàn)為對(duì)物理塊PB0、PB1、…、PBn存儲(chǔ)的數(shù)據(jù)進(jìn)行訪問(wèn)。需要說(shuō)明的是,本發(fā)明全文所提及的數(shù)據(jù)訪問(wèn)指的是對(duì)數(shù)據(jù)的讀取、調(diào)用以及寫(xiě)入等其他可對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行的任何操作。如圖1所示,本實(shí)施例中所揭示的I/O請(qǐng)求的控制方法包括:步驟S11:SCSI驅(qū)動(dòng)側(cè)接收多個(gè)I/O請(qǐng)求,并根據(jù)I/O請(qǐng)求中的邏輯塊地址從SAN存儲(chǔ)系統(tǒng)獲取對(duì)應(yīng)的物理塊地址,其中多個(gè)I/O請(qǐng)求為對(duì)多個(gè)邏輯空間中的邏輯塊進(jìn)行數(shù)據(jù)訪問(wèn)的請(qǐng)求。參閱圖2,在需要對(duì)不同邏輯空間中的邏輯塊進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),主機(jī)的應(yīng)用會(huì)相應(yīng)的生成多個(gè)I/O請(qǐng)求并發(fā)送至SCSI驅(qū)動(dòng)側(cè)。例如,在對(duì)邏輯空間LUN0的邏輯塊LB2、邏輯空間LUN2的邏輯塊LB7、LB50以及邏輯空間LUN9的邏輯塊LB2進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),SCSI驅(qū)動(dòng)側(cè)對(duì)應(yīng)接收到的多個(gè)I/O請(qǐng)求依次為IO-1(LUN0,LBA2,LEN3)、IO-2(LUN2,LBA7,LEN1)、IO-3(LUN9,LBA2,LEN2)、IO-4(LUN2,LBA50,LEN2)。SCSI驅(qū)動(dòng)側(cè)在接收完成上述I/O請(qǐng)求后,即據(jù)此生成一個(gè)查詢(xún)指令并發(fā)送至SAN存儲(chǔ)系統(tǒng)。其中,該查詢(xún)指令為一種SCSI命令,其以字節(jié)流的形式通過(guò)總線發(fā)送至SAN存儲(chǔ)系統(tǒng),本實(shí)施例優(yōu)選該SCSI命令采用如下表1所示的CDB(CommandDescriptorBlocks,命令描述塊)格式,相應(yīng)地,該命令的參數(shù)格式如下表2所示:表1表2SAN存儲(chǔ)系統(tǒng)在接收到該查詢(xún)指令后對(duì)其特定參數(shù)進(jìn)行解析,并在系統(tǒng)中獲取IO-1、IO-2、IO-3和IO-4需要訪問(wèn)的邏輯塊的邏輯塊地址與其對(duì)應(yīng)的物理塊的物理塊地址的映射關(guān)系,具體如下表3所示:I/O請(qǐng)求物理塊地址IO-1(LUN0,LBA2,LEN3)(PBA10,LEN3)IO-2(LUN2,LBA7,LEN1)(PBA2,LEN1)IO-3(LUN9,LBA2,LEN2)(PBA13,LEN2)IO-4(LUN2,LBA50,LEN2)(PBA100,LEN0)表3SAN存儲(chǔ)系統(tǒng)將映射關(guān)系發(fā)送給SCSI驅(qū)動(dòng)側(cè),具體表現(xiàn)為通過(guò)如下表4所示的映射描述對(duì)上表1所示的SCSI命令的響應(yīng)。表4在本實(shí)施例中,SAN存儲(chǔ)系統(tǒng)獲取的映射關(guān)系為多個(gè)I/O請(qǐng)求中需要訪問(wèn)的邏輯塊的邏輯塊地址與其對(duì)應(yīng)的物理塊的物理塊地址的一一對(duì)應(yīng)關(guān)系。進(jìn)一步地,為便于查找,本實(shí)施例優(yōu)選SCSI驅(qū)動(dòng)側(cè)首先將接收到的映射關(guān)系以映射表的形式予以顯示,而后在映射表中查詢(xún)接收到的多個(gè)I/O請(qǐng)求的邏輯塊對(duì)應(yīng)的物理塊。在其他實(shí)施例中,SAN存儲(chǔ)系統(tǒng)還可以獲取全部的邏輯塊地址與物理塊地址的映射關(guān)系,并發(fā)送給SCSI驅(qū)動(dòng)側(cè),以使SCSI驅(qū)動(dòng)側(cè)根據(jù)映射關(guān)系查找所要訪問(wèn)的邏輯塊地址對(duì)應(yīng)的物理塊地址?;蛘撸琒AN存儲(chǔ)系統(tǒng)可直接將多個(gè)I/O請(qǐng)求中需要訪問(wèn)的邏輯塊地址對(duì)應(yīng)的物理塊地址反饋給SCSI驅(qū)動(dòng)側(cè)。需要說(shuō)明的是,本發(fā)明全文提及的映射關(guān)系具體表現(xiàn)為邏輯塊的邏輯塊地址(LogicalBlockAddress,LBA)與物理塊的物理塊地址(PhysicalBlockAddress,PBA)的一一對(duì)應(yīng)關(guān)系,并且采用上述表1所示的SCSI命令時(shí),對(duì)邏輯塊的邏輯塊地址和物理塊的物理塊地址的描述采用相同大小的字節(jié)塊(Block)大小。步驟S12:SCSI驅(qū)動(dòng)側(cè)根據(jù)物理塊地址的連續(xù)性,將多個(gè)物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并。參閱上表3可知,獲取的IO-1、IO-2、IO-3和IO-4需要訪問(wèn)的邏輯塊對(duì)應(yīng)的物理塊的物理地址為(PBA10,LEN3)、(PBA2,LEN1)、(PBA13,LEN2)、(PBA100,LEN2)。然后,選取獲取的四個(gè)物理塊中地址連續(xù)的物理塊。基于現(xiàn)有技術(shù)的連續(xù)性的算法,LEN表示物理塊的長(zhǎng)度(length),可知在獲取的四個(gè)物理塊中,連續(xù)的物理塊地址為(PBA10,LEN3)和(PBA13,LEN2)。將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行第一次合并,即將IO-1和IO-3進(jìn)行合并,合并后為IO-1-3。選取其中不連續(xù)的物理塊地址,即(PBA2,LEN1)與(PBA10,LEN3)和(PBA13,LEN2)是不連續(xù)的。對(duì)不連續(xù)的物理塊地址進(jìn)行排序,而后將排序后的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求與第一次合并后的I/O請(qǐng)求進(jìn)行第二次合并,即將IO-1-3和IO-2進(jìn)行合并,合并后為IO-2-1-3。步驟S13:SCSI驅(qū)動(dòng)側(cè)將合并后的I/O請(qǐng)求聚合為一個(gè)SCSI命令,發(fā)送至SAN存儲(chǔ)系統(tǒng)。SCSI驅(qū)動(dòng)側(cè)將合并后的I/O請(qǐng)求,即IO-2-1-3,發(fā)送至SAN存儲(chǔ)系統(tǒng)。其中,IO-2-1-3是一種地址不連續(xù)的聚合I/O請(qǐng)求,由于其聚合了不同邏輯空間的I/O請(qǐng)求,因此需要一種聚合SCSI命令將其發(fā)送至SAN存儲(chǔ)系統(tǒng),該聚合SCSI命令可采用下表5所示的CDB格式:表5SAN存儲(chǔ)系統(tǒng)在接收到該聚合SCSI命令后,通過(guò)處理得到合并后的I/O請(qǐng)求,并據(jù)此完成對(duì)數(shù)據(jù)訪問(wèn)。根據(jù)數(shù)據(jù)訪問(wèn)的具體操作,需要構(gòu)造的訪問(wèn)命令的格式不同,例如對(duì)邏輯空間的數(shù)據(jù)進(jìn)行寫(xiě)入時(shí),需構(gòu)造Data-OutBuffer命令格式;對(duì)邏輯空間的數(shù)據(jù)進(jìn)行讀取時(shí),需構(gòu)造Data-InBuffer命令格式。在采用上述讀寫(xiě)命令格式對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)時(shí),還需要對(duì)讀寫(xiě)流程進(jìn)行區(qū)分,具體而言,在進(jìn)行寫(xiě)入流程時(shí)采用如下表6所示,在進(jìn)行讀取流程時(shí)采用如下表7所示。其中,上述Data-OutBuffer命令格式和Data-InBuffer命令格式的參數(shù)格式如下表8所示。表6表7表8基于上述,可知本實(shí)施例通過(guò)獲取多個(gè)I/O請(qǐng)求的邏輯塊地址在SAN存儲(chǔ)系統(tǒng)中對(duì)應(yīng)的物理塊地址,并根據(jù)物理塊地址的連續(xù)性將對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,從而完成分布于多個(gè)邏輯空間的多個(gè)I/O請(qǐng)求的合并,減少I(mǎi)/O請(qǐng)求在傳輸通道上的隊(duì)列占用以及交互,進(jìn)而顯著提升I/O請(qǐng)求的訪問(wèn)性能。本發(fā)明還提供第二實(shí)施例的I/O請(qǐng)求的控制方法,其在第一實(shí)施例所揭示的控制方法的基礎(chǔ)上進(jìn)行詳細(xì)描述。本實(shí)施例與圖1所示第一實(shí)施例的不同之處在于:在步驟S12中,對(duì)于不在同一合并區(qū)段內(nèi)的多個(gè)I/O請(qǐng)求不進(jìn)行合并。本實(shí)施例中,合并區(qū)段是對(duì)SAN存儲(chǔ)系統(tǒng)中的多個(gè)邏輯空間的邏輯塊(LBA)進(jìn)行區(qū)域的劃分,以避免當(dāng)各個(gè)LBA在傳輸通道上相隔較大時(shí)即使進(jìn)行合并也不能顯著的減少I(mǎi)/O請(qǐng)求在傳輸通道上的隊(duì)列占用,對(duì)I/O請(qǐng)求的訪問(wèn)性能也并沒(méi)有顯著的提升。對(duì)于合并區(qū)段中LBA的字節(jié)塊的劃分大小,本領(lǐng)域技術(shù)人員可根據(jù)實(shí)際需要設(shè)定,例如預(yù)定義合并區(qū)段劃分LBA為30個(gè)字節(jié)塊,則LBA50和LBA2、LBA7、LBA2不在一個(gè)合并區(qū)段,也就是說(shuō)IO-4(LUN2,LBA50,LEN2)和上述三個(gè)I/O請(qǐng)求,即IO-1(LUN0,LBA2,LEN3)、IO-2(LUN2,LBA7,LEN1)和IO-3(LUN9,LBA2,LEN2),不在一個(gè)合并區(qū)段,則IO-4不能與IO-1、IO-2、IO-3進(jìn)行合并。在對(duì)位于同一合并區(qū)段之內(nèi)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,以形成第一I/O請(qǐng)求,即IO-2-1-3。對(duì)位于同一合并區(qū)段之外的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求不進(jìn)行合并,以形成第二I/O請(qǐng)求,即IO-4(LUN2,LBA50,LEN2)。在步驟S13中,SCSI驅(qū)動(dòng)側(cè)將第一I/O請(qǐng)求和第二I/O請(qǐng)求聚合于一個(gè)SCSI命令,并將該SCSI命令發(fā)送至SAN存儲(chǔ)系統(tǒng)。SAN存儲(chǔ)系統(tǒng)解析該SCSI命令以對(duì)第一I/O請(qǐng)求和第二I/O請(qǐng)求分別進(jìn)行響應(yīng)。本實(shí)施例能夠?qū)ξ挥诓煌喜^(qū)段的多個(gè)I/O請(qǐng)求進(jìn)行操作,并將不能進(jìn)行合并的I/O請(qǐng)求單獨(dú)與合并后的I/O請(qǐng)求聚合在同一SCSI命令中發(fā)送給SAN存儲(chǔ)系統(tǒng),從而最大程度的完成分布于多個(gè)邏輯空間的多個(gè)I/O請(qǐng)求的合并,減少I(mǎi)/O請(qǐng)求的傳輸通道上的隊(duì)列占用以及交互,進(jìn)而顯著提升I/O請(qǐng)求的訪問(wèn)性能。需要說(shuō)明的是,本實(shí)施例與上述第一實(shí)施例所揭示的上述IO請(qǐng)求的邏輯塊、邏輯塊地址以及對(duì)應(yīng)的物理塊、物理塊地址,以及上表中相應(yīng)的具體數(shù)值,僅供說(shuō)明舉例。在其他實(shí)施例中,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要進(jìn)行其他設(shè)置,只需滿足多個(gè)邏輯塊的邏輯塊地址與多個(gè)物理塊的物理塊地址的一一對(duì)應(yīng)關(guān)系即可。本發(fā)明還提供了第一實(shí)施例的一種IO請(qǐng)求的控制系統(tǒng),如圖3所示,本實(shí)施例基于圖2所示的SAN存儲(chǔ)系統(tǒng)210以及SCSI驅(qū)動(dòng)側(cè)220、應(yīng)用230。本實(shí)施例所揭示的SCSI驅(qū)動(dòng)側(cè)220包括第一接收單元221、第一處理單元222和第一發(fā)送單元223,SAN存儲(chǔ)系統(tǒng)210包括第二接收單元211、第二處理單元212和第二發(fā)送單元213。第一接收單元221用于接收應(yīng)用230形成的多個(gè)I/O請(qǐng)求,該多個(gè)I/O請(qǐng)求為對(duì)SAN存儲(chǔ)系統(tǒng)210中的多個(gè)邏輯塊進(jìn)行數(shù)據(jù)訪問(wèn)的請(qǐng)求。第一處理單元222用于根據(jù)第一接收單元221接收到的多個(gè)I/O請(qǐng)求生成查詢(xún)指令,并控制第一發(fā)送單元223將查詢(xún)指令發(fā)送至SAN存儲(chǔ)系統(tǒng)210的第二接收單元211。第二處理單元212用于根據(jù)查詢(xún)指令獲取SAN存儲(chǔ)系統(tǒng)210中邏輯塊地址與物理塊地址的映射關(guān)系,并控制第二發(fā)送單元213將映射關(guān)系發(fā)送至SCSI驅(qū)動(dòng)側(cè)220的第一接收單元221。第一處理單元222用于根據(jù)物理塊地址的連續(xù)性,將連續(xù)的多個(gè)物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并。第一發(fā)送單元223用于將第一處理單元222合并后的I/O請(qǐng)求發(fā)送至SAN存儲(chǔ)系統(tǒng)210的第二接收單元211。第二處理單元212根據(jù)合并后的I/O請(qǐng)求完成對(duì)SAN存儲(chǔ)系統(tǒng)210中的數(shù)據(jù)訪問(wèn)。本發(fā)明還提供了第二實(shí)施例的IO請(qǐng)求的控制系統(tǒng),其在第一實(shí)施例的基礎(chǔ)上進(jìn)行詳細(xì)描述。本實(shí)施例與上述第一實(shí)施例的控制系統(tǒng)的不同之處在于:第一接收單元221接收到的多個(gè)I/O請(qǐng)求并不能直接全部合并,而需要先進(jìn)行排序。具體而言,第一處理單元222還用于選取多個(gè)物理塊地址中連續(xù)的物理塊地址,并將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行第一次合并。同時(shí)選取物理塊地址中不連續(xù)的物理塊地址,并對(duì)不連續(xù)的物理塊地址進(jìn)行排序,將排序后的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求與第一次合并后的I/O請(qǐng)求進(jìn)行第二次合并。本發(fā)明還提供了第三實(shí)施例的IO請(qǐng)求的控制系統(tǒng),其在圖3所示的第一實(shí)施例的基礎(chǔ)上進(jìn)行詳細(xì)描述。本實(shí)施例與上述第一實(shí)施例的控制系統(tǒng)的不同之處在于:第一接收單元221接收到的多個(gè)I/O請(qǐng)求位于不同的預(yù)先定義的合并區(qū)段,該合并區(qū)段可由第一處理單元222預(yù)先定義。第一處理單元222對(duì)位于同一合并區(qū)段之內(nèi)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,以形成第一I/O請(qǐng)求。同時(shí)對(duì)位于同一合并區(qū)段之外的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求不進(jìn)行合并,以形成第二I/O請(qǐng)求。進(jìn)一步地,第一處理單元222還將第一I/O請(qǐng)求和第二I/O請(qǐng)求聚合于一個(gè)SCSI命令,并控制第一發(fā)送單元223將該SCSI命令發(fā)送至SAN存儲(chǔ)系統(tǒng)210的第二接收單元211,以使第二處理單元212解析該SCSI命令,并根據(jù)解析得到的第一I/O請(qǐng)求和第二I/O請(qǐng)求完成對(duì)SAN存儲(chǔ)系統(tǒng)210中的數(shù)據(jù)訪問(wèn)。本發(fā)明的上述幾個(gè)實(shí)施例的SAN存儲(chǔ)系統(tǒng)210和SCSI驅(qū)動(dòng)側(cè)220,對(duì)應(yīng)的基于上述實(shí)施例的I/O請(qǐng)求的控制方法,因此可具有相同的技術(shù)效果。并且應(yīng)該理解到,所揭露的SAN存儲(chǔ)系統(tǒng)210和SCSI驅(qū)動(dòng)側(cè)220的描述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊可以結(jié)合或者可以集成到另一個(gè)系統(tǒng)中,或一些特征可以忽略,或不執(zhí)行。另外,模塊相互之間的耦合或通信連接可以是通過(guò)一些接口,也可以是電性或其它的形式。上述各個(gè)功能模塊作為SAN存儲(chǔ)系統(tǒng)210和SCSI驅(qū)動(dòng)側(cè)220的組成部分,可以是或者也可以不是物理框,既可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上,既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能框的形式實(shí)現(xiàn)??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本發(fā)明方案的目的。本發(fā)明還提供第四實(shí)施例的一種IO請(qǐng)求的控制系統(tǒng),其在圖3所示的第一實(shí)施例中所揭示的IO請(qǐng)求的控制系統(tǒng)的基礎(chǔ)上進(jìn)行詳細(xì)描述。如圖4所示,本實(shí)施例中所揭示的SCSI驅(qū)動(dòng)側(cè)220包括第一接收器321、第一處理器322和第一發(fā)送器323,SAN存儲(chǔ)系統(tǒng)210包括第二接收器311、第二處理器312和第二發(fā)送器313。第一接收器321用于接收應(yīng)用230形成的多個(gè)I/O請(qǐng)求,該多個(gè)I/O請(qǐng)求為對(duì)SAN存儲(chǔ)系統(tǒng)210中的多個(gè)邏輯塊進(jìn)行數(shù)據(jù)訪問(wèn)的請(qǐng)求。第一處理器322用于根據(jù)第一接收器321接收到的多個(gè)I/O請(qǐng)求生成查詢(xún)指令,并控制第一發(fā)送器323將查詢(xún)指令發(fā)送至SAN存儲(chǔ)系統(tǒng)210的第二接收器311。第二處理器312用于根據(jù)查詢(xún)指令獲取SAN存儲(chǔ)系統(tǒng)210中邏輯塊地址與物理塊地址的映射關(guān)系,并控制第二發(fā)送器313將映射關(guān)系發(fā)送至SCSI驅(qū)動(dòng)側(cè)220的第一接收器321。第一處理器322用于根據(jù)物理塊地址的連續(xù)性,將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并。第一發(fā)送器323用于將第一處理器322合并后的I/O請(qǐng)求發(fā)送至SAN存儲(chǔ)系統(tǒng)210的第二接收器311。第二處理器312根據(jù)合并后的I/O請(qǐng)求完成對(duì)SAN存儲(chǔ)系統(tǒng)210中數(shù)據(jù)的訪問(wèn)。綜上所述,本發(fā)明通過(guò)獲取多個(gè)I/O請(qǐng)求中的邏輯塊地址在SAN存儲(chǔ)系統(tǒng)中對(duì)應(yīng)的物理塊地址,并將連續(xù)的物理塊地址對(duì)應(yīng)的I/O請(qǐng)求進(jìn)行合并,從而能夠完成分布于多個(gè)邏輯空間的I/O請(qǐng)求的合并,減少I(mǎi)/O請(qǐng)求的傳輸通道上的交互,并顯著提升I/O請(qǐng)求的訪問(wèn)性能。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。