易奇,賈婧,路楊,張玉,胡懷湘
華北計(jì)算技術(shù)研究所,北京 100083
iSCSI協(xié)議一致性測(cè)試研究與實(shí)現(xiàn)
易奇,賈婧,路楊,張玉,胡懷湘
華北計(jì)算技術(shù)研究所,北京 100083
不同iSCSI協(xié)議實(shí)現(xiàn)之間能否互聯(lián)互通取決于協(xié)議實(shí)現(xiàn)是否與iSCSI協(xié)議規(guī)范相一致。針對(duì)這個(gè)問(wèn)題,研究了iSCSI協(xié)議一致性測(cè)試的測(cè)試原理和測(cè)試流程,設(shè)計(jì)了適合于iSCSI協(xié)議一致性測(cè)試的測(cè)試系統(tǒng)以及基于XML描述的iSCSI協(xié)議一致性測(cè)試套,給出了較為完整的iSCSI協(xié)議一致性測(cè)試?yán)J褂迷摐y(cè)試?yán)龑?duì)某產(chǎn)品的iSCSI協(xié)議實(shí)現(xiàn)進(jìn)行一致性測(cè)試,發(fā)現(xiàn)了被測(cè)實(shí)現(xiàn)存在與協(xié)議規(guī)范不一致的地方。
Internet小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)協(xié)議;一致性測(cè)試;測(cè)試系統(tǒng);可擴(kuò)展標(biāo)記語(yǔ)言(XML);測(cè)試套;測(cè)試?yán)?/p>
隨著計(jì)算機(jī)網(wǎng)絡(luò)和通信技術(shù)的快速發(fā)展,眾多網(wǎng)絡(luò)應(yīng)用需要存儲(chǔ)和處理的信息量爆炸性地增長(zhǎng)??焖僭鲩L(zhǎng)的存儲(chǔ)容量、可靠性和可擴(kuò)展性需求使得企業(yè)越來(lái)越重視網(wǎng)絡(luò)存儲(chǔ)解決方案。目前網(wǎng)絡(luò)存儲(chǔ)技術(shù)采用的連接方式主要有光纖通道和TCP/IP兩種。iSCSI協(xié)議是IP存儲(chǔ)網(wǎng)絡(luò)協(xié)議之一,它融合了目前廣泛應(yīng)用的兩種標(biāo)準(zhǔn)SCSI和TCP/IP,使得SCSI命令、數(shù)據(jù)和狀態(tài)可以在傳統(tǒng)的IP網(wǎng)絡(luò)上傳輸。該協(xié)議在構(gòu)建異構(gòu)的存儲(chǔ)網(wǎng)絡(luò)、解決傳輸距離問(wèn)題以及提供相對(duì)廉價(jià)的解決方案方面有著其他數(shù)據(jù)訪問(wèn)協(xié)議無(wú)法比擬的優(yōu)勢(shì)。
iSCSI協(xié)議是由IBM公司、Cisco公司共同提出,并由因特網(wǎng)工程工作小組(IETF)制定并通過(guò)的協(xié)議標(biāo)準(zhǔn),主要標(biāo)準(zhǔn)文檔是IETF RFC 3720[1]和IETF RFC 5048[2]。由于標(biāo)準(zhǔn)文檔定義的iSCSI協(xié)議是以自然語(yǔ)言描述的文本,實(shí)現(xiàn)者對(duì)于協(xié)議文本的不同理解以及實(shí)現(xiàn)過(guò)程中的非形式化因素都會(huì)導(dǎo)致不同的協(xié)議實(shí)現(xiàn),有時(shí)甚至是錯(cuò)誤的協(xié)議實(shí)現(xiàn)。所以必須進(jìn)行協(xié)議一致性測(cè)試以保證協(xié)議的各種實(shí)現(xiàn)版本之間能夠互通并進(jìn)行可靠的通信。iSCSI協(xié)議一致性測(cè)試的作用在于驗(yàn)證iSCSI協(xié)議實(shí)現(xiàn)的準(zhǔn)確性,判斷iSCSI存儲(chǔ)產(chǎn)品的協(xié)議實(shí)現(xiàn)是否符合協(xié)議的標(biāo)準(zhǔn)規(guī)范。目前,國(guó)外已有iSWAT,iSCT等一些測(cè)試軟件聚焦iSCSI協(xié)議測(cè)試,并且新罕布什爾大學(xué)互操作實(shí)驗(yàn)室作為中立的第三方實(shí)驗(yàn)室,能夠提供iSCSI一致性測(cè)試的測(cè)試套件。但是上述測(cè)試工具或者測(cè)試套件均為國(guó)外的商業(yè)測(cè)試軟件,購(gòu)買價(jià)格或者測(cè)試服務(wù)收費(fèi)昂貴。國(guó)內(nèi)的存儲(chǔ)產(chǎn)品測(cè)試工作剛剛起步,尚未見(jiàn)有介紹類似測(cè)試工具的文獻(xiàn)。本文參考協(xié)議一致性測(cè)試的國(guó)際標(biāo)準(zhǔn),設(shè)計(jì)了適合于iSCSI協(xié)議一致性測(cè)試的測(cè)試系統(tǒng)以及基于XML語(yǔ)言的測(cè)試套描述方式,給出了設(shè)計(jì)的較為完整的iSCSI協(xié)議一致性測(cè)試?yán)⑦M(jìn)行了實(shí)際測(cè)試。本文的研究和設(shè)計(jì)成果為國(guó)內(nèi)的iSCSI協(xié)議一致性測(cè)試工作提供了一種可借鑒的方法和可行的測(cè)試系統(tǒng)。
圖1 iSCSI協(xié)議棧結(jié)構(gòu)及PDU的封裝和傳輸
SCSI協(xié)議是點(diǎn)對(duì)點(diǎn)的、直接相連的計(jì)算機(jī)到存儲(chǔ)器的傳輸協(xié)議。iSCSI是SCSI協(xié)議的延伸,是在傳統(tǒng)的以太網(wǎng)上,借用TCP/IP協(xié)議提供的可靠傳輸能力,傳送SCSI命令及塊級(jí)存儲(chǔ)數(shù)據(jù)的規(guī)則和方法。
2.1 iSCSI協(xié)議結(jié)構(gòu)模型
iSCSI協(xié)議采用客戶端/服務(wù)器結(jié)構(gòu),iSCSI的客戶端(通常是文件服務(wù)器)和服務(wù)器端(通常是各種iSCSI存儲(chǔ)設(shè)備)也分別稱為發(fā)起端(initiator)和目標(biāo)端(target)。iSCSI實(shí)現(xiàn)了從SCSI協(xié)議到TCP/IP協(xié)議的映射,其協(xié)議棧結(jié)構(gòu)如圖1所示[3]。SCSI層根據(jù)應(yīng)用發(fā)出的I/O請(qǐng)求建立SCSI CDB(Command Descriptor Blocks,命令描述符塊),并傳給iSCSI層。iSCSI層對(duì)SCSI CDB進(jìn)行封裝,以便能夠在基于TCP/IP協(xié)議的網(wǎng)絡(luò)上進(jìn)行傳輸。SCSI CDB經(jīng)過(guò)iSCSI層的封裝,形成一組iSCSI PDU,并將它傳遞給TCP層。TCP協(xié)議能提供端到端的透明可靠傳輸,并具有流量控制、擁塞控制等功能。經(jīng)過(guò)TCP封裝后,iSCSI PDU以路由選擇為基礎(chǔ)在以太網(wǎng)上進(jìn)行傳輸。iSCSI PDU的產(chǎn)生,封裝和網(wǎng)絡(luò)傳輸過(guò)程如圖1所示。
Initiator端和target端在TCP層的邏輯連接叫做iSCSI會(huì)話。iSCSI會(huì)話分為兩個(gè)階段:登錄階段和全功能階段。iSCSI登錄階段的任務(wù)是為iSCSI會(huì)話建立TCP連接,鑒別通訊雙方身份以及協(xié)商會(huì)話參數(shù)等。登錄過(guò)程完成后,iSCSI會(huì)話進(jìn)入全功能階段,這時(shí)發(fā)起端就可以把SCSI命令和數(shù)據(jù)封裝在iSCSI PDU中,通過(guò)iSCSI會(huì)話連接傳輸?shù)侥繕?biāo)端的不同邏輯單元(LUNs,Logical Units)。在傳輸事務(wù)處理結(jié)束后,發(fā)起端就可以使用注銷命令向目標(biāo)端申請(qǐng)結(jié)束會(huì)話。
2.2 iSCSI協(xié)議PDU
iSCSI協(xié)議的initiator端和target端通過(guò)交換協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)進(jìn)行有效通信。PDU攜帶了iSCSI協(xié)議的控制信息、狀態(tài)信息、命令和數(shù)據(jù)等。iSCSI協(xié)議的PDU由多個(gè)段組成,其中第一個(gè)段為48 bit的基本頭(Basic Header Segment,BHS)。BHS包含了CDB、LUN等重要信息,是一個(gè)強(qiáng)制的數(shù)據(jù)段,其他段都是可選段。BHS段也是iSCSI協(xié)議PDU的核心部分,BHS的通用格式如圖2所示。
圖2 iSCSI PDU的BHS段結(jié)構(gòu)
由于iSCSI協(xié)議涉及到登錄、讀寫、任務(wù)管理和注銷等多種操作,因此iSCSI協(xié)議規(guī)范中定義了多種PDU,表1為iSCSI協(xié)議規(guī)范定義的主要PDU及其功能。一般來(lái)說(shuō),每種操作類型的PDU都會(huì)自定義和使用BHS段中的“操作碼相關(guān)”域,具體定義可以參看文獻(xiàn)[1]和文獻(xiàn)[2]。
表1 iSCSI協(xié)議的主要PDU及其功能
國(guó)際標(biāo)準(zhǔn)ISO/IEC-9646中定義了對(duì)OSI參考模型和ITU-T協(xié)議進(jìn)行一致性測(cè)試的理論框架和測(cè)試方法(Conformance Testing Methodology Framework,CTMF)[4-7],還為測(cè)試系統(tǒng)的實(shí)現(xiàn)提供了指導(dǎo)。本章借鑒上述標(biāo)準(zhǔn)的框架和方法,研究iSCSI協(xié)議一致性測(cè)試的原理、測(cè)試系統(tǒng)結(jié)構(gòu)和測(cè)試流程。
3.1 測(cè)試原理
iSCSI協(xié)議一致性測(cè)試是指針對(duì)一個(gè)iSCSI協(xié)議的具體實(shí)現(xiàn),測(cè)試者依據(jù)協(xié)議標(biāo)準(zhǔn)文本說(shuō)明,通過(guò)一定的測(cè)試?yán)龑?duì)其進(jìn)行某些方面的測(cè)試以檢驗(yàn)其實(shí)現(xiàn)是否與協(xié)議標(biāo)準(zhǔn)文本相一致。iSCSI協(xié)議一致性測(cè)試是一種“黑盒測(cè)試”,只關(guān)心被測(cè)實(shí)現(xiàn)(Implementation Under Test,IUT)的外部行為。由于無(wú)法對(duì)一個(gè)IUT進(jìn)行窮盡測(cè)試,所以測(cè)試并不能保證IUT的完全正確性。一致性協(xié)議測(cè)試的基本出發(fā)點(diǎn)是只能證明“存在錯(cuò)誤”,而不能證明“不存在錯(cuò)誤”。
具體來(lái)說(shuō),iSCSI協(xié)議一致性測(cè)試的過(guò)程主要就是按照iSCSI協(xié)議規(guī)范的定義構(gòu)建各種功能的PDU,然后按照一定順序發(fā)送構(gòu)建好的PDU,并比較接收到的PDU的內(nèi)容,從而得出協(xié)議的運(yùn)行狀態(tài),并進(jìn)一步得出一致性測(cè)試的結(jié)論。測(cè)試類型主要包括兩種:第一,做正確的事情,觀察IUT的行為是否正常。即在測(cè)試過(guò)程中模擬IUT正常工作的情況,并向IUT發(fā)送一系列正確的iSCSI PDU,驗(yàn)證IUT響應(yīng)了正確的PDU及字段。第二,做錯(cuò)誤的事情,觀察IUT是否能檢測(cè)到錯(cuò)誤并作相應(yīng)處理。也就是說(shuō)在測(cè)試過(guò)程中要模擬各種異常情況(例如修改發(fā)送給IUT的PDU字段或者改變發(fā)送順序等),觀察IUT是否能根據(jù)協(xié)議作出正確反應(yīng)(如發(fā)送Reject PDU、斷開(kāi)連接等)。
3.2 測(cè)試系統(tǒng)設(shè)計(jì)
iSCSI協(xié)議一致性測(cè)試系統(tǒng)的主要功能是編輯和執(zhí)行測(cè)試套,即根據(jù)測(cè)試套定義的測(cè)試?yán)蜏y(cè)試步執(zhí)行測(cè)試,發(fā)送和接收iSCSI PDU,并形成測(cè)試日志供分析和報(bào)告使用。本文設(shè)計(jì)的iSCSI協(xié)議一致性測(cè)試系統(tǒng)在參考國(guó)際標(biāo)準(zhǔn)ISO/IEC-9646的基礎(chǔ)上,結(jié)合了iSCSI協(xié)議自身的特點(diǎn)設(shè)計(jì)而成。在保證一定的實(shí)現(xiàn)復(fù)雜度的前提下,測(cè)試系統(tǒng)在設(shè)計(jì)過(guò)程中既考慮了測(cè)試覆蓋度的要求,也考慮了測(cè)試自動(dòng)化的需求。本文設(shè)計(jì)的iSCSI協(xié)議一致性測(cè)試系統(tǒng)的結(jié)構(gòu)如圖3所示,主要由測(cè)試套顯示和編輯,測(cè)試執(zhí)行器以及日志系統(tǒng)等組成。
圖3 iSCSI協(xié)議一致性測(cè)試系統(tǒng)結(jié)構(gòu)
測(cè)試套編輯工具主要用來(lái)新建和編輯測(cè)試?yán)?。設(shè)計(jì)人員在對(duì)iSCSI協(xié)議標(biāo)準(zhǔn)的文本描述充分理解的基礎(chǔ)上,根據(jù)測(cè)試套描述規(guī)格,設(shè)計(jì)出既適合于人理解又適合于機(jī)器處理的形式化描述的iSCSI測(cè)試套。
測(cè)試套顯示工具由測(cè)試人員使用,可以顯示已經(jīng)編輯好的測(cè)試?yán)y(cè)試步以及待發(fā)送和期望接收的PDU等。
測(cè)試執(zhí)行器使用編輯好的可執(zhí)行測(cè)試集對(duì)被測(cè)實(shí)現(xiàn)IUT進(jìn)行激勵(lì)/響應(yīng)測(cè)試。測(cè)試執(zhí)行器按照測(cè)試集定義的順序,執(zhí)行測(cè)試步的激勵(lì);被測(cè)實(shí)現(xiàn)IUT作出響應(yīng)并由測(cè)試執(zhí)行器接收響應(yīng)的協(xié)議數(shù)據(jù)單元;然后測(cè)試執(zhí)行器對(duì)接收到的PDU進(jìn)行解碼,與測(cè)試?yán)蓄A(yù)期的PDU進(jìn)行比較并給出該測(cè)試步的執(zhí)行結(jié)果。
測(cè)試日志是整個(gè)測(cè)試系統(tǒng)運(yùn)行的記錄,它詳細(xì)記載了測(cè)試集執(zhí)行的順序,發(fā)送和接收的每個(gè)PDU的內(nèi)容以及接收PDU與預(yù)期PDU的每個(gè)字段的比較結(jié)果。測(cè)試日志是分析測(cè)試過(guò)程的重要記錄,也是測(cè)試報(bào)告的基礎(chǔ)。
3.3 測(cè)試流程
參考ISO/IEC-9646中定義的協(xié)議一致性測(cè)試的理論框架和測(cè)試方法,本文研究的iSCSI協(xié)議的一致性測(cè)試的測(cè)試流程如圖4所示。
圖4 iSCSI協(xié)議一致性測(cè)試流程圖
一方面,測(cè)試方在對(duì)被測(cè)協(xié)議實(shí)現(xiàn)IUT進(jìn)行測(cè)試之前,協(xié)議實(shí)現(xiàn)者應(yīng)向測(cè)試方提供協(xié)議實(shí)現(xiàn)一致性聲明PICS(Protocol Implement Conformance Statements)和協(xié)議實(shí)現(xiàn)額外信息PIXIT(Protocol Implementation Extra Information for Testing)。其中PICS列出了IUT所有已實(shí)現(xiàn)的功能,說(shuō)明實(shí)施的要求、能力及選項(xiàng)實(shí)現(xiàn)的情況。PIXIT提供測(cè)試時(shí)必須的協(xié)議參數(shù)以及測(cè)試環(huán)境相關(guān)的信息。測(cè)試者分析PICS/PIXTI文件并根據(jù)協(xié)議標(biāo)準(zhǔn)進(jìn)行靜態(tài)測(cè)試,檢查IUT參數(shù)說(shuō)明是否符合iSCSI協(xié)議標(biāo)準(zhǔn)。
另一方面,測(cè)試者研究iSCSI協(xié)議規(guī)范,得出測(cè)試目的。根據(jù)測(cè)試目的得到一個(gè)獨(dú)立于所有協(xié)議實(shí)現(xiàn)的抽象測(cè)試套(Abstract Test Suite,ATS)。再對(duì)ATS進(jìn)行相應(yīng)轉(zhuǎn)換與底層支持實(shí)現(xiàn),將ATS參數(shù)化生成可執(zhí)行測(cè)試集ETS(Executable Test Suite)。然后執(zhí)行ETS對(duì)IUT進(jìn)行激勵(lì)/響應(yīng)測(cè)試,形成測(cè)試日志。
最后是測(cè)試結(jié)果分析和報(bào)告,對(duì)測(cè)試執(zhí)行產(chǎn)生的測(cè)試日志文件進(jìn)行分析,并將已知的PICS和PIXIT分析與測(cè)試結(jié)果相綜合,獲得IUT測(cè)試的一致性結(jié)論,生成一致性測(cè)試報(bào)告。協(xié)議一致性測(cè)試報(bào)告記錄了所有測(cè)試?yán)臏y(cè)試結(jié)果:成功(PASS)、失敗(FAIL)和不確定(INCONCLUSIVE)。
測(cè)試套用于描述iSCSI協(xié)議一致性測(cè)試的測(cè)試過(guò)程和協(xié)議數(shù)據(jù)單元格式,它在整個(gè)協(xié)議一致性測(cè)試過(guò)程中起著極其重要的作用。國(guó)際上推薦使用形式化語(yǔ)言例如TTCN(Tree and Tabular Combined Notation)、SDL(Specification and Description Language)、LOTOS(Language of Temporal Ordering Specification)等對(duì)自然語(yǔ)言描述的協(xié)議標(biāo)準(zhǔn)進(jìn)行形式化描述。采用上述形式化的語(yǔ)言具有標(biāo)準(zhǔn)化以及通用性等優(yōu)點(diǎn),但是往往形式化語(yǔ)言的定義和實(shí)現(xiàn)極其繁瑣。XML是一種把數(shù)據(jù)表示為文本字符串的語(yǔ)言,它是一種跨平臺(tái)的語(yǔ)言,可以使用任何文本編輯工具來(lái)編輯XML文件。XML在閱讀、修改和共享方面有著其他語(yǔ)言所不具有的優(yōu)越性[8]。本文設(shè)計(jì)的iSCSI協(xié)議一致性測(cè)試系統(tǒng)中,采用XML語(yǔ)言來(lái)描述和保存iSCSI協(xié)議的測(cè)試套,測(cè)試套組成部分之間形成樹(shù)狀的結(jié)構(gòu)框架,層次清晰、關(guān)系明確,既便于機(jī)器處理和執(zhí)行,也便于設(shè)計(jì)人員和測(cè)試人員學(xué)習(xí)和理解。
4.1 測(cè)試套組織結(jié)構(gòu)
iSCSI協(xié)議測(cè)試套分為5個(gè)層次[9]:測(cè)試套ITS(iSCSITestSuit)、測(cè)試組ITG(iSCSITestGroup)、測(cè)試?yán)齀TC(iSCSITestCase)、測(cè)試步TestStep和協(xié)議數(shù)據(jù)單元(Send-PDU和ExpectReceive)。測(cè)試套的每個(gè)層次在測(cè)試系統(tǒng)中都有特定的內(nèi)容和作用。
測(cè)試套:對(duì)應(yīng)于iSCSI協(xié)議。主要內(nèi)容包括測(cè)試套名稱ITSN(iSCSITestSuitName)、測(cè)試套描述ITSD(iSCSITestSuitDescription)以及所包含的測(cè)試組等。一個(gè)測(cè)試套中包含多個(gè)不同測(cè)試目的的測(cè)試組。
測(cè)試組:對(duì)應(yīng)于iSCSI協(xié)議的一個(gè)測(cè)試目的。主要內(nèi)容包括測(cè)試組名稱ITGN(iSCSITestGroupName)、測(cè)試組描述iSCSITestGroupDescription(ITGD)以及所包含的測(cè)試?yán)?。一個(gè)測(cè)試組內(nèi)包含相同目標(biāo)的多個(gè)不同的測(cè)試?yán)?/p>
測(cè)試?yán)簩?duì)應(yīng)于iSCSI協(xié)議的某一項(xiàng)功能,如iSCSI標(biāo)準(zhǔn)中定義的Login功能、數(shù)據(jù)讀寫功能或者加密功能等。主要內(nèi)容包括測(cè)試?yán)鸌TCN(iSCSITestCaseName)、測(cè)試?yán)枋鲂畔TCD(iSCSITestCaseDescription)以及所包含的測(cè)試步TestStep等。一個(gè)測(cè)試組由一個(gè)以上的測(cè)試?yán)M成。
測(cè)試步:對(duì)應(yīng)于iSCSI協(xié)議某項(xiàng)功能的一個(gè)具體動(dòng)作。主要內(nèi)容包括發(fā)送的PDU(SendPDU)和期望接收的PDU(ExpectReceive)等。一個(gè)測(cè)試?yán)粋€(gè)以上的測(cè)試步。
協(xié)議數(shù)據(jù)單元:對(duì)應(yīng)于iSCSI協(xié)議中待發(fā)送或者需要接收的協(xié)議數(shù)據(jù)單元的具體格式。主要內(nèi)容包括協(xié)議數(shù)據(jù)單元名稱PDUName、各個(gè)字段及內(nèi)容(如BHS段、DATE段和DATEDIGESRT段)。
4.2 iSCSI協(xié)議測(cè)試套的XML描述
本文研究的iSCSI協(xié)議一致性測(cè)試系統(tǒng)中,使用形式化語(yǔ)言XML描述iSCSI協(xié)議的測(cè)試套。XML文檔的基本組成部分是元素,XML的內(nèi)容包含在唯一的根元素中,根元素之下再按照層次結(jié)構(gòu)關(guān)系定義一些其他元素,這些元素也可以進(jìn)一步包含各自的子元素。
表2 測(cè)試套中使用XML定義的主要標(biāo)簽
圖6 測(cè)試?yán)f(shuō)明
根據(jù)iSCSI協(xié)議測(cè)試套的層次結(jié)構(gòu)和XML語(yǔ)法,測(cè)試套的XML描述分也為5個(gè)部分:測(cè)試套描述、測(cè)試組描述、測(cè)試?yán)枋?、測(cè)試步描述和協(xié)議數(shù)據(jù)單元描述,這5個(gè)層次之間逐層遞進(jìn)形成整個(gè)XML文檔的樹(shù)狀層次結(jié)構(gòu),如圖5所示。表2列出了測(cè)試套中使用XML定義的主要元素的開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽。
圖5 iSCSI協(xié)議測(cè)試套樹(shù)狀層次結(jié)構(gòu)圖
以上就是描述iSCSI協(xié)議一致性測(cè)試套的XML文件的主要元素和標(biāo)簽。下面通過(guò)一個(gè)例子,來(lái)具體說(shuō)明怎樣使用XML語(yǔ)言描述iSCSI協(xié)議以及測(cè)試iSCSI協(xié)議一致性。本處詳細(xì)分析一個(gè)Login測(cè)試組的測(cè)試?yán)瑴y(cè)試?yán)f(shuō)明[8]如圖6所示。
使用XML語(yǔ)言描述該測(cè)試?yán)鐖D7和圖8所示。其中圖7為測(cè)試?yán)枋鲋魑募?,該文件的描述主要包含以下?nèi)容:測(cè)試套名稱和描述信息、測(cè)試組名稱和描述信息、測(cè)試?yán)Q和描述信息以及測(cè)試步(發(fā)送PDU和接收PDU)。主文件中引用了4個(gè)iSCSI協(xié)議數(shù)據(jù)單元的XML描述文件,分別為PDULogin1.xml、PUDLogin1rsp. xml、PDULogin2.xml和PUDLogin2rsp.xml。圖8給出了XML描述的PDULogin1協(xié)議數(shù)據(jù)單元文件內(nèi)容。iSCSI協(xié)議PDU格式和iSCSI協(xié)議標(biāo)準(zhǔn)密切相關(guān),具體PDU格式可以參看本文2.2節(jié)或者進(jìn)一步的標(biāo)準(zhǔn)文檔,此處不再贅述。測(cè)試系統(tǒng)每次接收到IUT響應(yīng)的PDU后,將其格式和字段與ExpectReceive對(duì)比,判定結(jié)果為PASS或者FAIL,并在日志文件中詳細(xì)記錄發(fā)送和接受PDU的內(nèi)容以及對(duì)比結(jié)果。經(jīng)過(guò)在市面上某iSCSI存儲(chǔ)產(chǎn)品上的測(cè)試,這個(gè)測(cè)試?yán)軌蛘_執(zhí)行,執(zhí)行結(jié)果與預(yù)期結(jié)果相符。
圖7 XML描述的測(cè)試?yán)魑募D
圖8 XML描述的PDULogin1協(xié)議數(shù)據(jù)單元
4.3 iSCSI協(xié)議一致性測(cè)試?yán)O(shè)計(jì)
本文參考協(xié)議標(biāo)準(zhǔn)IETF RFC 3720和IETF RFC 5048中對(duì)iSCSI協(xié)議功能的描述,根據(jù)不同的測(cè)試目的設(shè)計(jì)了完整iSCSI一致性測(cè)試?yán)绫?所示。
表3中的測(cè)試?yán)m然涵蓋了iSCSI一致性協(xié)議的絕大多數(shù)方面,但是應(yīng)該注意到一致性測(cè)試的基本出發(fā)點(diǎn)是只能證明“存在錯(cuò)誤”,而不能證明“不存在錯(cuò)誤”。在實(shí)際測(cè)試中如果發(fā)現(xiàn)問(wèn)題仍需進(jìn)一步補(bǔ)充測(cè)試?yán)踔翜y(cè)試組。
使用表3中的測(cè)試?yán)?,針?duì)市面上某iSCSI存儲(chǔ)產(chǎn)品的iSCSI協(xié)議實(shí)現(xiàn)展開(kāi)了測(cè)試。測(cè)試結(jié)果表明,該產(chǎn)品實(shí)現(xiàn)的iSCSI協(xié)議在測(cè)試?yán)齀TC_ErrorHandling_9-11上與協(xié)議標(biāo)準(zhǔn)不符合。進(jìn)一步分析表明,該版本的iSCSI協(xié)議對(duì)于PDU中DATADIGEST段的錯(cuò)誤沒(méi)有提供相應(yīng)的錯(cuò)誤恢復(fù)機(jī)制。
隨著現(xiàn)代社會(huì)信息化的發(fā)展,存儲(chǔ)設(shè)備在整個(gè)信息設(shè)施投資中的比例日益增加。iSCSI存儲(chǔ)產(chǎn)品相對(duì)于光纖存儲(chǔ)產(chǎn)品來(lái)說(shuō)具有傳輸距離遠(yuǎn)以及價(jià)格低廉等優(yōu)勢(shì),越來(lái)越受到中小型企業(yè)的青睞。市面上眾多iSCSI存儲(chǔ)產(chǎn)品之間的互聯(lián)互通性正日益成為存儲(chǔ)廠商研制產(chǎn)品以及用戶選擇產(chǎn)品一個(gè)重要參考。本文參考協(xié)議一致性測(cè)試的國(guó)際標(biāo)準(zhǔn),研究了iSCSI協(xié)議一致性測(cè)試的測(cè)試原理和測(cè)試流程,設(shè)計(jì)了適合于iSCSI協(xié)議一致性測(cè)試的測(cè)試系統(tǒng);然后研究了iSCSI協(xié)議一致性測(cè)試套的組織結(jié)構(gòu),并設(shè)計(jì)了基于XML語(yǔ)言的測(cè)試套描述方式,最后,在上述工作的基礎(chǔ)上,給出了設(shè)計(jì)的較為完整的iSCSI協(xié)議一致性測(cè)試?yán)?;并使用該測(cè)試?yán)约皽y(cè)試系統(tǒng)對(duì)某存儲(chǔ)產(chǎn)品的iSCSI協(xié)議實(shí)現(xiàn)進(jìn)行了一致性測(cè)試,
表3 iSCSI協(xié)議一致性測(cè)試?yán)?/p>
發(fā)現(xiàn)了被測(cè)實(shí)現(xiàn)在一致性方面的問(wèn)題。進(jìn)一步工作包括測(cè)試系統(tǒng)和測(cè)試?yán)耐晟疲约案鶕?jù)測(cè)試結(jié)果對(duì)被測(cè)實(shí)現(xiàn)不一致地方進(jìn)行深入分析。
[1]Satran J,Meth K,Sapuntzakis C,et al.RFC3270 Internet Small Computer Systems Interface(iSCSI)[S].2004.
[2]Chadalapaka M.RFC5048 Internet Small Computer System Interface(iSCSI)corrections and clarifications[S].2007.
[3]彭聰,陜振,張淑萍,等.iSCSI Target研究與性能測(cè)試[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,31(4):889-892.
[4]International Organization for Standardization.ISO/IEC 9646-1 Information technology-open systems interconnection-conformance testing methodology and framework-part 1:general concepts[S].2nd,Geneva,1994.
[5]International Organization for Standardization.ISO/IEC 9646-2 Information technology-open systems interconnection-conformance testing methodology and framework-part 2:abstract test suite specification[S].1988.
[6]International Organization for Standardization.ISO/IEC 9646-3 Information technology-open systems interconnection-conformance testing methodology and framework-part 3:the Tree and Tabular Combined Notation(TTCN)[S].1994.
[7]International Organization for Standardization.ISO/IEC 9646-4 Information technology-open systems interconnection-conformance testing methodology and framework-part 4:test realization[S].1988.
[8]李華,張濤,葉新銘,等.基于XML的OSPFv3一致性測(cè)試研究[J].計(jì)算機(jī)科學(xué),2007,34(4):59-62.
[9]李華,葉新銘,曾敏,等.基于XML的協(xié)議一致性測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2006,33(10):275-278.
[10]丁雪蓮.Linux環(huán)境下的BGP4+一致性測(cè)試研究[J].電子科技,2011,24(6):83-86.
[11]TD-SCDMA協(xié)議一致性測(cè)試研究及其測(cè)試?yán)膶?shí)現(xiàn)[D].北京:北京交通大學(xué),2011.
YI Qi,JIA Jing,LU Yang,ZHANG Yu,HU Huaixiang
North China Institute of Computing Technology,Beijing 100083,China
The interconnection of the different iSCSI protocols implementation depends on the conformance between the protocol implementation and the iSCSI protocol specification.In view of this problem,the test principle and processes of the iSCSI protocol conformance testing are proposed in this paper.The test system suitable for iSCSI protocol conformance testing and test suite which is described by XML is designed.A set of relative integrity test cases is provided.Moreover, the iSCSI protocol implementation of a particular product is tested using the test cases.Test result shows that there are some inconsistence existing between the tested implementation and the protocol specification.
Internet Small Computer System Interface(iSCSI)protocol;conformance testing;test system;Extensible Markup Language(XML);test suite;test case
YI Qi,JIA Jing,LU Yang,et al.Research and realization of iSCSI protocol conformance testing.Computer Engineering and Applications,2014,50(6):77-82.
易奇(1984—),男,碩士,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)存儲(chǔ)技術(shù);賈婧(1985—),女,碩士,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)存儲(chǔ)技術(shù);路楊(1989—),男,工程師,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)存儲(chǔ)技術(shù);張玉(1976—),女,工程師,主要研究方向?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu);胡懷湘(1965—),男,正研級(jí)高工,主要研究方向?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu),網(wǎng)絡(luò)存儲(chǔ)技術(shù)。E-mail:curtis.tju07@yahoo.com.cn
2012-05-03
2012-06-18
1002-8331(2014)06-0077-06
A
TP393.04
10.3778/j.issn.1002-8331.1204-0624