Walter Bentley
September 29, 2016

As the mighty reign of VMware comes to a glorious sunset and virtualization becomes a thing of the past, many organizations are seeking out the next best cloud platform replacement.

ome see OpenStack as a plausible next step but hesitate due to the many unknowns and differences. The old Sesame Street song, “One of these things is not like the other” comes to mind: OpenStack and VMware have some very obvious platform differences, but there are also comforting similarities.

In this post, I’ll cover the basic differences between cloud and virtualization, then review some of the design considerations when transitioning from VMware to OpenStack. I conclude by dispelling some common OpenStack myths.

Because VMware has been pretty much the industry leader for virtualization, many of us have built up quite a bit of knowledge about it, modeled our minds around it. So how do you mentally move from VMware-thinking to OpenStack-thinking? To successfully accomplish this we must first agree on a few things:

  • Virtualization is NOT cloud: VMware is synonymous with virtualization, i.e., allowing for the creation of virtual computing resources, while OpenStack is the definition of cloud: providing shared computing, storage and networking resources in an on-demand self service model.
  • You’ll have to get your hands dirty: VMware provides a strict reference architecture and does all the hard work for you (largely without you knowing). OpenStack is extremely flexible and expects you to tell it what you need it to do. I’ll demonstrate that with brief feature for feature comparison, below.
  • Requires a change in infrastructure philosophy: forget everything you know about designing a virtualization platform and keep repeating “DevOps is my friend.” How you do things now will change, so embrace the change and improve/optimize areas while the opportunity is present. Your platform will be designed, operated and consumed differently when moving to the cloud.

Virtualization verses cloud

Now let’s focus on the differences between virtualization and cloud. The diagram below captures the differences and similarities:

Key takeaways:

  • Viewing cloud resources as agnostic and disposable. Moving away from the caring, feeding and nurturing of virtual machines over to the methodology of rebuild and redeploy.
  • Automating what used to be manual functions, delivered right out of the box with cloud.
  • Cloud enables true self-service, freeing up your expensive resources to focus on delivering business value. Let your consumers provision what they need, when they need it.
  • The cloud ecosystem is designed with and for end users.

Feature to feature comparison

In order to design your new OpenStack cloud, it helps to understand how it stands up to your current VMware platform. The table below gives, at a high level, a comparison between the two technologies. Hopefully this will increase confidence that you’re not losing any functionality when moving to a cloud ecosystem like OpenStack.

VMware feature OpenStack feature
vMotion Nova/KVM Migration
DRS Nova Scheduler
DPM Not supported
SDRS Nova and Cinder
HA Many ways to accomplish this
Data Recovery Shared Storage integration

Myth vs. Fact

Finally, I would like to dispel a few myths about OpenStack I’ve heard when compared to VMware and other systems — many of which relate back to the functionality VMware offers verses OpenStack.

Myth: OpenStack does not support instance migration

  • Within OpenStack, the project Nova has the capability to migrate or evacuate instances from a compute host via KVM (the suggested hypervisor).
  • The specific Nova component responsible for handling this is the Nova Scheduler
  • May incur two second blip during migration

Myth: There is no functionality within OpenStack to match this feature

  • Not completely true; as mentioned above, OpenStack does has an instance migration capability.
  • The difference is it’s not an automatic intelligent task; one would have to build automation to handle the task or execute manually.
  • Cloud verses steady state compute is the major distinguishing factor in this matter. Applications designed for disposable dynamic resources, aka the cloud, would not be affected by losing a compute node and/or instances.

Myth: There is no functionality within OpenStack to match this feature

  • Unfortunately, this myth is 100 percent completely true
  • While an OpenStack comparable feature does not exist yet, I hear it’s in the works…

Myth: All OpenStack storage solutions are not distributed

  • One of the very advanced features and projects within the OpenStack ecosystem is Cinder
  • Cinder provides the capability to define multiple backends for Block storage volumes; each of those backends can point to either local ephemeral storage or shared storage device
  • Those backends can also be defined as volume types and in turn Nova is volume type-aware

High Availability (HA)
Myth: OpenStack is not hypervisor health aware

  • OpenStack solely utilizes the service model (where every component is treated as a service). From that viewpoint, OpenStack is health aware of all the services running within the ecosystem
  • If a compute node or instance fails, OpenStack will NOT try to restart it; the service would be marked as ‘down’ and requests will continue to be handled by the other resources
  • Remember, cloud is all about disposable resources

Data Recovery
Myth: There is no solution within OpenStack to recover your data

  • This myth is half true
  • Through OpenStack projects such as Cinder and Swift, you can seamlessly integrate many different external storage devices
  • OpenStack handles data preservation via a distributed model; important data should NOT be stored on ephemeral local storage and rather stored on some flavor of shared storage (ie EMC, NetApp, Pure)… which would be a highly available solution

Fault Zones
Myth: In OpenStack if you lose a compute node, your application fails

  • OpenStack has safeguards that can be put in place to handle compute node failures:
    • The Nova scheduler component manages the distribution of instances across multiple compute nodes. See it as a balancing of resources.
    • OpenStack provides several mechanisms to accomplish this depending on their exact needs. Some examples are:

Final thoughts to keep in mind when chartering down your journey to an OpenStack cloud:

  • OpenStack is NOT a hypervisor, no matter what anyone tells you. I repeat: OpenStack is NOT a hypervisor. It is a ‘hypervisor manager’ intended to remove the complexity of worrying about hardware and the management of it.
  • Flexibility is power – the amount of flexibility OpenStack has to offer from a design and deployment aspect is the power all infrastructure admins want and need.
  • Advancement through automation – you can only reap the full benefits OpenStack has to offer if you automate as much as possible.