Configure Storage Clustering with GlusterFS.
For example, Create a Dispersed volume with 6 Nodes.
Dispersed Volumes is based on Erasure Coding (EC).
+----------------------+ | +----------------------+
| [GlusterFS Server#1] |10.0.0.51 | 10.0.0.54| [GlusterFS Server#4] |
| glus01.srv.local +----------+----------+ glus04.srv.local |
| | | | |
+----------------------+ | +----------------------+
|
+----------------------+ | +----------------------+
| [GlusterFS Server#2] |10.0.0.52 | 10.0.0.55| [GlusterFS Server#5] |
| glus02.srv.local +----------+----------+ glus05.srv.local |
| | | | |
+----------------------+ | +----------------------+
|
+----------------------+ | +----------------------+
| [GlusterFS Server#3] |10.0.0.53 | 10.0.0.56| [GlusterFS Server#6] |
| glus03.srv.local +----------+----------+ glus06.srv.local |
| | | |
+----------------------+ +----------------------+
It is strongly recommended to use partitions for GlusterFS volumes that are different from the / partition.
On this example, it shows settings on the environment that all nodes has [sdb1] and mount it to [/glusterfs].
[1] Install GlusterFS Server on All Nodes, refer to here.
[2] Create a Directory for GlusterFS Volume on all Nodes.
root@glus01:~# mkdir -p /glusterfs/dispersed
[3] Configure Clustering like follows on a node. (it’s OK on any node)
# probe nodes
root@glus01:~# gluster peer probe glus02
peer probe: success.
root@glus01:~# gluster peer probe glus03
peer probe: success.
root@glus01:~# gluster peer probe glus04
peer probe: success.
root@glus01:~# gluster peer probe glus05
peer probe: success.
root@glus01:~# gluster peer probe glus06
peer probe: success.
# confirm status
root@glus01:~# gluster peer status
Number of Peers: 5
Hostname: glus01.srv.local
Uuid: 6e19ea98-d7e2-4ee3-b402-11dcf95be673
State: Peer in Cluster (Connected)
Hostname: glus02
Uuid: f1c4ce91-1b08-45f7-84e7-6549a85071fd
State: Peer in Cluster (Connected)
Hostname: glus03
Uuid: 075c4737-17fb-4476-9668-02dab9315d85
State: Peer in Cluster (Connected)
Hostname: glus04
Uuid: 1a80e3a9-c07d-4bf1-a008-ab208a6c1196
State: Peer in Cluster (Connected)
Hostname: glus06
Uuid: 1d7cbd06-eccd-4f5b-8edc-62b1806c89e1
State: Peer in Cluster (Connected)
# create volume
root@glus01:~# gluster volume create vol_dispersed disperse-data 4 redundancy 2 transport tcp \
glus01:/glusterfs/dispersed \
glus02:/glusterfs/dispersed \
glus03:/glusterfs/dispersed \
glus04:/glusterfs/dispersed \
glus05:/glusterfs/dispersed \
glus06:/glusterfs/dispersed
volume create: vol_dispersed: success: please start the volume to access data
# start volume
root@glus01:~# gluster volume start vol_dispersed
volume start: vol_dispersed: success
# confirm volume info
root@glus01:~# gluster volume info
Volume Name: vol_dispersed
Type: Disperse
Volume ID: 52ffa13e-c4d1-41b3-9039-c84037c839cd
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x (4 + 2) = 6
Transport-type: tcp
Bricks:
Brick1: glus01:/glusterfs/dispersed
Brick2: glus02:/glusterfs/dispersed
Brick3: glus03:/glusterfs/dispersed
Brick4: glus04:/glusterfs/dispersed
Brick5: glus05:/glusterfs/dispersed
Brick6: glus06:/glusterfs/dispersed
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
[4] To mount GlusterFS volume on Client Hosts, refer to here.