固態盤(SSD)的速度比機械硬盤快不少(400MB/s~1.7GB/s),可是價格昂貴,因此每每容量比較小。經過GlusterFS能夠把多節點SSD黏合爲一塊大的網絡SSD,能夠在局域網上任意節點上鍊接使用,從而更方便使用,大幅度提升SSD的使用效率,提高系統速度、下降整體成本。linux
這裏使用的系統爲Ubuntu18.04.1 LTS版本,下面是對實驗過程的一些記錄。服務器
安裝軟件:網絡
#安裝ZFS系統 sudo apt install zfsutils-linux #安裝GlusterFS系統 sudo apt install glusterfs-server
在全部節點上安裝上面的軟件,也能夠經過ansible來批量完成。分佈式
在每一個節點建立好zfs的存儲池zpool,如:sudo zpool create zpool /dev/sda /dev/sdb /dev/sdc,更多的設置模式參見:工具
而後在每一個節點上添加存儲的對端節點,以下(假設操做服務器爲server1):性能
gluster peer probe server2 gluster peer probe server3
而後,確認一下設置是否成功:測試
gluster peer status
主要建立分佈式卷、條帶卷、副本卷三種進行測試。ui
腳本命令以下:spa
echo "建立分佈式卷gvx" gluster volume create gvx \ server1:/home/supermap/gvx \ server2:/home/supermap/gvx \ server3:/home/supermap/gvx echo "建立條帶卷gvxs" gluster volume create gvxs strip 3 \ server1:/home/supermap/gvxs \ server2:/home/supermap/gvxs \ server3:/home/supermap/gvxs echo "建立分佈式卷gvxr" gluster volume create gvx0 replica 3 \ server1:/home/supermap/gvx \ server2:/home/supermap/gvx \ server3:/home/supermap/gvx echo "啓動卷gvx gvxs gvxr" gluster volume start gvx gvxs gvxr echo "當前Gluster的卷信息:" gluster volume info
能夠從任意一個節點掛載GlusterFS網絡卷。以下:.net
echo "掛載分佈式卷/home/supermap/gvxv" mkdir /home/supermap/gvxv mount -t glusterfs server1:/gvx /home/supermap/gvxv echo "掛載條帶卷/home/supermap/gvxsv" mkdir /home/supermap/gvxsv mount -t glusterfs server1:/gvxs /home/supermap/gvxsv echo "掛載副本卷/home/supermap/gvxrv" mkdir /home/supermap/gvxrv mount -t glusterfs server1:/gvxr /home/supermap/gvxrv
使用命令 ls -l 查看目錄信息,df -h查看掛載卷的信息。
使用dd進行簡單的測試,以下:
echo "==============================================" echo "測試分佈式SSD,基於GlusterFS。" echo "=================" echo "測試分佈式卷gvxv" echo "寫入:" sudo dd if=/dev/zero of=/home/supermap/gvxv/testx.img bs=1M count=20480 echo "複製:" sudo dd if=/home/supermap/gvxv/testx.img of=/home/supermap/gvxv/testx2.img bs=1M count=20480 echo "讀取:" sudo dd if=/home/supermap/gvxv/testx2.img of=/dev/null bs=1M count=20480 echo "=================" echo "測試條帶卷gvxsv" echo "寫入:" sudo dd if=/dev/zero of=/home/supermap/gvxsv/testx.img bs=1M count=20480 echo "複製:" sudo dd if=/home/supermap/gvxsv/testx.img of=/home/supermap/gvxsv/testx2.img bs=1M count=20480 echo "讀取:" sudo dd if=/home/supermap/gvxsv/testx2.img of=/dev/null bs=1M count=20480 echo "=================" echo "測試複本卷gvxrv" echo "寫入:" sudo dd if=/dev/zero of=/home/supermap/gvxrv/testx.img bs=1M count=20480 echo "複製:" sudo dd if=/home/supermap/gvxrv/testx.img of=/home/supermap/gvxrv/testx2.img bs=1M count=20480 echo "讀取:" sudo dd if=/home/supermap/gvxrv/testx2.img of=/dev/null bs=1M count=20480 echo "==============================================" echo "Finished, by openthings" echo "=============================================="
更細節的測試,可使用pts,具體方法參見 Ubuntu測試-使用phoronix-test-suite 。
上面的方法也適用於其它磁盤,包括經過USB鏈接的外置磁盤盒。