儲存系統測試工具學習之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模型,
可以作為檔案系統測試模型進行檔案系統功能測試,檔案讀寫一致性測試。