The biggest OpenStack event in the Nordics!

This is a ticketed event. Tickets and more information about the event can be found at http://stockholm.openstacknordic.org
View analytic
Wednesday, October 10 • 14:45 - 15:25
PostgreSQL provisioning and management with OpenStack Trove

Sign up or log in to save this to your schedule and see who's attending!

Log in to leave feedback.
Outline of Presentation:
  1. Introduction to OpenStack Trove
  2. Trove database agnostic architecture
  3. PostgreSQL feature matrix
  4. Our contribution to PostgreSQL driver
  5. Live demo
  6. Questions
Introduction to OpenStack Trove
OpenStack Trove is a Database as a Service platform which simplifies life cycle management of database technologies. It is comparable to AWS RDS and Google’s CloudSQL. Trove is an database agnostic platform and it is built on a common set of design principles for every database. Through Trove, DB instances can provisioned, managed as a first class resources of OpenStack.
You can implement both SQL and NoSQL databases through trove. As of now following databases are supported
  • SQL: MySQL, MariaDB, PostgreSQL, Vertica, DB2
  • NoSQL: MongoDB, Cassandra, Redis, Couchbase
Trove Database Agnostic Architecture
Trove is designed to support a single-tenant database within a Nova instance. Trove interacts with all other OpenStack components like nova,neutron,glance,swift,cinder etc purely through API.
Trove currently comprised of the following major components: 1. API Server 2. Task Manager 3. Guest Agent 4. Conductor

API Server
  • Trove API server provides a RESTful API that supports JSON and XML to provision and manage Trove instances.
  • API Server communicates to the Task Manager to handle complex, asynchronous tasks and it will also talk directly to the guest agent to handle simple tasks such as retrieving a list of DB users. Its main job is to take requests, turn them into messages, validate them, and forward them on to the Task Manager or Guest Agent.

Task Manager
  • Task Manager service provisions instances, manages the lifecycle of DB instances, and performs operations like resizing,backup etc.. on the instance.
  • It takes messages from the API Server, and acts according to them. A few complex tasks, for example, are resize database flavor and create instance. They both require HTTP calls to OpenStack services, as well as polling those services until the instance becomes active, and also sending messages to the Guest Agent. The Task Manager handles the flow of processes as they occur across multiple, distributed systems.

Guest Agent
  • Guest Agent is a service that runs within the guest DB instance and responsible for performing operations on the datastore itself.
  • It is in charge of bringing a datastore online. The Guest Agent also sends heartbeat messages to the API via conductor.
  • Each datastore implementation has a Guest Agent implementation in charge of doing specific tasks for that datastore. For instance, a Redis guest agent will behave in different ways than a PostgreSQL guest.

  • Conductor is responsible for recieving messages from guest instances to update information on the host.
  • Conductor listens for RPC messages through the message bus and performs the relevant operation.
  • Conductor is similar to guest-agent in that it is a service that listens to a RabbitMQ topic. The difference is conductor lives on the host, not the guest. Guest agents communicate to conductor by putting messages on the topic defined in config as conductor_queue. By default this is “trove-conductor”.

PostgreSQL feature matrix and its implementation
  • Support for PostgreSQL 9.4, 9.6,10.4.
  • Custom database instance types with Flavors.
  • Able to automatically increase storage size as needed.
  • Support for secure external connections with the SSL/TLS protocol.
  • Automated and on-demand filesystem level backups.
  • Able to do full and incremental backups and restore them.
  • Create Multiple Read Replicas and promote.

Our contributions to PostgreSQL driver
  • PostgreSQL driver in the upstream only have support up to 9.4. We extend driver support to 9.6 and 10.4.
  • We have introduced Automatic backup facility into Trove to backup DB instances automatically and save the backups in swift storage for specified time.

Live Demo
In this Live demo i will show the audience following:
  • Creating PostgreSQL 9.6,10.4 instances.
  • Resizing the volumes
  • Tuning database
  • Backup, restore and Automatic Backup
  • Creating Read replicas

avatar for Dilip Renkila

Dilip Renkila

OpenStack architect, Linserv AB
I am Dilip Renkila currently working as a Cloud Architect at Linserv AB based in Stockholm. We at Linserv AB are proud to implement Openstack cloud entirely with opensource solutions like Ceph(storage), OpenNetworkLinux(Switches). My main area focus is in planning, implementing and... Read More →

Wednesday October 10, 2018 14:45 - 15:25
Lindgren Söder Mälarstrand 29, 118 25 Stockholm, Sweden

Attendees (23)