Chapter One – What is NOVA
Nova is the OpenStack project that provides a way to provision compute instances (aka virtual servers). Nova supports creating virtual machines, baremetal servers (through the use of ironic), and has limited support for system containers. Nova runs as a set of daemons on top of existing Linux servers to provide that service.
It requires the following additional OpenStack services for basic function:
- Keystone: This provides identity and authentication for all OpenStack services.
- Glance: This provides the compute image repository. All compute instances launch from glance images.
- Neutron: This is responsible for provisioning the virtual or physical networks that compute instances connect to on boot.
- Placement: This is responsible for tracking inventory of resources available in a cloud and assisting
in choosing which provider of those resources will be used when creating a virtual machine. It can also integrate with other services to include: persistent block storage, encrypted disks, and baremetal compute instances.
Chapter Two – For End Users
As an end user of nova, youll use nova to create and manage servers with either tools or the API directly.
2.1 User Documentation
The OpenStack Compute service allows you to control an Infrastructure-as-a-Service (IaaS) cloud computing platform. It gives you control over instances and networks, and allows you to manage access to the cloud through users and projects. Compute does not include virtualization software. Instead, it defines drivers that interact with underlying virtualization mechanisms that run on your host operating system, and exposes functionality over a web-based API.
2.1.1 End user guide
2.1.1.1 Availability zones
Availability Zones are an end-user visible logical abstraction for partitioning a cloud without knowing the physical infrastructure. Availability zones can be used to partition a cloud on arbitrary factors, such as location (country, datacenter, rack), network layout and/or power source. Because of the flexibility, the names and purposes of availability zones can vary massively between clouds. In addition, other services, such as the networking service and the block storage service, also provide an availability zone feature. However, the implementation of these features differs vastly between these different services. Consult the documentation for these other services for more information on their implementation of this feature.
Usage
Availability zones can only be created and configured by an admin but they can be used by an end-user when creating an instance. For example:
$ openstack server create –availability-zone ZONE … SERVER
It is also possible to specify a destination host and/or node using this command; however, this is an admin-only operation by default. For more information, see Using availability zones to select hosts.
2.1.1.2 Launch instances
Instances are virtual machines that run inside the cloud. Before you can launch an instance, gather the following parameters:
- The instance source can be an image, snapshot, or block storage volume that contains an image or snapshot.
- A name for your instance.
- The flavor for your instance, which defines the compute, memory, and storage capacity of nova
- computing instances. A flavor is an available hardware configuration for a server. It defines the size of a virtual server that can be launched.
- Any user data files. A user data file is a special key in the metadata service that holds a file that cloud-aware applications in the guest instance can access. For example, one application that uses user data is the cloud-init system, which is an open-source package from Ubuntu that is available on various Linux distributions and that handles early initialization of a cloud instance.
- Access and security credentials, which include one or both of the following credentials:
- A key pair for your instance, which are SSH credentials that are injected into images when they are launched. For the key pair to be successfully injected, the image must contain the cloud-init package. Create at least one key pair for each project. If you already have generated a key pair with an external tool, you can import it into OpenStack. You can use the key pair for multiple instances that belong to that project.
- A security group that defines which incoming network traffic is forwarded to instances. Security groups hold a set of firewall policies, known as security group rules.
- If needed, you can assign a floating (public) IP address to a running instance to make it accessible from outside the cloud. See Manage IP addresses.
- You can also attach a block storage device, or volume, for persistent storage.
Note: Instances that use the default security group cannot, by default, be accessed from any IP address outside of the cloud. If you want those IP addresses to access the instances, you must modify the rules for the default security group.
After you gather the parameters that you need to launch an instance, you can launch it from an image or a volume. You can launch an instance directly from one of the available OpenStack images or from an image that you have copied to a persistent volume. The OpenStack Image service provides a pool of images that are accessible to members of different projects.