tricircle/novaproxy
joey5678 a132561ddf Modify neutron name rule when created in nova
Just using cascading neutron object(net, subnet, port) uuid as name
of cascaded neutron object when creating these objects in nova.

Change-Id: I627d482c62e5f8c552623030104790f89da70533
2015-01-16 12:15:29 +08:00
..
installation Modify the installation script of nova and glance 2014-12-23 18:29:38 +08:00
nova Modify neutron name rule when created in nova 2015-01-16 12:15:29 +08:00
README.md Modify the installation script of nova and glance 2014-12-23 18:29:38 +08:00

README.md

Openstack Nova Proxy

Nova-Proxy acts as the same role of Nova-Compute in cascading OpenStack. Nova-Proxy treats cascaded Nova as its hypervisor, convert the internal request message from the message bus to restful API calling to cascaded Nova.

Key modules

  • The new nova proxy module manager_proxy,which is configured to manage specified Availability Zone cascaded Nova. All VM in the cascaded Nova of this AZ will be bind to the manager_proxy host in the cascading level:

    nova/compute/manager_proxy.py

  • The code include clients of various component service(nova neutron cinder glance),through the client you can call cascaded various component service API by restful API

    nova/compute/clients.py

  • The solution of that clients gets token or checks token from token: nova/compute/compute_context.py nova/compute/compute_keystoneclient.py

Requirements

  • openstack-nova-compute-2014.2(Juno) has been installed

Installation

We provide two ways to install the nova proxy code. In this section, we will guide you through installing the nova proxy with the minimum configuration.

  • Note:

    • Make sure you have an existing installation of Openstack Juno.
    • We recommend that you Do backup at least the following files before installation, because they are to be overwritten or modified: $NOVA_CONFIG_PARENT_DIR/nova.conf (replace the $... with actual directory names.)
  • Manual Installation

    • Make sure you have performed backups properly.

    • Navigate to the local repository and copy the contents in 'nova' sub-directory to the corresponding places in existing nova, e.g. cp -r $LOCAL_REPOSITORY_DIR/nova $NOVA_PARENT_DIR (replace the $... with actual directory name.)

    • Update the nova configuration file (e.g. /etc/nova/nova.conf) with the minimum option below. If the option already exists, modify its value, otherwise add it to the config file. Check the "Configurations" section below for a full configuration guide.

      [DEFAULT]
      ...
      ###configuration for Nova cascading ###
      proxy_region_name=$proxy_region_name
      cascading_nova_url=$cascading_nova_url
      cascaded_nova_url=$cascaded_nova_url
      cascaded_neutron_url=$cascaded_neutron_url
      cascaded_glance_flag=False
      cascaded_glance_url=$cascaded_glance_url
      os_region_name=$os_region_name
      keystone_auth_url=$keystone_auth_url
      cinder_endpoint_template=$cinder_endpoint_template
      compute_manager=nova.compute.manager_proxy.ComputeManager
      
    • Restart the nova proxy. service nova-compute restart

    • Done. The nova proxy should be working with a demo configuration.

  • Automatic Installation

    • Make sure you have performed backups properly.

    • run source envrc

    • Navigate to the installation directory and run installation script.

      cd $LOCAL_REPOSITORY_DIR/installation
      sudo bash ./install.sh
      

      (replace the $... with actual directory name.)

    • Done. The installation code should setup the nova proxy with the minimum configuration below. Check the "Configurations" section for a full configuration guide.

      [DEFAULT]
      ...
      ###cascade info ###
      proxy_region_name=$proxy_region_name
      cascading_nova_url=$cascading_nova_url
      cascaded_nova_url=$cascaded_nova_url
      cascaded_neutron_url=$cascaded_neutron_url
      cascaded_glance_flag=False
      cascaded_glance_url=$cascaded_glance_url
      os_region_name=$os_region_name
      keystone_auth_url=$keystone_auth_url
      cinder_endpoint_template=$cinder_endpoint_template
      compute_manager=nova.compute.manager_proxy.ComputeManager
      
      
  • Troubleshooting

    In case the automatic installation process is not complete, please check the followings:

    • Make sure your OpenStack version is Juno.

    • Check the variables in the beginning of the install.sh scripts. Your installation directories may be different from the default values we provide.

    • The installation code will automatically add the related codes to $NOVA_PARENT_DIR/nova and modify the related configuration.

    • In case the automatic installation does not work, try to install manually.

Configurations

  • This is a (default) configuration sample for the nova proxy. Please add/modify these options in /etc/nova/nova.conf.
  • Note:
    • Please carefully make sure that options in the configuration file are not duplicated. If an option name already exists, modify its value instead of adding a new one of the same name.
    • Please refer to the 'Configuration Details' section below for proper configuration and usage of costs and constraints.
[DEFAULT]

...

#
#Options defined in nova.compute.manager
#

# Default driver to use for the nova proxy (string value)
compute_manager=nova.compute.manager_proxy.ComputeManager

#The region name ,which will be set as a parameter when
#the cascaded level component services register endpoint to keystone
proxy_region_name=$proxy_region_name

#The cascading level nova component service url, by which the nova porxy
#can access to  cascading level nova service
cascading_nova_url=$cascading_nova_url

#The cascaded level nova component service url, by which the nova porxy
#can access to  cascaded level nova service
cascaded_nova_url=$cascaded_nova_url
cascaded_neutron_url=$cascaded_neutron_url

#when cascaded_glance_flag is set to True, the cascaded nova will use casaded glance to
#provide image but not cascading level glance, if it cascaded_glance_flag is set to False
#casacaded Nova will use image from global glance.
cascaded_glance_flag=True or False

#The cascaded level glance service url, by which the nova porxy
#can judge whether cascading glance has a location for this cascaded glance
cascaded_glance_url=$cascaded_glance_url

#The region name ,which will be set as a parameter when
#the cascading level component services register endpoint to keystone
os_region_name=$os_region_name

#The cascading level keystone component service url, by which the nova porxy
#can access to  cascading level keystone service
keystone_auth_url=$keystone_auth_url

Note: a few options that belonged to the original nova have to be configured:

.	allow_resize_to_same_host=True
.	scheduler_default_filters=AvailabilityZoneFilter