Jump to: navigation, search

Difference between revisions of "Manila/design/manila-newton-hpb-support"

< Manila‎ | design
(How nova does port binding)
 
Line 34: Line 34:
 
* Wait until port is "up" and start share service
 
* Wait until port is "up" and start share service
 
* Add a manila-network-bind-agent
 
* Add a manila-network-bind-agent
* Support also multi-segment networks
+
==== Multi-segment networks ====
 +
[[File:Manila_bp_hpb_support.004.jpg|800px]]
 +
 
 +
* The user create a share
 +
* During share server setup a network will be created
 +
* Port create will add binding_profile information with that neutron can bind the port (see https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/ironic-ml2-integration.html)
 +
* In case of multi segment networking a manila mech driver will fullfill the binding an set's the correct segmentation_id to the port vif_details

Latest revision as of 13:36, 22 March 2016

Hierarchical port binding support for Manila

LP-BP: https://blueprints.launchpad.net/manila/+spec/manila-hpb-support

Problem Description

Manila with DHSS (driver handles share service) == True does basically two jobs:

  • Creates/manages shares within a share service
  • Creates networking from tenant VM to the share service / storage cluster

Manila bp hpb support.001.jpg

Some manila drivers are capable to support plain VLAN networking but this technology limits the number of actual networks in the cloud to 4096. With HPB (Hierarchical port binding) this barrier can be reduced by using VXLAN on top of VLAN within the networking fabric. In general this is transparent for the underlying storage since it's just a VLAN that will be visible.

With the current implementation of manila a neutron port is just created to receive a IP and a segmentation ID. The underlaying networking fabric simply ignores the port since no port binding is done at all:

Manila bp hpb support.003.jpg

How nova does port binding

Manila bp hpb support.002.jpg

  1. Nova indentifies the hosts it wants to place the VM
  2. Nova-compute creates a port with binding to compute host
  3. Neutron services searches the correct agent and sends a RPC call to bind the port
  4. Neutron-agent creates the port
  5. Neutron services send a RPC call to nova with the new port state "ACTIVE"

Proposed change

  • Enhance manila networking part to add binding_host, device_id and device_owner
  • Wait until port is "up" and start share service
  • Add a manila-network-bind-agent

Multi-segment networks

Manila bp hpb support.004.jpg