Merge "Spec for Brocade Zone Driver Virtual Fabrics support"
This commit is contained in:
commit
3307a44533
205
specs/mitaka/brocade-zone-driver-virtualfabrics-support.rst
Normal file
205
specs/mitaka/brocade-zone-driver-virtualfabrics-support.rst
Normal file
@ -0,0 +1,205 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
===================================================
|
||||
Brocade Cinder Zone Driver - Virtual Fabric Support
|
||||
===================================================
|
||||
|
||||
https://blueprints.launchpad.net/cinder/+spec/brocade-zone-driver-virtualfabrics-support
|
||||
|
||||
Introduce Virtual Fabric (VF) support for Brocade FC SAN Switches.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
As of Juno, there is no support for zone management in Brocade Virtual Fabrics
|
||||
thus preventing the administrator to add this automated zone access control
|
||||
in Brocade Virtual Fabrics (VF) environment.
|
||||
|
||||
|
||||
Use Cases
|
||||
=========
|
||||
|
||||
This addresses the case where an end user had the Brocade Virtual Fabrics
|
||||
feature enabled on the FC fabric and zoning needs to be performed in a VF
|
||||
other than the default. The impact of this feature is on end users who now
|
||||
may configure the Virtual Fabric ID in the cinder.conf file for each Brocade
|
||||
FC fabric block.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
A Brocade FC switch(fixed/modular) can be partitioned into multiple virtual
|
||||
switches. A unique ID called VFID(Virtual Fabric ID) is assigned to each
|
||||
virtual switch and all the configurations, including zones, happen within
|
||||
the context of this VFID. User can configure a particular VFID to be
|
||||
'default' which will be the default context for when users login to the
|
||||
switch.
|
||||
|
||||
As of Juno, the Brocade Zone Driver and look-up service does not set the
|
||||
VF context while establishing a session to the switch because of which it
|
||||
has access only to the zones in the 'default' VFID.
|
||||
|
||||
The proposal is to enhance the driver and look-up service to set the VFID
|
||||
context to support any virtual fabric configured in the chassis.
|
||||
|
||||
A new 'fc_virtual_fabric_id' config option is added to zoning fabrics
|
||||
configuration options as follows:
|
||||
|
||||
**fc_virtual_fabric_id** (StrOpt) VFID of virtual fabric. Default value
|
||||
is 'None'.
|
||||
|
||||
The zone driver and look-up service will read the fabric configuration
|
||||
and extract the VFID to read/apply the configurations on the specific
|
||||
virtual fabric.
|
||||
|
||||
Multiple Virtual Fabrics Support:
|
||||
|
||||
Cinder already has support for configuring multiple fabrics. In this
|
||||
release, we are adding the support to configure multiple **virtual fabrics**.
|
||||
|
||||
Configuring multiple virtual fabrics is similar to configuring regular
|
||||
fabrics. In case of a virtual fabric, the cinder admin will configure
|
||||
**fc_virtual_fabric_id** config option in addition to all other fabric
|
||||
configuration options.
|
||||
|
||||
On volume attach/detach, the fibre channel volume driver will use SAN lookup
|
||||
service to traverse through the fabrics configured in cinder.conf to identify
|
||||
the targets connected to a host and returns a map of initiator and target port
|
||||
WWNs for each fabric.
|
||||
|
||||
Sample map object returned by the look up service:
|
||||
|
||||
{
|
||||
<Fabric1>: {
|
||||
'initiator_port_wwn_list':
|
||||
('200000051e55a100', '200000051e55a121'..)
|
||||
'target_port_wwn_list':
|
||||
('100000051e55a100', '100000051e55a121'..)
|
||||
}
|
||||
<Virtual_Fabric_2>: {
|
||||
'initiator_port_wwn_list':
|
||||
('300000051e55a100', '300000051e55a121'..)
|
||||
'target_port_wwn_list':
|
||||
('400000051e55a100', '400000051e55a121'..)
|
||||
}
|
||||
}
|
||||
|
||||
The volume driver will process this information to extract initiator and
|
||||
target map for each fabric and builds a new initiator_target_map object.
|
||||
|
||||
Sample initiator_target_map object:
|
||||
{
|
||||
'host WWPN 1': ['target WWPN 1', 'target WWPN 2']
|
||||
'host WWPN 2': ['target WWPN 3', 'target WWPN 4']
|
||||
}
|
||||
|
||||
The zone manager will be provided with the above map of initiator and it's
|
||||
corresponding target port WWNs by the volume driver to create/delete zones.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
Zoning enforces ACL in SAN. Zoning is same in either regular or virtual
|
||||
fabrics. There are no specific security impacts with respect to virtual
|
||||
fabrics.
|
||||
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
Configuration of virtual fabric requires providing the **fc_virtual_fabric_id**
|
||||
config option with valid virtual fabric VF ID in zoning fabric configuration.
|
||||
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
Volume drivers will NOT have to be modified to support virtual fabric.
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Prakash Kaligotla
|
||||
|
||||
Other contributors:
|
||||
Nagendra Rao Jaladanki
|
||||
Angela Smith
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
- Enhance the Brocade look-up service to find host and targets connected
|
||||
to a VF.
|
||||
- Enhance the Brocade Zone Driver to execute commands in the context of
|
||||
a VFID.
|
||||
- Unit test the zone driver and look-up service.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Unit tests will be performed to make sure all CRUD operations are
|
||||
successful on virtual and physical SAN fabrics.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Configuration details of **fc_virtual_fabric_id** config option will be added
|
||||
to the fabric zoning configuration of Brocade Fibre Channel Zone Driver.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
http://www.brocade.com/downloads/documents/html_product_manuals/FOS_730_CLI/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Title.Fabric_OS.html
|
Loading…
Reference in New Issue
Block a user