investigate manilachanges - csabahenk/manila GitHub Wiki
###Questions
- What does this API/driver do?
- How does this API/driver affect the implementation of the generic gateway-mediated-multitenant driver?
###Generic Driver Generic driver creates Nova instances (service VMs) which service the shared filesystems into tenants' networks. So the generic driver creates a share by the following steps:
- Creating service VM using Nova (one per network)
- Creating volume using Cinder
- Attaching newly created volume to a service VM
- Exporting this volume
But Manila needs network access to the service VM for exporting the volume. The 2 proposed methods to enable this network connection are:
- create virtual network interfaces (VIFs) connected to the tenant network on the Manila node and use those to talk to service VMs
- assign global/floating IP to the service VM to which Manila can ssh.
It was agreed on Jan 16th that approach 1 would be implemented first. For such an approach, the following steps would be followed:
- Create service VM.
- Create Linux network name spaces (netn) {one netns for every neutron network}.
- Allocate neutron port from private subnet in which service VM resides.
- Inside netns create virtual interface, configure it with received neutron port parameters and bind it to integration bridge.
- Neutron agent will do the remaining configurations.
###Changes to Share abstract driver The 2 new methods introduced in Manila share's abstract driver,
- get_network_allocation_number: returns the number of allocations (?) for creating Virtual network interfaces.
- setup_network: setup and configures VIFS with given(?) network parameters
These 2 methods appear not to be relevant for our Gluster driver for now. But I'm not sure.
###Configuring a share (at least my understanding) ** security-service -> share-network -> share **
Security service DB,
__tablename__ = 'security_services'
id = Column(String(36), primary_key=True)
project_id = Column(String(36), nullable=False)
type = Column(String(32), nullable=False)
dns_ip = Column(String(64), nullable=True)
server = Column(String(255), nullable=True)
domain = Column(String(255), nullable=True
sid = Column(String(255), nullable=True)
name = Column(String(255), nullable=True)
description = Column(String(255), nullable=True)
status = Column(Enum(constants.STATUS_NEW, constants.STATUS_ACTIVE,
constants.STATUS_ERROR),
default=constants.STATUS_NEW)
Create a security service object,
manila security-service-create <type>
--dns-ip <dns ip adress used inside tenant’s network>
--server <security service ip address or hostname>
--domain <security service domain>
--sid <security service user or group used by tenant>
--name <security service name>
--description <field to store description for security service>
Create a share network object,
manila share-network-create --neutron-net-id <neutron network id>
--neutron-subnet-id <neutron subnet id>
--name <name>
--description <description>
Associate share network with a security service type.
manila share-network-security-service-add <share network id> <security service id>
And then associate a share with a share-network id (?)
- Manila chat logs Jan 9th, Jan 16th
- API-doc on security-service and share-network APIs
- Generic driver doc
-
-
Generic driver code is organized into following topics:
-
A breakdown of these to commits (itemization / status might go out of date):
- security-service related code:
- security-service DB model and API merged
- security-service controller API merged
- security-service client API under review
- share-network related code:
- share-network DB model and API under review
- share-network controller API under review
- share-network client API under review
- Changes to share manager and drivers to associate a share with a network under review
- Generic driver related code:
- generic driver code work in progress
- nova API for generic driver work in progress
- cinder API for generic driver work in progress
- security-service related code:
-