本發(fā)明的各實施方式涉及測試技術,更具體地,涉及用于對存儲網(wǎng)絡進行測試的裝置和方法。
背景技術:
存儲網(wǎng)絡通常包括一個或多個服務器以及能夠由服務器進行訪問的存儲系統(tǒng)。為了擴展存儲網(wǎng)絡的規(guī)模,通常利用一個或多個存儲擴展設備將多個服務器耦合至存儲系統(tǒng)。
在新設備的研發(fā)過程中,設備廠商通常會按照設計方案生產(chǎn)一批試驗產(chǎn)品,以進行測試,在測試通過之后,再進行批量生產(chǎn)。目前,存儲網(wǎng)絡中的不同設備分別由不同的廠商來生產(chǎn)。例如,服務器由服務器的廠商來生產(chǎn),而存儲系統(tǒng)中的物理存儲設備由存儲設備的廠商來生產(chǎn)。因此,不同的廠商會利用各自的測試設備針對各自的產(chǎn)品進行測試。在將設備組織成存儲網(wǎng)絡之后,利用不同的設備廠商在研發(fā)過程中所使用的不同測試設備對各個設備進行測試往往是低效的。
因此,需要能夠通過一個測試設備來實現(xiàn)對存儲網(wǎng)絡中的多種類型的待測對象的測試的高效解決方案。
技術實現(xiàn)要素:
為了解決上述問題,本發(fā)明提出了一種利用操作模式可配置的測試器來對存儲網(wǎng)絡中的多種類型的待測對象進行測試的技術方案。
在本發(fā)明的第一方面,提供了一種用于對存儲網(wǎng)絡進行測試的裝置。該裝置可以包括:處理器,被配置為響應于測試請求來生成配置信號;以及與該處理器耦合的測試器,通過該配置信號被配置為在不同的操作模式下操作,以便對該存儲網(wǎng)絡中的不同的待測對象進行測試。該測試請求指示該測試器的操作模式。
在一個實施方式中,該測試器可以被進一步配置為在該操作模式之一下,對該待測對象中的至少一個待測對象進行仿真,從而對與被仿真的待測對象通信的其他待測對象進行測試。
在一個實施方式中,該測試器被進一步配置為在所述操作模式之一下,對所述待測對象中的兩個待測對象進行仿真,從而對與被仿真的兩個待測對象通信的其他待測對象進行測試。
在一個實施方式中,該測試器可以被進一步配置為支持該不同的待測對象之間進行通信的協(xié)議。
在一個實施方式中,該測試器可以進一步包括至少一個測試端口,被配置為向該待測對象傳送測試信號和/或從該待測對象接收針對該測試信號的響應。該測試端口中的每個測試端口與該操作模式之一相關聯(lián)。
在一個實施方式中,該測試端口可以包括以下各項之一:串行附接小型計算機(SAS)端口、光纖通道(FC)端口、以及串行高級技 術附件(SATA)端口。
在一個實施方式中,該處理器可以包括嵌入式處理器。
在一個實施方式中,該待測對象可以至少包括以下各項中的兩項:主機總線適配器(HBA);物理存儲設備;以及耦合于該主機總線適配器和該物理存儲設備之間的存儲擴展設備。
在本發(fā)明的第二方面,提供了一種用于對存儲網(wǎng)絡進行測試的方法。該方法包括:響應于測試請求來生成配置信號;以及通過該配置信號將測試器配置為在不同的操作模式下操作,以便對該存儲網(wǎng)絡中的不同的待測對象進行測試;其中該測試請求指示該測試器的操作模式。
在本發(fā)明的第三方面,提供了一種計算機程序產(chǎn)品,該計算機程序產(chǎn)品被有形地存儲在非瞬態(tài)計算機可讀存儲介質(zhì)上,并且包括機器可執(zhí)行指令。該指令在被執(zhí)行時使得該機器執(zhí)行如上所述的方法的步驟。
利用本發(fā)明所提出的方案,能夠通過一個測試設備來實現(xiàn)對存儲網(wǎng)絡中的多種類型的待測對象的測試,而且測試成本低、操作更為便捷。
附圖說明
下面將參考附圖中示出的若干示例實施例來描述本發(fā)明的原理。應當理解,描述這些實施例僅僅是為了使本領域技術人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。
圖1示意性示出了常規(guī)的存儲網(wǎng)絡的架構(gòu);
圖2示意性示出了根據(jù)本發(fā)明一個實施方式的用于對存儲網(wǎng)絡進行測試的裝置的框圖;
圖3示意性示出了適于用來實踐本發(fā)明實施方式的嵌入式計算設備的框圖;以及
圖4示意性示出了根據(jù)本發(fā)明一個實施方式的用于對存儲網(wǎng)絡進行測試的方法的流程圖。
具體實施方式
下面將參考附圖中示出的若干示例實施例來描述本發(fā)明的原理。應當理解,描述這些實施例僅僅是為了使本領域技術人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。
圖1示出了常規(guī)的存儲網(wǎng)絡100的示意性架構(gòu)。如圖1所示,存儲網(wǎng)絡100包括服務器110以及能夠與之通信的存儲系統(tǒng)。服務器110包括主機總線適配器(HBA)111。HBA 111被配置為實現(xiàn)服務器110的內(nèi)部通道協(xié)議(例如PCI協(xié)議)和存儲系統(tǒng)的I/O通道協(xié)議之間的轉(zhuǎn)換。存儲系統(tǒng)的I/O通道協(xié)議的示例包括、但是不限于:串行連接小型計算機系統(tǒng)接口(Serial Attached Small Computer System Interface,SAS)協(xié)議、光纖通道(Fibre Channel,F(xiàn)C)協(xié)議、以及串行高級技術附件(Serial Advanced Technology Attachment,SATA)協(xié)議。
該存儲系統(tǒng)包括物理存儲設備1201、1202、1203、1204以及1205 (統(tǒng)稱為物理存儲設備120)。作為一個示例,該物理存儲設備為硬盤驅(qū)動器(HDD)。為了擴展存儲網(wǎng)絡100的規(guī)模,可以在服務器110與存儲系統(tǒng)之間耦合一個或多個彼此級聯(lián)的存儲擴展設備1301、1302和1303(統(tǒng)稱為存儲擴展設備130)、以及存儲擴展設備1401和1402(統(tǒng)稱為存儲擴展設備140)。存儲擴展設備130和/或140通常還被配置為將從服務器110接收的命令和/或數(shù)據(jù)路由至相應的物理存儲設備120。作為一個示例,存儲擴展設備130和/或140為交換機。
應當理解,為了清晰起見,圖1中僅示出了一個服務器110。然而,根據(jù)實際需要,可以存在訪問存儲系統(tǒng)的多個服務器110。此外,出于說明的目的,圖1中示出了在每個驅(qū)動器軸(spindle)上僅設置了一個物理存儲設備120。然而,為了節(jié)省空間,可以在每個驅(qū)動器軸上設置了多個物理存儲設備120。
服務器110與物理存儲設備120之間可以基于任何適當?shù)膮f(xié)議來通信。該協(xié)議的示例包括、但是不限于:SAS協(xié)議、FC協(xié)議、以及SATA協(xié)議。
在SAS協(xié)議的示例中,由于服務器110作為I/O命令和/或數(shù)據(jù)的發(fā)起方,因而也被稱作發(fā)起器(initiator)。此外,由于物理存儲設備120作為I/O命令和/或數(shù)據(jù)的接收方,因而也被稱作目標(target)。另外,存儲擴展設備130和/或140也被稱作擴展器(expander)。
在將服務器110、存儲擴展設備130和/或140以及物理存儲設備120組織成存儲網(wǎng)絡100之后,通常需要對其性能進行測試。然而,利用服務器110、存儲擴展設備130和/或140以及物理存儲設備120 各自的生產(chǎn)廠商在研發(fā)過程中所使用的不同測試設備對他們進行測試往往是低效的。因此,期望能夠通過一個測試設備來實現(xiàn)對存儲網(wǎng)絡中的多種類型的待測對象的測試的高效解決方案。
此外,在生產(chǎn)廠商所使用的測試設備往往僅適用于研發(fā)過程,而不適用于后期的使用過程。例如,在將多個物理存儲設備120組織成存儲網(wǎng)絡100的過程中,需要對多個物理存儲設備120進行封裝。在此情況下,如果利用生產(chǎn)廠商所使用的測試設備對封裝后的物理存儲設備120,則需要破壞封裝,從而增大了測試成本并且增大了測試復雜度。因此,期望提供一種低成本且更為便捷的解決方案。
因此,在本發(fā)明的一個方面,提供了一種利用模式可配置的測試器來對存儲網(wǎng)絡中的多種類型的待測對象進行測試的裝置。
圖2示出了根據(jù)本發(fā)明一個實施方式的用于對存儲網(wǎng)絡進行測試的裝置200的框圖。如圖2所示,裝置200包括處理器210以及與處理器210耦合的測試器220。如本文所使用的術語“耦合”包括直接連接或間接地通過中間元件連接。
在一個實施方式中,處理器210被實現(xiàn)為嵌入式處理器?!扒度胧教幚砥鳌笔窍鄬τ谕ㄓ糜嬎銠C處理器而言的,通常指代被設計用于執(zhí)行一個或一些專用功能的處理器。嵌入式處理器的示例包括、但是不限于:嵌入式微處理器(Micro Processor Unit,MPU)、嵌入式微控制器(Microcontroller Unit,MCU)、嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)、以及嵌入式片上系統(tǒng)(System On Chip,SoC)。由于嵌入式處理器具有體積小、易于與其他模塊集成 等優(yōu)點,因此在采用嵌入式處理器的情況下,裝置200也能夠具有較小的尺寸,從而便于攜帶。然而,應當理解,處理器210能夠采用本領域中已知的或?qū)黹_發(fā)的任何適當?shù)男问絹韺崿F(xiàn),本發(fā)明的范圍在此方面不受限制。
處理器210被配置為響應于測試請求來生成配置信號。在一個實施方式中,裝置200進一步包括輸入/輸出設備(未示出),處理器210經(jīng)由該輸入/輸出設備、從測試者來獲取該測試請求。作為一個示例,該輸入/輸出設備包括小鍵盤,例如九宮格鍵盤。測試者可以通過按壓小鍵盤上的預定的按鍵或預定的按鍵組合來向處理器210發(fā)送該測試請求。作為另一個示例,該輸入/輸出設備包括觸摸屏顯示器。測試者可以通過觸摸在該觸摸屏顯示器上呈現(xiàn)的預定的圖標來向處理器210發(fā)送該測試請求。由此,處理器210經(jīng)由該輸入/輸出設備來獲取該測試請求。
附加地或者可替換地,在另一個實施方式中,裝置200進一步包括通信接口(未示出),處理器210經(jīng)由該通信接口從特定計算設備來獲取該測試請求,例如從臺式計算機(PC)、膝上型計算機、平板式計算機、或移動電話等獲取。該通信接口包括串行通信接口和/或并行通信接口。該通信接口的示例包括、但是不限于:以太網(wǎng)接口、USB接口、通用異步收發(fā)器(UART)接口。應當理解,處理器210可以通過任何適當?shù)姆绞絹慝@取該測試請求,本發(fā)明的范圍在此方面不受限制。
在本發(fā)明的各實施方式,處理器210所獲取的測試請求指示將測 試器220配置成何種操作模式。
作為一個示例,在裝置200如上所述那樣包括小鍵盤的情況下,小鍵盤上的預定的按鍵或預定的按鍵組合與測試器220的相應操作模式相關聯(lián)。由此,測試者通過按壓預定的按鍵或預定的按鍵組合來指示將測試器220配置成相應的操作模式。例如,按鍵組合“123”可以與測試器220的第一操作模式相關聯(lián),測試者通過按壓該按鍵組合“123”來指示將測試器220配置成第一操作模式。
作為另一個示例,在裝置200如上所述那樣包括觸摸屏顯示器的情況下,該觸摸屏顯示器上的預定的圖標與測試器220的相應操作模式相關聯(lián)。由此,測試者通過觸摸預定的圖標來指示將測試器220配置成相應的操作模式。例如,“磁盤”圖標可以與測試器220的第一操作模式相關聯(lián),測試者通過觸摸該“磁盤”圖標來指示將測試器220配置成第一操作模式。
在本發(fā)明的各實施方式中,處理器210對所獲取的測試請求進行解析以生成相應的配置信號,利用該配置信號將測試器220配置為在不同的操作模式下操作,以便對存儲網(wǎng)絡中的不同的待測對象進行測試。
在一個實施方式中,測試器220進一步包括一個或多個測試接口,該測試接口支持在不同待測對象之間進行通信的協(xié)議。作為一個示例,上述協(xié)議包括SAS協(xié)議;相應地,該測試接口包括SAS接口。作為另一個示例,上述協(xié)議包括FC協(xié)議;相應地,該測試接口包括FC接口。作為又一個示例,上述協(xié)議包括SATA協(xié)議;相應地,該 測試接口包括SATA接口。
在一個實施方式中,測試器220被進一步配置為在多個操作模式之一下,對多個待測對象中的至少一個待測對象進行仿真,從而對與被仿真的待測對象通信的其他待測對象進行測試。在一個實施方式中,所述待測對象至少包括以下各項中的兩項:主機總線適配器(HBA),物理存儲設備,以及耦合于所述主機總線適配器和所述物理存儲設備之間的存儲擴展設備。該物理存儲設備的示例包括、但是不限于:硬盤驅(qū)動器(HDD)、固態(tài)盤驅(qū)動器(SSD)、磁帶(tape)驅(qū)動器。該存儲擴展設備的示例包括、但是不限于:交換機。
圖3示出了適于用來實踐本發(fā)明實施方式的嵌入式計算設備300的示意性框圖。如圖3所示,嵌入式計算設備300包括嵌入式處理器310。嵌入式處理器310的示例包括、但是不限于:MPU、MCU、EDSP、以及SoC。
此外,嵌入式處理器310可以與RAM以及閃存(Flash)存儲器(未示出)相耦合。可以通過軟件將一部分RAM模擬為硬盤來使用,從而形成虛擬內(nèi)存盤(RAMDISK)。相對于直接的硬盤文件訪問而言,可以極大的提高在其上進行的文件訪問的速度。Flash存儲器中可以存儲有嵌入式計算設備300的操作系統(tǒng)和固件鏡像。
嵌入式計算設備300進一步包括通信接口330。通信接口320的示例包括、但是不限于:以太網(wǎng)接口、USB接口、通用異步收發(fā)器(UART)接口。嵌入式處理器310可以經(jīng)由通信接口330從另一特定計算設備來獲取測試請求,并且響應于該測試請求來生成配置信 號。此外,嵌入式處理器310還可以經(jīng)由通信接口330從該另一特定計算設備接收預定的測試案例(test case),以供在測試過程中運行。
嵌入式計算設備300進一步包括測試器320。測試器320可以實現(xiàn)為支持不同的待測對象之間進行通信的協(xié)議的控制器。該協(xié)議的示例包括、但是不限于:SAS協(xié)議、FC協(xié)議、以及SATA協(xié)議。作為一個示例,在SAS協(xié)議的情況下,測試器320可以實現(xiàn)為SAS控制器320。SAS控制器320是一種支持SAS協(xié)議的磁盤驅(qū)動器控制器。SAS控制器320被配置為從嵌入式處理器310接收配置信號,并且通過該配置信號被配置為在不同的操作模式下操作,以便對存儲網(wǎng)絡中的不同的待測對象進行測試。
嵌入式計算設備300進一步包括測試端口3401、3402、3403、3404(統(tǒng)稱為測試端口340)。測試端口的數(shù)目可以根據(jù)SAS控制器320的操作模式的數(shù)目來確定。因此,盡管圖3中示出了四個測試端口,但是根據(jù)SAS控制器320的操作模式的數(shù)目,嵌入式計算設備300可以包括更多或更少數(shù)目的測試端口。SAS控制器320的每一操作模式均與測試端口340中的一個或多個相關聯(lián)。此外,測試端口340被配置為支持不同的待測對象之間進行通信的協(xié)議。該協(xié)議的示例包括、但是不限于:SAS協(xié)議、FC協(xié)議、以及SATA協(xié)議。作為一個示例,在SAS協(xié)議的情況下,測試端口340可以實現(xiàn)為SAS端口340。
SAS控制器320的操作模式至少包括第一操作模式和第二操作模式。在第一操作模式下,SAS控制器320被配置為對物理存儲設備(例如圖1中的物理存儲設備140)之一進行仿真,或者被配置為充當該 物理存儲設備,以便對服務器上的HBA(例如圖1中的HBA 111)或存儲擴展設備之一(例如圖1中的存儲擴展設備130或140)進行測試。此外,SAS控制器320的第一操作模式與測試端口340之一、例如測試端口3401相關聯(lián)。
在第一操作模式下的測試中,SAS控制器320經(jīng)由測試端口3401例如從HBA 111或存儲擴展設備130/140接收測試數(shù)據(jù)流,將所接收的測試數(shù)據(jù)流發(fā)送至嵌入式處理器310。嵌入式處理器310對測試數(shù)據(jù)流進行分析,以生成測試結(jié)果。測試結(jié)果可以經(jīng)由顯示器350呈現(xiàn)給測試者。此外,測試結(jié)果也可以經(jīng)由通信接口320傳送至另一特定計算設備。
此外,利用本發(fā)明的測試裝置,在第一操作模式下的測試中,不需要采用實際的物理存儲設備、例如硬盤驅(qū)動器或固態(tài)盤驅(qū)動器,因而能夠?qū)崿F(xiàn)利用實際的物理存儲設備所無法進行的極限測試,例如滿12Gbps數(shù)據(jù)路徑的壓力測試。另外,可以理解,如果反復對實際的物理存儲設備進行該極限測試,將嚴重影響物理存儲設備的使用壽命。然而,利用本發(fā)明的測試裝置不但可以達到該極限測試的目的,而且可以避免損害物理存儲設備。
再者,在第一操作模式下的測試中,來自HBA的測試數(shù)據(jù)流可以被寫入RAM中的RAMDISK中??梢岳斫?,如果反復對實際的物理存儲設備進行讀取/寫入操作,將影響物理存儲設備的使用壽命。然而,利用本發(fā)明的測試裝置則可以避免因測試而降低物理存儲設備的使用壽命。
另外,在第一操作模式下的測試中,可以利用本發(fā)明的測試裝置對各種數(shù)據(jù)速率(例如3Gbps、6Gbps或12Gbps)的物理存儲設備進行仿真,避免了頻繁更換實際的物理存儲設備,從而使得測試更加便捷。
在第二操作模式下,SAS控制器320被配置為對服務器上的HBA(例如圖1中的HBA 111)進行仿真,以便對物理存儲設備(例如圖1中的物理存儲設備140)之一或存儲擴展設備之一(例如圖1中的存儲擴展設備130或140)進行測試。在此情況下,SAS控制器320的第二操作模式例如與測試端口3402相關聯(lián)。
在第二操作模式下的測試中,嵌入式處理器310運行預定的測試案例,以生成相應的測試數(shù)據(jù)流。SAS控制器320經(jīng)由測試端口3402向物理存儲設備140或存儲擴展設備130/140發(fā)送該測試數(shù)據(jù)流,并且從物理存儲設備140或存儲擴展設備130/140接收針對該測試數(shù)據(jù)流的響應數(shù)據(jù)流。SAS控制器320將所接收的響應數(shù)據(jù)流發(fā)送至嵌入式處理器310。嵌入式處理器310對響應數(shù)據(jù)流進行分析,以生成測試結(jié)果。
此外,利用本發(fā)明的測試裝置還包括遵循協(xié)議(例如SAS協(xié)議)的標準連接器,從在第二操作模式下,易于將測試裝置經(jīng)由該連接器連接至服務器,從而從服務器獲得電力,而無需連接外部電源。另外,本發(fā)明的測試裝置的尺寸可以被確定為與物理存儲設備的尺寸相同,例如2.5英寸或3.5英寸,從而方便與物理存儲設備和/或存儲擴展設備耦合。
在第三操作模式下,SAS控制器320被配置為對服務器上的HBA(例如圖1中的HBA 111)以及物理存儲設備(例如圖1中的物理存儲設備140)二者進行仿真,以便對存儲擴展設備之一(例如圖1中的存儲擴展設備130或140)進行測試。在此情況下,SAS控制器320的第三操作模式例如與測試端口3403和3404相關聯(lián)。
在第三操作模式下的測試中,嵌入式處理器310運行預定的測試案例,以生成相應的測試數(shù)據(jù)流。SAS控制器320經(jīng)由測試端口3402向存儲擴展設備130/140發(fā)送該測試數(shù)據(jù)流,并且從存儲擴展設備130/140接收針對該測試數(shù)據(jù)流的響應數(shù)據(jù)流。SAS控制器320將所接收的響應數(shù)據(jù)流發(fā)送至嵌入式處理器310。嵌入式處理器310對響應數(shù)據(jù)流進行分析,以生成測試結(jié)果。
值得注意的是,利用本發(fā)明的測試裝置,在第三操作模式下,可以將多個本發(fā)明的測試裝置與存儲擴展設備相耦合,以實現(xiàn)對存儲擴展設備的多發(fā)起器(multi-initiators test)或回送測試(loopback test)。
為了便于理解,以下將結(jié)合圖1和圖3來描述測試器330在不同操作模式下的操作。然而,如上所述,待測對象之間也能夠基于SAS協(xié)議之外的協(xié)議進行通信。在此情況下,測試器330的操作可以隨具體的協(xié)議而變化,本發(fā)明的范圍在此方面不受限制。
作為一個示例,例如參照圖3,測試器330被配置為在第一操作模式下,對物理存儲設備120或存儲擴展設備130/140進行仿真,以便對服務器110上的HBA 111進行測試??梢岳斫?,在協(xié)議層,SAS協(xié)議包括以下三種類型的協(xié)議,根據(jù)所連接的設備來使用相應的協(xié)議 進行數(shù)據(jù)傳輸:(1)串行SCSI協(xié)議(SSP),用于傳輸SCSI命令;(2)SCSI管理協(xié)議(SMP),用于對所連接的設備進行維護和管理;(3)SATA通道協(xié)議(STP),用于SAS設備和SATA設備之間數(shù)據(jù)的傳輸。
在第一操作模式下,測試器330可以基于SMP協(xié)議和/或SSP協(xié)議對HBA 111進行測試,以確定HBA 111能否達到最大的速率要求、最大的IO速度、和/或物理信號質(zhì)量等。
在SMP協(xié)議的示例中,HBA 111可以以期望的速度向測試器330發(fā)送各種SMP子頁面(sub page),例如以3Gbps、6Gbps或12Gbps發(fā)送。測試器330通過測試端口3401接收該SMP子頁面,記錄I/O過程中的任何錯誤,并且將所記錄的內(nèi)容發(fā)送至處理器310。處理器310對從測試器330接收的內(nèi)容進行分析,以生成測試結(jié)果。在一個示例中,處理器310將測試結(jié)果組織為文件,以存儲于本地存儲器、例如閃存中。在另一個示例中,處理器310將測試結(jié)果通過輸入/輸出設備、例如圖3中的顯示器350呈現(xiàn)給測試者。在又一個示例中,處理器310將測試結(jié)果通過通信接口、例如圖3中的通信接口320傳送至特定計算設備。
在SSP協(xié)議的示例中,HBA 111可以以期望的速度向測試器330發(fā)送具有不同模式(pattern)的I/O幀,例如以3Gbps、6Gbps或12Gbps發(fā)送。測試器330監(jiān)控測試端口3401的各個物理端口(phy)的速度,記錄I/O過程中的任何錯誤,并且將所記錄的內(nèi)容發(fā)送至處理器310。處理器310對從測試器330接收的內(nèi)容進行分析,以生成測試結(jié)果。
在第二操作模式下,測試器330可以基于SMP協(xié)議和/或SSP協(xié)議對物理存儲設備120或存儲擴展設備130/140進行測試,以及對其進行特殊的I/O壓力(stress)測試,以確定其能否達到期望的I/O響應速度和/或響應能力。
在SMP協(xié)議的示例中,測試器330通過測試端口3402向物理存儲設備120或存儲擴展設備130/140發(fā)送各種SMP幀。測試器330從物理存儲設備120或存儲擴展設備130/140接收其針對各種SMP幀的響應,以測試物理存儲設備120或存儲擴展設備130/140是否支持各種SMP幀。此外,測試器330記錄I/O過程中的任何錯誤,并且將所記錄的內(nèi)容發(fā)送至處理器330。處理器310對從測試器330接收的內(nèi)容進行分析,以生成測試結(jié)果。
在壓力測試的示例中,測試器330通過測試端口3402向物理存儲設備或存儲擴展設備130/140發(fā)送具有各種模式的I/O壓力并且從物理存儲設備120或存儲擴展設備130/140接收其針對各種I/O壓力的響應。此外,測試器330記錄I/O過程中的任何錯誤,并且將所記錄的內(nèi)容發(fā)送至處理器310。處理器310對從測試器330接收的內(nèi)容進行分析,以生成測試結(jié)果。
在壓力測試的另一示例中,測試器330針對物理存儲設備或存儲擴展設備130/140執(zhí)行不同的I/O壓力測試以驗證其是否支持所有數(shù)據(jù)幀。此外,測試器330記錄I/O過程中的任何錯誤,并且將所記錄的內(nèi)容發(fā)送至處理器310。處理器310對從測試器330接收的內(nèi)容進行分析,以生成測試結(jié)果。
在第三操作模式下,測試器330可以基于SMP協(xié)議和/或SSP協(xié)議對存儲擴展設備130/140進行測試,以及進行特殊的I/O壓力測試。例如,利用多個測試器330對存儲擴展設備130/140的多個特定物理端口(phy)執(zhí)行I/O壓力測試。此外,測試器330記錄I/O過程中的任何錯誤,并且將所記錄的內(nèi)容發(fā)送至處理器310。處理器310對從測試器330接收的內(nèi)容進行分析,以生成測試結(jié)果。
應當理解,測試裝置200和300中的各部件可以是硬件模塊,也可以是軟件單元模塊。處理器210/310、測試器220/330、通信接口320、以及測試端口340可以部分或者全部基于硬件來實現(xiàn),例如被實現(xiàn)為集成電路(IC)、專用集成電路(ASIC)、片上系統(tǒng)(SoC)、現(xiàn)場可編程門陣列(FPGA)等。本發(fā)明的范圍在此方面不受限制。備選地或附加地,在某些實施例中,處理器210/310、測試器220/330、通信接口320、以及測試端口340可以部分或者全部利用軟件和/或固件來實現(xiàn),例如被實現(xiàn)為包含在計算機可讀介質(zhì)上的計算機程序產(chǎn)品。
此外,應當理解,在不同的操作模式下可以根據(jù)具體的測試需求而選擇適當?shù)臏y試案例來運行,本發(fā)明的范圍在此范圍不受限制。
另外,盡管以上結(jié)合圖1的存儲網(wǎng)絡架構(gòu)對測試過程進行了描述,但是本發(fā)明的測試裝置能夠適用于具有任何架構(gòu)的存儲網(wǎng)絡,包括但是不限于:具有SAN(存儲區(qū)域網(wǎng)絡)架構(gòu)的存儲網(wǎng)絡、以及具有NAS(網(wǎng)絡附加存儲)架構(gòu)的存儲網(wǎng)絡。
在本發(fā)明的第二方面,提供了一種用于對存儲網(wǎng)絡進行測試的方 法。圖3示出了根據(jù)本發(fā)明的一個實施例的用于對存儲網(wǎng)絡進行測試的方法400的流程圖。
在步驟S410,響應于測試請求來生成配置信號。在步驟S420,通過所述配置信號將測試器配置為在不同的操作模式下操作,以便對所述存儲網(wǎng)絡中的不同的待測對象進行測試。所述測試請求指示所述測試器的操作模式。
在一個實施方式中,步驟S420包括:在所述操作模式之一下,對所述待測對象中的至少一個待測對象進行仿真,從而對與被仿真的待測對象通信的其他待測對象進行測試。
在一個實施方式中,步驟S420包括:在所述操作模式之一下,對所述待測對象中的兩個待測對象進行仿真,從而對與被仿真的兩個待測對象通信的其他待測對象進行測試。
在一個實施方式中,步驟S420包括:基于所述不同的待測對象之間進行通信的協(xié)議來對所述對象進行測試。
在一個實施方式中,所述測試器進一步包括:至少一個測試端口,被配置為向所述待測對象傳送測試信號和/或從所述待測對象接收針對所述測試信號的響應。方法400進一步包括:將所述測試端口中的每個測試端口與所述操作模式之一相關聯(lián)。
在一個實施方式中,將所述測試端口中的每個測試端口與所述操作模式之一相關聯(lián)包括:響應于配置請求來生成另一配置信號;以及通過所述另一配置信號將所述測試端口中的每個測試端口與所述操作模式之一相關聯(lián);其中所述配置請求指示所述操作模式之一。作為 一個示例,該配置請求經(jīng)由圖3中的通信接口320接收。嵌入式處理器310響應于該配置請求來生成另一配置信號,并且通過所述另一配置信號將所述測試端口中的每個測試端口與所述操作模式之一相關聯(lián)。
在一個實施方式中,所述協(xié)議包括以下各項之一:串行附接小型計算機(SAS)協(xié)議、光纖通道(FC)協(xié)議、以及串行高級技術附件(SATA)協(xié)議。
在一個實施方式中,所述待測對象至少包括以下各項中的兩項:主機總線適配器(HBA);物理存儲設備;以及耦合于所述主機總線適配器和所述物理存儲設備之間的存儲擴展設備。
應當理解,方法400中的步驟可以通過分別參考圖2和圖3描述的裝置200和300來執(zhí)行。因此,上文結(jié)合圖2和圖3描述的特征同樣適用于方法400,并且具有同樣的效果,具體細節(jié)不再贅述。
在本發(fā)明的第三方面,提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品被有形地存儲在非瞬態(tài)計算機可讀存儲介質(zhì)上,并且包括機器可執(zhí)行指令,所述指令在被執(zhí)行時使得所述機器執(zhí)行如上所述的方法的步驟。
計算機可讀存儲介質(zhì)可以是可以存儲由指令執(zhí)行設備使用的指令的有形設備。計算機可讀存儲介質(zhì)例如可以包括但不限于電存儲設備、磁存儲設備、光存儲設備、電磁存儲設備、半導體存儲設備或者上述的任意合適的組合。計算機可讀存儲介質(zhì)的更具體的、非窮舉的例子包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀 存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、靜態(tài)隨機存取存儲器(SRAM)、便攜式壓縮盤只讀存儲器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機械編碼設備、例如其上存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸?shù)碾娦盘枴?/p>
用于執(zhí)行本發(fā)明操作的計算機程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機器指令、機器相關指令、微代碼、固件指令、狀態(tài)設置數(shù)據(jù)、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言—諸如Java、Smalltalk、C++等,以及常規(guī)的過程式編程語言—諸如“C”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡—包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態(tài)信息來個性化定制電子電路,例如可編程邏輯電路、現(xiàn)場可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí) 行計算機可讀程序指令,從而實現(xiàn)本發(fā)明的各個方面。
這里參照根據(jù)本發(fā)明實施例的裝置、方法和計算機程序產(chǎn)品的框圖和/或流程圖描述了本發(fā)明的各個方面。應當理解,框圖和/或流程圖的每個方框以及框圖和/或流程圖中各方框的組合,都可以由計算機可讀程序指令實現(xiàn)。
已經(jīng)出于示例的目的描述了本發(fā)明的各個實施例,但是本發(fā)明并不意圖限于所公開的這些實施例。在不脫離本發(fā)明實質(zhì)的前提下,所有修改和變型均落入由權(quán)利要求所限定的本發(fā)明的保護范圍之內(nèi)。