Jump to: navigation, search


< Manila‎ | design

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