Upload
roozbeh-shafiee
View
139
Download
2
Tags:
Embed Size (px)
Citation preview
Presentation By:
Roozbeh Shafiee
Summer 2015
IRAN OpenStack Users Group
MASTERINGOPENSTACK
(Episode 03)
Simple Architectures
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Agenda:
● Node Availability and Scalability
● Simple Production Architecture
● Iran OpenStack Community
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Node Availability and Scalability
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.
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Compute Node:
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Network Node:
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Storage Node:
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Simple Production Architecture
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.
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
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
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
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
MySQL Scalability:
● Not heavily considered.
● Multiple masters or a master/slave setup can be used
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:
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.
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Pacemaker Scalability:
● If more nodes need to be made cluster aware, Pacemaker can scale to 64 nodes.
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
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
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
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
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.
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
GlusterFS Scalability:
● The scalability of GlusterFS storage can be achieved by adding in more storage
volumes.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
IRAN Community| OpenStack.ir
OpenStack Simple Architectures
Iran OpenStack Community
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
Roozbeh ShafieeIran OpenStack Community Manager
OpenStack.ir
Thank You
We need to work together to build a better community