OpenStack Manual Installation - 4th Topic: To Build Cinder Component

Notice: This series is to expect to use kernel 3.10.0-229.

1.What Cinder provides.

 It provides block storage which allows block devices to be exposed and connected to compute instances for expanded storage, better performance and integration with enterprise storage platforms.

 It provides persistent block level storage devices for use with the OpenStack compute instances which can be exposed to applications as well.

The block storage system manages the creation, attaching and detaching of the block devices to servers. Block storage volumes are fully integrated into the OpenStack compute and the dashboard allowing for cloud users to manage their own storage requirements.

2. The capabilities.

 The block storage system manages the creation, attaching and detaching of the block devices to servers.

 Block storage is appropriate for performance sensitive scenarios such as database storage, expandable file systems, or providing a server with access to raw block level storage.

 Snapshot management provides powerful functionality for backing up data stored on block stoage volumes.

3. Architecture.

1. cinder-api

 To authenticates and routes requests throughout the block storage system.

2. cinder-scheduler

 To schedule, route volume create requests to the appropriate volume service.

3. cinder-volume

 To manage block storage devices, specifically the back-end devices themselves.

Cinder deployments will make use of a messaging queue to route information between the cinder processes as well as a database to store volume state.

4. Installation.

4.1. To install package

# yum -y install openstack-cinder

4.2. To do initial settting up.

# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.org

# cp /usr/share/cinder/cinder-dist.conf /etc/cinder/cinder.conf

# source /root/keystonerc_admin

# openstack-db --init --service cinder --password cinder --rootpw cinder

# keystone user-create --name cinder --pass cinder

# keystone user-role-add --user cinder --type volume --description "OpenStack Block Storage Service"

# export CINDER_SERVICE_ID=`keystone service-list | grep cinder | awk '{print $2}'

 /* Ip address should be cinder's */

# keystone endpoint-create \

 --service-id ${CINDER_SERVICE_ID} \

--publicurl 'http://<ip address>/v1/%(tenant_id)s' \

--adminurl 'http://<ip address>/v1/%(tenant_id)s' \

--internalurl 'http://<ip address>/v1/%(tenant_id)s'

# keystone service-create --name=cinderv2 --type=volumev2 --description="Cinder Volume  Service V2"

# export CINDER_SERVICE_ID=`keystone service-list | grep cinder | awk '{print $2}'

/* Ip address should be cinder's */

# keystone endpoint-create \

 --service-id ${CINDER_SERVICE_ID} \

--publicurl 'http://<ip address>/v2/%(tenant_id)s' \   

--adminurl 'http://<ip address>/v2/%(tenant_id)s' \

--internalurl 'http://<ip address>/v2/%(tenant_id)s'

4.3. To configure Cinder

# crudini --set /etc/cinder/cinder.conf keystone_authtoken admin_tenant_name services

# crudini --set /etc/cinder/cinder.conf keystone_authtoken admin_user cinder

# crudini --set /etc/cinder/cinder.conf keystone_authtoken admin_password cinder

# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_userid rabbitadmin

# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_password rabbitpass

/* Ip address should be message broker's */

# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_host <ip address>

# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_use_ssl True

# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_port 5671

4.4. To reflect configurations

# systemctl enable openstack-cinder-api

# systemctl enable openstack-cinder-scheduler

# systemctl enable openstack-cinder-volume

# openstack-service start cinder

# openstack-status