How to transfer volumes between domains and projects using Horizon dashboard on WEkEO 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 WEkEO Elasticity hosting account with access to the Horizon interface: https://horizon.cloudferro.com
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](../_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 WEkEO 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](../_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](../_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](../_images/transfer-volume-between-projects-horizon-15_creodias.png)
You should see the following window:
![../_images/transfer-volume-between-projects-horizon-16_creodias.png](../_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](../_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](../_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](../_images/transfer-volume-between-projects-horizon-19_creodias.png)
You should see the following window:
![../_images/transfer-volume-between-projects-horizon-20_creodias.png](../_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](../_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](../_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](../_images/transfer-volume-between-projects-horizon-35_creodias.png)
You will be asked for confirmation:
![../_images/transfer-volume-between-projects-horizon-36_creodias.png](../_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](../_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](../_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 WEkEO 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 WEkEO Elasticity