本發(fā)明涉及存儲設備的性能測試技術領域,特別是涉及一種SAN存儲設備的IO性能測試方法及裝置。
背景技術:
SAN的英文全稱是Storage Area Network,即存儲區(qū)域網(wǎng)絡。它是一種高速網(wǎng)絡或子網(wǎng)絡,提供在計算機與存儲系統(tǒng)之間的數(shù)據(jù)傳輸。存儲設備是指一臺或多臺用以存儲計算機數(shù)據(jù)的磁盤設備。一個SAN網(wǎng)絡由負責網(wǎng)絡連接的通信結構、負責組織連接的管理層、存儲部件以及計算機系統(tǒng)構成,從而保證數(shù)據(jù)傳輸?shù)陌踩院土Χ?。SAN支持磁盤鏡像技術(disk mirroring)、備份與恢復(backup and restore)、檔案數(shù)據(jù)的存檔和檢索、存儲設備間的數(shù)據(jù)遷移以及網(wǎng)絡中不同服務器間的數(shù)據(jù)共享等功能。此外SAN還可以用于合并子網(wǎng)和網(wǎng)絡附接存儲(NAS:network-attached storage)系統(tǒng)。
隨著SAN存儲架構的不斷成熟,SAN存儲設備的種類也越來越豐富,作為一款存儲產(chǎn)品,IO性能是衡量其好壞的一個重要指標,所以迫切需要一種測試存儲設備IO性能的方法。Iometer是Intel公司開發(fā)的一款開源的,用于單一或集群系統(tǒng)中的IO子系統(tǒng)性能測試的工具。Iometer主要是基于Windows 操作系統(tǒng)的,可以對存儲子系統(tǒng)的讀寫性能進行測試。Iometer可以顯示磁盤系統(tǒng)的最大IO能力、磁盤系統(tǒng)的最大吞吐量、CPU使用率、錯誤信息等。Iometer的負載IO是基于數(shù)據(jù)塊的,主要用于測試物理設備的性能,比較適合于測試SAN存儲設備。
傳統(tǒng)的存儲性能測試方法只對單一LUN進行最大每秒進行讀寫操作的次數(shù)(Input/Output Operations Per Second,IOPS)或最大帶寬的測試,并以此衡量存儲設備的性能,但SAN存儲往往用于集群文件系統(tǒng),多臺客戶機同時訪問存儲的情況,而且根據(jù)客戶機提供的服務不同,實際的IO性能與傳統(tǒng)的測試方法給出的結論有較大差異。
技術實現(xiàn)要素:
本發(fā)明目的是提供一種SAN存儲設備的IO性能測試方法及裝置,其在不同測試客戶機上并發(fā)執(zhí)行模擬實際應用場景的IO訪問,以得出更接近于實際的性能測試值,以便客戶針對不同的應用靈活準確的選取不同特性的存儲設備。
為了實現(xiàn)上述目的,本發(fā)明采用以下的技術方案:
一種SAN存儲設備的IO性能測試方法,包括以下步驟:
存儲設備創(chuàng)建多個邏輯單元號LUN,并分別掛載在多臺測試客戶機;
控制客戶機安裝IO性能測試工具,測試客戶機安裝負載生成器;
控制客戶機和測試客戶機進行通信;
控制客戶機通過IO性能測試工具配置負載生成器,負載生成器執(zhí)行相應的IO操作。
優(yōu)選地,存儲設備創(chuàng)建多個LUN,并分別掛載在多臺測試客戶機之前,包括以下步驟:
將存儲設備的存儲空間釋放;
重新創(chuàng)建磁盤陣列RAID;
創(chuàng)建存儲池,把已創(chuàng)建的RAID加入存儲池中;
在存儲池中創(chuàng)建多個LUN。
優(yōu)選地,LUN 的大小均為存儲設備緩存的兩倍至五倍。
優(yōu)選地,重新創(chuàng)建RAID,進一步包括:根據(jù)存儲設備支持的類型不同覆蓋所有RAID級別。
優(yōu)選地,所述IO性能測試工具基于Windows操作系統(tǒng)。
優(yōu)選地,所述控制客戶機采用Windows操作系統(tǒng),記作Windows客戶機;所述測試客戶機采用Linux操作系統(tǒng),記作Linux客戶機。
優(yōu)選地,LUN使用接口協(xié)議分別掛載在多臺測試客戶機。
本發(fā)明還提供一種SAN存儲設備的IO性能測試裝置,包括:
LUN創(chuàng)建模塊,用于在存儲設備創(chuàng)建多個LUN,并分別掛載在多臺測試客戶機;
測試工具安裝模塊,用于在控制客戶機上安裝IO性能測試工具,在測試客戶機上安裝負載生成器;
負載生成器配置模塊,用于控制客戶機通過IO性能測試工具配置負載生成器,負載生成器執(zhí)行相應的IO操作。
優(yōu)選地,還包括:RAID重建模塊,用于重新創(chuàng)建RAID。
優(yōu)選地,還包括:存儲池創(chuàng)建模塊,用于創(chuàng)建存儲池,把已創(chuàng)建的RAID加入存儲池中。
與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:
本發(fā)明通過在存儲設備創(chuàng)建多個用于測試的LUN,這些LUN分別掛載在多臺測試客戶機,這些LUN采用不同RAID級別進行創(chuàng)建,以模擬實際應用場景。在控制客戶機上安裝并運行IO測試工具,并將控制客戶機作為配置各測試客戶機IO方式的終端,以及收集測試數(shù)據(jù)的終端。在各測試客戶機安裝并運行負載生成器??刂瓶蛻魴C配置負載生成器執(zhí)行模擬不同應用場景的IO負載,對存儲設備進行并發(fā)讀寫測試,最后對輸出的測試結果進行分析。通過以上過程,本發(fā)明改變了傳統(tǒng)的只對單一磁盤進行測試性能的方法,使整個集群中的多臺測試客戶機并發(fā)訪問存儲設備,并在每臺測試客戶機模擬不同的IO場景,以此來獲得更加準確的IO性能數(shù)據(jù),從而可以針對不同的應用選取不同的存儲設備,在充分發(fā)揮存儲設備性能的前提下節(jié)約成本。
附圖說明
圖1是本發(fā)明一種SAN存儲設備的IO性能測試裝置的結構示意圖之一;
圖2是本發(fā)明一種SAN存儲設備的IO性能測試方法的流程示意圖之一;
圖3是本發(fā)明一種SAN存儲設備的IO性能測試裝置的結構示意圖之二;
圖4是本發(fā)明一種SAN存儲設備的IO性能測試方法的流程示意圖之二。
具體實施方式
為了便于理解,對本發(fā)明中出現(xiàn)的部分名詞作一下解釋說明:
LUN的全稱是Logical Unit Number,也就是邏輯單元號。ISCSI總線上可掛接的設備數(shù)量是有限的,一般為8個或者16個,可以用Target ID(也有稱為ISCSI ID的)來描述這些設備,設備只要一加入系統(tǒng),就有一個代號,在區(qū)別設備的時候,只要說Target ID號就可以。
ISCSI協(xié)議屬于端到端的會話層協(xié)議,它定義的是SCSI到TCP/IP的映射,即Initiator將SCSI指令和數(shù)據(jù)封裝成ISCSI協(xié)議數(shù)據(jù)單元,向下提交給TCP層,最后封裝成IP數(shù)據(jù)包在IP網(wǎng)絡上傳輸,到達Target后通過解封裝還原成SCSI指令和數(shù)據(jù),再由存儲控制器發(fā)送到指定的驅動器,從而實現(xiàn)SCSI命令和數(shù)據(jù)在IP網(wǎng)絡上的透明傳輸。它整合了現(xiàn)有的存儲協(xié)議SCSI和網(wǎng)絡協(xié)議TCP/IP,實現(xiàn)了存儲與TCP/IP網(wǎng)絡的無縫融合。
磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗余能力的陣列”之意。磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數(shù)據(jù)所產(chǎn)生加成效果提升整個磁盤系統(tǒng)效能。
下面結合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述:
實施例一:本發(fā)明一種SAN存儲設備的IO性能測試裝置如圖1所示,包括LUN創(chuàng)建模塊13、測試工具安裝模塊14、負載生成器配置模塊15、RAID重建模塊11和存儲池創(chuàng)建模塊12。其中RAID重建模塊11依次順序與存儲池創(chuàng)建模塊12、LUN創(chuàng)建模塊13、測試工具安裝模塊14、負載生成器配置模塊15連接。
LUN創(chuàng)建模塊13用于在存儲設備創(chuàng)建多個LUN,并分別掛載在多臺測試客戶機;測試工具安裝模塊14用于在控制客戶機上安裝IO性能測試工具,在測試客戶機上安裝負載生成器;負載生成器配置模塊15用于控制客戶機通過IO性能測試工具配置負載生成器,負載生成器執(zhí)行相應的IO操作;RAID重建模塊11用于重新創(chuàng)建RAID;存儲池創(chuàng)建模塊12用于創(chuàng)建存儲池,把已創(chuàng)建的RAID加入存儲池中。
實施例二:本發(fā)明一種SAN存儲設備的IO性能測試方法如圖2所示,包括以下步驟:
步驟S201,將待測試的存儲設備的存儲空間釋放。
步驟S202,重新創(chuàng)建磁盤陣列RAID,根據(jù)存儲設備支持的類型不同覆蓋所有RAID級別,比如創(chuàng)建若干RAID 0 、RAID 1、RAID 5、RAID 6和RAID 10 ,保證這些RAID的可用大小差別不大。
步驟S203,創(chuàng)建一個存儲池,把已創(chuàng)建的RAID加入存儲池中,形成一個可用于創(chuàng)建LUN的抽象層。
步驟S204,在存儲池中創(chuàng)建10個以上的LUN,本例創(chuàng)建20個LUN,保證這些LUN的大小均為存儲設備緩存的兩倍至五倍,目的是減小測試時緩存對磁盤實際性能的影響,以獲得更加真實的數(shù)據(jù)。如果存儲設備有自動精簡、壓縮、自動分層等高級特性,需開啟這些特性,以發(fā)揮存儲設備的全部性能。
步驟S205, 開啟存儲設備的iSCSI功能,將存儲設備上的每個LUN配置成iSCSI target并獲取每個LUN的iqn name。保證各Linux客戶機與存儲設備之間的IP鏈路暢通,在各Linux客戶機上安裝iSCSI發(fā)起端軟件,本例使用:iscsi-initiator-utils。啟動發(fā)起端程序,搜索存儲設備上的iSCSI target,使用ISCSI協(xié)議登錄存儲設備上的一個LUN,并將其映射到本地。對余下的Linux客戶機執(zhí)行同樣的操作。Linux客戶機至少需要配置10臺,本例采用20臺,以模擬多用戶并發(fā)訪問的場景。
步驟S206,在一臺Windows客戶機上安裝并運行Iometer,將其作為Console端,此Windows客戶機作為配置各Linux客戶機IO方式的終端,以及收集測試數(shù)據(jù)的終端。在各個Linux客戶機安裝并運行Dynamo。
步驟S207,在各個Linux客戶機執(zhí)行以下命令“Dynamo –i Windows客戶端的IP地址 –m 本機的IP地址”,執(zhí)行此命令之后,使Windows客戶機與Linux客戶機相關聯(lián),在Windows客戶機的Iometer配置窗口看到每一臺Linux客戶機均成為了一個Manager, 在每個Manager下邊創(chuàng)建1~4個Worker, 這里根據(jù)需要模擬的場景不同創(chuàng)建不同數(shù)量的Worker,比如模擬處理單線程的數(shù)據(jù)就創(chuàng)建1個Worker,模擬多線程的情況就創(chuàng)建多個Worker。
步驟S208, Iometer分別配置每個Manager的每個Worker,需要配置的項有最大并發(fā)異步IO數(shù)、IO Size、讀寫比例、隨機順序比例,通過這些參數(shù)的設定模擬不同的應用場景。不同的Linux客戶機可以分別模擬不同的應用場景。
步驟S209,配置完成后,在Windows客戶機執(zhí)行測試,此時,所有的Linux客戶機將同時執(zhí)行剛才配置的IO操作,測試時間越長將得到越準確的數(shù)據(jù),
步驟S210,測試完畢后查看輸出結果的excel文件即可獲得相應于場景的,較為準確的IO性能。
本發(fā)明一種SAN存儲設備的IO性能測試方法,在不同Linux客戶機上并發(fā)執(zhí)行模擬實際應用場景的IO操作,以模擬不同實際應用場景的IO訪問,得出更接近于實際的IO性能測試值,以便客戶針對不同的應用靈活準確的選取具有不同特性的存儲設備,為客戶提供更準確的指導。
實施例三:本發(fā)明另一種SAN存儲設備的IO性能測試裝置如圖3所示,包括LUN創(chuàng)建模塊31、測試工具安裝模塊32和負載生成器配置模塊33。其中LUN創(chuàng)建模塊31依次順序與測試工具安裝模塊32和負載生成器配置模塊33連接。
LUN創(chuàng)建模塊31用于在存儲設備創(chuàng)建多個LUN,并分別掛載在多臺測試客戶機;測試工具安裝模塊32用于在控制客戶機上安裝IO性能測試工具,在測試客戶機上安裝負載生成器;負載生成器配置模塊33用于控制客戶機通過IO性能測試工具配置負載生成器,負載生成器執(zhí)行相應的IO操作。
實施例四:本發(fā)明另一種SAN存儲設備的IO性能測試方法如圖4所示,包括以下步驟:
步驟S401,存儲設備創(chuàng)建多個邏輯單元號LUN,并分別掛載在多臺測試客戶機;
步驟S402,控制客戶機安裝IO性能測試工具,測試客戶機安裝負載生成器;
步驟S403,控制客戶機和測試客戶機進行通信;
步驟S404,控制客戶機通過IO性能測試工具配置負載生成器,負載生成器執(zhí)行相應的IO操作。
本發(fā)明基于多客戶端并發(fā)訪問,可模擬不同應用場景的SAN存儲設備,以便客戶針對不同的應用選取不同特性的存儲設備。
以上所示僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。