non-disruptive migration needs to select correct share server

Bug #1920942 reported by Maurice Escher
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
Medium
Carlos Eduardo

Bug Description

Hi,

let's imagine the following scenario:

I have 2 share servers on the same host with the same share subnet (either intentionally setup by user or because the new share server limits created an additional one without end user interaction).

Now I want to non-disruptively migrate a share in one of those share servers within the host from one pool to another.

This is now sometimes throwing an error 'Migration for share <uuid> could not be performed because host-assisted migration is not allowed when share must remain writable, preserve snapshots and/or file metadata or be performed nondisruptively.' in migration_start_driver, because the share server selection is not taking the migration use case into account.

Both seem valid targets and simply the first one is selected in the choose_share_server_compatible_with_share method, which may not be the right one to do this non-disruptively.

Either this could use the same logic like creating shares from snapshot (parent share server aka migration source share server) or choose_share_server_compatible_with_share could find the right one or _check_share_server_backend_limits could not just always keep the migration source, but additionally also always remove all other available_share_servers in the migration use case.

What do you think?

BR,
Maurice

Vida Haririan (vhariria)
tags: added: share-migration
Revision history for this message
Douglas Viroel (dviroel) wrote :

+1

I see, you have at least two compatible share servers in the destination host, but there is a incompatible share server from migration perspective, since NetApp driver doesn't support migrating across share server non-disruptively.
This can change depending on the share driver, so, the only way is to give the responsability to share drives. One idea is to provide more info in 'choose_share_server_compatible_with_share', usint the metadata dict. In this way we can provide the source share server id and the information about the operation ('operation': 'share_migration') and the driver can choose the correct destination share server.

Changed in manila:
assignee: nobody → Carlos Eduardo (silvacarlose)
Revision history for this message
Vida Haririan (vhariria) wrote :
Changed in manila:
importance: Undecided → Medium
milestone: none → xena-1
Revision history for this message
Maurice Escher (maurice-escher) wrote :

with the premise, that I always want to stay in the same share server for migrations, this works for me https://github.com/sapcc/manila/commit/302d622449ce31e2820b0211f881b60508e619d1

this may not hold for disruptive migrations

Changed in manila:
milestone: xena-1 → xena-2
Revision history for this message
Goutham Pacha Ravi (gouthamr) wrote :

Carlos, we're closing on xena-RC1 soon.

i'm moving this bug to Yoga-1 since I don't see an active change; please let me know if this is inaccurate.

Changed in manila:
milestone: xena-2 → yoga-1
Changed in manila:
milestone: yoga-1 → yoga-2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/manila/+/820071

Changed in manila:
status: New → In Progress
Revision history for this message
Carlos Eduardo (silvacarlose) wrote :
tags: added: bugsquash yoga
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)

Reviewed: https://review.opendev.org/c/openstack/manila/+/820071
Committed: https://opendev.org/openstack/manila/commit/af3513d2b0f7bbcc968a4c445243de40d94714aa
Submitter: "Zuul (22348)"
Branch: master

commit af3513d2b0f7bbcc968a4c445243de40d94714aa
Author: silvacarloss <email address hidden>
Date: Wed Dec 1 18:08:47 2021 -0300

    Force share server selection on nondisruptive migration

    While performing nondisruptive migrations, share servers can not
    change, because such thing will cause the migration to be
    disruptive, since share servers have different network allocations
    and it will cause the destination share to change its export
    locations.
    This change fixes an issue that allowed manila/the share driver
    to chose where a share instance is going to land in case of a
    nondisruptive migration. Now, when such migration is required,
    manila will automatically place the destination share instance in
    the same share server that the source instance is located at.

    Closes-Bug: #1920942
    Change-Id: I16110ec46c25be65760b15d7fbed67cd005f3873

Changed in manila:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/manila 14.0.0.0rc1

This issue was fixed in the openstack/manila 14.0.0.0rc1 release candidate.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.