GlusterFS User Guide v1.3

From GlusterDocumentation

Contents

Introduction

Moore's law is applied only to the computing industry. Unfortunately, the storage industry is very much left behind even though they are very much a part of the computing infrastructure. Many data centers are already running into scaling issues. Investing in more CPUs alone isn't sufficient, because most of the time nodes wait for data to be read or written to a slow and busy storage server creating a bottle neck.

GlusterFS precisely solves this problem by borrowing the clustering concept from the High Performance Computing industry to the storage industry. GlusterFS clusters multiple independent storage units into one large storage server to the extent of several peta-bytes and thousands of clients scalability. Each storage unit has its own CPUs, memory, I/O bus, RAID storage and interconnect interface. Theoretical peak performance is the aggregated performance of all the units. GlusterFS is designed for linear scalability for very large sized storage clusters.

GlusterFS Installation

Refer to Install and run GlusterFS v1.3 in 10mins

Note: Follow this link for GlusterFS Installation on VServer Guest.

GlusterFS Components

GlusterFS Server and Client

The GlusterFS server (glusterfsd) allows you to export volumes over the network. The GlusterFS client (glusterfs) mounts the GlusterFS server volumes into the kernel VFS. Much of the functionality in GlusterFS is implemented as Translators.

GlusterFS Translators

Translators are a very powerful mechanism provided by GlusterFS to extend its file system capabilities through a well defined interface. Both server and client side translator interfaces are compatible, which means you can load the same translator on either side. Translators are binary shared objects (.so) loaded at run-time, based on the volume specification file. In GlusterFS, even performance enhancements, extended features and debugging tools are implemented as translators.

The idea of translator is borrowed from the GNU/Hurd (http://hurd.gnu.org) operating system.


GlusterFS Translators v1.3 lists all of the available translators in GlusterFS.

GlusterFS Transport Modules

Server and Client protocol translators implements transport modules. The following transport-type are available.

  • TCP/IP
  • IB-verbs - Infiniband userspace verbs
  • IB-SDP - Infiniband socket direct protocol

GlusterFS Scheduler Modules

Scheduler module is responsible for load balancing across the storage cluster. Scheduler interface is implemented by Unify Translator.

Following schedulers are present in GlusterFS.

GlusterFS Volume Specification

Refer to GlusterFS Volume Specification v1.3 for more information on configuring the volume spec file.

GlusterFS Clustered Storage Design

Storage nodes or servers are called bricks because they are the basic unit in clustered storage.

gluster-storage.png

Conceptualizing Cluster Volume Specification

Here is a pictorial view of server and client volume specification files for four brick clustered storage.

Image:Glusterfs-cluster.png

[Image Source: GlusterFS Configuration Example for Four Bricks by Julien Perez]

GlusterFS Server

The GlusterFS server (glusterfsd) is a deamon which listens for client connections. Client and server maintain a connection until filesystem is unmounted.

Starting GlusterFS Server

Refer to GlusterFS Command-line Arguments for complete list of options.

To start the GlusterFS server (glusterfsd):

$ glusterfsd

Under GNU/Linux OS, you may start GlusterFS through the /etc/rc.local script. If you have installed from RPM or DEB like package, you can start through init.d scripts as well.

GlusterFS Client

Refer to GlusterFS Command-line Arguments for complete list of options.

Mounting the client

Once the server is started or client volume specification is ready, you can mount the filesystem. Refer to Mounting a GlusterFS Volume.

 

Copyright © Gluster, Inc. All Rights Reserved.