使用gluster這種分散式系統,為的就是希望有個「穩定安全」的環境,所以通常會使用replication的機制 。
gluster的replication 有兩種,一種就是LAN裡面用的「同步 replication」,另一種就是散佈內容出去的「非同步Georeplication」,前者就是用多個brick(儲存單元)來同步備援。這種機制應該是整個儲存系統的核心。通常一開始建立之後,就會自動運作,直到有kernel更新或者其他硬體錯誤導致的某個brick離線。
離線後,系統會自動修復(3.3版以後就會自動修復),不過修復中的brick資料是錯的,且跟RAID一樣,同時一定還要有正確的brick提供修復。也就是如果是兩台雙備援,就不能兩台同時處於修復狀態。必須等修復的那台修復完成了,另一台才能離線。因此,了解目前修復的狀況怎樣,是非常重要的管理機制。要了解系統修復狀況,只要下:
gluster volume heal Volume_name info
就可以知道,一定要裡面都沒有entries了才算修復完成。當然,短期內因為系統使用中也會有幾個檔案出問題等待修復,但等一下應該就會消失。
如果要分散資料到slave 主機去,就要用 非同步Georeplication 。這種功能也很容易設定:
Slave端要先把
http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.0/EPEL.repo/glusterfs-epel.repo
放到 /etc/yum.repos.d
裝
yum install glusterfs-cli glusterfs-fuse glusterfs-server glusterfs-geo-replication glusterfs-libs
啟動 glusterd 與 glusterfsd
然後參考一下:
http://www.gluster.org/community/documentation/index.php/HowTo:geo-replication
即可。
ssh 免密碼搞定以後,
gluster volume geo-replication Volume_SYNC slave_server:/home start
即可啟動
gluster volume geo-replication Volume_SYNC slave_server:/home status
即可了解系統狀態
喔!對了,如果有兩台以上互相備援的master機器,應該會希望每一台master都可以replication 給slave吧?
這時請把 /var/lib/glusterd/geo-replication/*.pem 複製到其他台master機器去,這樣就可以同步執行 georeplication 了