28
OPENSTACK STORAGE ARCHITECTURE Dan Radez Sr. Software Engineer, Red Hat [email protected] irc: radez

OpenStack Tokyo Meeup - Gluster Storage Day

Embed Size (px)

DESCRIPTION

November 2012 Tokyo OpenStack meetup was dedicated to using Gluster storage. This presentation showed the fuse mount method to integrating gluster into OpenStack. There are new drivers that have been developed that make mounting gluster volumes to instances more efficient. This presentation doesn't show how to use them.

Citation preview

Page 1: OpenStack Tokyo Meeup - Gluster Storage Day

OPENSTACK

STORAGE ARCHITECTURE

Dan RadezSr. Software Engineer, Red [email protected]: radez

Page 2: OpenStack Tokyo Meeup - Gluster Storage Day

Red Hat's Community OpenStack

openstack.redhat.com

Page 3: OpenStack Tokyo Meeup - Gluster Storage Day

Storage Components

● Database

● Glance

● Nova

● Cinder

● Swift

Page 4: OpenStack Tokyo Meeup - Gluster Storage Day

Component Architecture

Page 5: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Store Options

● Local Storage (no HA)

● Shared Storage

● Replicated Storage

Page 6: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Local Storage

DB Node

Page 7: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Shared Storage

Storage

DB Node* DB Node

iSCSI or NFS

PacemakerActive / Passive Failover

PacemakerActive / Passive Failover

FIP: 10.10.10.123

* MySQL service is running

Page 8: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Shared Storage

Storage

DB Node DB Node*

iSCSI or NFS

X

PacemakerActive / Passive Failover

PacemakerActive / Passive Failover

FIP: 10.10.10.123

* MySQL service is running

Page 9: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Replicated Storage

DB Node* DB Node*

Master / Slave Replication

PacemakerActive / Passive Failover

PacemakerActive / Passive Failover

FIP: 10.10.10.123

Master Slave

* MySQL service is running

Page 10: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Replicated Storage

DB Node DB Node*XMaster / Slave Replication

PacemakerActive / Passive Failover

PacemakerActive / Passive Failover

Master

FIP: 10.10.10.123

* MySQL service is running

Page 11: OpenStack Tokyo Meeup - Gluster Storage Day

Database :: MySQL / MariaDB

Pacemaker Disclaimer

3 node minimumfor quorum

Page 12: OpenStack Tokyo Meeup - Gluster Storage Day

Glance: Image Management

Page 13: OpenStack Tokyo Meeup - Gluster Storage Day

Glance: Image Management

Store Backends

● Local (mounted)

● Swift

● Cinder

● more...

/usr/lib/python2.7/site-packages/glance/store

Page 14: OpenStack Tokyo Meeup - Gluster Storage Day

Glance: Image Management

Use GlusterFS to back Glance# yum install -y glusterfs-fuse

# mkdir /srv/openstack

# vim /etc/fstabgluster1:/openstack /srv/openstack glusterfs defaults,_netdev 0 0

# mount -a# mkdir -p /srv/openstack/glance/images/# chown -R glance:glance /srv/openstack/glance/

Page 15: OpenStack Tokyo Meeup - Gluster Storage Day

Glance: Image Management

Configure OpenStack# vim /etc/glance/glance-api.conf filesystem_store_datadir=/srv/openstack/glance/images/

# vim /etc/glance/glance-cache.conf filesystem_store_datadir=/srv/openstack/glance/images/

# grep "/var/lib/glance" /etc/glance/*glance-api.conf:#scrubber_datadir=/var/lib/glance/scrubberglance-api.conf:#image_cache_dir=/var/lib/glance/image-cache/glance-cache.conf:#image_cache_dir=/var/lib/glance/image-cache/glance-scrubber.conf:#scrubber_datadir=/var/lib/glance/scrubber

# service openstack-glance-api restart# service openstack-glance-registry restart

Page 16: OpenStack Tokyo Meeup - Gluster Storage Day

Nova: Instance Management

Page 17: OpenStack Tokyo Meeup - Gluster Storage Day

Nova: Instance Management

Use GlusterFS to back Nova# yum install -y glusterfs-fuse

# mkdir /srv/openstack# vim /etc/fstabgluster1:/openstack /srv/openstack glusterfs defaults,_netdev 0 0

# mount -a# mkdir -p /srv/openstack/instances# chown -R nova:nova /srv/openstack/instances

# vim /etc/nova/nova.confinstances_path=/srv/openstack/instances

# service openstack-nova-compute restart

Page 18: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Page 19: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Drivers

● LVM

● NFS

● GlusterFS

● more...

/usr/lib/python2.7/site-packages/cinder/volume/drivers

Page 20: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Example: Multiple Storage Types

Dependencies

# yum install -y glusterfs-fuse

Configuration

# vim /etc/cinder/shares.confgluster1:openstackgluster2:openstack

(gluster_host.domain.com:gluster_volume_name)

Page 21: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Configuration

#vim /etc/cinder/cinder.confenabled_backends=my_lvm,my_glusterfs

[my_lvm]volume_group = cinder-volumesvolume_driver = cinder.volume.drivers.lvm.LVMISCSIDrivervolume_backend_name = LVM

[my_glusterfs]volume_driver = cinder.volume.drivers.glusterfs.GlusterfsDriverglusterfs_shares_config = /etc/cinder/shares.confglusterfs_sparsed_volumes = falsevolume_backend_name = GLUSTER

Page 22: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Restart cinder & verify

# service openstack-cinder-scheduler restart

# service openstack-cinder-volume restart

# mount | grep cindergluster1:openstack on /var/lib/cinder/... type fuse.glusterfsgluster2:openstack on /var/lib/cinder/... type fuse.glusterfs

Page 23: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Create cinder volume types

# cinder type-create lvm

# cinder type-key lvm set volume_backend_name=LVM

# cinder type-create glusterfs

# cinder type-key glusterfs set volume_backend_name=GLUSTER

Create cinder volume using type

# cinder create --volume-type glusterfs --display-name test 1

Page 24: OpenStack Tokyo Meeup - Gluster Storage Day

Cinder: Block Storage

Compute configuration (experimental)

# vim /etc/nova/nova.confdebug=Falseqemu_allowed_storage_drivers=gluster

# service openstack-nova-compute restart

Page 25: OpenStack Tokyo Meeup - Gluster Storage Day

Swift: Object Storage

Page 26: OpenStack Tokyo Meeup - Gluster Storage Day

Swift: Object Storage

Storage Backends

● Swift Storage

● GlusterFS

● more...

Page 27: OpenStack Tokyo Meeup - Gluster Storage Day

Review

Page 28: OpenStack Tokyo Meeup - Gluster Storage Day

Resources

● RDO: openstack.redhat.com

● https://access.redhat.com/knowledge/docs/en-US/Red_Hat_OpenStack

● OpenStack.org

● TryStack.org

● Puppetlabs.com

● Djangoproject.com

● http://radez.fedorapeople.org/TokyoMeetup_slides.pdf