1. 程式人生 > >儲存系統測試工具學習之vdbench

儲存系統測試工具學習之vdbench

1 單客戶執行vdbench

   vdbench既可以執行在linux作業系統下,又可以執行在windows操作下。使用vdbench之前要確保java執行環境的安裝。

  Linux:jdk-6u3-linux-i568-rpm.bin

  windows:jre-6u25-windows-i586.exe

  注1:jre,java執行環境;jdk,java開發套件,如果只是執行依賴java的軟體那麼只需要安裝jre即可

  注2:window安裝完jre後,需要將C:\Program Files\Java\jre7\bin新增到windows環境變數path中

  安裝完成後,進入vdbench安裝目錄,執行./vdbench -t,測試安裝是否正確。

2 vdbench 引數解讀

  HD:主機定義

  SD:儲存定義

  WD:工作負載定義

  RD:執行定義

  RG:重播組

  FSD:檔案系統儲存定義

  FWD:檔案系統工作負載定義

  SWAT:Sun儲存工作負載分析工具

  LFSR:線性反饋移位暫存器

 例子:

 單客戶的配置檔案:

 fsd=fsd1,anchor=/tmp/yht,depth=1,width=100,files=100,size=200M

 fwd=fwd1,fsd=fsd1,operation=write,xfersize=1024k,fileio=sequantial,fileselect=sequantial,threads=32

 rd=rd1,fwd=fwd1,fwdrate=max,format=restart,elspsed=600,interval=10

 解讀:

 第一行:檔案系統儲存定義。指定目錄結構,anchor是掛載點,/tmp/yht為linux客戶端,如果是windows客戶端需要改為c:\\yht,其他部分相同。depth是目錄結構的深度,  width是每一層目錄的數 量,files是每個目錄下面檔案的數量,size是檔案大小,size=(100M,30,200M,30,1G,40)指定100M檔案佔30%,200M檔案佔30%,1G檔案佔  40%。

 第二行:檔案系統工作負載定義。fsd,指定檔案系統儲存定義,fsd=(fsd1-fsdn)。operation是最終操作,create是建立,write是改寫,read是讀,可以指定rdpct=80,意味著  讀寫比例是80%。xfersize是檔案io大小,xfersize=(4k,40,64k,40,1m,20),指定每種io所佔的比例。fileio和fileselect是檔案操作方式,均區分sequantial和random,threads是operation的執行緒數。

 第三行:執行定義,執行工作強度和時長。fwd,指定檔案系統工作負責,fwd=(fwd1-fwdn)。fwdrate是每秒的運算元,max是不做限制,按最大強度自適應,也可以設定指定  大小或遞增變化等。format是檔案預處理引數,有三個選擇,“no”不改變當前檔案目錄結構,"yes"是刪除當前的目錄結構,重新安裝fsd的要求來生成新的,"restart"是隻建立  那些不夠的檔案以及擴充套件那些大小不足的檔案。interval是結果輸出的間隔,每十秒輸出一次。

 上面的配置引數意味著,使用單客戶端,對/tmp/yht目錄建立目錄深度為1,寬度為100的目錄,每個目錄下面有100個200M的檔案(第一行)。定義檔案工作負載,指定檔案  系統儲存定義fsd1,修改寫這個目錄下的檔案,檔案io大小為1m,執行緒數是32(第二行)。執行定義,指定檔案系統工作負載,如果目錄檔案不存在就重新建立,先建立文  件,接著修改寫檔案,持續時間為10分鐘。

 3 Vdbench執行及結果檢視

  ./vdbench -f parafile

  parafiile為配置檔案,如果需要校驗檔案一致性可以可以指定-v引數,./vdbench -vf parafile

  在vdbench安裝目錄下面有output目錄,可以檢視執行及輸出結果,適用於windows及linux。

 4 Linux下聯機執行

4.1 每個客戶的都需要安裝vdbench,路徑保持一致

 4.2 SSH互相,選一個客戶的為父節點,把每個子節點都信任父節點

  父節點為93.93.41.5,子節點為93.93.41.6

  ssh-keygen -t rsa                           生成祕鑰

  chmod 755 /root/.ssh/                    修改生成祕鑰的許可權

  scp /root/.ssh/id_rsa.pub 93.93.41.6:/root/.ssh/authorized_keys 拷貝公鑰

 4.3 驗證SSH互信

  在父節點上ssh每一個子節點,如果不需要輸入祕鑰就能登入,則互信成功。

 4.4 多客戶端配置檔案

 hd=default,dbench=/home/Vdbench/,user=root,shell=ssh

 hd=hd1,system=93.93.31.7

 hd=hd2,system=93.93.41.8

 hd=hd3,system=93.93.41.9

 fsd=fsd1,anchor=/tmp/yht/client1,depth=2,width=100,files=2000,size=100m,shared=yes

 fsd=fsd2,anchor=/tmp/yht/client2,depth=1,width=1000,files=2000,zies=(20m,40,100m,60),shared=yes

 fsd=fsd3,anchor=/tmp/yht/client3,depth=1000,width=1,files2000,size=1m,shared=yes

 fwd=fwd1,fsd=fsd1,host=hd1,operation=read,xfersize=(1m,40,64k,60),fileio=random,fileselect=sequantial,threads=32

 fwd=fwd2,fsd=fsd2,host=hd2,operation=write,xfersize=64k,fileio=random,fileselect=sequantial,threads=32

 fwd=fwd3,fsd=fsd3,host=hd3,rdpct=60,xfersize=4k,fileio=random,fileselect=sequantial,threads=32

 rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapesed=600,interval=10

 注:fsd中shared,vdbench不允許不同的slave之間共享同一個目錄結構下的所有檔案,因為這樣會帶來很大的開銷,

        但是它們允許共享同一個目錄結構。加入設定了shared=yes,那麼不同的slave可以平分一個目錄下所有的檔案

        來進行訪問,相當於每個slave有各自等分的訪問區域,因此不能測試多個客戶的對同一個檔案的讀寫。

5 windows下聯機執行

  5.1 安裝vdbench,確保每個客戶端安裝目錄相同。啟動vdbench後臺服務,用於聯機執行,在子伺服器vdbench安裝目錄下執行./vdbench rsh,用來啟動後臺聯機服務

  5.2 修改hosts引數,修改每主機系統盤C:\Windows\System32\drivers\etc\hosts檔案,新增所有主機的ip和使用者名稱



5.3 配置檔案

hd=default,vdbench=c:\vdbench,shell=vdbench

hd=hd1,system=93.93.41.10

hd=hd2,system=93.93.41.11

hd=hd3,system=93.93.41.12

fsd=default,depth=1,width=1,files=100,size=1G,shared=yes

fsd=fsd1,anchor=m:\\yht\\client1

fsd=fsd2,anchor=m:\\yht\\client2

fsd=fsd3,anchor=m:\\yht\\client3

fwd=default,rdpct=60,xfersize=1M,fileio=random,fileselect=sequantial,threads=32

fwd=fwd1,fsd=fsd1,host=hd1

fwd=fwd2,fsd=fsd2,host=hd2

fwd=fwd3,fsd=fsd3,host=hd3

rd=rd1,fwd=(fwd1-fwd3),fwrate=max,format=restart,elapsed=60,interval=10

6 總結

vdbench是非常好用的儲存系統測試工具,安裝方便且相容性較好。既可以用於檔案系統性能測試,也能夠提供多種目錄結構及io模型,

可以作為檔案系統測試模型進行檔案系統功能測試,檔案讀寫一致性測試。