cinder/cinder/brick
Tomoki Sekiyama 6d3733beb5 Failover to alternative iSCSI portals on login failure
When the main iSCSI portal is unreachable by network failure etc.,
volume attach will fail even if the array has the other portal
addresses alive. To enable nova-compute and brick (with corresponding
patches) to fall-back to alternative portals, this patch makes Cinder
to contains the multiple portal addresses and corresponding IQNs and
LUNs in connection_info returned by initialize_connection API.
The main portal information is also returned in target_portal,
target_iqn, target_lun for backward compatibility. For example:

 {"connection_info": {
    "driver_volume_type": "iscsi", ...
    "data": {"target_portal": "10.0.1.2:3260",
             "target_portals": ["10.0.1.2:3260",
                                "10.0.2.2:3260"],
             "target_iqn": "iqn.2014-2.org.example:vol1-1",
             "target_iqns":["iqn.2014-2.org.example:vol1-1",
                            "iqn.2014-2.org.example:vol1-2"],
             "target_lun": 1,
             "target_luns": [1, 2],
             ...}}}

This patch makes LVM iSCSI backend return multiple portals,
iqns, and luns when iscsi_secondary_ip_addresses is specified in
cinder.conf.

It also make brick/initiator/connector.py to failover to alternative
paths, if specified, when it fails to establish the main path.

In addition, to unify the data structure, target_portal, target_iqn,
target_lun will also be included even if 'multipath=True' is specified
in connector information.

Change-Id: I55600496487dfaa72301621d1269e50044d9b5dc
Partially Implements: blueprint iscsi-alternative-portal
2015-03-02 16:14:10 -05:00
..
initiator Failover to alternative iSCSI portals on login failure 2015-03-02 16:14:10 -05:00
local_dev Merge "Revert "Remove retry_deactivation directive on lvremove"" 2015-02-25 20:27:45 +00:00
remotefs Rename oslo.concurrency to oslo_concurrency 2014-12-19 18:39:11 -08:00
README.txt This adds a README to brick 2013-09-04 16:08:05 -04:00
__init__.py Empty files shouldn't contain copyright nor license 2013-12-26 22:45:17 -06:00
exception.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
executor.py Rename oslo.concurrency to oslo_concurrency 2014-12-19 18:39:11 -08:00

README.txt

Brick is a new library that currently is maintained in Cinder for
the Havana release.   It will eventually be moved external to Cinder,
possibly oslo, or pypi.  Any defects found in Brick, should be submitted
against Cinder and fixed there, then pulled into other projects that
are using brick.

* Brick is used outside of Cinder and therefore
  cannot have any dependencies on Cinder and/or
  it's database.