環境:
Centos 6.0-x86_64
集羣使用三臺服務器組成Glusterfs集羣,其中兩臺服務器提供NFS和Rsync服務用於備份
每臺服務器2塊網卡eth0對應內網、eth1對應外網,
Glusterfs簡介:
GlusterFS是Scale-Out存儲解決方案Gluster的核心,它是一個開源的分佈式文件系統,具有強大的橫向擴展能力,通過擴展能夠支持數PB存儲容量和處理數千客戶端。GlusterFS藉助TCP/IP或InfiniBand RDMA網絡將物理分佈的存儲資源聚集在一起,使用單一全局命名空間來管理數據。GlusterFS基於可堆疊的用戶空間設計,可爲各種不同的數據負載提供優異的性能。Glusterfs的主要特徵包括:高擴展性和高性能、高可用性、全局統一命名空間、彈性哈希算法、彈性卷管理、基於標準協議,技術實現特點包括:完全軟件實現、完整的存儲操作系統棧、用戶空間實現、模塊化堆棧式架構、原始數據格式存儲、無元數據服務設計。
Glusterfs常用卷類型如下:
哈希卷:類似於將多個文件系統組成一個卷,存儲文件是以輪詢方式進行的。
複製卷:爲卷中數據自動創建副本。
條帶卷:類似於raid0,將數據存儲在集羣中的多個成員服務器上。
哈希+複製卷:先創建哈希再用哈希卷創建複製卷。
安裝方法:
Glusterfs的安裝很簡單,可以選擇編譯安裝或者rpm包安裝,此處爲了方便就選擇rpm包安裝了
首先安裝依賴包(使用163源):
yum -y install rpcbind libaio lvm2-devel openssl libibverbs librdmacm
安裝Glusterfs
glusterfs-3.4.2-1.el6.x86_64.rpm
glusterfs-cli-3.4.2-1.el6.x86_64.rpm
glusterfs-fuse-3.4.2-1.el6.x86_64.rpm
glusterfs-rdma-3.4.2-1.el6.x86_64.rpm
glusterfs-api-3.4.2-1.el6.x86_64.rpmglusterfs-debuginfo-3.4.2-1.el6.x86_64.rpm
glusterfs-geo-replication-3.4.2-1.el6.x86_64.rpm
glusterfs-server-3.4.2-1.el6.x86_64.rpm
glusterfs-api-devel-3.4.2-1.el6.x86_64.rpmglusterfs-devel-3.4.2-1.el6.x86_64.rpm
glusterfs-libs-3.4.2-1.el6.x86_64.rpm
這些包都是在官網下載的,依賴包安裝完以後可以直接使用rpm -ivh * 安裝,安裝完以後設置服務開機自啓動chkconfig glusterd on
下面來演示創建集羣、創建卷、使用系統NFS訪問、使用原生NFS訪問:
創建集羣:
gluster peer probe 其他服務器地址(自己不需要添加)添加集羣成員
[root@localhost 3.4]# gluster peer probe 192.168.1.2
peer probe: success: host 192.168.1.2 port 24007 already in peer list
[root@localhost 3.4]# gluster peer probe 192.168.1.3
peer probe: success: host 192.168.1.3 port 24007 already in peer list
gluster peer status 查看集羣狀態
[root@localhost 3.4]# gluster peer status
Number of Peers: 2
Hostname: 192.168.1.2
Port: 24007
Uuid: 35eb06f8-24da-43d9-96e5-75c6a203f858
State: Peer in Cluster (Connected)
Hostname: 192.168.1.3
Port: 24007
Uuid: efe5836a-555e-4c24-ba76-4b3602d0f15c
State: Peer in Cluster (Connected)
創建卷:
首先來看看卷管理的常用命令:
創建卷幫助
gluster volume create help
查看卷信息:
gluster volume info
查看卷狀態:
gluster volume status
創建卷:
volume create <NEW-VOLNAME> [stripe <COUNT>] [replica <COUNT>] [device vg] [transport <tcp|rdma|tcp,rdma>] <NEW-BRICK> ... [force]
啓動卷:
gluster volume start volumename
停止卷:
gluster volume stop volumename
下面舉例:
gluster volume create jerryafr replica 2 192.168.1.1:/glust/er/afr 192.168.1.2:/gluster/abr
這條命令的目的是使用1.1上的/gluster/afr和1.2上的/gluster/abr創建一個名爲jerryafr的備份卷,需要注意的是如果這兩個brick在你的os parttion上那你還要再後面加上 force 否則會報錯
啓動卷:
gluster volume start jerryafr
啓動起來後我們可以mount測試一下:
mount -t glusterfs192.168.1.1:/jerryafr /media
上面這種方法是基於fuse實現的,glusterfs當然不會只能這麼玩,還可以支持NFS,NFS又分兩種原生NFS和系統NFS。
使用原生NFS掛載:mount -t nfs -o vers=3 192.168.1.1:/jerryafr /media
使用此種方法要確保服務端rpcbind要打開並且要注意系統NFS不能啓動
使用系統NFS掛載:
首先把卷使用glusterfs方法掛載到某個目錄
mount -t glusterfs 192.168.1.1:/jerryafr /media
然後修改/etc/exports文件
例子:/media *(rw,fsid=1235)
然後停掉原生NFS:gluster volume set jerryafr nfs.disable on
最後再啓動系統NFS服務即可