專利名稱:存儲服務器性能綜合測試系統的制作方法
技術領域:
本發明屬于服務器系統測試領域,為存儲服務器提供了一種標準的性能綜合測試系統。
背景技術:
互聯網的廣泛應用使數據成為維系千百萬企業和機構正常運行的生命線,怎樣對這些數據提供最可靠的保護以及確保它們的暢通已經成為影響企業競爭力的最關鍵的因素。選擇恰當的服務器系統以及相應的內外存儲技術和設備又是實現數據暢通和保護的主要途徑。如何有效的對存儲服務器綜合性能進行測試已經成為人們研究的熱點問題。
業界評測存儲局域網SAN(Storage Area Network)性能的基準測試程序是SPC-1,它主要測評SAN的事務處理能力,測試指標是每秒種輸入輸出數(IOPS),該基準測試程序屬于存儲器性能委員會(Storage PerformanceCouncil)所有。SPC-1測試工具包軟件采用Java語言編寫,可運行在Solaris、AIX和Windows NT/Windows 2000操作系統上,運行SPC-1測試軟件需要Java環境支持。評測存儲服務器的主要環節均由一系列的Java操作構成,優點是可以很方便的跨平臺操作,但缺點是在每臺設備上運行一個個的Java命令會加大評測的復雜度。在SPC-1銷售方面,對于非會員客戶,企業License售價為10000美元,站點License售價為2500美元;對于會員客戶,企業License售價為4000美元,站點License售價為1000美元;對于學術機構,站點License售價為500美元;這些銷售價格相比較目前國內的生產和生活水平而言,相對過高。因此,我們認為SPC-1存在評測過程復雜、評測費用高的問題。
發明內容
本發明的目的是提供一種能克服上述缺陷的存儲服務器性能綜合測試系統,該系統具有簡單、高效和評測成本低的特點。
本發明提供的一種存儲服務器性能綜合測試系統,其特征在于該系統包括設置在客戶機上的測試管理模塊和負載產生模塊;其中測試管理模塊負責設置測試參數,向負載產生模塊發送測試命令,收集負載產生模塊的測試結果數據,并將測試結果數據統計整理后輸出,控制測試全過程;負載產生模塊用于創建I/O訪問流量,在測試管理模塊控制下,傳送I/O請求報文到存儲服務器,并接收存儲服務器返回的響應信息;上述測試管理模塊包括用戶界面模塊、配置信息模塊、定時器模塊、負載管理模塊和進程通信模塊;其中,用戶界面模塊用于人機接口的交互,獲取部分配置信息并傳送給配置信息模塊;配置信息模塊用于接收從用戶界面模塊和配置文件傳送過來的配置信息,并將全部配置信息傳送給負載管理模塊;負載管理模塊產生配置命令、測試命令,并且處理測試結果數據;定時器模塊負責調度負載管理模塊的配置命令和測試命令,控制測試的全過程,并將配置和測試命令傳送給進程通信模塊;進程通信模塊負責將配置命令和測試命令發送給負載產生模塊,并從負載產生模塊收取測試結果數據,完成測試管理模塊與負載產生模塊之間的進程通信;此外,負載管理模塊接收進程通信模塊從負載產生模塊收取的測試結果數據,并將這些數據處理后生成輸出文件;上述負載產生模塊包括測試對象管理模塊、DISK測試模塊、多線程模塊和第一、第二TCP模塊、;第一TCP模塊接收來自測試管理模塊的配置命令和測試命令,并發送給測試對象管理模塊,測試對象管理模塊負責配置測試參數,增加或減少測試對象,并將所有配置命令和測試命令發往多線程模塊;DISK測試模塊負責產生測試流、測試請求命令,接收響應信息和記錄測試結果,并將信息傳送給多線程模塊和第二TCP模塊;多線程模塊負責產生、管理和維護多個DISK測試線程,并發送DISK測試模塊的測試結果數據給測試對象管理模塊,測試對象管理模塊將這些數據統計整理后通過第一TCP模塊發送至測試管理模塊;第二TCP模塊向存儲服務器發送I/O讀或者寫請求報文,并從存儲服務器接收請求報文相應的響應報文。
上述DISK測試模塊包括I/O流產生器子模塊、I/O命令產生器子模塊、I/O命令完成子模塊和統計信息搜集子模塊;I/O流產生器子模塊按照用戶訪問存儲服務器用戶存儲單元的統計特性,產生訪問存儲服務器的一系列I/O流;I/O命令產生器子模塊根據I/O流產生器子模塊產生的I/O流定義,向存儲服務器發出讀/寫請求;I/O命令完成子模塊負責收取由存儲服務器返回的響應信息;統計信息搜集子模塊負責從I/O命令完成子模塊中搜集和整理響應信息的時間,以及讀/寫請求的文件大小。
本發明采用客戶機/服務器體系結構,在高速寬帶局域網中,使用多臺客戶機模擬多個用戶,遵循用戶訪問存儲服務器的統計特性,在規定的測試時間內訪問存儲服務器,測試存儲服務器在各種負載條件下(100%、95%、90%、80%、50%、10%)體現出來的性能,測試指標包括IOPS和LRT,IOPS表示每秒種輸入輸出數,LRT即最小I/O請求響應時間,LRT通常為負載為10%條件下的平均響應時間。本系統采用了Linux下的多線程技術、進程間通信技術和網絡編程技術,評測過程簡單,操作方便,系統資源消耗少,評測費用低。具體而言,本發明具有以下優點及效果(1)測試原理規范測試原理來源于實際,采用用戶訪問存儲服務器的統計特性,具備良好的科學基礎,非常規范。
存儲服務器性能綜合測試系統采用了最新的用戶訪問存儲服務器的統計特性,本系統軟件模塊運行在多個客戶機上,基于客戶機/服務器體系結構,在高速寬帶局域網內,按照用戶訪問存儲服務器的統計特性,模擬典型的商業應用訪問存儲服務器,例如OLTP、數據庫、電子郵件等應用,測試存儲服務器在各種負載條件下體現出來的綜合性能。
(2)評測操作控制精簡存儲服務器性能綜合測試系統采用C/C++作為開發語言,無須客戶機支持Java,降低了對客戶機的系統要求和設置難度;本系統還采用了基于TCP/IP的集中控制技術,利用測試管理模塊全程控制評測過程的各個環節,無須逐個分步操作每臺測試設備,極大地降低了評測過程的復雜度;本系統提供了圖形化的配置界面,方便了人機交互。
(3)評測費用低廉存儲服務器性能綜合測試系統費用低廉,運行本系統軟件模塊的客戶機可由多臺運行Linux的PC機組成,無須專業的工作站,這樣就大大降低了評測成本。
圖1為本發明測試系統的結構示意圖;圖2為測試管理模塊和負載產生模塊的結構示意圖;圖3為DISK測試模塊的子模塊示意圖;具體實施方式
存儲服務系統包括客戶機、存儲服務器和交換機,本發明用于對其中的存儲服務器進行測試,整個測試構筑在高速寬帶局域網中。從工作原理的角度,可以將測試系統分為兩大部分,即測試管理模塊(BenchmarkManager)和負載產生模塊(Load Generator)。這兩個模塊均設置在客戶機上,由于受到單臺PC機硬件性能的限制,這兩個模塊最好是分開安裝到不同的客戶機上。根據測試負載的需要,負載產生模塊可以設置1到多個,并分別安裝到不同的客戶機上。
測試系統的結構如圖1所示,測試管理模塊1主要用于向負載產生模塊2發送測試命令,并控制測試全過程。在測試管理模塊1控制下,負載產生模塊2發送I/O請求報文到存儲服務器4,并接收存儲服務器返回的響應信息。當測試系統包括多個負載產生模塊時,各模塊的功能及工作過程與上述模塊2相同。
下面分別對各模塊作進一步詳細的說明。
測試管理模塊1負責設置測試參數,包括應用存儲單元ASU-1、ASU-2和ASU-3的邏輯卷;啟動和停止測試;收集負載產生模塊的測試結果數據,并將測試結果數據統計整理后以純文本形式輸出。如圖2所示,測試管理模塊1包括配置信息模塊4、定時器模塊5、用戶界面模塊6、負載管理模塊7和進程通信模塊8。用戶界面模塊6用作人機接口,錄入部分配置信息并傳送給配置信息模塊,從用戶界面獲取的配置信息主要有負載產生模塊子線程數。配置信息模塊4用于接收用戶界面模塊錄入的部分配置信息,以及直接從配置文件獲得的配置信息,并將全部配置信息傳送給負載管理模塊7,從配置文件獲取的測試配置參數有應用存儲單元ASU-1、ASU-2和ASU-3的邏輯卷,即路徑和名字。負載管理模塊7包括配置命令和測試命令,完成測試數據的處理,其中配置命令中包含上述所有的配置信息。定時器模塊6負責定時調用負載管理模塊7的配置命令和測試命令,控制存儲服務器綜合性能測試的全過程,它將配置命令和測試命令集傳送給進程通信模塊8。進程通信模塊8負責將配置命令和測試命令發送給負載產生模塊2,并收取每個負載產生模塊發來的測試結果數據,完成測試管理模塊1與負載產生模塊2之間的進程通信。這樣可以確保配置命令和測試命令傳送暢通,測試結果統計準確。此外,負載管理模塊7通過進程通信模塊8,接收所有測試結果數據,并將這些數據分類統計、綜合計算,最后生成數據表格式的TXT文件。
負載產生模塊2用于創建I/O訪問流量,即通過Samba協議向存儲服務器發送I/O請求,同時收取存儲服務器的I/O響應信息,并記錄響應信息達到的時間和文件傳輸大小。如圖2所示,負載產生模塊2包括測試對象管理模塊9、DISK測試模塊10、多線程模塊11、第一TCP模塊12和第二TCP模塊13。
測試對象管理模塊9通過第一TCP模塊12接收來自測試管理模塊1的配置命令,配置命令攜帶了所有與測試相關的配置信息,它們是應用存儲單元ASU-1、ASU-2和ASU-3的邏輯卷和DISK測試線程數;另外,測試對象管理模塊9通過第一TCP模塊12也接收測試管理模塊的測試命令。即第一TCP模塊12發送配置命令和測試命令給測試對象管理模塊9。后者將所有配置命令和測試命令發往多線程模塊11,并接收多線程模塊11發送的各個DISK測試模塊的測試結果數據,將這些數據統計整理后通過第一TCP模塊12發送至測試管理模塊1。
DISK測試模塊10包括I/O流產生器子模塊14、I/O命令產生器子模塊15、I/O命令完成子模塊16和統計信息搜集子模塊17,如圖3所示。I/O流產生器子模塊14按照用戶訪問存儲服務器用戶存儲單元ASU-1、ASU-2、ASU-3的統計特性,產生訪問存儲服務器的一系列I/O流,每個流即為I/O操作的完整定義,包括讀/寫操作,讀/寫文件的大小,以及待訪問的用戶存儲單元;I/O命令產生器子模塊15根據I/O流產生器子模塊14產生的I/O流定義,向存儲服務器發出讀/寫請求;I/O命令完成子模塊16負責收取讀/寫請求發出之后存儲服務器返回的響應信息;統計信息搜集子模塊17負責搜集和整理響應信息的時間,以及讀/寫請求的文件大小。需要說明的是,I/O流產生器子模塊14根據用戶訪問存儲服務器用戶存儲單元的統計特性,調用相應的統計函數,產生訪問存儲服務器的一系列I/O流。
多線程模塊11從測試對象管理模塊9接收配置命令和測試命令,并提取一個重要的配置信息DISK測試線程數,從而產生多個線程,每個線程對應為不同的DISK測試模塊,多線程模塊11負責與這些DISK測試模塊通信發送配置命令,即用存儲單元ASU-1、ASU-2和ASU-3的邏輯卷;發送測試命令;收取每個DISK測試模塊的測試結果數據。即DISK測試模塊10向多線程模塊11發送配置命令測試命令,多線程模塊11向DISK測試模塊10發送測試結果數據。另外,多線程模塊11搜集所有DISK測試模塊的測試結果數據并發往測試對象管理模塊9。
第一TCP模塊12完成負載產生模塊2和測試管理模塊1之間的進程通信,它負責從測試管理模塊1收取配置命令和測試命令,并發送測試結果數據。第二TCP模塊13向存儲服務器發送I/O讀或者寫請求報文,并從存儲服務器接收請求報文相應的響應報文。
本發明為了系統實現上的方便,將測試管理模塊和負載產生模塊放入兩臺客戶機上實現,注意,需要在負載產生模塊程序啟動時,向特定測試管理模塊的IP地址和中指定是否運行實例存儲服務器性能綜合測試系統的配置及運行過程如下(1)建立存儲服務器。所有客戶機和服務器之間通過1000M交換機互聯為一個局域網,為了保證測試結果的正確性,該局域網與其他用途的網絡和設備隔離,避免額外網絡流量影響測試結果。在測試前,按照測試規模,在安裝存儲服務器時設置好用戶存儲單元ASU-1、ASU-2和ASU-3,并將配置這些ASU用Samba協議共享局域網內用戶訪問。應用存儲單元ASU是一個介于數據倉庫和基于主機的應用程序間的邏輯接口,這些基于主機的應用程序完成基準測試,且在此過程中完成持續穩定地存儲讀寫操作。本測試定義了三種不同的ASU數據存儲單元ASU-1,用戶存儲單元ASU-2,日志存儲單元ASU-3。數據存儲單元保存應用系統的原始輸入數據,它占ASU總容量的45%;用戶存儲單元保存應用系統處理過的信息,它占ASU總容量的45%;日志存儲單元包含應用系統為保護數據存儲單元和用戶存儲單元中數據信息的完整性而生成的文件;它占ASU總容量的10%。
(2)在運行負載產生器的客戶機上,用裝載命令smbmount將存儲服務器上共享的ASU安裝在本地目錄上。所有客戶機對三種用戶存儲單元ASU-1、ASU-2和ASU-3的安裝點相同。
(3)運行Benchmark Manager。必須在所有的Load Generator客戶端運行前,啟動Benchmark Manager。在Benchmark Manager的圖形窗口式的配置界面中,輸入需要配置的各項參數和指定的配置文件名。
(4)運行Load Generator,運行時指定測試控制模塊所在客戶端的以太網卡IP地址。每個運行Load Generator的客戶端配有一張千兆以太網卡。Load Generator會根據指定Benchmark Manager的IP地址,向BenchmarkManager注冊,并等待Benchmark Manager的配置命令和測試命令。在測試結束時,向Benchmark Manager發送測試結果數據。
(5)Benchmark Manager收到所有Load Generator發送來的測試結果數據后,其負載管理模塊歸納統計這些測試結果數據,以數據表形式輸出測試結果文本文件。
權利要求
1.一種存儲服務器性能綜合測試系統,其特征在于該系統包括設置在客戶機上的測試管理模塊(1)和負載產生模塊(2);其中測試管理模塊(1)負責設置測試參數,向負載產生模塊(2)發送測試命令,收集負載產生模塊(2)的測試結果數據,并將測試結果數據統計整理后輸出,控制測試全過程;負載產生模塊(2)用于創建I/O訪問流量,在測試管理模塊(1)控制下,傳送I/O請求報文到存儲服務器,并接收存儲服務器返回的響應信息;上述測試管理模塊包括用戶界面模塊(6)、配置信息模塊(4)、定時器模塊(5)、負載管理模塊(7)和進程通信模塊(8);其中,用戶界面模塊(6)用于人機接口的交互,獲取部分配置信息并傳送給配置信息模塊(4);配置信息模塊(4)用于接收從用戶界面模塊(6)和配置文件傳送過來的配置信息,并將全部配置信息傳送給負載管理模塊(2);負載管理模塊(7)產生配置命令、測試命令,并且處理測試結果數據;定時器模塊(5)負責調度負載管理模塊(7)的配置命令和測試命令,控制測試的全過程,并將配置和測試命令傳送給進程通信模塊(8);進程通信模塊(8)負責將配置命令和測試命令發送給負載產生模塊(2),并從負載產生模塊(2)收取測試結果數據,完成測試管理模塊(1)與負載產生模塊(2)之間的進程通信;此外,負載管理模塊(7)接收進程通信模塊(8)從負載產生模塊(2)收取的測試結果數據,并將這些數據處理后生成輸出文件;上述負載產生模塊(2)包括測試對象管理模塊(9)、DISK測試模塊(10)、多線程模塊(11)和第一、第二TCP模塊(12、13);第一TCP模塊(12)接收來自測試管理模塊(1)的配置命令和測試命令,并發送給測試對象管理模塊(9),測試對象管理模塊(9)負責配置測試參數,增加或減少測試對象,并將所有配置命令和測試命令發往多線程模塊(11);DISK測試模塊(10)負責產生測試流、測試請求命令,接收響應信息和記錄測試結果,并將信息傳送給多線程模塊(11)和第二TCP模塊(13);多線程模塊(11)負責產生、管理和維護多個DISK測試線程,并發送DISK測試模塊(10)的測試結果數據給測試對象管理模塊(9),測試對象管理模塊(9)將這些數據統計整理后通過第一TCP模塊(12)發送至測試管理模塊(1);第二TCP模塊(13)向存儲服務器發送I/O讀或者寫請求報文,并從存儲服務器接收請求報文相應的響應報文。
2.根據權利要求1所述的測試系統,其特征在于DISK測試模塊(10)包括I/O流產生器子模塊(14)、I/O命令產生器子模塊(15)、I/O命令完成子模塊(16)和統計信息搜集子模塊(17);I/O流產生器子模塊(14)按照用戶訪問存儲服務器用戶存儲單元的統計特性,產生訪問存儲服務器的一系列I/O流;I/O命令產生器子模塊(15)根據I/O流產生器子模塊(14)產生的I/O流定義,向存儲服務器發出讀/寫請求;I/O命令完成子模塊(16)負責收取由存儲服務器返回的響應信息;統計信息搜集子模塊(17)負責從I/O命令完成子模塊(16)中搜集和整理響應信息的時間,以及讀/寫請求的文件大小。
全文摘要
本發明公開了一種存儲服務器性能綜合測試系統,包括設置在客戶機上的測試管理模塊和負載產生模塊,前者負責設置測試參數,向負載產生模塊發送測試命令,收集負載產生模塊的測試結果數據,并將測試結果數據統計整理后輸出,控制測試全過程;后者用于創建I/O訪問流量,在測試管理模塊控制下,傳送I/O請求報文到存儲服務器,并接收存儲服務器返回的響應信息。本發明在高速寬帶局域網中,使用多臺客戶機模擬多個用戶,遵循用戶訪問存儲服務器的統計特性,在規定的測試時間內訪問存儲服務器,測試其在各種負載條件下體現出來的性能。本發明測試原理科學,采用了Linux下的多線程技術、進程間通信技術和網絡編程技術,具有評測過程簡單,評測費用低等優點。
文檔編號H04L12/26GK1588892SQ20041006087
公開日2005年3月2日 申請日期2004年9月17日 優先權日2004年9月17日
發明者金海 , 謝夏, 李勝利, 盧鵬, 戴志華, 黃瑾, 張琴, 趙俊 申請人:華中科技大學