閱讀本文前建議先閱讀云梯跨機房方案介紹,了解云梯跨機房項目背景,難點以及解決方案。本文重點介紹下跨機房測試的整體解決方案
功能測試
測試用例管理:http://kelude.taobao.net/testsuites?project_id=12202
數(shù)據(jù)安全性測試
數(shù)據(jù)安全簡單的說是不能丟數(shù)據(jù),跨機房后集群規(guī)模到達近萬臺,數(shù)據(jù)存儲到達數(shù)百PB,如何確保數(shù)據(jù)安全是一個很大的挑戰(zhàn)
在跨機房的情況下,我們通過(Sange、Slive、DFSIO)模擬線上比例的各種混合性操作,通過NN的FSCK, CN的 CrossCheck工具定位異常數(shù)據(jù)如CORRUPT,一直處于BEING WRITTEN無法關閉的文件,跨機房失敗的文件
數(shù)據(jù)安全性測試里需要考慮的一種重要場景是NN和DN重啟,在實際的升級過程中,在集群重啟前各業(yè)務線并沒有停止讀寫數(shù)據(jù),重啟后數(shù)據(jù)的一致性和可恢復性非常重要;在實際的跨機房測試中我們曾發(fā)現(xiàn)一個因為重啟后狀態(tài)不一致導致無法加載EDITLOG從而使NN無法啟動的BUG,如果這種問題發(fā)生到線上,后果不堪設想
性能測試
性能測試的關鍵點是如何建立性能基準,對線上性能進行準確評估,跨機房測試性能基準工具主要包括:
DFSIO: HDFS I/O(讀寫) 性能基準
Slive: 主要模擬線上各種RPC,在每個TASK發(fā)起混合型RPC操作,并可以指定文件和block大小,該工具可以同時測試NN和DN的性能;
Sange: 主要模擬線上各種RPC操作壓力,在每個TASK啟動大量Thread進行混合性RPC操作 ,對NN產(chǎn)生壓力,進而評估NN RPC 處理能力;SANGE工具不能指定文件和Block大小,會產(chǎn)生大量小文件,比SLIVE對NN可以產(chǎn)生更大的RPC壓力
Terasort:MapReduce 數(shù)據(jù)排序能力基準
Gridmix :Gridmix和Rumen結合可以模擬和生產(chǎn)作業(yè)相應的負載,更真實的模擬生產(chǎn)環(huán)境
SmallJobBench:通過創(chuàng)建大量sleep job到不同group來測試jobtracker性能
SubmitJobBench:通過每個map啟動(-nThreads)個線程,每個線程順序提交(-nTasks)個作業(yè), 每個線程有自己的獨立賬號,來模擬線上多賬號并行度2K情況下JTProxy性能
跨機房性能主要對比場景:
主要針對上述場景進行性能對比和評估包括NN帶寬,內(nèi)存,CPU load, NN RPC 指標, NN 各個operation的吞吐量(opsper second)和平均執(zhí)行時間, NN同步editlog性能指標,跨機房帶寬流量,跨機房復制速率,跨機房副本刪除速率,CROSSFSCK時間
跨機房測試還有很重要的一點是要保證計算一定優(yōu)先從本機房讀數(shù)據(jù),除非本機房沒有數(shù)據(jù)才會跨機房讀;實際測試中TERASORT跨機房讀對比本機房讀性能會有32%左右的下降,而且對帶寬也是很大的浪費。