Download - OpenStack Tokyo Meeup - Gluster Storage Day

Transcript
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