配置步驟
1. 首先從github上下載jepsen的源代碼,地址:https://github.com/jepsen-io/jepsen
2. 這裏推薦利用docker-compose來安裝實驗環境,其目錄爲jepsen/docker在其中運行./up.sh --dev 命令,會拉取如下圖所示的image和創建6個容器:
3. 然後通過docker exec –it jepsen-control bash命令進入控制節點,因爲在啓動時使用了--dev命令,所以在控制節點中jepsen目錄內擁有很多測試內容,如下圖所示:
4. 在tidb目錄下有一些別人寫好的測試樣例,可以通過修改這些樣例來實現需要的測試場景。
可能遇到的問題
1. 創建image的時候,有些文件下載不下來
這是因爲網絡的問題,有些文件是依託於某些平臺的,這裏需要網絡足夠強大
2. 在跑tidb測試的時候,第一次創建容器需要下載tidb的安裝包,因爲網絡問題,可能會出現安裝包沒有下載完成的情況
這時可以進入沒有下載完成的jepsen-node,在/opt路徑下通過wget來下載對應的tidb源碼,然後解壓成tidb目錄
3. 在跑測試的過程中,異常注入恢復需要同步機器的時間,jepsen採用的時間信息來自於time.google.com,如果網絡無法訪問就會報錯然後測試終止
這裏也需要網絡足夠強大,如果網絡不足夠強大,也可以修改jepsen的代碼,將time.XXXXX.com改爲可以訪問的ntp.ubuntu.com
綜上所述,這些問題最好的解決方法是網絡足夠強大的服務器。我們的服務器配置如下圖所示,可以選用自帶docker的服務器,然後安裝docker-compose就可以使用了。