Glusterfs讀寫性能測試與分析


一、測試目的:

1、測試分布卷(Distributed)、分布式復制卷(Distributed-Replicate)、條帶卷(Strip)和分布式條帶復制卷(Distributed-Strip-Replicate)的讀寫性能。

2、測試網絡對文件系統讀寫性能的影響。

一、測試准備:

1、三台千兆網測試機:dn151,dn152,dn154。每台測試機上有七塊1T硬盤,dn151等是測試機的hostname。hostname配置方式,以及glusterfs的安裝見https://www.cnblogs.com/ForestCherry/p/10876049.html。

2、創建目錄:mkdir -p /data01 /data02 /data03 /data04 /data05 /data06 /data07 /Distributed-test /Distributed-Replicate-test /Strip-test /Distributed-Strip-Replicate-test(前面的是磁盤掛載目錄,后面是卷節點掛載目錄)

3、掛載磁盤:mount /dev/sdb /data01;mount /dev/sdc /data02;mount /dev/sdb /data03;mount /dev/sde /data04;mount /dev/sdf /data05;mount /dev/sdg /data06;mount /dev/sdh /data07;

4、測試命令:time dd if=/dev/zero bs=1M count=4096 of=4G.file(也可以借助fio工具測試)

三、開始測試:

1、創建gluster集群:gluster peer probe dn152;gluster peer probe dn154(這里是在dn151上創建的,也可以在其他兩台上創建)

2、創建卷:(任意一台上執行)

  1)gluster volume create Distributed-Strip-Replicate-test strip 2 replica 2 dn151:/data01 dn152:/data01 dn151:/data02 dn152:/data02 dn151:/data03 dn152:/data03 dn151:/data04 dn152:/data04 force 創建分布式條帶復制卷

  2)gluster volume create Distributed-test dn151:/data05 dn152:/data05 force 創建分布卷

  3)gluster volume create Strip-test strip 2 dn151:/data06 dn152:/data06 force 創建條帶卷

  4)gluster volume create Distributed-Replicate-test replica 2 151:/data07 dn152:/data07 force 創建分布式復制卷

3、啟動卷:gluster volume start Distributed-Strip-Replicate-test;gluster volume start Distributed-test; gluster volume start Strip-test;gluster volume start Distributed-Replicate-test(任意一台上執行)

4、掛載卷:mount -t glusterfs dn151:/Distributed-Replicate-test Distributed-Replicate-test;mount -t glusterfs dn151:/Distributed-Strip-Replicate-test Distributed-Strip-Replicate-test; mount -t glusterfs dn151:/Distributed-test Distributed-test;mount -t glusterfs dn151:/Strip-test Strip-test(每台上都要執行)

5、查看卷信息:gluster volume info

圖一:

 

6、測試及現象:

dn151上:

圖二:

 

dn152上:

圖三:

 

dn154上:

圖四:

 

dn151上:

圖五:

 

dn152上:

圖六:

 

說明:上訴dd命令是在一台上執行完后再去另一台上執行(相當於只測試了讀或寫),如果幾台同時執行dd(相當於並發讀寫測試),那么性能會有所下降。

四、測試結果分析:(來自小白的簡單分析,可能不准確,求大神指教)

1、glusterfs下讀寫請求的處理流程分析:請參照https://www.cnblogs.com/chaozhu/p/6402000.html

2、從圖二或圖三或圖四可以看出:本地 > 條帶卷 >  分布卷 ≈ 復制卷 ≈ 分布式條帶復制卷

分析:

1)條帶卷大於分布卷:結合圖五圖六可以看出,在dn151上執行dd命令,分布卷目錄下根據哈希算法,隨機將文件4G.flie151存儲在dn152:/data05上;而條帶卷是將4G.flie151分別存在dn151和dn152上的/data06上。所以就跨網來說,分布卷時4G全部使用socket存儲,而條帶卷只有2G文件通過socket存儲,所以此時表現條帶卷速度大於分布卷(如果分布卷存儲通過哈希算法,在dn151上也將文件存儲在dn151上,那么肯定是分布卷速度遠大於條帶卷速度,讀者可自行測試)。

2)值得一提,創建條帶卷時,當Number of Bricks: 為n*2(n >= 2)時,如果創建語句為:gluster volume create Strip-test strip 2 dn151:/data06 dn151:/data07 dn152:/data06 dn152:/data07 force(未跨網絡分段),

如果創建語句為:gluster volume create Strip-test strip 2 dn151:/data06 dn152:/data06 dn151/data07 dn152:/data07 force(跨網絡分段,不好的習慣,性能下降),兩者的速度是不一樣的,前者速度明顯大於后者。

3)分布式復制卷 ≈ 分布式條帶復制卷:測試文件不夠大或者網絡條件制約(千兆網的傳輸速率門檻大概在128MB/s),沒體現出條帶卷的優勢。

2、圖二和圖三和圖四對比可得:圖四 < 圖三 =  圖二

分析:拿復制卷來說。

1)無論是在dn151上執行還是在dn152上執行,文件都是先在本地創建了4G.flie151或4G.flie152,然后再通過socke備份到另一台上,而當本地執行完請求后就會返回;而在dn154上執行,是要通過socket將文件存儲到dn151和dn152上,所以返回響應會更久。

2)從結果117MB/s的測試結果可以看出,網絡是制約影響文件系統讀寫性能的主要因素。

3、求指教:

1、以上分析是在當前條件下測試,結果和分析可能不太准確,如有不當,還請指教。

2、網上說fuse層對性能的影響很小,那么為什么在本地執行dd命令和通過flusterfs的掛載目錄執行dd命令速度會慢那么多(咱們可以在dn151上執行 gluster volume create test-volume dn151:/test1 /dn151:/test2 force試一下)

3、求大神對上面的測試結果進行專業的分析。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM