How to transfer volumes between domains and projects using Horizon dashboard on Eumetsat Elasticity

Volumes in OpenStack can be used to store data. They are visible to virtual machines like drives.

Such a volume is usually available to just the project in which it was created. Transferring data stored on it between projects might take a long time, especially if such a volume contains lots of data, like, say, hundreds or thousands of gigabytes (or even more).

This article covers changing the assignment of a volume to a project. This allows you to move a volume directly from one project (which we will call source project) to another (which we will call destination project) using the Horizon dashboard in a way that does not require you to physically transfer the data.

The source project and destination project must both be on the same cloud (for example WAW3-2). They can (but don’t have to) belong to different users from different domains and organizations.

What We Are Going To Cover

  • Initializing transfer of volume

  • Accepting transfer of volume

  • Cancelling transfer of volume

Prerequisites

No. 1 Account

You need a Eumetsat Elasticity hosting account with access to the Horizon interface: https://horizon.cloudferro.com/auth/login/?next=/

No. 2 Volume

You need to have a volume which you want to migrate.

Such a volume must not be connected to a virtual machine. It must have the following Status: Available.

You can check the status of your volume in the Volumes -> Volumes section of the Horizon dashboard. On screenshot below, that Status is marked with a green rectangle.

../_images/transfer-volume-between-projects-horizon-32_creodias.png

The following article includes information how to disconnect a volume from a virtual machine: How to move data volume between two VMs using OpenStack Horizon on Eumetsat Elasticity

No. 4 Ability to perform operations on both the source project and the destination project

For the transfer to be successful, you need to first initiate it from the source project and then accept it from the source project.

If source and/or destination is not managed by you, you might need to get appropriate permission to perform such an operation.

To access each of these projects directly (if possible), depending on the circumstances you can either login to appropriate account or use the project switcher found in the top of the Horizon dashboard:

../_images/transfer-volume-between-projects-horizon-37_creodias.png

If you don’t have direct access to any of these projects, you probably can request their members to execute commands mentioned in this article.

Step 1: Initializing transfer of volume

Perform this step in the source project.

Navigate to the section Volumes -> Volumes of the Horizon dashboard. Confirm if the volume which you want to migrate has the following Status: Available. In example below, this requirement is met - see value marked with a blue rectangle.

../_images/transfer-volume-between-projects-horizon-33_creodias.png

If your volume has a different status, do not continue this workflow and check Prerequisite No. 2.

In the row which represents the volume you want to migrate, from drop-down menu found in Actions column choose Create Transfer:

../_images/transfer-volume-between-projects-horizon-15_creodias.png

You should see the following window:

../_images/transfer-volume-between-projects-horizon-16_creodias.png

Enter a descriptive name to text field Transfer Name and click Create Volume Transfer.

You should now see the following window:

../_images/transfer-volume-between-projects-horizon-17_creodias.png

Write somewhere down Transfer ID and Authorization Key. You can also use button Download transfer credentials to get these credentials as a plain text file.

Warning

Since these credentials allow somebody to capture the volume while the transfer is active, protect them and share them only with individuals for whom they are meant!

Once you have done it, you can click Close to close the window.

Your volume should now have the following Status: Awaiting Transfer.

../_images/transfer-volume-between-projects-horizon-18_creodias.png

Note that after initializing the transfer, the volume cannot be connected to any virtual machine until the transfer is accepted or cancelled. To learn how to cancel the transfer (if you, say, accidentally chose the wrong volume), see section Cancelling transfer of volume near the end of the article.

Step 2: Accepting transfer of volume

Perform this step in the source project.

Navigate to section Volumes -> Volumes of the Horizon dashboard. Click Accept Transfer:

../_images/transfer-volume-between-projects-horizon-19_creodias.png

You should see the following window:

../_images/transfer-volume-between-projects-horizon-20_creodias.png

Enter the Transfer ID and the Authorization Key you obtained while following Step 1 above to appropriate text fields.

Click Accept Volume Transfer.

The volume should now be visible on the list:

../_images/transfer-volume-between-projects-horizon-21_creodias.png

Cancelling transfer of volume

If you, say, accidentally initiated transfer for a wrong volume and nobody accepts that transfer, it can be cancelled.

To do that, navigate to section Volumes -> Volumes of the Horizon dashboard:

../_images/transfer-volume-between-projects-horizon-21_creodias.png

In this example, let’s assume that we mistakenly created a transfer for volume my-volume. Because of that, it has the following status: Awaiting Transfer. Such a volume cannot be connected to an instance.

To cancel transfer, simply click Cancel Transfer in the row representing your volume, column Actions:

../_images/transfer-volume-between-projects-horizon-35_creodias.png

You will be asked for confirmation:

../_images/transfer-volume-between-projects-horizon-36_creodias.png

Click Cancel Transfer.

If the operation was successful, you should get the following message in the top right corner of the Horizon dashboard:

../_images/transfer-volume-between-projects-horizon-38_creodias.png

Note that this message might be confusing if you read only its first line. It does not tell about the removal of the volume, but about cancelling of volume transfer.

After cancelling, your volume should now once again have status Available:

../_images/transfer-volume-between-projects-horizon-11_creodias.png

What To Do Next

Now that the volume has been transferred, you might want to connect it to a virtual machine. This article includes information how to do that: How to move data volume between two VMs using OpenStack Horizon on Eumetsat Elasticity

The workflow described in this article can also be done using the OpenStack CLI. Learn more here: How to transfer volumes between domains and projects using OpenStack CLI client on Eumetsat Elasticity