專利名稱:一種磁盤陣列分布式測試方法
技術領域:
本發(fā)明涉及存儲技術領域,特別涉及一種磁盤陣列分布式測試方法。
背景技術:
磁盤陣列(RIAD)是由多個磁盤構成的并行讀寫存儲系統(tǒng)。其特點是存儲容量可 以做得很大,不受單一磁盤容量的限制。也正因為這個特點,磁盤陣列技術被廣泛應用在了 眾多應用領域中。其中,視頻監(jiān)控中的數(shù)據(jù)存儲是應用磁盤陣列技術的一個重要領域,由于視頻圖 像的數(shù)據(jù)量很大,因此應用磁盤陣列來保存視頻監(jiān)控的內(nèi)容已經(jīng)越來越多地被人們采用, 對于視頻監(jiān)控來說,不光是存儲容量,其對于存儲設備的性能也有一定的要求,這種要求在 視頻監(jiān)控行業(yè)中,體現(xiàn)為多路視頻監(jiān)控設備的數(shù)據(jù)流同時對同一磁盤陣列進行的并發(fā)寫操 作能力。隨著磁盤陣列技術的飛速發(fā)展,磁盤陣列的容量、性能以及可以支持的主機接口 數(shù)量也不斷增加。目前,磁盤陣列的主機接口的速率已經(jīng)提高到萬兆,數(shù)量可以達到16個 甚至更多,每秒讀寫(I0PQ可以達到百萬級,而由此帶來的問題就是沒有辦法對這樣的高 性能磁盤陣列系統(tǒng)的性能進行測試,現(xiàn)有單臺服務器通過數(shù)據(jù)線與磁盤陣列直接相連,通 過并發(fā)讀寫操作指令來測試磁盤陣列性能的方法,已經(jīng)產(chǎn)生了瓶頸,單臺服務器并發(fā)的讀 寫操作已經(jīng)沒有能力讓測試磁盤陣列滿負荷運行了,因此無法實現(xiàn)對高性能磁盤陣列的測 試ο另外,目前業(yè)界流行的測試工具,如開源性能測試工具IOmeter,該工具主要測試 磁盤陣列裸設備的性能,沒有按照視頻監(jiān)控業(yè)務中的數(shù)據(jù)流和特點來進行,測試的結果對 視頻監(jiān)控行業(yè)的應用指導意義不大,無法明確磁盤陣列在使用中可以支持多少路視頻監(jiān)控 攝像頭等具體應用參數(shù)。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種磁盤陣列分布式測試方法,能夠?qū)崿F(xiàn)對高性能磁盤陣列的 測試。為達到上述目的,本發(fā)明的技術方案具體是這樣實現(xiàn)的一種磁盤陣列分布式測試方法,該方法包括客戶端與服務端通過IP地址和端口號建立連接,并接收服務端發(fā)送的測試參數(shù), 該測試參數(shù)至少包括并發(fā)寫任務數(shù)、寫速率和丟包率;客戶端根據(jù)服務端發(fā)送的啟動指令啟動運行,并按照接收的測試參數(shù)中的并發(fā)寫 任務數(shù)、速率和丟包率創(chuàng)建并執(zhí)行對應的寫任務;客戶端創(chuàng)建并執(zhí)行檢測任務,在預設時間內(nèi)檢測每一個寫任務的丟包率,如果丟 包率在所述丟包率范圍內(nèi),則逐次增加寫任務,否則將繼續(xù)判斷,若為首次執(zhí)行寫任務,則 停止運行寫任務,并向服務端上報測試參數(shù)需要調(diào)整的信息;如果不是首次運行寫任務,則將當前的寫任務總數(shù)上報服務端后結束寫任務運行。較佳地,所述測試參數(shù)進一步包括運行時間,用于表示客戶端執(zhí)行一次寫任務的 持續(xù)運行時間。較佳地,所述預設時間為根據(jù)所述運行時間設置的時間。較佳地,所述逐次增加寫任務包括每次增加一個寫任務。較佳地,該方法進一步包括客戶端將檢測任務執(zhí)行過程中檢測到的每一路寫任務的寫速率和丟包率信息實 時發(fā)送給服務端。較佳地,所述啟動指令由服務端向所有沒有執(zhí)行過寫任務的客戶端發(fā)送。較佳地,該方法進一步包括服務端接收到客戶端發(fā)送的測試參數(shù)需要調(diào)整的信息后,將修改后的測試參數(shù)下 發(fā)給客戶端,并向客戶端發(fā)送再次執(zhí)行寫任務的指令。較佳地,該方法進一步包括若客戶端接收到服務端發(fā)送的再次執(zhí)行寫任務的指令及修改后的測試參數(shù),則按 照修改后的測試參數(shù)繼續(xù)創(chuàng)建并執(zhí)行寫任務及其后續(xù)步驟。由上述的技術方案可見,本發(fā)明的這種磁盤陣列分布式測試方法,服務端和多個 客戶端之間通過IP地址和端口號建立通信連接,可以實現(xiàn)控制多臺客戶端服務器同時對 磁盤陣列進行并發(fā)寫測試,實現(xiàn)對高性能磁盤陣列的測試。另外,通過客戶端并發(fā)寫任務的 測試方法,模擬視頻監(jiān)控攝像頭對磁盤陣列的實時數(shù)據(jù)流寫入,并通過統(tǒng)計在設定丟包率 的范圍內(nèi),客戶端可以運行的寫任務的最大數(shù)目,得到磁盤陣列可以支持的視頻監(jiān)控攝像 頭的數(shù)目信息,而這個信息對于視頻監(jiān)控行業(yè)來說,是具有指導意義的應用參數(shù),彌補了現(xiàn) 有測試技術的不足。
圖1為本發(fā)明實施例的磁盤陣列分布式測試方法客戶端流程圖;圖2為本發(fā)明實施例的磁盤陣列分布式測試方法服務端流程圖。
具體實施例方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對 本發(fā)明進一步詳細說明。本發(fā)明主要思想是服務端通過IP地址和端口號和多個客戶端建立連接,來實現(xiàn) 分布式的測試架構;通過服務端設置測試參數(shù),并控制客戶端寫任務的執(zhí)行,多個客戶端同 時執(zhí)行服務端設置的寫任務,并實時地向服務端發(fā)送寫任務的執(zhí)行情況,如寫速率、丟包率 等信息,服務端可以根據(jù)這些參數(shù)調(diào)整測試參數(shù),最終得到磁盤陣列可以支持的并發(fā)寫任 務總數(shù)。為實現(xiàn)上述設計思想,本發(fā)明中在客戶端和服務端所需執(zhí)行的操作如下客戶端步驟A、通過IP地址和端口號與服務端建立連接,并接收服務端發(fā)送的測試參數(shù),該測 試參數(shù)至少包括并發(fā)寫任務數(shù)、寫速率、和丟包率。
B、根據(jù)服務端發(fā)送的啟動指令啟動運行,并按照接收的測試參數(shù)中的并發(fā)寫任務 數(shù)、速率和丟包率創(chuàng)建并執(zhí)行對應的寫任務。C、創(chuàng)建并執(zhí)行檢測任務,在預設時間檢測每一個寫任務的丟包率,如果丟包率在 所述丟包率范圍內(nèi),則逐次增加寫任務,否則將繼續(xù)判斷,若為首次執(zhí)行寫任務,則停止運 行寫任務,并向服務端上報測試參數(shù)需要調(diào)整的信息;如果不是首次運行寫任務,則將當前 的寫任務總數(shù)上報服務端后結束寫任務運行。另外,如果需要,可以將檢測任務執(zhí)行過程中檢測到的每一路寫任務的速率和丟 包率信息實時發(fā)送給服務端。與客戶端步驟對應的服務端步驟A、服務端根據(jù)各個客戶端的IP地址和端口號與各個客戶端建立對應連接;B、統(tǒng)一向相連的各個客戶端發(fā)送測試參數(shù),至少包括并發(fā)寫任務數(shù)、寫速率和丟 包率;C、同時向所有沒有執(zhí)行寫任務的客戶端發(fā)送啟動指令,并接收客戶端實時反饋的 每一路寫任務的速率和丟包率信息;D、接收客戶端上報的重新設置參數(shù)的信息及寫任務數(shù)目信息。本方法是用每一路寫任務來模擬一個IP視頻監(jiān)控攝像頭實時錄制的數(shù)據(jù)流,因 此最后服務端根據(jù)所有客戶端上報的寫任務的總數(shù)目就可以得到磁盤陣列可以支持的視 頻監(jiān)控攝像頭個數(shù)的應用參數(shù),這對于磁盤陣列在視頻監(jiān)控中的應用來說,是具有指導意 義的應用參數(shù),也是現(xiàn)有技術所無法得到的。另外,服務端向客戶端發(fā)送的測試參數(shù)中還可以包括寫任務運行時間,即客戶端 執(zhí)行一次寫任務的持續(xù)時間。為了更加真實的模擬視頻監(jiān)控攝像頭的并發(fā)情況,客戶端檢測丟包率時的計算方 式為單位時間內(nèi)未收到磁盤陣列寫操作完成的數(shù)量/寫操作的總數(shù)。在本方法中,客戶端的數(shù)量可以根據(jù)實際測試的磁盤陣列的性能和磁盤陣列的主 機接口數(shù)量靈活設定。在本方法中,當客戶端收到測試參數(shù)并首次運行時,一旦發(fā)現(xiàn)丟包率超過預設的 正常范圍,將主動上報服務端,提示設置的寫任務過多,需要調(diào)整測試參數(shù),并結束寫任務 的運行。當客戶端按照測試參數(shù)運行一段時間后,丟包率在預設的正常范圍內(nèi),則其創(chuàng)建的 檢測任務會自動逐次增加寫任務的數(shù)目,可以每次增加一個,或者每次增加多個,具體增加 的數(shù)目任意,如果增加寫任務數(shù)目后,丟包率超過了預設的正常范圍,則客戶端將自動停止 所有寫任務,并上報當前的寫任務總數(shù)給服務端。測試參數(shù)中的寫速率對應于視頻監(jiān)控攝像頭的錄制數(shù)據(jù)流的分辨率,例如標清、 高清或自定義速率等,這樣,根據(jù)測試參數(shù)中的寫速率信息,就可以得到更多的具有指導意 義的應用參數(shù)。在下文中將結合附圖按照測試執(zhí)行的順序進行具體介紹??蛻舳说牧鞒倘鐖D1所示,包括如下步驟步驟101,接收服務端發(fā)送的測試參數(shù),該參數(shù)主要包括寫磁盤陣列的速率,如 2Mb/s ;并發(fā)寫任務數(shù),如100路;正常丟包率,如;寫任務的運行時間,如3分鐘。步驟102,按照測試參數(shù)創(chuàng)建并執(zhí)行寫任務,這是模擬視頻監(jiān)控攝像頭將視頻流實
5時寫入磁盤陣列的過程。步驟103,監(jiān)控每一路寫任務的丟包情況,若在預先設置的運行時間如3分鐘內(nèi), 所有寫任務的丟包率均在預設的正常范圍內(nèi),S卩1 %以內(nèi),則執(zhí)行步驟104,否則執(zhí)行步驟 105。另外,若需要,本步驟中還可以實時地將每一路寫任務的丟包率信息發(fā)動給服務端,丟 包率可以每1秒更新一次,具體更新頻率任意。步驟104,增加寫任務,然后返回步驟102。增加的寫任務數(shù)量任意,推薦每次增加一路。步驟105,判斷當前寫任務是否為客戶端首次運行的寫任務,若是,則執(zhí)行步驟 106 ;否則執(zhí)行步驟108。步驟106,停止寫任務,并將寫當前寫任務的總數(shù)目上報給服務端,提示服務端測 試參數(shù)需要調(diào)整。由于該寫任務是第一次運行,就出現(xiàn)了丟包的現(xiàn)象,說明初始設置的測試參數(shù)不 是很合適,需要減小寫任務的數(shù)目,或者稍微調(diào)高丟包率。步驟107,判斷是否收到服務端發(fā)送的再次執(zhí)行寫任務的指令,若是,則執(zhí)行步驟 101,否則返回步驟106。步驟108,停止寫任務,并將客戶端支持的最大寫任務的數(shù)目上報給服務端。寫任務多次自動增加達到一定程度后,就會出現(xiàn)丟包率超過正常范圍,這時客戶 端會將最大支持的寫任務數(shù)上報給服務端,并停止寫任務的執(zhí)行。服務端的流程如圖2所示,包括如下步驟步驟201,通過指定的IP地址和端口號連接客戶端。步驟202,向客戶端下發(fā)測試參數(shù),該參數(shù)至少包括寫速率,如2Mb/s ;并發(fā)寫任務 數(shù),如100路;正常丟包率,如;,如果需要,還可以包括寫任務的運行時間,如3分鐘, 如果不包括,則客戶端根據(jù)自身預設的運行時間運行。步驟203,同時向所有沒有執(zhí)行過寫任務的客戶端發(fā)送啟動指令,另外,如果需要, 還可以對應步驟103,接收客戶端發(fā)送的每一路寫任務的丟包率信息。步驟204,判斷是否接收到客戶端上報的測試參數(shù)需要調(diào)整的提示消息,若是時, 執(zhí)行步驟202,否則執(zhí)行步驟205。步驟205,接收客戶端上報的各自最大支持的寫任務數(shù),并在接收到所有客戶端上 報的各自最大支持的寫任務數(shù)后,結束流程。舉一個具體測試的例子,例如被測的磁盤陣列為一款網(wǎng)絡附屬存儲(NAS)設備, 提供了 4個1( 的以太網(wǎng)接口,在測試的時候,使用4臺服務器作為客戶端,每個服務器配 備有一個1( 的以太網(wǎng)接口,與該磁盤陣列連接。初始測試參數(shù)為寫任務的速率為標清的 2Mbps,并發(fā)寫任務數(shù)為200個,正常丟包率設置為1 %,在第一次運行時,所有的寫任務均 正常執(zhí)行。之后,客戶端自動增加寫任務數(shù),在5分鐘后,寫任務數(shù)自動增加到了 800個,這 時出現(xiàn)了一個客戶端的多個寫任務丟包率超過正常范圍即的情況,此時,可以通過服務 端發(fā)送的測試參數(shù)減少該客戶端的寫任務數(shù),最終所有客戶端上報的最大支持的寫任務數(shù) 為768個,完成測試。通過上述測試,可以方便、快捷的得到該磁盤陣列在視頻監(jiān)控應用中可以支持的 攝像頭總數(shù)為768個這個測試結果。當然本發(fā)明也適合在IPTV的業(yè)務環(huán)境中,用來測試實
6時節(jié)目錄制時,磁盤陣列可以支持的節(jié)目錄制的數(shù)量。 由上述的實施例可見,本發(fā)明的這種磁盤陣列分布式測試方法,服務端和多個客 戶端之間通過IP地址和端口號建立通信連接,可以實現(xiàn)控制多臺客戶端服務器同時對磁 盤陣列進行并發(fā)寫測試,實現(xiàn)對高性能磁盤陣列的測試。另外,通過客戶端并發(fā)寫任務的測 試方法,模擬視頻監(jiān)控攝像頭對磁盤陣列的實時數(shù)據(jù)流寫入,并通過統(tǒng)計在設定丟包率的 范圍內(nèi),客戶端可以運行的寫任務的最大數(shù)目,得到磁盤陣列可以支持的視頻監(jiān)控攝像頭 的數(shù)目信息,而這個信息對于視頻監(jiān)控行業(yè)來說,是具有指導意義的應用參數(shù),彌補了現(xiàn)有 測試技術的不足。
權利要求
1.一種磁盤陣列分布式測試方法,其特征在于,該方法包括客戶端與服務端通過IP地址和端口號建立連接,并接收服務端發(fā)送的測試參數(shù),該測 試參數(shù)至少包括并發(fā)寫任務數(shù)、寫速率和丟包率;客戶端根據(jù)服務端發(fā)送的啟動指令啟動運行,并按照接收的測試參數(shù)中的并發(fā)寫任務 數(shù)、速率和丟包率創(chuàng)建并執(zhí)行對應的寫任務;客戶端創(chuàng)建并執(zhí)行檢測任務,在預設時間內(nèi)檢測每一個寫任務的丟包率,如果丟包率 在所述丟包率范圍內(nèi),則逐次增加寫任務,否則將繼續(xù)判斷,若為首次執(zhí)行寫任務,則停止 運行寫任務,并向服務端上報測試參數(shù)需要調(diào)整的信息;如果不是首次運行寫任務,則將當 前的寫任務總數(shù)上報服務端后結束寫任務運行。
2.如權利要求1所述的磁盤陣列分布式測試方法,其特征在于,所述測試參數(shù)進一步 包括運行時間,用于表示客戶端執(zhí)行一次寫任務的持續(xù)運行時間。
3.如權利要求2所述的磁盤陣列分布式測試方法,其特征在于,所述預設時間為根據(jù) 所述運行時間設置的時間。
4.如權利要求1所述的磁盤陣列分布式測試方法,其特征在于,所述逐次增加寫任務 包括每次增加一個寫任務。
5.如權利要求1所述的磁盤陣列分布式測試方法,其特征在于,該方法進一步包括 客戶端將檢測任務執(zhí)行過程中檢測到的每一路寫任務的寫速率和丟包率信息實時發(fā)送給服務端。
6.如權利要求1所述的磁盤陣列分布式測試方法,其特征在于,所述啟動指令由服務 端向所有沒有執(zhí)行過寫任務的客戶端發(fā)送。
7.如權利要求1所述的磁盤陣列分布式測試方法,其特征在于,該方法進一步包括 服務端接收到客戶端發(fā)送的測試參數(shù)需要調(diào)整的信息后,將修改后的測試參數(shù)下發(fā)給客戶端,并向客戶端發(fā)送再次執(zhí)行寫任務的指令。
8.如權利要求7所述的磁盤陣列分布式測試方法,其特征在于,該方法進一步包括 若客戶端接收到服務端發(fā)送的再次執(zhí)行寫任務的指令及修改后的測試參數(shù),則按照修改后的測試參數(shù)繼續(xù)創(chuàng)建并執(zhí)行寫任務及其后續(xù)步驟。
全文摘要
本發(fā)明公開了一種磁盤陣列分布式測試方法,該方法包括客戶端與服務端通過IP地址和端口號建立連接,并接收服務端發(fā)送的測試參數(shù),該測試參數(shù)至少包括并發(fā)寫任務數(shù)、寫速率和丟包率;客戶端根據(jù)服務端發(fā)送的啟動指令啟動運行,并按照接收的測試參數(shù)中的并發(fā)寫任務數(shù)、速率和丟包率創(chuàng)建并執(zhí)行對應的寫任務;客戶端創(chuàng)建并執(zhí)行檢測任務,在預設時間內(nèi)檢測每一個寫任務的丟包率,如果丟包率在所述丟包率范圍內(nèi),則逐次增加寫任務,否則將繼續(xù)判斷,若為首次執(zhí)行寫任務,則停止運行寫任務,并向服務端上報測試參數(shù)需要調(diào)整的信息;如果不是首次運行寫任務,則將當前的寫任務總數(shù)上報服務端后結束寫任務運行。該方法可以實現(xiàn)對高性能磁盤陣列的測試。
文檔編號H04L12/26GK102075385SQ20101062257
公開日2011年5月25日 申請日期2010年12月28日 優(yōu)先權日2010年12月28日
發(fā)明者方同松 申請人:云海創(chuàng)想信息技術(北京)有限公司, 云海創(chuàng)想信息技術(無錫)有限公司