PowerMax is to replace VMAX in release notes, online documentation,
directory structure and driver name.
Implements: blueprint vmax-powermax-rebrand
Change-Id: I74f690b60aac6d0d4bf49d25b04a067c7993bfc7
VMAX support for failing over to backup instances of Unisphere.
Change-Id: I72354ace0de850e162c5ce804503a62f7161c07f
Implements: blueprint vmax-unisphere-failover
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
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
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
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
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
This code change corrects the issue with not all Service Levels
being returned by 'cinder get-pools' command.
Change-Id: I09724aef341b6fd75891b76bab97edd7d32af0a6
Closes-Bug: #1784856
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
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
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
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
'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
'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
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
This addresses nits pointed out during review of list manageable
volumes and snapshots in https://review.openstack.org/#/c/557297/
Change-Id: I77d95bc2f9385151e76c23f17810260df96d6868
VMAX Support for listing manageable volumes and snapshots.
Change-Id: I73cf7940fbeb4a450fd0719a5477c82aefde8c9a
Implements: blueprint vmax-list-manage-existing
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
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
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
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
The issue occurs when workload is 'None', because the code expects
uppercase 'NONE'. This fix rectifies this.
Change-Id: Idec99b206f6e27b853175432dcba174f3fa400d0
Partial-Bug: #1742917
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
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
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
VMAX Support for reverting a volume to last snapshot.
Change-Id: I1a4b5c000d1b2fc50ed89f9ad874e9e6c62f0290
Implements: blueprint vmax-revert-volume-to-snapshot
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
VMAX support for managing and unmanaging snapshots.
Change-Id: I0717825dd47fb47c0a58040a13a9da09f6779955
Implements: blueprint vmax-manage-unmanage-snapshot
When workload is missing from the pool_name in volume type
extra specs, retype will fail.
Change-Id: Icdba015411349c56e2f88cf5cf45d12bd2f6c0d4
Closes-Bug: #1729657
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
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
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
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
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
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
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
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
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
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
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
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
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