本文作者: wuXing
QQ: 1226032602
E-mail: 1226032602@qq.com
glusterfs
https://www.gluster.org/
https://docs.gluster.org/en/latest/Install-Guide/Setup_virt/
glusterfs概述
1. 什么是Gluster
Gluster是一個橫向擴展的分布式文件系統,可將來自多個服務器的磁盤存儲資源整合到一個全局名稱空間中,可以根據存儲消耗需求快速調配額外的存儲。它將自動故障轉移作為主要功能
當您修復發生故障的服務器并使其恢復聯機狀態時,除了等待外,您無需執行任何操作即可恢復數據。與此同時,您的數據的最新副本繼續從仍在運行的節點獲取。
Gluster數據可以從幾乎任何地方訪問,可以使用傳統的NFS,Windows客戶端的SMB / CIFS或我們自己的本地GlusterFS(客戶機上需要一些附加軟件包)
2. 企業應用場景
媒體數據:文檔、圖片、音頻、視頻
共享存儲:云儲存、虛擬化存儲、HPC(高性能計算)
大數據:日志文件、RFID(射頻識別)數據
3. 優點
縮放到幾PB
處理數千個客戶
POSIX兼容
可以使用任何支持擴展屬性的ondisk文件系統
使用NFS和SMB等行業標準協議訪問
提供復制,配額,地理復制,快照和bitrot檢測
允許優化不同的工作量
開源
4. 缺點
不適用于存儲大量小文件的場景,因為GlusterFS的設計之初就是用于存儲大數據的,對小文件的優化不是很好,推薦保存單個文件至少1MB以上的環境,如果是大量小文件的場景建議使用FastDFS、MFS等
gluster安裝配置
https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/
https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart
環境準備
兩臺名為server1和server2的服務器上的CentOS 7
兩個虛擬磁盤,一個用于OS安裝(sda),另一個用于服務GlusterFS存儲(sdb)
格式化磁盤
CentOS6需要安裝
yum install xfsprogs
在兩個節點上都執行
mkfs.xfs -i size=512 /dev/sdb
mkdir -p /bricks/brick1
/etc/fstab
[root@server1 ~]# tail -1 /etc/fstab
/dev/sdb /bricks/brick1 xfs defaults 0 0
掛載
mount -a
安裝GlusterFS并啟動
三臺服務器上都安裝
安裝gluster源
yum install centos-release-gluster
安裝glusterfs
yum install glusterfs-server
啟動
systemctl start glusterd.service
hosts解析
三臺都做
/etc/hosts
10.0.0.201 server1
10.0.0.202 server2
172.16.1.51 db01
172.16.1.31 nfs01
172.16.1.41 backup
添加服務器
nfs01:
gluster peer probe backup
gluster peer probe db01
backup:
gluster peer probe nfs01
gluster peer probe db01
db01:
gluster peer probe nfs01
gluster peer probe backup
查看對等狀態
gluster peer status
刪除服務器
gluster peer detach <server>
查看服務器列表
gluster pool list
gluster UUID
[root@server1 ~]# cat /var/lib/glusterd/glusterd.info
UUID=9c8f138a-d502-4b69-9b84-61bd81286ea6
operating-version=31202
建立GlusterFS卷
https://docs.gluster.org/en/latest/CLI-Reference/cli-main/
三臺機器都執行
mkdir /bricks/brick1/gv0
mkdir /bricks/brick1/gv1
任意一臺機器執行
創建復制卷
gluster volume create gv0 replica 2 nfs01:/bricks/brick1/gv0 db01:/bricks/brick1/gv0
gluster volume create gv1 replica 3 nfs01:/bricks/brick1/gv1 db01:/bricks/brick1/gv1 backup:/bricks/brick1/gv1
gluster volume create gv1 replica 3 arbiter 1 nfs01:/bricks/brick1/gv1 db01:/bricks/brick1/gv1 backup:/bricks/brick1/gv1
啟動卷
gluster volume start gv0
gluster volume start gv1
查看信息
gluster volume info
日志
tail -f /var/log/glusterfs/glusterd.log
https://docs.gluster.org/en/latest/Administrator%20Guide/
glusterfs客戶端
安裝gluster源
yum install centos-release-gluster
安裝
yum install glusterfs glusterfs-fuse glusterfs-rdma
hosts解析
/etc/hosts
10.0.0.201 server1
10.0.0.202 server2
172.16.1.51 db01
172.16.1.31 nfs01
172.16.1.41 backup
掛載
mount -t glusterfs server1:/gv0 /mnt/
mount -t glusterfs nfs01:/gv1 /mnt/
mount -t glusterfs backup:/gv1 /mnt/
gluster Volume Commands
volume create volname [options] bricks 創建卷
volume start volname [force] 啟動卷
volume stop volname 停止卷
volume info [volname] 查看卷信息
volumes status[volname] 查看卷狀態
volume list 查看卷列表
volume add-brick brick-1 ... brick-n 擴容
volume remove-brick brick-1 ... brick-n \<start|stop|status|commit|force> 縮減
volume delete volname 刪除卷
glusterfs volume 模式
默認模式
默認模式,既DHT, 也叫 分布卷: 將文件已hash算法隨機分布到 一臺服務器節點中存儲
gluster volume create test-volume server1:/exp1 server2:/exp2
復制模式
復制模式,既AFR, 創建volume 時帶 replica x 數量: 將文件復制到 replica x 個節點中。
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
條帶模式
條帶模式,既Striped, 創建volume 時帶 stripe x 數量: 將文件切割成數據塊,分別存儲到 stripe x 個節點中 ( 類似raid 0 )。
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
分布式條帶模式
分布式條帶模式(組合型),最少需要4臺服務器才能創建。 創建volume 時 stripe 2 server = 4 個節點: 是DHT 與 Striped 的組合型。
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
分布式復制模式
分布式復制模式(組合型), 最少需要4臺服務器才能創建。 創建volume 時 replica 2 server = 4 個節點:是DHT 與 AFR 的組合型。
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
條帶復制卷模式
條帶復制卷模式(組合型), 最少需要4臺服務器才能創建。 創建volume 時 stripe 2 replica 2 server = 4 個節點: 是 Striped 與 AFR 的組合型。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
三種模式混合
三種模式混合, 至少需要8臺 服務器才能創建。 stripe 2 replica 2 , 每4個節點 組成一個 組。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8
修復
查看這個卷是否在線
gluster volume status test2
啟動完全修復
gluster volume heal test2 full
gluster volume heal gv1 full
查看需要修復的文件
gluster volume heal test2 info
查看修復成功的文件
gluster volume heal test2 info healed
查看修改失敗的文件
gluster volume heal test2 info heal-failed
查看腦裂的文件
gluster volume heal test2 info split-brain