Categories

ID #1365

How to use GPFS with Bright Openstack 7.3 and higher.

How can Bright OpenStack be connected with GPFS?


This article explains how GPFS can be set up as a storage backend for Bright OpenStack (Cinder, Nova, Glance)


This article does not discuss how to migrate your data to GPFS. Support should be contacted for that for that, and the database will need to be edited to change the paths of the volumes and the images.


These steps can be applied to all of the components or to one of them only.

The best thing to do is to use GPFS as a unified storage for all of the cluster. There will be CoW benefits which will save time and storage space.


The following KB article describes how to create a GPFS cluster in Bright:


/faq/index.php?action=artikel&cat=18&id=327


Configuring Cinder :

These commands can be followed to configure Cinder:


[root@ib-dev ~]# cmsh

[ib-dev]% configurationoverlay

[ib-dev->configurationoverlay]% use openstackcontrollers

[ib-dev->configurationoverlay[OpenStackControllers]]% roles

[ib-dev->configurationoverlay[OpenStackControllers]->roles]% use openstack::volume

[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::Volume]]% volumebackends

[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::Volume]->volumebackends]% add ?

Name:

         add - Create a new openstackvolumebackend of the given type with specified name


Usage:

         add <type> <name>


Arguments:

         type

              3par, ceph, dellstoragecenter, gpfs, nfs, netapp, solidfire


[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::Volume]->volumebackends]%



As the help text suggests, there are multiple storage backends supported for Cinder in Bright Openstack. It is gpfs that should be chosen here:


[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::Volume]->volumebackends]% add gpfs gpfs

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::Volume*]->volumebackends*[gpfs*]]% show

Parameter                        Value

-------------------------------- ------------------------------------------------

Name                             gpfs

Revision

Type                             OpenStackVolumeBackendGPFS

Volume driver

Images directory

Images share mode                Copy On Write

Max clone depth                  0

Mount point base

Sparse volumes                   yes

Storage pool                     system

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::Volume*]->volumebackends*[gpfs*]]%


There are many options that can be set. The most important are :


  • Images Directory -> this is the path of glance images. It should only be set if GPFS is used for Glance as well.
  • Mount point base -> This is the mountpoint on GPFS intended to be used for Cinder
  • Storage pool   -> This is the storage pool name assigned for the GPFS NSD that will be used for Cinder.


Example :


[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::Volume*]->volumebackends*[gpfs*]]% show

Parameter                        Value

-------------------------------- ------------------------------------------------

Name                             gpfs

Revision

Type                             OpenStackVolumeBackendGPFS

Volume driver

Images directory

Images share mode                Copy On Write

Max clone depth                  0

Mount point base

Sparse volumes                   yes

Storage pool                     system

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::Volume*]->volumebackends*[gpfs*]]% set imagesdirectory /gpfs1/glance

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::Volume*]->volumebackends*[gpfs*]]% set mountpointbase /gpfs/cinder



Before committing, the other backend must be removed. Otherwise, if it is intended that multiple backends are to be used, then this KB article can be followed:


/faq/index.php?action=artikel&cat=24&id=324


[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::Volume]->volumebackends[gpfs]]% ..

[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::Volume]->volumebackends]% remove nfs

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::Volume*]->volumebackends*]% commit

 

Cinder should now be configured to use GPFS.

 

Configuring Glance

The following procedure can be followed for Glance:


[root@ib-dev ~]# cmsh

use[ib-dev]% configurationoverlay

[ib-dev->configurationoverlay]% use openstackcontrollers

[ib-dev->configurationoverlay[OpenStackControllers]]% roles

[ib-dev->configurationoverlay[OpenStackControllers]->roles]% use openstack::imageapi

[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::ImageApi]]% imagebackends

[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::ImageApi]->imagebackends]% add ?

Name:

         add - Create a new openstackimagebackend of the given type with specified name


Usage:

         add <type> <name>


Arguments:

         type

              ceph, filesystem


[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::ImageApi]->imagebackends]%


What needs to be added is a filesystem. There are no special properties for Glance on GPFS:


[ib-dev->configurationoverlay[OpenStackControllers]->roles[OpenStack::ImageApi]->imagebackends]% add filesystem gpfs

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::ImageApi*]->imagebackends*[gpfs*]]% show

Parameter                         Value

--------------------------------- ------------------------------------------------

Default Store

Filesystem mounts                 <0 in submode>

Name                              gpfs

Revision

Show Image Direct URL             yes

Type                              OpenStackImageBackendFS

Filesystem backend storage path   /cm/shared/apps/openstack/glance-images

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::ImageApi*]->imagebackends*[gpfs*]]%




The filesystembackendstoragepath needs to be set to the mount point of the GPFS that is to be used for Glance :


[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::ImageApi*]->imagebackends*[gpfs*]]% set filesystembackendstoragepath /gpfs1/glance

[ib-dev->configurationoverlay*[OpenStackControllers*]->roles*[OpenStack::ImageApi*]->imagebackends*[gpfs*]]% show


The other backend should be removed, and the changes committed.


Configuring Nova

The configuration for Nova can be carried out as follows:


[ib-dev->configurationoverlay[OpenStackHypervisors]->roles[OpenStack::Compute]->imagebackends[gpfs]]%remove cow_over_nfs_cmshared


[ib-dev->configurationoverlay[OpenStackHypervisors]->roles[OpenStack::Compute]->imagebackends[gpfs]]%add cow gpf


[ib-dev->configurationoverlay[OpenStackHypervisors]->roles[OpenStack::Compute]->imagebackends[gpfs]]%commit


[ib-dev->configurationoverlay[OpenStackHypervisors]->roles[OpenStack::Compute]->imagebackends[gpfs]]%..

[ib-dev->configurationoverlay[OpenStackHypervisors]->roles[OpenStack::Compute]->imagebackends[gpfs]]%..

[ib-dev->configurationoverlay[OpenStackHypervisors]->roles[OpenStack::Compute]->imagebackends[gpfs]]%set novastatepath /gpfs1/nova




novastatepath has been set in the preceding to /gpfs1/nova as this is the mount point dedicated to Nova.


The Cinder and Glance components on the controllers node should now be restarted. One way to do this is to use foreach on the controllers. For example:


#cmsh

%device

%foreach -n controller1..controller3 ( services ; restart openstack-cinder-* ; restart openstack-glance-*)


openstack-nova-compute should now be restarted on all of the hypervisors:


#cmsh

%device

%foreach -n hyper1..hyper20 ( services ; restart openstack-nova-compute )



The procedure should now be complete. Starting instances and uploading images on the GPFS backend should now be possible.


Tags: -

Related entries:

You cannot comment on this entry