39
Presentation By: Roozbeh Shafiee Summer 2015 IRAN OpenStack Users Group MASTERING OPENSTACK (Episode 03) Simple Architectures

Mastering OpenStack - Episode 03 - Simple Architectures

Embed Size (px)

Citation preview

Page 1: Mastering OpenStack - Episode 03 - Simple Architectures

Presentation By:

Roozbeh Shafiee

Summer 2015

IRAN OpenStack Users Group

MASTERINGOPENSTACK

(Episode 03)

Simple Architectures

Page 2: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Agenda:

● Node Availability and Scalability

● Simple Production Architecture

● Iran OpenStack Community

Page 3: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Node Availability and Scalability

Page 4: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Node Diagrams:

The following diagrams include logical Information about the different types of

nodes, indicating what services will be running on top of them and how they

interact with each other. The diagrams also illustrate how the availability and

scalability of services are achieved.

Page 5: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Page 6: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Compute Node:

Page 7: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Network Node:

Page 8: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Storage Node:

Page 9: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Simple Production Architecture

Page 10: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Simple Production Configuration

The following components include logical Information about the simple

configuration for production usage in high availability and scalability. In the simplest

way, you can use this architecture, components and tools based on previous

diagrams.

Page 11: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Tools and Components:

● OpenStack Release: Kilo

● Host Operating System: Ubuntu 14.04 (LTS)

● OpenStack Package Repository: Ubuntu Cloud Archive on Launchpad

● Hypervisor: KVM

● Networking Service: OpenStack Networking - Neutron

● Tenant Network Separation: VLAN

● Database Backend: MySQL

● Load Balancer: HAProxy

● Cluster Stack: Pacemaker

Page 12: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Tools and Components:

● Distributed Memory Caching: Memcached

● Image Service (Glance) Backend: GlusterFS

● Block Storage (Cinder) Backend: GlusterFS

● Management Dashboard: Horizon

● Identity Service: Keystone

● Compute Component: Nova

● Network Component: Neutron

Page 13: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

MySQL Availability:

● Master/Master replication

● Both nodes are not used at the same time

● Replication keeps all nodes as close to being up to date as possible

● Connections to the database only happen through a Pacemaker virtual IP

Page 14: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

MySQL Scalability:

● Not heavily considered.

● Multiple masters or a master/slave setup can be used

Page 15: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Pacemaker Availability:

● Because Pacemaker is cluster software, the software itself handles its

own availability, leveraging corosync and cman underneath. Ensuring that

should one go down, another instance of Memcached is available

● If you use the GlusterFS native client, no virtual IP is needed, since the

client knows all about nodes after initial connection and automatically

routes around failures on the client side.

Pacemaker is the clustering software used to ensure the availability of services

running on the controllerand network nodes:

Page 16: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Pacemaker Availability:

● If you use the NFS or SMB adaptor, you will need a virtual IP on which to

mount the GlusterFS volumes.

Page 17: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Pacemaker Scalability:

● If more nodes need to be made cluster aware, Pacemaker can scale to 64 nodes.

Page 18: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

HAProxy Availability:

● HAProxy is a software layer-7 load balancer

● Used to front door all clustered OpenStack API components and do SSL termination

● Can be added as a resource to the Pacemaker software

● Only one HAProxy instance is running at one time

● The node with the Pacemaker virtual IP will always be the node running HAProxy

Page 19: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

HAProxy Scalability:

● HAProxy has small enough performance, so not considered

● A single instance should scale enough for this level of workload

● keepalived or other Layer-4 load balancing can be used If extra scalability is needed

Page 20: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Memcached Availability:

● A fast in-memory key-value cache software that is used by OpenStack

components for caching data and increasing performance

● Memcached runs on all controller nodes

● Ensuring that should one go down, another instance of Memcached is available

Page 21: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Memcached Scalability:

● A single instance of Memcached should be able to scale to the desired

workloads, so not considered

● If scalability is desired, HAProxy can be placed in front of Memcached

● HAProxy utilizes multiple Memcached instances for scalability

Page 22: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

GlusterFS Availability:

● Glusterfs is a clustered file system that is run on the storage nodes to provide

persistent scalable data storage in the environment.

● Because all connections to gluster use the gluster native mount points, the

gluster instances themselves provide availability and failover functionality.

Page 23: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

GlusterFS Scalability:

● The scalability of GlusterFS storage can be achieved by adding in more storage

volumes.

Page 24: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Horizon (Dashboard) Availability:

● Run on all controller nodes, ensuring at least once instance will be available in

case of node failure.

● Sits behind HAProxy, which detects when the software fails and routes requests

around the failing instance.

Page 25: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Horizon (Dashboard) Scalability:

● The dashboard is run on all controller nodes, so scalability can be achieved with

additional controller nodes.

● HAProxy allows scalability for the dashboard as more nodes are added.

Page 26: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Keystone (Identity) Availability:

● Identity is run on all controller nodes, ensuring at least once instance will be

available incase of node failure.

● Sits behind HAProxy, which detects when the software fails and routes requests

around the failing instance.

Page 27: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Keystone (Identity) Scalability:

● Identity is run on all controller nodes, so scalability can be achieved with additional

controller nodes.

● HAProxy allows scalability for Identity as more nodes are added.

Page 28: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Glance (Image Service) Availability:

● The Image Service is run on all controller nodes, ensuring at available in case of

node failure.

● Sits behind HAProxy, which detects when the software fails and routes requests

around the failing instance.

Page 29: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Glance (Image Service) Scalability:

● The Image Service is run on all controller nodes, so scalability can be achieved

with additional controller nodes.

● HAProxy allows scalability for the Image Service as more nodes are added.

Page 30: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Cinder (Block Storage) Availability:

● Block Storage API, scheduler, and volume services are run on all controller nodes.

● Ensuring at least once instance will be available in case of node failure.

● Sits behind HAProxy, which detects if the software fails and routes requests

around the failing instance.

Page 31: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Cinder (Block Storage) Scalability:

● Block Storage API, scheduler and volume services are run on all controller nodes,

● Scalability can be achieved with additional controller nodes.

● HAProxy allows scalability for Block Storage as more nodes are added.

Page 32: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Nova (Compute) Availability:

● The Nova API, scheduler, objectstore, cert, consoleauth, conductor and vncproxy

services are run on all controller nodes.

● Ensuring at least one instance will be available in case of node failure

● Nova is also behind HAProxy, which detects when the software fails and routes

requests around the failing instance.

● Nova and conductor services, which run on the compute nodes, are only needed

to run services on that node, so availability of those nodes. services is coupled

tightly to the nodes that are available.

● As long as a compute node is up, it will have the needed services running on top

of it.

Page 33: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Nova (Compute) Scalability:

● The nova API, scheduler, objectstore, cert, consoleauth, conductor, and vncproxy

services are run on all controller nodes.

● Scalability can be achieved with additional controller nodes.

● HAProxy allows scalability for Compute as more nodes are added.

● The scalability of services running on the compute nodes (compute, conductor)

is achieved linearly by adding in more compute nodes.

Page 34: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Neutron (Network) Availability:

● The OpenStack Networking service is run on all controller nodes, ensuring at least

one instance will be available in case of node failure.

● Sits behind HAProxy, which detects if the software fails and routes requests

around the failing instance.

● OpenStack Networking’s ovs agent , l3-agent-dhcp agent , and metadata agent

● services run on the network nodes, as lsb resources inside of Pacemaker. this

means that in the case of network node failure, services are kept running..

● OVS-Agent service is also run on all compute nodes

● In case of compute node failure, the other nodes will continue to function using

the copy of the service running on them.

Page 35: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Neutron (Network) Scalability:

● The OpenStack Networking server service is run on all controller nodes, so

scalability can be achieved with additional controller nodes.

● HAProxy allows scalability for OpenStack Networking as more nodes are added.

● Scalability of the OVS-Agent running on compute nodes is achieved by adding in

more compute nodes as necessary.

Page 36: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

So What? What's Next?

With so many considerations and options available, our hope was to provide a few

clearly-marked and tested paths for your OpenStack exploration. In next sessions

We will talk more about OpenStack by details.

Page 37: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Iran OpenStack Community

Page 38: Mastering OpenStack - Episode 03 - Simple Architectures

IRAN Community| OpenStack.ir

OpenStack Simple Architectures

Stay in Touch and Join Us:

● Home Page: OpenStack.ir

● Meetup Page: Meetup.com/Iran-OpenStack

● Mailing List: [email protected]

● Twitter: @OpenStackIR , #OpenStackIRAN

● IRC Channel on FreeNode#OpenStack-ir

Page 39: Mastering OpenStack - Episode 03 - Simple Architectures

Roozbeh ShafieeIran OpenStack Community Manager

[email protected]

OpenStack.ir

Thank You

We need to work together to build a better community