The software described in this documentation is either no longer supported or is in extended support.
Oracle recommends that you upgrade to a current supported release.

3.3 Creating Gluster Volumes

On each node in the Gluster trusted storage pool, storage should be allocated for Gluster volumes. In the examples in this guide, a file system is mounted on /data/glusterfs/myvolume/mybrick on each node. For information on setting up storage on nodes, see Section 2.4.1, “Preparing Oracle Linux Nodes”. Gluster creates a volume on this file system to use as bricks. There are number of volume types you can use:

  • Distributed: Distributes files randomly across the bricks in the volume. You can use distributed volumes where the requirement is to scale storage and the redundancy is not required, or is provided by other hardware/software layers. Disk/server failure can result in a serious loss of data as it is spread randomly across the bricks in the volume.

  • Replicated: Replicates files across bricks in the volume. You can use replicated volumes when high-availability is required.

  • Distributed Replicated: Distributes files across replicated bricks in the volume. You can use distributed replicated volumes to scale storage and for high-availability and high-reliability. Distributed replicated volumes offer improved read performance.

  • Dispersed: Provides space efficient protection against disk or server failures (based on erasure codes). This volume type stripes the encoded data of files, with some redundancy added, across multiple bricks in the volume. Dispersed volumes provide a configurable level of reliability with minimum space waste.

  • Distributed Dispersed: Distributes files across dispersed bricks in the volume. This has the same advantages of distributed replicated volumes, using dispersed instead of replicated to store the data to bricks.

The generally accepted naming convention for creating bricks and volumes is:

/data/glusterfs/volume_name/brick_name/brick

In this example, brick_name is the file system that can be mounted from a client. For information on mounting a Gluster file system, see Section 3.6, “Accessing Gluster Volumes”.

This section describes the basic steps to set up each of these volume types. When creating volumes, you should include all nodes in the Gluster trusted storage pool, including the node on which you are performing the step to create the volume.

The notation used in the examples to create and manage volumes may be provided in the Bash brace expansion notation. For example:

node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick

This is equivalent to providing the node information in the longer form of:

node1:/data/glusterfs/myvolume/mybrick/brick node2:/data/glusterfs/myvolume/mybrick/brick node3:/data/glusterfs/myvolume/mybrick/brick

Note that when a volume is configured, you can enable TLS on the volume to authenticate and encrypt connections between nodes that serve data for the volume, and for client systems that connect to the pool to access the volume. See Section 3.2, “Setting up Transport Layer Security (TLS)” for more information.

For more detailed information, see the Gluster upstream documentation.

3.3.1 Creating Distributed Volumes

This section provides an example of creating a pool using a distributed volume.

Example 3.1 Creating a distributed volume

This example creates a distributed volume over three nodes, with one brick on each node.

# gluster volume create myvolume node{1,2,3}:/data/glusterfs/myvolume/mybrick/brick
volume create: myvolume: success: please start the volume to access data
# gluster volume start myvolume
volume start: myvolume: success
# gluster volume info

Volume Name: myvolume
Type: Distribute
Volume ID: ...
Status: Started
Snapshot Count: 0
Number of Bricks: 3
Transport-type: tcp
Bricks:
Brick1: node1:/data/glusterfs/myvolume/mybrick/brick
Brick2: node2:/data/glusterfs/myvolume/mybrick/brick
Brick3: node3:/data/glusterfs/myvolume/mybrick/brick
Options Reconfigured:
transport.address-family: inet
nfs.disable: on