Tuesday, November 4, 2014

OpenStack Series: Part 4 – Nova – Compute Service

Nova is the module that handles the management of virtual machine instances in the OpenStack infrastructure by being an abstraction layer that interfaces with supported hypervisors

A list of supported hypervisors for Nova can be found here.  Supported hypervisor includes the KVM (libvirt/QEMU), ESXi from VMware, Hyper-V from Microsoft and XenServer.  It is interested to know that Nova categorize the hypervisors into 3 groups based on the number of testing done with the drivers that interface with the hypervisor.

Group A

These drivers are fully supported. Test coverage includes:
  • unit tests that gate commits
  • functional testing that gate commits
Drivers in this group include:
  • libvirt (qemu/KVM on x86)

Group B

These drivers are in a bit of a middle ground. Test coverage includes:
  • unit tests that gate commits
  • functional testing providing by an external system that does not gate commits, but advises patch authors and reviewers of results in gerrit (the code review system).
Drivers in this group include:
  • Hyper-V
  • VMware
  • XenServer 6.2

Group C


These drivers have minimal testing and may or may not work at any given time. Use them at your own risk. Test coverage includes:
  • (maybe) unit tests that gate commits
  • no public functional testing
Drivers in this group include.
  • baremetal
  • docker          <- I believe due to popularity, Docker is coming back in Kilo.
  • Xen via libvirt
  • LXC via libvirt
NOTE: Drivers in Group C will be deprecated by the Icehouse release. See DeprecationPlan for details.

I think the hypervisor technology is the most matured for VMware's ESXi/vCenter Server.  However, user has to pay licensing fee.  On the other hand, KVM is free with Linux and is becoming more and more "enterprise ready".  Of course if we compare the feature between VMware, KVM the number will favor ESXi.  We have to take into consideration that not all the features are necessary for most enterprise requirement and user will have to decide which hypervisor has the best ROI (Return on Investment).

The Nova Developer Guide has a good description of the sub-components that make up of Nova services: 
Nova consists of seven main components, with the
  1. Cloud Controller component representing the global state and interacting with all other components.
  2. API Server acts as the Web services front end for the cloud controller.
  3. Compute Controller provides compute server resources,
  4. Object Store component provides storage services.
  5. Auth Manager provides authentication and authorization services.
  6. Volume Controller provides fast and permanent block-level storage for the compute servers.
  7. Network Controller provides virtual networks to enable compute servers to interact with each other and with the public network.
Scheduler selects the most suitable compute controller to host an instance.

This diagram shows the inter-relationship of the different Nova components.


image source: http://docs.openstack.org/developer/nova/_images/Novadiagram.png

Please note that Message Queue and back-end database are also vital to the operation of Nova.

For Message Queue, it can be any AMPQ message queue but the more popular ones used by OpenStack are RabbitMQ, Apache Qpid (used by Red Hat OpenStack) and ZeroMQ.

For back-end database, the popular used in OpenStack are sqlite3, MySQL or PostgreSQL.

An article by Ken Pepple describes Nova very well in three sentences along with a diagram:
This complicated, but not overly informative, diagram as it can be summed up in three sentences:
  • End users (DevOps, Developers and even other OpenStack components) talk to nova-api to interface with OpenStack Nova
  • OpenStack Nova daemons exchange info through the queue (actions) and database (information) to carry out API requests
  • OpenStack Glance is basically a completely separate infrastructure which OpenStack Nova interfaces through the Glance API
- See more at: http://ken.pepple.info/openstack/2011/04/22/openstack-nova-architecture/#sthash.I0qjs82T.dpuf

  • End users (DevOps, Developers and even other OpenStack components) talk to nova-api to interface with OpenStack Nova
  • OpenStack Nova daemons exchange info through the queue (actions) and database (information) to carry out API requests
  • OpenStack Glance is basically a completely separate infrastructure which OpenStack Nova interfaces through the Glance API


image source: http://ken.pepple.info/openstack/2011/04/22/openstack-nova-architecture/

Nova-networking is still being use in some use cases.  User can choice between using nova-networking or Neutron.

This is only an brief introduction for OpenStack Nova.  There are a lot more in OpenStack Nova that we can look into and I will share more on this topic in the coming days.



Related Post:
OpenStack Series:Part 1  How do you look at OpenStack?
OpenStack Series:Part 2  What’s new in the Juno Release
OpenStack Series:Part 3  Keystone – Identity Service
OpenStack Series: Part 5  Glance - Image Service
OpenStack Series: Part 6  Cinder - Block Storage Service
OpenStack Series: Part 7  Swift - Object Storage Service
OpenStack Series: Part 8  Neutron - Networking Service
OpenStack Series: Part 9  Horizon - a web based UI Service
OpenStack Series: Part 10 Heat - Orchestration Service
OpenStack Series: Part 11 Ceilometer - Monitoring and Metering Service
OpenStack Series: Part 12 Trove - Database Service
OpenStack Series: Part 13 Docker in OpenStack
OpenStack Series: Part 14 Sahara - Data Processing Service
OpenStack Series: part 15 Messaging and Queuing System in OpenStack
OpenStack Series: Part 16 Ceph in OpenStack
OpenStack Series: Part 17 Congress - Policy Service
OpenStack Series: Part 18 Network Function Virtualization in OpenStack
OpenStack Series: Part 19 Storage Polices for Object Storage
OpenStack Series: Part 20 Group-based Policy for Neutron
Reference:
"HypervisorSupportMatrix." - OpenStack. N.p., n.d. Web. 04 Nov. 2014.
"Nova Concepts and Introduction¶." Nova Concepts and Introduction — Nova 2012.1.2-dev Documentation. N.p., n.d. Web. 04 Nov. 2014.
"Ken Pepple." OpenStack Nova Architecture. N.p., n.d. Web. 04 Nov. 2014.

3 comments:

  1. I am searching for list hypervisor that OpenStack support. I found all answers in this blog regarding OpenStack hypervisor support and all other important information. Thanks for sharing

    ReplyDelete
  2. Quantum Binary Signals

    Professional trading signals sent to your cell phone every day.

    Start following our trades today & gain up to 270% a day.

    ReplyDelete
  3. BlueHost is definitely the best web-hosting provider with plans for all of your hosting requirements.

    ReplyDelete