swiftonhpss/doc/markdown/quick_start_guide.md
Thiago da Silva b79aa55603 mounts should use inode64 in quick guide
Change-Id: I370c6bcaa30523385ddb256060d4ac9744d58893
Signed-off-by: Thiago da Silva <thiago@redhat.com>
Reviewed-on: http://review.gluster.org/6013
Reviewed-by: Peter Portante <pportant@redhat.com>
Tested-by: Peter Portante <pportant@redhat.com>
2013-09-27 09:25:41 -07:00

7.1 KiB

Quick Start Guide

Contents

## Overview The following guide will get you started quickly with a Gluster for Swift environment on a Fedora or RHEL/CentOS system. This guide is a great way to begin using Gluster for Swift, and can be easily deployed on a single virtual machine. The final result will be a single Gluster for Swift node running Grizzly-based OpenStack Swift.

NOTE: In Gluster for Swift, accounts are GlusterFS volumes.

## System Setup

Prerequisites on CentOS/RHEL

On CentOS/RHEL you may need to setup yum to access EPEL repository by running the following command:

  • CentOS
wget -O /etc/yum.repos.d/glusterfs-epel.repo \
  http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
  • RHEL
wget -O /etc/yum.repos.d/glusterfs-epel.repo \
  http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-epel.repo

Required Package Installation

Install and start the required packages on your system to create a GlusterFS volume.

yum install glusterfs glusterfs-server glusterfs-fuse memcached xfsprogs

Start services

  • RHEL and Fedora 19
service glusterd start
service memcached start
  • CentOS 6+
/etc/init.d/glusterd start
/etc/init.d/memcached start

Type the following to start the services automatically on system startup:

chkconfig memcached on
chkconfig glusterd on

Gluster Volume Setup

Now you to need determine whether you are going to use a partition or a loopback device for storage.

Partition Storage Setup

If you are using a separate disk partition, please execute the following instructions to create a GlusterFS brick:

mkfs.xfs -i size=512 /dev/<disk partition>
mkdir -p /export/brick

Add the following line to /etc/fstab to mount the storage automatically on system startup:

/dev/<disk partition>   /export/brick   xfs   inode64,noatime,nodiratime 0 0

Now type the following to mount the storage:

mount -a

Loopback Storage Setup

If you do not have a separate partition, please execute the following instructions to create a disk image as a file:

truncate -s 5GB /srv/swift-disk
mkfs.xfs -i size=512 /srv/swift-disk
mkdir -p /export/brick

Add the following line to /etc/fstab to mount the storage automatically on system startup:

/srv/swift-disk /export/brick   xfs   loop,inode64,noatime,nodiratime 0 0

Now type the following to mount the storage:

mount -a

Create a GlusterFS Volume

You now need to create a GlusterFS volume

mkdir /export/brick/myvolume
gluster volume create myvolume `hostname`:/export/brick/myvolume
gluster volume start myvolume
## Gluster for Swift Setup

Repository Setup on RHEL/CentOS

Gluster for Swift requires OpenStack Swift's latest stable release, which may not be available on some older operating systems. For RHEL/CentOS systems, please setup Red Hat RDO's repo by executing the following command:

yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly.rpm

Download

Gluster for Swift uses Jenkins for continuous integration and creation of distribution builds. Download the latest RPM builds from one of the links below:

Install

Install the RPM by executing the following:

yum install -y <path to RPM>

Enabling gluster-swift accross reboots

Type the following to make sure Gluster for Swift is enabled at system startup:

chkconfig openstack-swift-proxy on
chkconfig openstack-swift-account on
chkconfig openstack-swift-container on
chkconfig openstack-swift-object on

Fedora 19 Adjustment

Currently gluster-swift requires its processes to be run as root. You need to edit the openstack-swift-*.service files in /etc/systemd/system/multi-user.target.wants and change the User entry value to root.

Then run the following command to reload the configuration:

systemctl --system daemon-reload

Configuration

As with OpenStack Swift, Gluster for Swift uses /etc/swift as the directory containing the configuration files. You will need to base the configuration files on the template files provided. On new installations, the simplest way is to copy the *.conf-gluster files to *.conf files as follows:

cd /etc/swift
for tmpl in *.conf-gluster ; do cp ${tmpl} ${tmpl%.*}.conf; done

Generate Ring Files

You now need to generate the ring files, which inform Gluster for Swift which GlusterFS volumes are accessible over the object storage interface. The format is

gluster-swift-gen-builders [VOLUME] [VOLUME...]

Where VOLUME is the name of the GlusterFS volume which you would like to access over Gluster for Swift.

Expose the GlusterFS volume called myvolume you created above by executing the following command:

cd /etc/swift
/usr/bin/gluster-swift-gen-builders myvolume

Start gluster-swift

Use the following commands to start Gluster for Swift:

  • RHEL and Fedora 19
service openstack-swift-object start
service openstack-swift-container start
service openstack-swift-account start
service openstack-swift-proxy start
  • CentOS 6+
/etc/init.d/openstack-swift-object start
/etc/init.d/openstack-swift-container start
/etc/init.d/openstack-swift-account start
/etc/init.d/openstack-swift-proxy start
## Using Gluster for Swift

Create a container

Create a container using the following command:

curl -v -X PUT http://localhost:8080/v1/AUTH_myvolume/mycontainer

It should return HTTP/1.1 201 Created on a successful creation. You can also confirm that the container has been created by inspecting the GlusterFS volume:

ls /mnt/gluster-object/myvolume

Create an object

You can now place an object in the container you have just created:

echo "Hello World" > mytestfile
curl -v -X PUT -T mytestfile http://localhost:8080/v1/AUTH_myvolume/mycontainer/mytestfile

To confirm that the object has been written correctly, you can compare the test file with the object you created:

cat /mnt/gluster-object/myvolume/mycontainer/mytestfile

Request the object

Now you can retreive the object and inspect its contents using the following commands:

curl -v -X GET -o newfile http://localhost:8080/v1/AUTH_myvolume/mycontainer/mytestfile
cat newfile
## What now? For more information, please visit the following links: