More and more companies are choosing OpenStack as their cloud computing infrastructure, and for many, that’s because they want a cloud platform that is flexible, avoids a vendor lock-in, cuts costs and also is a strategic asset to the business operations. But what are the key IT elements a company needs to consider when architecting and implementing an OpenStack Cloud?
There’s plenty to consider. Organizations need to consider how they’ll use the cloud, which business processes will leverage the cloud, and what their long-term goals are for the cloud. But a good starting point is the foundation. What will the network topology be? Should it be built using OpenStack’s Nova or Neutron? Something else? And what storage should be used?
The network topology is a critical element of the foundation. Early on, the OpenStack Foundation developed OpenStack Compute (Nova) as the fabric controller designed to manage and automate pools of computer resources in an Infrastructure as a Service (IaaS) system. The advantage of Nova is that it’s quite stable and fairly simple.
OpenStack Networking (Neutron), also created early in OpenStack’s development, is designed to manage networks and IP addresses and provides networking models for different applications or user groups. According to the OpenStack Foundation’s documentation of Neutron, it provides “networking as a service” between interface devices (e.g., vNICs) managed by other OpenStack services (e.g., Nova). Cameron points out that Neutron also integrates with Open vSwitch (OVS), which is an open source implementation of a distributed virtual multilayer switch. Open vSwitch is designed to provide a switching stack for hardware virtualization environments (similar to VMware’s vNetwork distributed vswitch), while supporting standard management interfaces and protocols.
Storage is another critical element of an OpenStack foundation. The least complex approach is to use local storage, and that means using the disks inside each hypervisor as the storage for all the VMs.
More complex—and more sophisticated—options include using Ceph, an open source software storage platform designed to present object, block, and file storage from a single distributed computer cluster. The OpenStack Foundation has developed object storage (Swift) and block storage (Cinder). There’s also Gluster File System, (GlusterFS), an open source distributed file system for pooling storage servers, aggregating disk and memory and facilitating the centralized management of data.
An organization’s decisions about the best OpenStack foundation are often dictated by budget and expertise. There are always considerations around budgets and complexity. For example, when Red Hat works with a customer on a quick and simple proof of concept, we typically use Nova.
Going with simplest foundation does have limitations, however. With the least complex topology, the down side is that your VM only lives on one physical architecture. It can’t be moved if there’s a failure. With a more complex topology that has shared storage, you can migrate workloads from one VM to another and that provides high availability/failover.
Of course, the more complex the foundation, the faster the network needs to be. Advanced storage likely will require the use of, for example, InfiniBand, a switched fabric computer network communications link used in high-performance computing and enterprise data centers, or 10-gigabit Ethernet (10GbE), which is a group of computer networking technologies for transmitting Ethernet frames at a rate of 10 gigabits per second.
All of the architectural decisions around the foundation for an OpenStack cloud must be made with an organization’s overall goals in mind. It’s critical to determine what type of workload you will be running in the cloud environment. If you are going to be processing a lot of orders on a Web tier, it may make sense to focus on presentation. But if a customer needs to do intensive disk I/O, such as the rendering of video or animation, or run analysis of financial data, it may make more sense for super high-speed disks and networks.
In an upcoming blog post I’ll discuss the key architectural decisions of a successful OpenStack cloud. In the meantime, let us know your thoughts on the foundation of an OpenStack cloud in the comments section below.