As Nova supports a wide range of technologies, configurations, and designs, it will be important to make a number of architectural and design decisions before looking to deploy it. This section guides you through the most important ones before you begin.
Deployment of Nova can be painless with good planning. However, Nova does have a lot of moving parts, so it’s good to understand an overview of what is trying to be accomplished before you start installing software. Figure 6-1 illustrates the preferred workflow for installing, configuring, and launching your first instance on Nova.
This is a three-step process:
Planning Nova Deployment to decide on deployment scenario, finalize key design choices, and ensure hardware meets requirements
Installing Nova to get the software, prerequisites, and configurations onto the servers
Using Nova to prep the system for your initial users
This book covers the infrastructure for clouds. As such, it is out of scope of the book to describe everything that you will want to do with your cloud instance once you have it running.
At each phase of the installation, we will make sure to test the results of our actions. Without these tests, it is very easy to get to the last steps and find out you need to start over again due to error in an early phase.
As you can see from the earlier discussion of Nova’s architecture, there are ample choices for virtualization products. I will not go into all the factors about the appropriate virtualization technology to choose here, but if you have an installed base of hypervisors, that will need to be factored into your cloud platform choice.
Nova requires all compute hosts within a zone to use a single virtualization technology. For example, you cannot mix VMware-based compute hosts with KVM-based compute hosts. They will all need to be one or the other. This may change in future releases.
Unless you already have extensive experience with particular virtualization technology, most people will gravitate toward either KVM or a Xen-based solution (Xen/XCP/XenServer). Each has its own advantages:
KVM ships with most operating systems and is easy to install and configure. It has arguably the best support within Nova (supporting advanced Nova features like live migration) and is easy to get support on, as it is used widely in the community. However, many people feel that it has greater overhead (especially in I/O) and doesn’t support some high-end virtualization like memory ballooning.
Xen-based solutions, on the other hand, excel at performance and have been used in some of the largest clouds in the world. It is rumored to power Rackspace’s compute cloud, Amazon’s EC2, and GoGrid’s cloud. However, this comes at the price of complexity, as they are much more challenging to install, configure, and maintain for people inexperienced with enterprise virtualization products.
The general rule of thumb at the current time is to configure KVM for small or non-production deployments but use a Xen-based technology for large-scale production installations.