Commit Graph

94 Commits

Author SHA1 Message Date
Helen Walsh 76fd03819c PowerMax driver - rebranding VMAX to PowerMax
PowerMax is to replace VMAX in release notes, online documentation,
directory structure and driver name.

Implements: blueprint vmax-powermax-rebrand

Change-Id: I74f690b60aac6d0d4bf49d25b04a067c7993bfc7
2019-01-11 10:36:29 +00:00
michael-mcaleer 44aea00c70 VMAX Driver - Failover Unisphere Support
VMAX support for failing over to backup instances of Unisphere.

Change-Id: I72354ace0de850e162c5ce804503a62f7161c07f
Implements: blueprint vmax-unisphere-failover
2018-12-21 15:16:15 +00:00
Zuul 486f2d1c0f Merge "VMAX Driver - Place volume in SG as part of unmanage volume" 2018-12-19 12:50:22 +00:00
Zuul 3e24ae6796 Merge "Add missing ws seperator between words" 2018-12-18 23:37:45 +00:00
michael-mcaleer 546faf0cd5 VMAX Driver - VMAX OS Upgrade Bug
Workload support was dropped in ucode 5978. If a VMAX All Flash
array is upgraded to 5978 or greater and existing volume types
leveraged workload e.g. DSS, DSS_REP, OLTP and OLTP_REP,
attaching and detaching will no longer work and the volume type
will be unusable.

Change-Id: I0ad0c530c93a9494e1a3048e557360b38c4a125b
Closes-Bug: #1790141
2018-12-07 14:49:13 +00:00
zhufl 13c59aebd6 Add missing ws seperator between words
This is to add missing ws seperator between words, usually
in log messages.

Change-Id: I3d0ffb5a32397998de1e66b823141cb0cc7d039c
2018-12-05 09:04:42 +08:00
Kumar Prashant 2780283903 VMAX Driver - Place volume in SG as part of unmanage volume
A cinder unmanage operation using the VMAX driver doesn't place
the volume in any storage group on the array. This leads to querying
information about the volume very difficult. The volume being unmanaged
should be placed in some storage group as part of the unmanage
operation

Change-Id: I4fd5370005848205e1bbc9d58d8452f38719dac8
Closes-bug: 1792888
2018-11-27 17:31:54 +00:00
Kumar Prashant 94428fbf04 VMAX Driver - Fix for manage volume if volume is part of SG
If the volume being managed is already a part of some FAST managed SG
then the VMAX driver should move the volume from this SG to the
default SG corresponding to the volume type. If the volume is part of
multiple SGs then the manage operation should fail

Change-Id: I3aeb6a815079cb3e637d3f559952f782974f07ed
Closes-bug: 1792886
2018-09-24 23:56:19 +05:30
Kumar Prashant b67e2de515 VMAX Driver - Rollback for manage existing volume
Implements rollback for manage existing volume for the scenario
when the manage operation fails after the volume has been already
renamed on the array

Change-Id: I40f861819d8ce43a128d411ff58a1a703d8b1e0b
Closes-bug: 1792884
2018-09-17 23:55:42 +05:30
michael-mcaleer 50586c61b6 VMAX Driver - Initiator retrieval short hostname fix
This submission fixes a timeout issue with initiator retrieval, the fix
uses targeted extraction instead of list matching to increase
performance. Short hostname retrieval for hostnames with 16 or characters
has been fixed.

Change-Id: I4eff572448c720746fbdd49caf3ae2dccfb3d352
Closes-Bug: #1783855
Closes-Bug: #1783867
2018-08-28 15:34:56 +01:00
Michael McAleer 2896715334 VMAX Driver - Fix for get-pools and returned Service Levels
This code change corrects the issue with not all Service Levels
being returned by 'cinder get-pools' command.

Change-Id: I09724aef341b6fd75891b76bab97edd7d32af0a6
Closes-Bug: #1784856
2018-08-04 20:50:55 +01:00
Helen Walsh 07c1b85419 VMAX driver - minor metadata additions
Adding metadata for delete operation and adding OpenStack display
name to all operations.

Change-Id: Ia21a2688fc4ec2d974d866703abef38ae25a0048
2018-08-04 20:48:58 +01:00
Helen Walsh a244db46e7 VMAX driver - replace 'data=' with 'message='
Replace keyword 'data=' with 'message=' in
VolumeBackendAPIException.

Change-Id: I5650ad44d877113eba0e5d2500ef504625ac144f
2018-08-04 20:46:35 +01:00
Kumar Prashant 40c563a841 VMAX Driver - Fix for multiple clones failure
Fix to ensure that the snapvx snapshots are cleaned
up periodically so that the max limit for snapvx snapshots
is not hit while creating multiple clones of a single volume

Change-Id: Idca6bb86fb0ee873093e4605b24fbc030b037854
Closes-bug: 1778947
2018-08-02 20:16:36 +05:30
Ciara Stacke 92fbe37087 VMAX driver - Block revert to snapshot for replicated volumes
Attempting to restore a replicated volume to snapshot will result in an
error, as this operation requires the RDF relationship to be suspended
first. It would be safest to throw an exception and block this operation
on replicated volumes. The user could instead create a new volume from
the snapshot and attach that, instead of reverting the original volume.
This patch implements this change.

Change-Id: If7b1dc408375d724fdc9ce6a3e256ad37e7c946f
Closes-bug: 1777871
2018-07-18 16:19:04 +01:00
Helen Walsh 4662ead8c3 VMAX driver - Add VMAX specific volume metadata to logs
Log VMAX specific metadata of a volume and version
information, when debug is enabled. It enables the user
to trace the vmax location of a volume after every
operation i.e. storage group, masking view etc., as well
as useful debug information like OS, VMAX and python
versions.

Change-Id: Ib727797da7624dec5662a35de1db05ad6dc866a0
Implements: blueprint vmax-metadata
2018-07-18 14:16:26 +01:00
michael-mcaleer 512fd07124 VMAX Driver - Incorrect SSL cert verification
SSL certificates are not being applied to the REST session as desired.
If a user sets SSL verification to True but does not specify a path
to the SSL cert, SSL is disabled instead of looking in the system
certificate bundle.

Closes-Bug #1772924

Change-Id: I20cb64c11e43c22558939e27708ec678c5723ca2
2018-06-18 14:51:32 +01:00
Helen Walsh 6ac8051314 VMAX docs - use config-table directive
Replacing manually maintained config table with the automated
config-table directive

Change-Id: Icd1d2c19a142cd82dcf4c817db1368442bfbb1aa
2018-06-18 12:13:07 +01:00
Helen Walsh c0a5be259e VMAX driver - remove deprecated XML option
'cinder_dell_emc_config_file' was deprecated in Queens. We are now
removing all reference to it and all XML parsing. Now we rely solely
on the config tags in cinder.conf.

Closes-Bug: #1768273

Change-Id: If6f7c58f445dd813df7161cc6cd6dd84484e8a7e
2018-06-18 12:10:45 +01:00
Ciara Stacke 1149fccb25 VMAX driver - Incorrect service level reporting
'Optimized' is being reported as a service level option for VMAX
All-Flash arrays, in the get_pools output, and it can be assigned as
the default pool if there is no service level assigned to a volume type.
This can cause errors, as Optimized is not a recognized service level on
All Flash arrays. This patch rectifies the issue.

Change-Id: I9365ae3b923eeb92ac00023b7040e934b6e2df57
Closes-bug: 1766633
2018-06-18 10:53:25 +01:00
Helen Walsh 017dd6b4bc VMAX driver and docs - change san_rest_port to san_api_port
This is part of the effort to consolidate and eliminate duplicate
configuration tags. san_rest_port will be deprecated in this
release and replaced by san_api_port in the next.

Change-Id: I5051e39c3bf45a3a4903e94c1597a142321a77e4
Closes-Bug: #1758010
2018-06-18 10:18:58 +01:00
Sean McGinnis cea466cfe0 VMAX: Address nits in list manageable code
This addresses nits pointed out during review of list manageable
volumes and snapshots in https://review.openstack.org/#/c/557297/

Change-Id: I77d95bc2f9385151e76c23f17810260df96d6868
2018-06-12 13:26:22 -05:00
michael-mcaleer d05a7a10dc VMAX driver - VMAX list manageable volumes and snapshots.
VMAX Support for listing manageable volumes and snapshots.

Change-Id: I73cf7940fbeb4a450fd0719a5477c82aefde8c9a
Implements: blueprint vmax-list-manage-existing
2018-05-18 11:57:57 +01:00
Ciara Stacke 106cf3cbf0 VMAX driver - Enable multiattach support
Support multiattach capability with Dell EMC VMAX arrays.

Change-Id: I7313c704ac45ea3e813e4816815d1d6a8ea39a9b
Implements: blueprint vmax-allow-multi-attach
2018-05-18 11:00:10 +01:00
Ciara Stacke 6e9cbd1e4b VMAX driver - Attaches/detaches after host assisted retype failing
There is an issue after host-assisted retype where subsequent actions
on a retyped volume fail due to a volume ID mismatch. This patch
rectifies the issue by checking if the '_name_id' attribute of the
volume matches the volume identifier on the backend, should the volume
'id' attribute comparison fail.

Change-Id: I8badcbd99e25336b1a905b82959e6c3a7bfcc420
Closes-bug: 1763555
2018-04-16 14:49:36 +01:00
Ciara Stacke 31aa1e279e VMAX driver - Replication failover performance improvement
Currently, failover of synchronous volumes on a VMAX backend can take a
long time as each volume is failed over consecutively. This patch
rectifies the issue by creating an internal group to facilitate the use
of group API's in the backend instead of volume API's, meaning the
volumes can failed-over concurrently.

Change-Id: Ie805c680662c160b77afcef47a3e0443bf1b15ef
Closes-bug: 1747894
2018-03-13 12:23:52 +00:00
Ciara Stacke 992542a9fb VMAX driver - Retype replicated volumes
This patch delivers support for retyping (storage-assisted migration)
volumes with a non-replicated volume type to a replicated volume type;
replicated to non-replicated; and between two replicated volume types
with differing service levels.

Change-Id: Ic86826dccc7b830db15fb8a2eeb888dbb895292d
Implements: blueprint vmax-retype-replicated-volumes
2018-03-12 14:29:41 +00:00
Erlon R. Cruz f98c9da944 Overprovisioning Improvements
This is part of the effort to improve Cinder's Thin provisioning
support. As some operators have been facing problems to determinte
what is the best value for the max_over_subscription_ratio, we
add in this patch a mechanism to automatically calculate this value.

The formula used for calculation is:
max_over_subscription_ratio = 20 if provisioned_capacity_gb == 0 else:
max_over_subscription_ratio = 1 + (provisioned_capacity_gb/(
                             total_capacity_gb - free_capacity_gb + 1))

Using this formula, the scheduler will allow the creation of a much
bigger number of volumes at the begginning of the pool's life, and
start to restrict the creation as the free space approaces to 0 or
the reserved limit.

Drivers now can set max_over_subscription_ratio = 'auto' and take
benefit of the change. Drivers that somehow use the
max_over_subscription_ratio inside the driver to do any kind of
calculations are incompatible with this new feature and should
get fixed in order to be able to use the feature.

Implements: bp provisioning-improvements
Change-Id: If30bb6276f58532c0f78ac268544a8804008770e
2018-01-25 07:37:17 -02:00
Helen Walsh 1034f54c33 VMAX driver - retype fix where workload is None
The issue occurs when workload is 'None', because the code expects
uppercase 'NONE'. This fix rectifies this.

Change-Id: Idec99b206f6e27b853175432dcba174f3fa400d0
Partial-Bug: #1742917
2018-01-12 16:34:01 +00:00
Unana Okpoyo 567564cae8 VMAX driver - QOS settings incorrectly applied on Default storage group
When a VMAX volume is created, host IO limits are incorrectly applied
on the storage group. When the volume is attached to an instance, host
IO limits are applied to the new storage group leaving limits set in
two places. Host IO limits should only be set on the storage group
associated with the instance.

Change-Id: I058f315f3ae48847165c82b124db566a77e3adbb
Closes-bug: 1742709
2018-01-12 16:32:56 +00:00
wanghongxu 615530e7b0 VMAX driver - Fix AttributeError of dell emc driver
initiator_check is defined as a type of bool,
but is used as a str type.

Change-Id: Ib01deaa222c2ee2d16256bf2e8540af782f5dbf8
Closes-Bug: #1736661
2018-01-01 21:45:51 +00:00
Ciara Stacke 6c99154836 VMAX driver - Errors extending replicated volumes
When attempting to extend multiple volumes concurrently, the operation
can fail due to insufficient locking on the RDF group. Additionally,
attempting to delete a volume after an earlier failure can fail as the
code does not check if the volume is already suspended. We also cannot
support extending SRDF/Metro volumes. This patch rectifies these issues.

Change-Id: Ib30f2a8f0a710f01ecb55ed753ecc41dbcdaad18
Closes-Bug: 1735456
2018-01-01 21:34:45 +00:00
Ciara Stacke 826d48e986 VMAX driver - Fix error handling and checks for generic volume groups
There are several issues with the implementation of generic volume
groups in the VMAX driver. There is no rollback implemented in case
of errors for create group from source or for deleting groups. There
can be issues if source groups have been modified since a snapshot
was taken. The provider_location is also not being updated in the
individual volume snapshot objects of a group snapshot. This patch
rectifies these issues, and also does some general refactoring of
the generic volume group code.

Change-Id: I3e6ac90b145015ccd820af3449b20e377c9f4651
Closes-bug: 1732488
2018-01-01 21:31:02 +00:00
Helen Walsh cf40a001da VMAX driver - revert a volume to last snapshot
VMAX Support for reverting a volume to last snapshot.

Change-Id: I1a4b5c000d1b2fc50ed89f9ad874e9e6c62f0290
Implements: blueprint vmax-revert-volume-to-snapshot
2018-01-01 21:27:22 +00:00
Ciara Stacke 8198b10c6b VMAX driver - Incorrect stats reporting
There is an issue in the way free_capacity_gb is being calculated for
the VMAX driver - it is using 'total_allocated_capacity' instead of
calculating using 'total_used_cap', or taking 'fba_free_capacity'. There
is also excess queries being made (and logs being produced), as the
capacities are being requested for each pool. This is unnecessary since
WLP support was removed - the capacities are reported at an SRP level
and so will be the same for each service level/ workload combination.
This patch rectifies these issues.

Change-Id: Icdafd47865e3cf1e5b687f39f15b8ebfccbf67a3
Closes-Bug: 1731930
2018-01-01 21:18:30 +00:00
Helen Walsh 7dda6ef758 VMAX driver - support for manage/unmanage snapshot
VMAX support for managing and unmanaging snapshots.

Change-Id: I0717825dd47fb47c0a58040a13a9da09f6779955
Implements: blueprint vmax-manage-unmanage-snapshot
2018-01-01 21:12:24 +00:00
Helen Walsh 10e533005a VMAX driver - retypes failing when workload is missing
When workload is missing from the pool_name in volume type
extra specs, retype will fail.

Change-Id: Icdba015411349c56e2f88cf5cf45d12bd2f6c0d4
Closes-Bug: #1729657
2018-01-01 21:00:56 +00:00
Ciara Stacke 925bdfbb06 VMAX driver - Implement SRDF Metro feature
SRDF/Metro allows a remotely replicated (SRDF) secondary device
to be read/write accessible to the host, taking on the external
identity of the primary device (geometry, device WWN, and so on).
Both the primary and secondary devices may then appear as a single
virtual device across the two SRDF paired arrays. With both devices
being accessible, the host can read and write to both primary and
secondary devices, with SRDF/Metro ensuring each copy remains current
and consistent, addressing any write conflicts which may occur.
This patch adds this functionality to the VMAX cinder driver.

Change-Id: Ib31763ea5759f7f9c0d2e2db68ba3820188245db
Partially-Implements: blueprint vmax-replication-enhancements
2018-01-01 20:58:22 +00:00
Ciara Stacke f4ef603610 VMAX driver - Cannot extend volumes in a replication relationship
Currently, VMAX cannot support extending a volume that has existing
snapshots, or extending a volume in a remote replication relationship
(we must first break the relationship, extend both sides, and
re-establish the relationship). In the next VMAX release, online
device expansion with replication will be supported. VMAX driver
should reflect this new support.

Change-Id: I9cd61f729d0ca0a6e9ea6a677d75c87694fa0e81
Closes-bug: 1717295
2018-01-01 20:36:52 +00:00
Ciara Stacke 84e39916c7 VMAX driver - Add async replication support
Currently, only Synchronous mode is supported for volume replication
on VMAX. This patch adds Asynchronous remote replication support.

Change-Id: If5df30b6ac8544f4c98b4dec89ad3b032b80d379
Partially-Implements: blueprint vmax-replication-enhancements
2018-01-01 19:40:34 +00:00
Unana Okpoyo ec7f04ee97 VMAX driver - Deprecate backend xml configuration
The use of xml files for vmax backend configuration is deprecated.
Configuration parameters should be set in cinder.conf for security and
uniformity. The xml file can still be used but will not be supported after
the queens release.

Change-Id: Ic7fc1827608190ec47db30b1265bebde616b616b
Implements: blueprint backend-xml-deprecation
2017-10-19 15:46:55 +01:00
Ciara Stacke c6b0c4bca6 VMAX driver - Implement Tiramisu feature on VMAX
In Tiramisu, a group construct is used to manage the group
of volumes to be replicated together for the ease of management.
This patch adds this support to the VMAX driver.

Change-Id: I9fffa0c6dc3092f3230cfa5da1ea5f3ff1e3151b
Implements: blueprint vmax-replication-group
2017-10-19 15:37:07 +01:00
Ciara Stacke 27fd333df9 VMAX driver - detach volume shouldn't remove from volume groups
Detaching a volume in VMAX removes the volume from all its current
storage groups and returns it to its default storage group. This is not
desired behaviour when the volume is a member of a generic volume group.
The volume should only be removed from the storage group associated
with the masking view related to the detach operation (or all masking
views in the case of a force detach). This patch rectifies the issue.

Change-Id: I065ffba9615af54998ae94a8d2d2fd3853f462cb
Closes-Bug: 1721207
2017-10-17 04:28:49 +01:00
Ciara Stacke cbce7226bb VMAX driver - Volume identifier issues
When creating a VMAX volume through cinder, a 'volume_identifier' is
set on the device on the backend. This takes the form 'OS-<cinderUUID>'.
There are a couple of issues with how this is currently being done:
1. When the VMAX driver retrieves the volume using the 'device_id' value
saved in the provider location, it checks that the volume identifier
matches OS-<cinderUUID>. However, the way this is currently being
checked can cause an issue if the create volume operation ends up being
retried in cinder - sometimes there can be two devices on the backend
with the same volume identifier, and the code may not pick up the
correct device.
2. On a deallocate operation, the volume identifier is not being unset
on the device. This patch rectifies these issues.

Change-Id: I8218768216e87f6fdda1dd77dd09ca2ca46111c7
Closes-Bug: 1717933
2017-10-17 04:28:03 +01:00
Helen Walsh 209e1564df VMAX driver - concurrently deleting volumes can fail
When concurrently deleting volumes, sometimes the task fails leaving
the volume in an 'error_deleting' state. This only occurs when
image_volume_cache_enabled is True because a temp snapvx session is
created. This same issue also occurs when there is a batch delete
of snapshots from the same source volume. The fix locks the delete
snapvx session using the source DeviceID as key.

Change-Id: I1f72a8567faa78fec447b9e0a6f948514b43a864
Closes-Bug: #1714922
2017-10-17 04:24:40 +01:00
Helen Walsh 635e892cc8 VMAX driver - remove WLP stats
Workload Planner(WLP) headroom calculations are not always accurate
for All Flash arrays. Because WLP is generally always enabled on
Unisphere, it is best use SRP calculations instead.

Change-Id: Id5e59fce2ea5958bfcd4fbadb609f8f6cad42aa8
Closes-Bug: #1714503
2017-10-04 16:18:44 +01:00
Sean McGinnis ccd3a2b54d Fix IntOpt type of VMAX config options
To integer config options for the VMAX driver were being defined
as StrOpts. This apparently did not cause issues with the driver,
but it would result in error messages during config file generation.

Change-Id: I8dcfef5f806e0f57ad9e981069607fa2de49db70
2017-08-23 08:59:36 -05:00
Ciara Stacke 662f34b67c VMAX driver - Error attaching failed over volumes.
Attempting to attach a volume to a server on FC after a replication
failover fails with "error: list index out of range". This is because
'common.get_target_wwns_from_masking_view' does not check if the
volume is failed over. This patch rectifies the issue. This patch also
adds some locks around RDF groups to avoid concurrency issues.

Change-Id: Ie04513903b7e75e6373124c164007fd141acdcc6
Closes-Bug: #1707181
2017-08-04 14:12:50 +01:00
Helen Walsh e849b895d4 VMAX driver - None connector object in a terminate_connection in Pike
Similar to Pure driver the VMAX driver required the connector object
not be None. See https://review.openstack.org/#/c/471861/ for more
details. This fix allows for the connector to be None by forcing a
detach regardless.

Change-Id: I629802036b59ff6fd9657264ced02ed0d92bbc5a
Closes-Bug: #1697661
2017-08-04 14:07:42 +01:00
Helen Walsh bdbc759075 VMAX driver - performance improvements in retype
This patch improves the storage assisted retype functionality by
using the Unisphere "move" API where possible, instead of removing
the volume from one storage group and then adding it to another.
This patch also corrects a minor mistake in how validity for
storage assisted retype is assessed, and explicitly blocks storage
assisted retype when a volume is attached.

Change-Id: I2270a78214457108d5baa02dac8a6cfd76e91239
Closes-Bug: #1704377
2017-08-04 13:59:47 +01:00