Striped volumes stripes data across bricks in the volume. For best results, you should use striped volumes only in high concurrency environments accessing very large files.
Note: The number of bricks should be a equal to the stripe count for a striped volume.
In this tutorial, we are going to create a Striped GlusterFS Volume Across two servers. Both servers we already installed Glusterfs server packages, if you didn’t installed yet you can take a look to this article describing ” How to Install and Setup GlusterFS Server on Centos 7 / RHEL 7 and Ubuntu 16.04 LTS“, have an empty disk attached as /dev/sdb. Using this disk, we will create a new logical volume (lv01) that will be mounted for the XFS bricks.
Enviroment
Servers | glusterfs01.yallalabs.local | 192.168.1.20 | CentOS 7 |
glusterfs02.yallalabs.local | 192.168.1.21 | CentOS 7 | |
Clients | client01.yallalabs.local | 192.168.1.30 | CentOS 7 |
Step 1./ Preparing Servers:
– Configuring /etc/hosts
– GlusterFS components use DNS for name resolutions, if you do not have a DNS on your environment then update /etc/hosts file on every server and ensure that the host names of each server are accordingly resolvable.
# sudo vi /etc/hosts 192.168.1.20 glusterfs01.yallalabs.local glusterfs01 192.168.1.21 glusterfs02.yallalabs.local glusterfs02 192.168.1.30 client01.yallalabs.local client
– Configuring Firewall
– By default, glusterd will listen on tcp/24007, if you have firewall running, open the port or run below command on each node to allow all connections within the cluster nodes:
# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="" accept' # firewall-cmd --reload
– Preparing Bricks
– Create the partition using the fdisk command:
# fdisk /dev/sdb ... Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 .... Command (m for help): t Selected partition 1 Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' .... Command (m for help): w
– Type the following command to inform the operating system kernel of creation of the new partition:
# partprobe
– Create a physical volume by using the pvcreate command:
# pvcreate /dev/sdb1 # vgcreate vg01 /dev/sdb1 # lvcreate -l 100%FREE -n lv01 vg01 # mkfs.xfs /dev/mapper/vg01-lv01
– Create a mountpoint brick directory using the following command:
# mkdir -p /gluster/bricks/brick1
– To mount the brick, we need to create an entry in /etc/fstab file :
# vi /etc/fstab /dev/mapper/vg01-lv01 /gluster/bricks/brick1 xfs defaults 0 0
Run the following command to mount the brick.
# mount -a
– Run the df -Th command to verify the brick is successfully mounted:
# df -h
Step 2./ Creating GlusterFS trusted Storage Pool
– To create a trusted GlusterFS storage pool, you can run the following command in the first node:
# gluster peer probe glusterfs02 peer probe: success.
– To verify the status of your node and the gluster server pool, run the following command:
# gluster pool list UUID Hostname State 54537353-2ec0-4f72-b719-6cd9788f4cf7 glusterfs02 Connected 26232d5d-eef3-412b-89d2-06b291a0c424 localhost Connected
Step 3./ Creating GlusterFS Volume
– Create the directory vol01 under /gluster/bricks/brick1/ directory:
# mkdir /gluster/bricks/brick1/vol01
– Create the volume using the following command:
# gluster volume create strvol stripe 2 transport tcp glusterfs01:/gluster/bricks/brick1/vol01 glusterfs02:/gluster/bricks/brick1/vol01 Creation of strvol has been successful Please start the volume to access data.
– Start the volume using the following command:
# gluster volume start strvol Starting strvol has been successful
– To display the volume information just execute the following command:
# gluster volume info strvol Volume Name: strvol Type: Stripe Volume ID: 85eb66b3-5860-4b09-8d37-78eec98b622d Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs01:/bricks/brick1/vol01 Brick2: glusterfs02:/bricks/brick1/vol01 Options Reconfigured: nfs.disable: on transport.address-family: inet
We hope this tutorial was enough Helpful. If you need more information, or have any questions, just comment below and we will be glad to assist you!