diff options
author | Anne Gentle <anne@openstack.org> | 2011-01-12 11:14:27 +0000 |
---|---|---|
committer | Tarmac <> | 2011-01-12 11:14:27 +0000 |
commit | 5227bfc76657a5af08fc47d3544bf6b06b66e8bf (patch) | |
tree | 169cc711c17a790f25f1a89e83966f152c383873 | |
parent | 76fdd667f2efe7e2dc710fe0254437d176efb45c (diff) | |
parent | 24939796b9b38703ab4f57ab6912df0fe9a8daa3 (diff) | |
download | nova-5227bfc76657a5af08fc47d3544bf6b06b66e8bf.tar.gz nova-5227bfc76657a5af08fc47d3544bf6b06b66e8bf.tar.xz nova-5227bfc76657a5af08fc47d3544bf6b06b66e8bf.zip |
Had to abandon the other branch (~annegentle/nova/newscript) because the diffs weren't working right for me. This is a fresh branch that should be merged correctly with trunk. Thanks for your patience. :)
41 files changed, 320 insertions, 203 deletions
@@ -1,7 +1,7 @@ The Choose Your Own Adventure README for Nova: You have come across a cloud computing fabric controller. It has identified - itself as "Nova." It is apparent that it maintains compatability with + itself as "Nova." It is apparent that it maintains compatibility with the popular Amazon EC2 and S3 APIs. To monitor it from a distance: follow @novacc on twitter @@ -10,7 +10,7 @@ To tame it for use in your own cloud: read http://nova.openstack.org/getting.sta To study its anatomy: read http://nova.openstack.org/architecture.html -To disect it in detail: visit http://code.launchpad.net/nova +To dissect it in detail: visit http://code.launchpad.net/nova To taunt it with its weaknesses: use http://bugs.launchpad.net/nova diff --git a/doc/source/adminguide/binaries.rst b/doc/source/adminguide/binaries.rst index 25605adf9..5c50a51f1 100644 --- a/doc/source/adminguide/binaries.rst +++ b/doc/source/adminguide/binaries.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/flags.rst b/doc/source/adminguide/flags.rst index 4c950aa88..072f0a1a5 100644 --- a/doc/source/adminguide/flags.rst +++ b/doc/source/adminguide/flags.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/getting.started.rst b/doc/source/adminguide/getting.started.rst index 0cadeb45e..675d8e664 100644 --- a/doc/source/adminguide/getting.started.rst +++ b/doc/source/adminguide/getting.started.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/index.rst b/doc/source/adminguide/index.rst index 736a154b2..e653c9e8b 100644 --- a/doc/source/adminguide/index.rst +++ b/doc/source/adminguide/index.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/managing.images.rst b/doc/source/adminguide/managing.images.rst index df71db23b..c5d93a6e8 100644 --- a/doc/source/adminguide/managing.images.rst +++ b/doc/source/adminguide/managing.images.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/managing.instances.rst b/doc/source/adminguide/managing.instances.rst index d97567bb2..e62352017 100644 --- a/doc/source/adminguide/managing.instances.rst +++ b/doc/source/adminguide/managing.instances.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/managing.networks.rst b/doc/source/adminguide/managing.networks.rst index 38c1cba78..9eea46d70 100644 --- a/doc/source/adminguide/managing.networks.rst +++ b/doc/source/adminguide/managing.networks.rst @@ -1,7 +1,7 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. - Overview Sections Copyright 2010 Citrix + Overview Sections Copyright 2010-2011 Citrix All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may diff --git a/doc/source/adminguide/managing.projects.rst b/doc/source/adminguide/managing.projects.rst index b592e14d7..5dd7f2de9 100644 --- a/doc/source/adminguide/managing.projects.rst +++ b/doc/source/adminguide/managing.projects.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/managingsecurity.rst b/doc/source/adminguide/managingsecurity.rst index 3b11b181a..7893925e7 100644 --- a/doc/source/adminguide/managingsecurity.rst +++ b/doc/source/adminguide/managingsecurity.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/monitoring.rst b/doc/source/adminguide/monitoring.rst index e7766a6e7..2c93c71b5 100644 --- a/doc/source/adminguide/monitoring.rst +++ b/doc/source/adminguide/monitoring.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/multi.node.install.rst b/doc/source/adminguide/multi.node.install.rst index a652e44b7..5918b0d38 100644 --- a/doc/source/adminguide/multi.node.install.rst +++ b/doc/source/adminguide/multi.node.install.rst @@ -1,6 +1,7 @@ .. - Copyright 2010 United States Government as represented by the - Administrator of the National Aeronautics and Space Administration. + Copyright 2010-2011 United States Government as represented by the + Administrator of the National Aeronautics and Space Administration. + All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -17,36 +18,35 @@ Installing Nova on Multiple Servers =================================== - + When you move beyond evaluating the technology and into building an actual production environment, you will need to know how to configure your datacenter and how to deploy components across your clusters. This guide should help you through that process. - + You can install multiple nodes to increase performance and availability of the OpenStack Compute installation. - + This setup is based on an Ubuntu Lucid 10.04 installation with the latest updates. Most of this works around issues that need to be resolved in the installation and configuration scripts as of October 18th 2010. It also needs to eventually be generalized, but the intent here is to get the multi-node configuration bootstrapped so folks can move forward. - - + + Requirements for a multi-node installation ------------------------------------------ - + * You need a real database, compatible with SQLAlchemy (mysql, postgresql) There's not a specific reason to choose one over another, it basically depends what you know. MySQL is easier to do High Availability (HA) with, but people may already know Postgres. We should document both configurations, though. * For a recommended HA setup, consider a MySQL master/slave replication, with as many slaves as you like, and probably a heartbeat to kick one of the slaves into being a master if it dies. * For performance optimization, split reads and writes to the database. MySQL proxy is the easiest way to make this work if running MySQL. - + Assumptions -^^^^^^^^^^^ - +----------- + * Networking is configured between/through the physical machines on a single subnet. -* Installation and execution are both performed by root user. - - - -Step 1 Use apt-get to get the latest code ------------------------------------------ +* Installation and execution are both performed by ROOT user. + + +Step 1 - Use apt-get to get the latest code +------------------------------------------- -1. Setup Nova PPA with https://launchpad.net/~nova-core/+archive/trunk. +1. Setup Nova PPA with https://launchpad.net/~nova-core/+archive/trunk. The ‘python-software-properties’ package is a pre-requisite for setting up the nova package repo: :: @@ -69,201 +69,260 @@ Step 1 Use apt-get to get the latest code It is highly likely that there will be errors when the nova services come up since they are not yet configured. Don't worry, you're only at step 1! Step 2 Setup configuration file (installed in /etc/nova) ---------------------------------------------------------- - -Note: CC_ADDR=<the external IP address of your cloud controller> - -Nova development has consolidated all .conf files to nova.conf as of November 2010. References to specific .conf files may be ignored. - -#. These need to be defined in the nova.conf configuration file:: - - --sql_connection=mysql://root:nova@$CC_ADDR/nova # location of nova sql db - --s3_host=$CC_ADDR # This is where Nova is hosting the objectstore service, which - # will contain the VM images and buckets - --rabbit_host=$CC_ADDR # This is where the rabbit AMQP messaging service is hosted - --cc_host=$CC_ADDR # This is where the the nova-api service lives - --verbose # Optional but very helpful during initial setup - --ec2_url=http://$CC_ADDR:8773/services/Cloud - --network_manager=nova.network.manager.FlatManager # simple, no-vlan networking type - --fixed_range=<network/prefix> # ip network to use for VM guests, ex 192.168.2.64/26 - --network_size=<# of addrs> # number of ip addrs to use for VM guests, ex 64 - -#. Create a nova group:: - - sudo addgroup nova - -The Nova config file should have its owner set to root:nova, and mode set to 0640, since they contain your MySQL server's root password. +-------------------------------------------------------- +1. Nova development has consolidated all config files to nova.conf as of November 2010. There is a default set of options that are already configured in nova.conf: + :: + +--daemonize=1 +--dhcpbridge_flagfile=/etc/nova/nova.conf +--dhcpbridge=/usr/bin/nova-dhcpbridge +--logdir=/var/log/nova +--state_path=/var/lib/nova + +The following items ALSO need to be defined in /etc/nova/nova.conf. I’ve added some explanation of the variables, as comments CANNOT be in nova.conf. There seems to be an issue with nova-manage not processing the comments/whitespace correctly: - cd /etc/nova - chown -R root:nova . +--sql_connection ### Location of Nova SQL DB -Step 3 Setup the sql db ------------------------ +--s3_host ### This is where Nova is hosting the objectstore service, which will contain the VM images and buckets -1. First you 'preseed' (using the Quick Start method :doc:`../quickstart`). Run this as root. +--rabbit_host ### This is where the rabbit AMQP messaging service is hosted -:: - - sudo apt-get install bzr git-core - sudo bash - export MYSQL_PASS=nova +--cc_host ### This is where the the nova-api service lives +--verbose ### Optional but very helpful during initial setup -:: +--ec2_url ### The location to interface nova-api - cat <<MYSQL_PRESEED | debconf-set-selections - mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS - mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS - mysql-server-5.1 mysql-server/start_on_boot boolean true - MYSQL_PRESEED +--network_manager ### Many options here, discussed below. This is how your controller will communicate with additional Nova nodes and VMs: -2. Install mysql +nova.network.manager.FlatManager # Simple, no-vlan networking type +nova.network.manager. FlatDHCPManager # Flat networking with DHCP +nova.network.manager.VlanManager # Vlan networking with DHCP – /DEFAULT/ if no network manager is defined in nova.conf -:: +--fixed_range=<network/prefix> ### This will be the IP network that ALL the projects for future VM guests will reside on. E.g. 192.168.0.0/12 - sudo apt-get install -y mysql-server +--network_size=<# of addrs> ### This is the total number of IP Addrs to use for VM guests, of all projects. E.g. 5000 -4. Edit /etc/mysql/my.cnf and set this line: bind-address=0.0.0.0 and then sighup or restart mysql +The following code can be cut and paste, and edited to your setup: -5. create nova's db +Note: CC_ADDR=<the external IP address of your cloud controller> +Detailed explanation of the following example is available above. + :: + +--sql_connection=mysql://root:nova@<CC_ADDR>/nova +--s3_host=<CC_ADDR> +--rabbit_host=<CC_ADDR> +--cc_host=<CC_ADDR> +--verbose +--ec2_url=http://<CC_ADDR>:8773/services/Cloud +--network_manager=nova.network.manager.VlanManager +--fixed_range=<network/prefix> +--network_size=<# of addrs> + +2. Create a “nova” group, and set permissions:: + + addgroup nova + +The Nova config file should have its owner set to root:nova, and mode set to 0644, since they contain your MySQL server's root password. :: + + chown -R root:nova /etc/nova + chmod 644 /etc/nova/nova.conf + +Step 3 - Setup the SQL DB (MySQL for this setup) +------------------------------------------------ + +1. First you 'preseed' to bypass all the installation prompts:: + + bash + MYSQL_PASS=nova + cat <<MYSQL_PRESEED | debconf-set-selections + mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS + mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS + mysql-server-5.1 mysql-server/start_on_boot boolean true + MYSQL_PRESEED + +2. Install MySQL:: + + apt-get install -y mysql-server + +3. Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost to any:: + + sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf + service mysql restart + +3. Network Configuration + +If you use FlatManager (as opposed to VlanManager that we set) as your network manager, there are some additional networking changes you’ll have to make to ensure connectivity between your nodes and VMs. If you chose VlanManager or FlatDHCP, you may skip this section, as it’s set up for you automatically. + +Nova defaults to a bridge device named 'br100'. This needs to be created and somehow integrated into YOUR network. To keep things as simple as possible, have all the VM guests on the same network as the VM hosts (the compute nodes). To do so, set the compute node's external IP address to be on the bridge and add eth0 to that bridge. To do this, edit your network interfaces config to look like the following:: - mysql -uroot -pnova -e 'CREATE DATABASE nova;' - - -6. Update the db to include user 'root'@'%' + < begin /etc/network/interfaces > + # The loopback network interface + auto lo + iface lo inet loopback + + # Networking for NOVA + auto br100 + + iface br100 inet dhcp + bridge_ports eth0 + bridge_stp off + bridge_maxwait 0 + bridge_fd 0 + < end /etc/network/interfaces > + +Next, restart networking to apply the changes:: + + sudo /etc/init.d/networking restart + +4. MySQL DB configuration: + +Create NOVA database:: + + mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE nova;' + +Update the DB to include user 'root'@'%' with super user privileges:: + + mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;" + +Set mySQL root password:: + + mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'root'@'%' = PASSWORD('$MYSQL_PASS');" + +Step 4 - Setup Nova environment +------------------------------- + +These are the commands you run to set up a user and project:: + + /usr/bin/python /usr/bin/nova-manage user admin <user_name> + /usr/bin/python /usr/bin/nova-manage project create <project_name> <user_name> + /usr/bin/python /usr/bin/nova-manage network create <project-network> <number-of-networks-in-project> <IPs in project> + +Here is an example of what this looks like with real data:: + + /usr/bin/python /usr/bin/nova-manage user admin dub + /usr/bin/python /usr/bin/nova-manage project create dubproject dub + /usr/bin/python /usr/bin/nova-manage network create 192.168.0.0/24 1 255 + +(I chose a /24 since that falls inside my /12 range I set in ‘fixed-range’ in nova.conf. Currently, there can only be one network, and I am using the max IP’s available in a /24. You can choose to use any valid amount that you would like.) + +Note: The nova-manage service assumes that the first IP address is your network (like 192.168.0.0), that the 2nd IP is your gateway (192.168.0.1), and that the broadcast is the very last IP in the range you defined (192.168.0.255). If this is not the case you will need to manually edit the sql db 'networks' table.o. + +On running this command, entries are made in the 'networks' and 'fixed_ips' table. However, one of the networks listed in the 'networks' table needs to be marked as bridge in order for the code to know that a bridge exists. The Network is marked as bridged automatically based on the type of network manager selected. This is ONLY necessary if you chose FlatManager as your network type. More information can be found at the end of this document discussing setting up the bridge device. + + +Step 5 - Create Nova certifications +----------------------------------- + +1. Generate the certs as a zip file. These are the certs you will use to launch instances, bundle images, and all the other assorted api functions. :: - mysql -u root -p nova - GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; - SET PASSWORD FOR 'root'@'%' = PASSWORD('nova'); - -7. Branch and install Nova + mkdir –p /root/creds + /usr/bin/python /usr/bin/nova-manage project zipfile $NOVA_PROJECT $NOVA_PROJECT_USER /root/creds/novacreds.zip + +2. Unzip them in your home directory, and add them to your environment. :: - sudo -i - cd ~ - export USE_MYSQL=1 - export MYSQL_PASS=nova - git clone https://github.com/vishvananda/novascript.git - cd novascript - ./nova.sh branch - ./nova.sh install - ./nova.sh run + unzip /root/creds/novacreds.zip -d /root/creds/ + cat /root/creds/novarc >> ~/.bashrc + source ~/.bashrc -Step 4 Setup Nova environment ------------------------------ +Step 6 - Restart all relevant services +-------------------------------------- -:: +Restart all six services in total, just to cover the entire spectrum:: + + libvirtd restart; service nova-network restart; service nova-compute restart; service nova-api restart; service nova-objectstore restart; service nova-scheduler restart - /usr/bin/python /usr/bin/nova-manage user admin <user_name> - /usr/bin/python /usr/bin/nova-manage project create <project_name> <user_name> - /usr/bin/python /usr/bin/nova-manage project create network +Step 7 - Closing steps, and cleaning up +--------------------------------------- -Note: The nova-manage service assumes that the first IP address is your network (like 192.168.0.0), that the 2nd IP is your gateway (192.168.0.1), and that the broadcast is the very last IP in the range you defined (192.168.0.255). If this is not the case you will need to manually edit the sql db 'networks' table.o. +One of the most commonly missed configuration areas is not allowing the proper access to VMs. Use the 'euca-authorize' command to enable access. Below, you will find the commands to allow 'ping' and 'ssh' to your VMs:: -On running this command, entries are made in the 'networks' and 'fixed_ips' table. However, one of the networks listed in the 'networks' table needs to be marked as bridge in order for the code to know that a bridge exists. The Network is marked as bridged automatically based on the type of network manager selected. + euca-authorize -P icmp -t -1:-1 default + euca-authorize -P tcp -p 22 default -More networking details to create a network bridge for flat network -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Another common issue is you cannot ping or SSH your instances after issusing the 'euca-authorize' commands. Something to look at is the amount of 'dnsmasq' processes that are running. If you have a running instance, check to see that TWO 'dnsmasq' processes are running. If not, perform the following:: -Nova defaults to a bridge device named 'br100'. This needs to be created and somehow integrated into YOUR network. In my case, I wanted to keep things as simple as possible and have all the vm guests on the same network as the vm hosts (the compute nodes). Thus, I set the compute node's external IP address to be on the bridge and added eth0 to that bridge. To do this, edit your network interfaces config to look like the following:: + killall dnsmasq + service nova-network restart - < begin /etc/network/interfaces > - # The loopback network interface - auto lo - iface lo inet loopback +Step 8 – Testing the installation +--------------------------------- - # Networking for NOVA - auto br100 +You can then use `euca2ools` to test some items:: - iface br100 inet dhcp - bridge_ports eth0 - bridge_stp off - bridge_maxwait 0 - bridge_fd 0 - < end /etc/network/interfaces > + euca-describe-images + euca-describe-instances + +If you have issues with the API key, you may need to re-source your creds file:: + . /root/creds/novarc + +If you don’t get any immediate errors, you’re successfully making calls to your cloud! -Next, restart networking to apply the changes:: +Step 9 - Spinning up a VM for testing +------------------------------------- - sudo /etc/init.d/networking restart +(This excerpt is from Thierry Carrez's blog, with reference to http://wiki.openstack.org/GettingImages.) -Step 5: Create nova certs. --------------------------- +The image that you will use here will be a ttylinux image, so this is a limited function server. You will be able to ping and SSH to this instance, but it is in no way a full production VM. -Generate the certs as a zip file:: +Download the image, and publish to your bucket: - mkdir creds - sudo /usr/bin/python /usr/bin/nova-manage project zip admin admin creds/nova.zip +:: -you can get the rc file more easily with:: + image="ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gz" + wget http://smoser.brickies.net/ubuntu/ttylinux-uec/$image + uec-publish-tarball $image mybucket - sudo /usr/bin/python /usr/bin/nova-manage project env admin admin creds/novarc +This will output three references, an "emi", an "eri" and an "eki." (Image, ramdisk, and kernel) The emi is the one we use to launch instances, so take note of this. -unzip them in your home directory, and add them to your environment:: +Create a keypair to SSH to the server: - unzip creds/nova.zip - echo ". creds/novarc" >> ~/.bashrc - ~/.bashrc +:: -Step 6 Restart all relevant services ------------------------------------- + euca-add-keypair mykey > mykey.priv -Restart Libvirt:: + chmod 0600 mykey.priv - sudo /etc/init.d/libvirt-bin restart +Boot your instance: -Restart relevant nova services:: +:: - sudo /etc/init.d/nova-compute restart - sudo /etc/init.d/nova-volume restart + euca-run-instances $emi -k mykey -t m1.tiny +($emi is replaced with the output from the previous command) -.. todo:: do we still need the content below? +Checking status, and confirming communication: -Bare-metal Provisioning Notes ------------------------------ +Once you have booted the instance, you can check the status the the `euca-describe-instances` command. Here you can view the instance ID, IP, and current status of the VM. -To install the base operating system you can use PXE booting. +:: -Types of Hosts --------------- + euca-describe-instances -A single machine in your cluster can act as one or more of the following types -of host: +Once in a "running" state, you can use your SSH key connect: -Nova Services +:: -* Network -* Compute -* Volume -* API -* Objectstore + ssh -i mykey.priv root@$ipaddress -Other supporting services +When you are ready to terminate the instance, you may do so with the `euca-terminate-instances` command: -* Message Queue -* Database (optional) -* Authentication database (optional) +:: -Initial Setup -------------- + euca-terminate-instances $instance-id -* Networking -* Cloudadmin User Creation +You can determine the instance-id with `euca-describe-instances`, and the format is "i-" with a series of letter and numbers following: e.g. i-a4g9d. -Deployment Technologies ------------------------ +For more information in creating you own custom (production ready) instance images, please visit http://wiki.openstack.org/GettingImages for more information! -Once you have machines with a base operating system installation, you can deploy -code and configuration with your favorite tools to specify which machines in -your cluster have which roles: +Enjoy your new private cloud, and play responsibly! -* Puppet -* Chef diff --git a/doc/source/adminguide/network.flat.rst b/doc/source/adminguide/network.flat.rst index 1b8661a40..3d8680c6f 100644 --- a/doc/source/adminguide/network.flat.rst +++ b/doc/source/adminguide/network.flat.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/adminguide/network.vlan.rst b/doc/source/adminguide/network.vlan.rst index c6c4e7f91..c06ce8e8b 100644 --- a/doc/source/adminguide/network.vlan.rst +++ b/doc/source/adminguide/network.vlan.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. @@ -91,11 +91,10 @@ These do NOT have IP addresses in the host to protect host access. Compute nodes have iptables/ebtables entries created per project and instance to protect against IP/MAC address spoofing and ARP poisoning. -The network assignment to a project, and IP address assignment to a VM instance, are triggered when a user starts to run a VM instance. When running a VM instance, a user needs to specify a project for the instances, and the security groups (described in Security Groups) when the instance wants to join. If this is the first instance to be created for the project, then Nova (the cloud controller) needs to find a network controller to be the network host for the project; it then sets up a private network by finding an unused VLAN id, an unused subnet, and then the controller assigns them to the project, it also assigns a name to the project's Linux bridge, and allocating a private IP within the project's subnet for the new instance. +The network assignment to a project, and IP address assignment to a VM instance, are triggered when a user starts to run a VM instance. When running a VM instance, a user needs to specify a project for the instances, and the security groups (described in Security Groups) when the instance wants to join. If this is the first instance to be created for the project, then Nova (the cloud controller) needs to find a network controller to be the network host for the project; it then sets up a private network by finding an unused VLAN id, an unused subnet, and then the controller assigns them to the project, it also assigns a name to the project's Linux bridge (br100 stored in the Nova database), and allocating a private IP within the project's subnet for the new instance. If the instance the user wants to start is not the project's first, a subnet and a VLAN must have already been assigned to the project; therefore the system needs only to find an available IP address within the subnet and assign it to the new starting instance. If there is no private IP available within the subnet, an exception will be raised to the cloud controller, and the VM creation cannot proceed. -.. todo:: insert the name of the Linux bridge, is it always named bridge? External Infrastructure ----------------------- diff --git a/doc/source/adminguide/nova.manage.rst b/doc/source/adminguide/nova.manage.rst index 0e5c4e062..0ec67c69c 100644 --- a/doc/source/adminguide/nova.manage.rst +++ b/doc/source/adminguide/nova.manage.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/cloud101.rst b/doc/source/cloud101.rst index 7c79d2a70..9902ba502 100644 --- a/doc/source/cloud101.rst +++ b/doc/source/cloud101.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. @@ -54,7 +54,7 @@ Cloud computing offers different service models depending on the capabilities a The US-based National Institute of Standards and Technology offers definitions for cloud computing and the service models that are emerging. -These definitions are summarized from http://csrc.nist.gov/groups/SNS/cloud-computing/. +These definitions are summarized from the `U.S. National Institute of Standards and Technology (NIST) cloud computing research group <http://csrc.nist.gov/groups/SNS/cloud-computing/>`_. SaaS - Software as a Service ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -74,7 +74,6 @@ IaaS - Infrastructure as a Service Provides infrastructure such as computer instances, network connections, and storage so that people can run any software or operating system. - Types of Cloud Deployments -------------------------- @@ -87,4 +86,5 @@ A hybrid cloud can be a deployment model, as a composition of both public and pr Work in the Clouds ------------------ -.. todo:: What people have done/sample projects +What have people done with cloud computing? Cloud computing can help with large-scale computing needs or can lead consolidation efforts by virtualizing servers to make more use of existing hardware (and possibly release old hardware from service.) People also use cloud computing for collaboration because of the high availability through networked computers. Productivity suites for word processing, number crunching, and email communications, and more are also available through cloud computing. Cloud computing also avails additional storage to the cloud user, avoiding the need for additional hard drives on your desktop and enabling access to large data storage capacity online in the cloud. + diff --git a/doc/source/community.rst b/doc/source/community.rst index 01ff5f055..4ae32f1eb 100644 --- a/doc/source/community.rst +++ b/doc/source/community.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/addmethod.openstackapi.rst b/doc/source/devref/addmethod.openstackapi.rst index 4baa46e20..dde50083b 100644 --- a/doc/source/devref/addmethod.openstackapi.rst +++ b/doc/source/devref/addmethod.openstackapi.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 OpenStack LLC + Copyright 2010-2011 OpenStack LLC All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may diff --git a/doc/source/devref/api.rst b/doc/source/devref/api.rst index 14181529a..35abf1ae0 100644 --- a/doc/source/devref/api.rst +++ b/doc/source/devref/api.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/architecture.rst b/doc/source/devref/architecture.rst index 1e23e1361..233cd6f08 100644 --- a/doc/source/devref/architecture.rst +++ b/doc/source/devref/architecture.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/auth.rst b/doc/source/devref/auth.rst index c3af3f945..830caba67 100644 --- a/doc/source/devref/auth.rst +++ b/doc/source/devref/auth.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/cloudpipe.rst b/doc/source/devref/cloudpipe.rst index fb104c160..4f5d91e28 100644 --- a/doc/source/devref/cloudpipe.rst +++ b/doc/source/devref/cloudpipe.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/compute.rst b/doc/source/devref/compute.rst index db9ef6f34..31cc2037f 100644 --- a/doc/source/devref/compute.rst +++ b/doc/source/devref/compute.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/database.rst b/doc/source/devref/database.rst index 14559aa8c..a26e48705 100644 --- a/doc/source/devref/database.rst +++ b/doc/source/devref/database.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. @@ -60,4 +60,4 @@ Tests ----- Tests are lacking for the db api layer and for the sqlalchemy driver. -Failures in the drivers would be dectected in other test cases, though. +Failures in the drivers would be detected in other test cases, though. diff --git a/doc/source/devref/development.environment.rst b/doc/source/devref/development.environment.rst index 3de2e2287..f3c454d64 100644 --- a/doc/source/devref/development.environment.rst +++ b/doc/source/devref/development.environment.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/fakes.rst b/doc/source/devref/fakes.rst index 0ba5d6ef2..6073447f0 100644 --- a/doc/source/devref/fakes.rst +++ b/doc/source/devref/fakes.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/glance.rst b/doc/source/devref/glance.rst index d18f7fec6..9a1c14d58 100644 --- a/doc/source/devref/glance.rst +++ b/doc/source/devref/glance.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/index.rst b/doc/source/devref/index.rst index 589609ace..9613ba990 100644 --- a/doc/source/devref/index.rst +++ b/doc/source/devref/index.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/network.rst b/doc/source/devref/network.rst index d9d091494..eaf13e9ba 100644 --- a/doc/source/devref/network.rst +++ b/doc/source/devref/network.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/nova.rst b/doc/source/devref/nova.rst index 53ce6f34f..093fbb3ee 100644 --- a/doc/source/devref/nova.rst +++ b/doc/source/devref/nova.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/objectstore.rst b/doc/source/devref/objectstore.rst index 3ccfc8566..f140e85e9 100644 --- a/doc/source/devref/objectstore.rst +++ b/doc/source/devref/objectstore.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/rabbit.rst b/doc/source/devref/rabbit.rst index ae0bac49d..c17a13222 100644 --- a/doc/source/devref/rabbit.rst +++ b/doc/source/devref/rabbit.rst @@ -1,5 +1,6 @@ .. Copyright (c) 2010 Citrix Systems, Inc. + All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain @@ -29,7 +30,7 @@ Nova (Austin release) uses both direct and topic-based exchanges. The architectu .. -Nova implements RPC (both request+response, and one-way, respectively nicknamed 'rpc.call' and 'rpc.cast') over AMQP by providing an adapter class which take cares of marshalling and unmarshalling of messages into function calls. Each Nova service (for example Compute, Volume, etc.) create two queues at the initialization time, one which accepts messages with routing keys 'NODE-TYPE.NODE-ID' (for example compute.hostname) and another, which accepts messages with routing keys as generic 'NODE-TYPE' (for example compute). The former is used specifically when Nova-API needs to redirect commands to a specific node like 'euca-terminate instance'. In this case, only the compute node whose host's hypervisor is running the virtual machine can kill the instance. The API acts as a consumer when RPC calls are request/response, otherwise is acts as publisher only. +Nova implements RPC (both request+response, and one-way, respectively nicknamed 'rpc.call' and 'rpc.cast') over AMQP by providing an adapter class which take cares of marshaling and unmarshaling of messages into function calls. Each Nova service (for example Compute, Volume, etc.) create two queues at the initialization time, one which accepts messages with routing keys 'NODE-TYPE.NODE-ID' (for example compute.hostname) and another, which accepts messages with routing keys as generic 'NODE-TYPE' (for example compute). The former is used specifically when Nova-API needs to redirect commands to a specific node like 'euca-terminate instance'. In this case, only the compute node whose host's hypervisor is running the virtual machine can kill the instance. The API acts as a consumer when RPC calls are request/response, otherwise is acts as publisher only. Nova RPC Mappings ----------------- @@ -39,7 +40,7 @@ The figure below shows the internals of a RabbitMQ node when a single instance i Figure 2 shows the following internal elements: * Topic Publisher: a Topic Publisher comes to life when an rpc.call or an rpc.cast operation is executed; this object is instantiated and used to push a message to the queuing system. Every publisher connects always to the same topic-based exchange; its life-cycle is limited to the message delivery. - * Direct Consumer: a Direct Consumer comes to life if (an only if) a rpc.call operation is executed; this object is instantiated and used to receive a response message from the queuing system; Every consumer connects to a unique direct-based exchange via a unique exclusive queue; its life-cycle is limited to the message delivery; the exchange and queue identifiers are determined by a UUID generator, and are marshalled in the message sent by the Topic Publisher (only rpc.call operations). + * Direct Consumer: a Direct Consumer comes to life if (an only if) a rpc.call operation is executed; this object is instantiated and used to receive a response message from the queuing system; Every consumer connects to a unique direct-based exchange via a unique exclusive queue; its life-cycle is limited to the message delivery; the exchange and queue identifiers are determined by a UUID generator, and are marshaled in the message sent by the Topic Publisher (only rpc.call operations). * Topic Consumer: a Topic Consumer comes to life as soon as a Worker is instantiated and exists throughout its life-cycle; this object is used to receive messages from the queue and it invokes the appropriate action as defined by the Worker role. A Topic Consumer connects to the same topic-based exchange either via a shared queue or via a unique exclusive queue. Every Worker has two topic consumers, one that is addressed only during rpc.cast operations (and it connects to a shared queue whose exchange key is 'topic') and the other that is addressed only during rpc.call operations (and it connects to a unique queue whose exchange key is 'topic.host'). * Direct Publisher: a Direct Publisher comes to life only during rpc.call operations and it is instantiated to return the message required by the request/response operation. The object connects to a direct-based exchange whose identity is dictated by the incoming message. * Topic Exchange: The Exchange is a routing table that exists in the context of a virtual host (the multi-tenancy mechanism provided by RabbitMQ); its type (such as topic vs. direct) determines the routing policy; a RabbitMQ node will have only one topic-based exchange for every topic in Nova. diff --git a/doc/source/devref/scheduler.rst b/doc/source/devref/scheduler.rst index ab74b6ba8..066781514 100644 --- a/doc/source/devref/scheduler.rst +++ b/doc/source/devref/scheduler.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/services.rst b/doc/source/devref/services.rst index f5bba5c12..ae237a248 100644 --- a/doc/source/devref/services.rst +++ b/doc/source/devref/services.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/devref/volume.rst b/doc/source/devref/volume.rst index 54a2d4f8b..c4dddb9ea 100644 --- a/doc/source/devref/volume.rst +++ b/doc/source/devref/volume.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/index.rst b/doc/source/index.rst index b9ba6208a..6eec09acb 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/livecd.rst b/doc/source/livecd.rst index b355fa180..37c92c8bc 100644 --- a/doc/source/livecd.rst +++ b/doc/source/livecd.rst @@ -1,3 +1,20 @@ +.. + Copyright 2010-2011 OpenStack LLC + + All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + Installing the Live CD ====================== diff --git a/doc/source/nova.concepts.rst b/doc/source/nova.concepts.rst index fb3969a43..e9687dc98 100644 --- a/doc/source/nova.concepts.rst +++ b/doc/source/nova.concepts.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. @@ -105,7 +105,7 @@ It is important to know that there are user-specific (sometimes called global) r For example: A user can access api commands allowed to the netadmin role (like allocate_address) only if he has the user-specific netadmin role AND the project-specific netadmin role. -More information about RBAC can be found in the :ref:`auth`. +More information about RBAC can be found in :ref:`auth`. Concept: API ------------ @@ -159,12 +159,10 @@ vpn management, and much more. See :doc:`nova.manage` in the Administration Guide for more details. - Concept: Flags -------------- -Nova uses python-gflags for a distributed command line system, and the flags can either be set when running a command at the command line or within flag files. When you install Nova packages, each Nova service gets its own flag file. For example, nova-network.conf is used for configuring the nova-network service, and so forth. - +Nova uses python-gflags for a distributed command line system, and the flags can either be set when running a command at the command line or within a flag file. When you install Nova packages for the Austin release, each nova service gets its own flag file. For example, nova-network.conf is used for configuring the nova-network service, and so forth. In releases beyond Austin which was released in October 2010, all flags are set in nova.conf. Concept: Plugins ---------------- diff --git a/doc/source/object.model.rst b/doc/source/object.model.rst index c8d4df736..d02f151fd 100644 --- a/doc/source/object.model.rst +++ b/doc/source/object.model.rst @@ -1,3 +1,20 @@ +.. + Copyright 2010-2011 OpenStack LLC + + All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + Object Model ============ @@ -25,29 +42,38 @@ Object Model Users ----- +Each Nova User is authorized based on their access key and secret key, assigned per-user. Read more at :doc:`/adminguide/managing.users`. + Projects -------- +For Nova, access to images is based on the project. Read more at :doc:`/adminguide/managing.projects`. Images ------ +Images are binary files that run the operating system. Read more at :doc:`/adminguide/managing.images`. Instances --------- +Instances are running virtual servers. Read more at :doc:`/adminguide/managing.instances`. Volumes ------- +.. todo:: Write doc about volumes Security Groups --------------- +In Nova, a security group is a named collection of network access rules, like firewall policies. Read more at `Security Groups <http://nova.openstack.org/nova.concepts.html#concept-security-groups>`_. VLANs ----- +VLAN is the default network mode for Nova. Read more at :doc:`/adminguide/network.vlan`. IP Addresses ------------ +Nova enables floating IP management.
\ No newline at end of file diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst index fa5d96738..17c9e10a8 100644 --- a/doc/source/quickstart.rst +++ b/doc/source/quickstart.rst @@ -1,5 +1,5 @@ .. - Copyright 2010 United States Government as represented by the + Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. diff --git a/doc/source/service.architecture.rst b/doc/source/service.architecture.rst index 28a32bec6..8fa1e3306 100644 --- a/doc/source/service.architecture.rst +++ b/doc/source/service.architecture.rst @@ -1,3 +1,20 @@ +.. + Copyright 2010-2011 OpenStack LLC + + All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + Service Architecture ==================== |