Product SiteDocumentation Site

Apache CloudStack 4.0.0-incubating

CloudStack Plugin Guide for the Nicira NVP Plugin

Edition 1

Apache CloudStack


Legal Notice

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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.
Apache CloudStack is an effort undergoing incubation at The Apache Software Foundation (ASF).
Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
Abstract
Plugin Guide for the Nicira NVP Plugin.

1. The Nicira NVP Plugin
1.1. Introduction to the Nicira NVP Plugin
1.2. Features of the Nicira NVP Plugin
2. Using the Nicira NVP Plugin
2.1. Prerequisites
2.2. Enabling the service provider
2.3. Device-management
3. Troubleshooting the Nicira NVP Plugin
3.1. UUID References
3.2. Database tables
A. Revision History

Chapter 1. The Nicira NVP Plugin

1.1. Introduction to the Nicira NVP Plugin

The Nicira NVP plugin allows CloudStack to use the Nicira solution for virtualized network as a provider for CloudStack networks and services.

1.2. Features of the Nicira NVP Plugin

In CloudStack release 4.0.0-incubating this plugin supports the Connectivity service. This service is responsible for creating Layer 2 networks supporting the networks created by Guests. In other words when an tennant creates a new network, instead of the traditional VLAN a logical network will be created by sending the appropriate calls to the Nicira NVP Controller.
The plugin has been tested with Nicira NVP versions 2.1.0, 2.2.0 and 2.2.1

Note

In CloudStack 4.0.0-incubating only the XenServer hypervisor is supported for use in combination with Nicira NVP

Note

In CloudStack 4.0.0-incubating the UI components for this plugin are not complete, configuration is done by sending commands to the API

Chapter 2. Using the Nicira NVP Plugin

2.1. Prerequisites

Before enabling the Nicira NVP plugin the NVP Controller needs to be configured. Please review the NVP User Guide on how to do that.
CloudStack needs to have at least one physical network with the isolation method set to "STT". This network should be enabled for the Guest traffic type.

Note

The Guest traffic type should be configured with the traffic label that matches the name of the Integration Bridge on XenServer. See the Nicira NVP User Guide for more details on how to set this up in XenServer.
Make sure you have the following information ready:
  • The IP address of the NVP Controller
  • The username to access the API
  • The password to access the API
  • The UUID of the Transport Zone that contains the hypervisors in this Zone
  • The UUID of the Physical Network that will used for the Guest networks

2.2. Enabling the service provider

To allow CloudStack to use the Nicira NVP Plugin the network service provider needs to be enabled on the physical network. The following sequence of API calls will enable the network service provider
  • addNetworkServiceProvider
    • name = "NiciraNVP"
    • physicalnetworkid = <the uuid of the physical network>
  • updateNetworkServiceProvider
    • id = <the provider uuid returned by the previous call>
    • state = "Enabled"

2.3. Device-management

In CloudStack 4.0.x each Nicira NVP setup is considered a "device" that can be added and removed from a physical network. To complete the configuration of the Nicira NVP plugin a device needs to be added to the physical network using the "addNiciraNVPDevice" API call. The plugin is now enabled on the physical network and any guest networks created on that network will be provisioned using the Nicra NVP Controller.
The plugin introduces a set of new API calls to manage the devices, see below or refer to the API reference.
  • addNiciraNvpDevice
    • physicalnetworkid: the UUID of the physical network on which the device is configured
    • hostname: the IP address of the NVP controller
    • username: the username for access to the NVP API
    • password: the password for access to the NVP API
    • transportzoneuuid: the UUID of the transportzone
  • deleteNiciraNVPDevice
    • nvpdeviceid: the UUID of the device
  • listNiciraNVPDevices

Chapter 3. Troubleshooting the Nicira NVP Plugin

3.1. UUID References

The plugin maintains several references in the CloudStack database to items created on the NVP Controller.
Every guest network this is created will have its broadcast type set to Lswitch and if the network is in state "Implemented", the broadcast URI will have the UUID of the Logical Switch that was created for this network on the NVP Controller.
The Nics that are connected to one of the Logical Switches will have their Logical Switch Port UUID listed in the nicira_nvp_nic_map table

Note

All devices created on the NVP Controller will have a tag set to domain-account of the owner of the network, this string can be used to search for items in the NVP Controller.

3.2. Database tables

The following tables are added to the cloud database for the Nicira NVP Plugin
  • nicira_nvp_nic_map, contains a mapping from nic to logical switch port
    • id
    • logicalswitch, uuid of the logical switch this port is connected to
    • logicalswitchport, uuid of the logical switch port for this nic
    • nic, the CloudStack uuid for this nic, reference to the nics table
  • external_nicira_nvp_devices, contains all configured devices
    • id
    • uuid
    • physical_network_id, the physical network this device is configured on
    • provider_name, set to "NiciraNvp"
    • device_name, display name for this device
    • host_id, reference to the host table with the device configuration

Revision History

Revision History
Revision 0-0Wed Oct 03 2012Hugo Trippaers
Documentation created for 4.0.0-incubating version of the NVP Plugin