5.7 KiB
Welcome to Nova's documentation!
Nova is a cloud computing fabric controller, the main part of an IaaS system.
Nova is written with the following design guidelines in mind:
- Component based architecture: Quickly add new behaviors
- Highly available: Scale to very serious workloads
- Fault-Tollerant: Isloated processes avoid cascading failures
- Recoverable: Failures should be easy to diagnose, debug, and rectify
- Open Standards: Be a reference implementation for a community-driven api
- API Compatibility: Nova strives to provide API-compatible with popular systems like Amazon EC2
This documentation is generated by the Sphinx toolkit and lives in
the source tree. Additional documentation on Nova and other components
of OpenStack can be found on the OpenStack wiki. Also see the reaching.out
page for other
ways to interact witht the community.
Contents
concepts.and.introduction adminguide/index devguide/index reaching.out
Recommended System Configuration
Although Nova can be run on a variety of system architectures, for most users the following will be simplest:
- Ubuntu Lucid
- 10GB Hard Disk Space
- 512MB RAM
For development, Nova can run from within a VM.
Quickstart
To make getting started with Nova easier, we provide a setup script that makes it easy to download and run the most recent version of Nova on your local machine.
- sudo -i # become root
- cd # go to home directory
- git clone git://github.com/vishvananda/novascript.git
- cd novascript
Inside this directory, you will find nova.sh, which is a utility designed to assist with getting your development environment up and running.
Use nova.sh to install and run the current trunk. You can also specify a specific branch by putting lp:~someone/nova/some-branch after the branch command
- ./nova.sh branch
- ./nova.sh install
- ./nova.sh run
The run command will drop you into a screen session with all of the workers running in different windows You can use eucatools to run commands against the cloud.
- euca-add-keypair test > test.pem
- euca-run-instances -k test -t m1.tiny ami-tiny
- euca-describe-instances
To see output from the various workers, switch screen windows
- <ctrl-a> "
will give you a list of running windows.
When the instance is running, you should be able to ssh to it.
- chmod 600 test.pem
- ssh -i test.pem root@10.0.0.3
When you exit screen
- <ctrl-a> <ctrl-d>
nova will terminate. It may take a while for nova to finish cleaning up. If you exit the process before it is done because there were some problems in your build, you may have to clean up the nova processes manually. If you had any instances running, you can attempt to kill them through the api:
- ./nova.sh terminate
Then you can destroy the screen:
- ./nova.sh clean
If things get particularly messed up, you might need to do some more intense cleanup. Be careful, the following command will manually destroy all runnning virsh instances and attempt to delete all vlans and bridges.
- ./nova.sh scrub
You can edit files in the install directory or do a bzr pull to pick up new versions. You only need to do
- ./nova.sh run
to run nova after the first install. The database should be cleaned up on each run.
Notes
The script starts nova-volume in fake mode, so it will not create any actual volumes.
if you want to USE_VENV because you have different versions of python packages on your system that you want to keep, you should run install before branch:
- ./nova.sh install
- ./nova.sh branch
- ./nova.sh run
A sample image should be downloaded by the script, but if necessary you can download it by hand:
untar the file to create a usable images directory
- tar -zxf /path/to/images.tgz
If you want to be able to contact the metadata server and route to the outside world from instances, you will need to make sure $HOST_IP is set properly. The script attemps to grab it from ifconfig, but if you have multiple adapters set up, it may fail. Fix it with export HOST_IP="<your public ip>":
Customization
You can make nova use mysql instead of sqlite with USE_MYSQL, it will attempt to install mysql with the specified root password and create a database called nova.
If you are running nova on bare metal that supports hardware virtualization, you should probably edit the libvirt line near the top
- LIBVIRT_TYPE=kvm
If you are running in a virtual machine and software emulation is too slow for you, you can use user mode linux.
- LIBVIRT_TYPE=uml
You will need a few bleeding edge packages to make it work, so you should make sure to use the PPA.
- USE_PPA=1
If you have any issues, there is usually someone in #openstack on irc.freenode.net that can help you out.
Indices and tables
genindex
modindex
search