FHS-2.3 isn't entirely clear on where data shared by the server should reside. It does state that "/srv contains site-specific data which is served by this system" but is GlusterFS data site-specific?
The consensus seems to lean toward using /data. A good hierarchical method for placing bricks is:
/data/glusterfs/`<volume>`/`<brick>`/brick
In this example,
Example: One Brick Per Server
A physical disk /dev/sdb is going to be used as brick storage for a volume you're about to create named myvol1. You've partitioned and formatted /dev/sdb1 with xfs on each of 4 servers.
On all 4 servers:
mkdir -p /data/glusterfs/myvol1/brick1
mount /dev/sdb1 /data/glusterfs/myvol1/brick1
We're going to define the actual brick in the /brick directory on that filesystem. This helps by causing the brick to fail to start if the xfs filesystem isn't mounted.
On just one server:
gluster volume create myvol1 replica 2 server{1..4}:/data/glusterfs/myvol1/brick1/brick
This will create a volume that uses that directory on all 4 servers.
Example: Two Bricks Per Server
Two physical disks /dev/sdb and /dev/sdc are going to be used as brick storage for a volume you're about to create named myvol2. You've partitioned and formatted /dev/sdb1 and /dev/sdc1 with xfs on each of 4 servers.
On all 4 servers:
mkdir -p /data/glusterfs/myvol2/brick{1,2}
mount /dev/sdb1 /data/glusterfs/myvol2/brick1
mount /dev/sdc1 /data/glusterfs/myvol2/brick2
Again we're going to define the actual brick in the /brick directory on those filesystems.
On just one server:
gluster volume create myvol2 replica 2 server{1..4}:/data/glusterfs/myvol2/brick1/brick server{1..4}:/data/glusterfs/myvol2/brick2/brick
Note It might be tempting to try
gluster volume create myvol2 replica 2 server{1..4}:/data/glusterfs/myvol2/brick{1,2}/brick
but bash will expand the last {} first so you would end up replicating between the two bricks on each server instead of across servers.