一.集羣概念--Gluster算法
集羣」主要分爲高性能集羣HPC(High Performance Cluster)、高可用集羣HAC(High Availablity Cluster)和負載均衡集羣LBC(Load Balancing Cluster)。集羣文件系統是指協同多個節點提供高性能、高可用或負載均衡的文件系統,它是分佈式文件系統的一個子集,消除了單點故障和性能瓶問題。對於客戶端來講集羣是透明的,它看到是一個單一的全局命名空間,用戶文件訪問請求被分散到全部集羣上進行處理。此外,可擴展性(包括Scale-Up和 Scale-Out)、可靠性、易管理等也是集羣文件系統追求的目標。在元數據管理方面,能夠採用專用的服務器,也能夠採用服務器集羣,或者採用徹底對等分佈的無專用元數據服務器架構。GlusterFS是Scale-Out存儲解決方案Gluster的核心,它是一個開源的分佈式文件系統,具備強大的橫向擴展能力,經過擴展可以支持數PB存儲容量和處理數千客戶端。GlusterFS藉助TCP/IP或InfiniBand RDMA網絡將物理分佈的存儲資源聚攏在一塊兒,使用單一全局命名空間來管理數據,用戶文件訪問請求被分散到全部集羣上進行處理,採用徹底對等分佈的無專用元數據服務器架構。服務器
二.Gluster的Volume的種類與建立的指令網絡
1.卷的種類架構
Distributed:分佈式卷,文件經過hash算法隨機的分佈到由bricks組成的捲上。併發
Replicated:複製式卷,相似raid1,replica數必須等於volume中brick所包含的存儲服務器數,可用性高。負載均衡
Striped:條帶式卷,相似與raid0,stripe數必須等於volume中brick所包含的存儲服務器數,文件被分紅數據塊,以Round Robin的方式存儲在bricks中,併發粒度是數據塊,大文件性能好。tcp
Distributed Striped:分佈式的條帶卷,volume中brick所包含的存儲服務器數必須是stripe的倍數(>=2倍),兼顧分佈式和條帶式的功能。分佈式
Distributed Replicated:分佈式的複製卷,volume中brick所包含的存儲服務器數必須是 replica 的倍數(>=2倍),兼顧分佈式和複製式的功能。ide
2.卷的建立指令性能
** 建立分佈卷
gluster volume create Clouddisk server1:/gfs/disk1 server2:/gfs/disk1
** 建立複製卷
gluster volume create Clouddisk replica 2 server1:/gfs/disk1 server2:/gfs/disk1
** 建立條帶卷
gluster volume create Clouddisk stripe 2 server1:/gfs/disk1 server2:/gfs/disk1
**分佈條帶式卷
gluster volume create Clouddisk stripe 4 transport tcp server1:/gfs/disk1 server2:/gfs/disk1
**添加入信任存儲池(在服務器server1上)
gluster peer probe server2
gluster peer probe server3
gluster peer probe server4
**分佈複製式
gluster volume create Clouddisk replica 2 transport tcp server1:/gfs/disk1 server2:/gfs/disk1 server3:/gfs/disk1 server4:/gfs/disk1
**啓動卷
gluster volume start Clouddisk
** 若是之後要添加服務器,能夠使用add-brick命令:
gluster volume add-brick Clouddisk server-5:/gfs/disk1 fs-server-6:/gfs/disk1
gluster volume remove-brick VOLNAME BRICK
注意:當你給分佈式複製卷和分佈式條帶卷中增長bricks時,你增長的bricks的數目必須是複製或者條帶數目的倍數,例如:你給一個分佈式複製卷的replica爲2,你在增長bricks的時候數量必須爲二、四、六、8等。
當移除分佈式複製卷或者分佈式條帶卷的時候,移除的bricks數目必須是replica或者stripe的倍數。例如:一個分佈式條帶卷的stripe是2,當你移除bricks的時候必須是二、四、六、8等。
**掛載glusterfs
mount -t glusterfs fs-server-1:/coluddisk /mnt/gfs
mount -t nfs fs-server-1:/clouddisk /mnt/gfs
mount -v -t nfs -o mountproto=tcp,vers=3 fs-server-1:/clouddisk /mnt/gfs-nfs
**在Server1上掛載,其餘節點掛載同樣的方式
mount -t glusterfs localhost:/clouddisk -o backup-volfile-servers=server2:server3:server4 /cloudisk
三.Gluster相關排查指令
**檢查Volume的信息狀態
gluster volume info clouddisk
例子:
[root@controller01 ~]# gluster --remote-host=server3 volume info
Volume Name: openstack
Type: Distributed-Replicate
Volume ID: f01fc5c9-b2de-466f-b1ed-58e60260bf7e
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: server1:/gfs/disk1
Brick2: server2:/gfs/disk1
Brick3: server3:/gfs/disk1
Brick4: server4:/gfs/disk1
Options Reconfigured:
server.allow-insecure: on
storage.owner-gid: 107
storage.owner-uid: 107
network.remote-dio: enable
cluster.eager-lock: enable
performance.stat-prefetch: off
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
**檢查每存儲節點狀態
例子:
[root@controller01 ~]# gluster --remote-host=server3 peer status
Number of Peers: 4
Hostname: server1
Uuid: 6951ef5e-4ce7-4c69-90dc-839c3c7b5cdf
State: Peer in Cluster (Connected)
Hostname: server2
Uuid: 7a795844-13f6-4c66-ad66-eb906a5ddcce
State: Peer in Cluster (Connected)
Hostname: server4
Uuid: bf0e5fca-56f2-427c-bc89-9db950e290d1
State: Peer in Cluster (Connected)
**啓動與關閉glusterd服務
systemctl {start/stop/restart} glusterd.service
**檢查Gluster的進程
ps ax | grep glu*
**殺掉全部Gluster進程
killall gluster{,d,fs,fsd}