Jump to: navigation, search

Difference between revisions of "Neutron/LBaaS/NetScaler"

< Neutron‎ | LBaaS
m (NetScaler LBaaS integration in Neutron LBaaS)
(Further information on the code contribution)
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== NetScaler LBaaS integration in Neutron LBaaS ==
 
== NetScaler LBaaS integration in Neutron LBaaS ==
  
The NetScaler loadbalancer integration in Neutron LBaaS implements all the LBaaS driver CRUD APIs. It implements all the defined operations on VIPs, Pools and Pool Members and Health Monitors.  The integration consists of two pieces:
+
The NetScaler loadbalancer integration in Neutron LBaaS implements all the LBaaS driver CRUD APIs defined in the IceHouse release: It implements all the defined operations on VIPs, Pools, Pool Members and Health Monitors.  The integration consists of a driver class configured in the Neutron config file (neutron.conf), and the accompanying unit tests.
* A driver class configured in the Neutron config file (neutron.conf)
 
* An LBaaS agent that runs on the network node
 
  
The integration support is  targeted for the OpenStack IceHouse release.
+
The NetScaler driver is  available in OpenStack IceHouse release.
  
 
== Integration Design ==
 
== Integration Design ==
  
The NetScaler LBaaS integration follows the same model as the HAProxy integration in Neutron. It consists of a driver class that implements the Neutron LBaaS driver calls. There is also a NetScaler LBaaS agent (similar to the HAProxy agent) which runs on the Network node. This agent receives rpc messages from the NetScaler LBaaS driver and is charged with realizing the LBaaS operations on the NetScaler devices, using NetScaler Control Center service REST APIs.  
+
The NetScaler LBaaS integration consists of a driver class that implements the Neutron LBaaS driver which calls the NetScaler Control Center (NCC) service using NCC REST APIs. NCC is a separate service that runs outside of OpenStack infrastructure, and is deployed as a "virtual appliance" on supported hypervisor platforms (KVM/ESX/XenServer) for ease of setup. The NCC service is charged with NetScaler resource management, tenancy management, and NetScaler device configuration. It is an orchestration service that takes on the tasks of correct configuration of NetScaler devices, rollback in case of failure, detecting configuration drift, monitoring success of operation and collecting statistics in the background. This allows for the driver component in OpenStack to remain lightweight, simpler to maintain and easier to evolve going forward as the Neutron service evolves.
  
The figure below outlines the NetScaler integration components in the Neutron framework.
+
The figure below outlines the NetScaler integration components in the Neutron framework:
+
 
The NetScaler LBaaS driver forwards the driver calls to the NetScaler agent using OpenStack RPC cast calls (similar to HAProxy  agent rpc calls). The agent will then invoke the REST APIs of the NetScaler Control Center Service to implement the operations on vips/pools/members/monitors. The Agent can call back the NetScaler LBaaS driver to update the status of the entities using direct rpc synchronous calls.
+
[[File:NetScalerLBaaSIntegration.png|400px|frame|border|center|top]]
Products Supported
+
 
 +
As shown in the figure above, the NetScaler LBaaS driver forwards the driver calls to the NetScaler Control Center Service which implements the operations on vips/pools/members/monitors. The driver also periodically calls NCC on a background task to retrieve the updated status of the different LBaaS resources such as vips and pools and to collect statistics on these.
 +
 
 +
== Products Supported ==
  
 
The NetScaler LBaaS driver for Neutron targets the following Citrix products:
 
The NetScaler LBaaS driver for Neutron targets the following Citrix products:
 
* NetScaler hardware appliances (MPX series)  
 
* NetScaler hardware appliances (MPX series)  
* NetScaler Virtual appliances (VPX series) – Supported on KVM, Xen, VMware ESX and Microsoft HyperV
+
* NetScaler Virtual appliances (VPX series) – Supported on KVM, XenServer, VMware ESX and Microsoft HyperV
 
* NetScaler multi-tenant hardware appliances (SDX series)
 
* NetScaler multi-tenant hardware appliances (SDX series)
* NetScaler Control Center
+
* NetScaler Control Center (virtual appliance) - Supported on KVM, ESX and XenServer.
 +
 
 +
 
 +
Please contact Citrix for availability information of NetScaler Control Center.
  
 
== Product Versions supported ==
 
== Product Versions supported ==
Line 26: Line 30:
 
The following versions are supported by this integration:
 
The following versions are supported by this integration:
  
* NetScaler MPX 10.1
+
* NetScaler MPX 10.1 and above
* NetScaler VPX 10.1
+
* NetScaler VPX 10.1 and above
* NetScaler SDX 10.1
+
* NetScaler SDX 10.1 and above
* NetScaler Control Center 1.0 (to be release in Q4 2013)
+
* NetScaler Control Center 1.0
  
 
== Virtual Networking support ==
 
== Virtual Networking support ==
  
For the MPX and SDX hardware appliances, we intend to support all the Neutron L2/L3 plugins that support VLAN-backed virtual networks in Neutron. The LBaaS driver and agent will configure the hardware appliances with the vlans corresponding to vip and pool networks.
+
For the MPX and SDX hardware appliances, this integration supports all the Neutron L2/L3 plugins that provide VLAN-backed virtual networks in Neutron. NCC configures the hardware appliances with the vlan IDs corresponding to vip and pool networks.
 +
 
 +
For the VPX virtual appliances (running on Nova), this integration is agnostic to the type of virtual networking used: The NetScaler VPX is running as a normal VM in Nova and can be launched and networked into the pool and vip networks like any other VM in Nova, by leveraging  the L2/L3 plugin/agent configured  in Neutron and Nova setup.
 +
 
 +
== Further information on the code contribution ==
 +
 
 +
All code contributed is in the form of python code, and was developed to adhere to the Neutron coding conventions.
 +
 
 +
There are no changes made to Neutron LBaaS plugin. All the code contribution is in the driver class.
 +
 
 +
There are no changes to the Neutron LBaaS DB schema. The contributed driver does not write to the DB and does not need to extend the DB schema, and therefore it does not hold any extra state, besides what the LBaaS plugin already maintains.
  
For the VPX virtual appliances, we are agnostic to the type of virtual networking used: The NetScaler VPX is running as a normal VM in Nova  and can be launched and networked into the pool and vip networks like any VM in Nova, by leveraging  the L2/L3 plugin/agent configured  in Neutron and Nova setup.
+
For configuring the NetScaler LBaaS driver, the NetScaler driver class needs to be included in the neutron.conf file, so it can be loaded by the LBaaS plugin. When the user creates an LB pool, they will need to specify a "provider" attribute that maps to the NetScaler driver class in the config file.

Latest revision as of 00:54, 12 June 2014

NetScaler LBaaS integration in Neutron LBaaS

The NetScaler loadbalancer integration in Neutron LBaaS implements all the LBaaS driver CRUD APIs defined in the IceHouse release: It implements all the defined operations on VIPs, Pools, Pool Members and Health Monitors. The integration consists of a driver class configured in the Neutron config file (neutron.conf), and the accompanying unit tests.

The NetScaler driver is available in OpenStack IceHouse release.

Integration Design

The NetScaler LBaaS integration consists of a driver class that implements the Neutron LBaaS driver which calls the NetScaler Control Center (NCC) service using NCC REST APIs. NCC is a separate service that runs outside of OpenStack infrastructure, and is deployed as a "virtual appliance" on supported hypervisor platforms (KVM/ESX/XenServer) for ease of setup. The NCC service is charged with NetScaler resource management, tenancy management, and NetScaler device configuration. It is an orchestration service that takes on the tasks of correct configuration of NetScaler devices, rollback in case of failure, detecting configuration drift, monitoring success of operation and collecting statistics in the background. This allows for the driver component in OpenStack to remain lightweight, simpler to maintain and easier to evolve going forward as the Neutron service evolves.

The figure below outlines the NetScaler integration components in the Neutron framework:

NetScalerLBaaSIntegration.png

As shown in the figure above, the NetScaler LBaaS driver forwards the driver calls to the NetScaler Control Center Service which implements the operations on vips/pools/members/monitors. The driver also periodically calls NCC on a background task to retrieve the updated status of the different LBaaS resources such as vips and pools and to collect statistics on these.

Products Supported

The NetScaler LBaaS driver for Neutron targets the following Citrix products:

  • NetScaler hardware appliances (MPX series)
  • NetScaler Virtual appliances (VPX series) – Supported on KVM, XenServer, VMware ESX and Microsoft HyperV
  • NetScaler multi-tenant hardware appliances (SDX series)
  • NetScaler Control Center (virtual appliance) - Supported on KVM, ESX and XenServer.


Please contact Citrix for availability information of NetScaler Control Center.

Product Versions supported

The following versions are supported by this integration:

  • NetScaler MPX 10.1 and above
  • NetScaler VPX 10.1 and above
  • NetScaler SDX 10.1 and above
  • NetScaler Control Center 1.0

Virtual Networking support

For the MPX and SDX hardware appliances, this integration supports all the Neutron L2/L3 plugins that provide VLAN-backed virtual networks in Neutron. NCC configures the hardware appliances with the vlan IDs corresponding to vip and pool networks.

For the VPX virtual appliances (running on Nova), this integration is agnostic to the type of virtual networking used: The NetScaler VPX is running as a normal VM in Nova and can be launched and networked into the pool and vip networks like any other VM in Nova, by leveraging the L2/L3 plugin/agent configured in Neutron and Nova setup.

Further information on the code contribution

All code contributed is in the form of python code, and was developed to adhere to the Neutron coding conventions.

There are no changes made to Neutron LBaaS plugin. All the code contribution is in the driver class.

There are no changes to the Neutron LBaaS DB schema. The contributed driver does not write to the DB and does not need to extend the DB schema, and therefore it does not hold any extra state, besides what the LBaaS plugin already maintains.

For configuring the NetScaler LBaaS driver, the NetScaler driver class needs to be included in the neutron.conf file, so it can be loaded by the LBaaS plugin. When the user creates an LB pool, they will need to specify a "provider" attribute that maps to the NetScaler driver class in the config file.