轉自:http://www.cnblogs.com/terrycy/p/5915263.htmlhtml
GlusterFS簡單配置linux
1.準備工做centos
準備三臺機器(物理機或者虛擬機都可)用於安裝和測試GlusterFS,其中兩臺用做服務器,一臺用做客戶端,主機名分別爲:服務器
Server1.zhaogang.int 10.0.21.241 Server2.zhaogang.int 10.0.21.242 Clinet.zhaogang.int
關閉iptables和selinuxsocket
2.安裝glusterFS服務器tcp
yum install centos-release-gluster -y
yum install glusterfs-server glusterfs glusterfs-fuse -y
啓動glusterFS服務:ide
/etc/init.d/glusterd start
設置glusterFS服務開機啓動post
chkconfig glusterd on
GlusterFS服務器設置測試
加入可信任存儲池ui
在server1上運行一下命令:
[root@server1 ~]# gluster peer probe 10.0.21.242
peer probe: success.
查看狀態:
[root@server1 ~]# gluster peer status
Number of Peers: 1
Hostname: 10.0.21.242
Uuid: ab640ab2-76ba-47a5-a868-be5514b70258
State: Peer in Cluster (Connected)
移除節點:
gluster peer detach 10.0.21.242
B.建立GlusterFS邏輯卷(Volume)
在server1和server2分別創建/data/gfsdata目錄:
mkdir -p /data/gfsdata
而後執行如下命令(只須要在其中一臺服務器上執行便可,本例使用server1):
[root@server1 ~]# gluster volume create gv0 replica 2 10.0.21.241:/data/gfsdata 10.0.21.242:/data/gfsdata
volume create: gv0: success: please start the volume to access data
這條命令的意思是使用Replicated的方式,創建一個名爲gv0的卷(Volume),存儲塊(Brick)爲2個,分別爲server1:/data/gfsdata和server2:/data/gfsdata
volume create: testglustervol: failed: The brick 192.168.21.19:/data0/gluster1/brick1 is being created in the root partition. It is recommended that you don't use the system's root partition for storage backend. Or use 'force' at the end of the command if you want to override this behavior.
發現報錯了,這是由於咱們建立的brick在系統盤,這個在gluster的默認狀況下是不容許的,生產環境下也儘量的與系統盤分開,若是必須這樣請使用force
[root@server1 ~]# gluster volume create gv0 replica 2 10.0.21.241:/data/gfsdata 10.0.21.242:/data/gfsdata force
volume create: gv0: success: please start the volume to access data
啓用GlusterFS邏輯卷:
[root@server1 ~]# gluster volume start gv0
volume start: gv0: success
查看邏輯卷狀態:
[root@server1 ~]# gluster volume info
Volume Name: gv0
Type: Replicate
Volume ID: da0f4439-824b-4606-bc18-4bdbdc93d09d
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 10.0.21.241:/data/gfsdata
Brick2: 10.0.21.242:/data/gfsdata
Options Reconfigured:
performance.readdir-ahead: on
清除glusterfs配置
經過查看/etc/glusterfs/glusterd.vol能夠得知glusterfs的工做目錄是在/var/lib/glusterd中
[root@localhost ~]# cat /etc/glusterfs/glusterd.vol
volume management
type mgmt/glusterd
option working-directory /var/lib/glusterd
option transport-type socket,rdma
option transport.socket.keepalive-time 10
option transport.socket.keepalive-interval 2
option transport.socket.read-fail-log off
option ping-timeout 0
option event-threads 1
# option transport.address-family inet6
# option base-port 49152
end-volume
若是須要清除glusterfs配置,將工做目錄刪除後重啓服務便可
[root@localhost ~]# rm -rf /var/lib/glusterd/
[root@localhost ~]# /etc/init.d/glusterd restart
刪除卷
gluster volume stop gv0
gluster volume delete gv0
# 卷擴容(因爲副本數設置爲2,至少要添加2(四、六、8..)臺機器)
gluster peer probe 10.0.21.243 # 加節點
gluster peer probe 10.0.21.244 # 加節點
gluster volume add-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs # 合併卷
# 收縮卷(收縮卷前gluster須要先移動數據到其餘位置)
gluster volume remove-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs start # 開始遷移
gluster volume remove-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs status # 查看遷移狀態
gluster volume remove-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs commit # 遷移完成後提交
# 遷移卷
gluster peer probe 10.0.21.245 # 將10.0.21.246數據遷移到10.0.21.245先將10.0.21.245加入集羣
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs start # 開始遷移
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs status # 查看遷移狀態
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs commit # 數據遷移完畢後提交
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs commit -force # 若是機器10.0.21.246出現故障已經不能運行,執行強制提交
gluster volume heal gv0 full # 同步整個卷
本文介紹的是GlusterFS最基礎的用法,感受它的最大優勢就是文件使用哈希散列,而不須要單獨去維護MetaData以避開單點問題,而目錄則是全部節點都一致的。節點信息會在變化過程當中自動同步!不過增刪節點,須要作Rebalance數據纔會從新分佈。
C.在clinet上安裝客戶端軟件:
#yum -y install glusterfs glusterfs-fuse
GlusterFS客戶端鏈接
在客戶端client.zhaogang.int上使用mount命令,把服務器上新建的GlusterFS邏輯卷gv0掛載到本地目錄/mnt/glusterfs上:
[root@localhost ~]# mkdir /mnt/glusterfs [root@localhost ~]# mount -t glusterfs 10.0.21.241:/gv0 /mnt/glusterfs [root@localhost ~]#
確認掛載結果:
[root@localhost ~]# mount -t fuse.glusterfs 10.0.21.241:/gv0 on /mnt/glusterfs type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)
若是但願系統重啓後能夠自動掛載,在/etc/fstab文件中加入此行:
10.0.0.241:/data/gfsdata /mnt/glusterfs glusterfs defaults 0 0
客戶端測試鏈接
client端成功掛載邏輯卷以後,在掛載目錄/mnt/glusterfs創建文件以測試GlusterFS是否正常工做。
[root@localhost glusterfs]# cd /mnt/glusterfs/ [root@localhost glusterfs]# touch file1 file2 file3 [root@localhost glusterfs]# ls -l total 0 -rw-r--r--. 1 root root 0 Aug 29 21:07 file1 -rw-r--r--. 1 root root 0 Aug 29 21:07 file2 -rw-r--r--. 1 root root 0 Aug 29 21:07 file3
由於建立卷gv0的時候使用的是鏡像存儲(Replicated),因此在gv0上寫入的文件應該同時出如今兩個服務器的/data/gfsdata目錄上。
在server1和server2查看/data/gfsdata/目錄,能夠看到兩個服務器均出現這三個文件:
[root@server1 ~]# cd /data/gfsdata/ [root@server1 gfsdata]# ls -l total 0 -rw-r--r--. 2 root root 0 Aug 29 21:07 file1 -rw-r--r--. 2 root root 0 Aug 29 21:07 file2 -rw-r--r--. 2 root root 0 Aug 29 21:07 file3 [root@server2 ~]# cd /data/gfsdata/ [root@server2 gfsdata]# ls -l total 0 -rw-r--r--. 2 root root 0 Aug 29 21:07 file1 -rw-r--r--. 2 root root 0 Aug 29 21:07 file2 -rw-r--r--. 2 root root 0 Aug 29 21:07 file3
自此GlusterFS快速安裝過程結束。