Introduction to OpenStack Trove A multi-database deployment Doug Shelley - Tesora Michael Basnight - Rackspace
Agenda What is Trove How to Install Trove A look at the Trove API Multi-Database demonstration Questions
Traditional Database Management
What is Trove? API and Impl for Database management in the cloud Automate admin tasks Managed Scaling HA Multi-Tenancy Efficiency of Resources
What is Trove? Leverages OpenStack Nova (compute) Cinder (block store) Neutron (networking) Swift (object store) Glance (image store) Features a fully functional REST API Dedicated guest agent to manage the database software. Designed with Pluggability in mind - other databases
Architecture
Trove More than just VMs REST API Spin up Instances Create Replicas Resize instances Add Users & Databases / manage Grants Manage Database Backups Change DB configuration Enhances user experience Why be limited in how you interact with a database Motivation: file storage in the cloud
Trove More than just VMs Optimal Database Configuration Secure DB when provisioned Appropriate database configuration applied No SSH Optimize use of Hardware More Memory, less CPU Dedicated deployment without turning over the keys
Trove The possibilities.. Hands-off approach... Fully managed replication / database clusters Auto scale replicas Automated failover Automated recovery Cross AZ / region availability Consider: Building block for every OpenStack service Manage underlying Nova database with Trove
Trove - Concepts Datastore Abstraction of underlying database Current implementations for MySQL, MongoDB, Percona, Couchbase, Cassandra, Redis Datastore Version Represents a released version of a Datastore (e.g. 5.5 for MySQL) Provides linkage to guest image stored in Glance Configuration Group Represents a collection of Datastore specific configuration parameters Used to customize the configuration of a single or group of instances Flavor Similar to Nova flavors but tailored for database usage
Trove Installation Controller Node Identity Keystone Image Glance Guest Images Compute Nova Block Storage Cinder Object Storage Cinder v Database Trove Compute Node a_mysql Nova Instance Mysql + Guest Agent v a_mongo Nova Instance Install Trove Configure Trove Create a Trove instance with MySQL Create a Trove instance with MongoDB Networking Neutron Nova Net Dashboard Horizon MongoDB + Guest Agent
Trove Configuration Create a tenant, user and service in keystone keystone tenant-create name trove keystone user-create name trove pass <pwd> --tenant trove keystone service-create name trove type database Create a keystone endpoint keystone endpoint-create service-id <trove_service_id> Adding a guest image/datastore-version trove-manage datastore-version-update mysql 5.5 mysql <glance image id> mysql-server-5.5 1
Trove Usage List datastores and datastore version trove datastore-list trove datastore-version-list <datastore> Create an instance of a datastore trove create <name> <flavor> --datastore <datastore> List instances trove list View instance details trove show <instance>
Trove Usage Create a new configuration trove configuration-create <name> <values> Attach the configuration to an instance trove configuration-attach <configuration> <instance> Adjust the configuration dynamically trove configuration-patch <configuration> <values>
Trove Usage Create a backup trove backup-create <name> <instance> Optional --parent for creating incremental List available backups trove backup-list Show more details trove backup-show <backup> Restore a backup trove create -backup <backup>
Trove Demo Let s look at Trove in action!
Thank you for joining us We are the Enterprise Trove Experts Visit our website: tesora.com Register for OpenStack & Trove Training in June: tesora.com/solutions/training Read our blog & sign up for The Short Stack: tesora.com/blog Follow us on @tesoracorp 5/17/2014 17