|
| 1 | +--- |
| 2 | +title: Object Storage - How to migrate from an S3-compatible object storage provider to OVHcloud Object Storage |
| 3 | +excerpt: This guide provides details on how to migrate from an S3-compatible object storage provider to OVHcloud Object Storage using Rclone |
| 4 | +updated: 2025-09-08 |
| 5 | +--- |
| 6 | + |
| 7 | +## Objective |
| 8 | + |
| 9 | +This guide provides detailed steps to help you migrate from a third-party S3-compatible object storage provider to OVHcloud Object Storage using the popular [Rclone](https://rclone.org/) tool, a command-line tool that can be used to manage cloud storage resources. |
| 10 | + |
| 11 | +> [!warning] |
| 12 | +> |
| 13 | +> OVHcloud provides services which you are responsible for with regard to their configuration and management. You are therefore responsible for ensuring they function correctly. |
| 14 | +> |
| 15 | +> This guide is designed to assist you in common tasks as much as possible. If you encounter any difficulties performing these actions, please contact a [specialist service provider](/links/partner) and/or discuss the issue with our [community of users](/links/community). OVHcloud cannot provide you with technical support in this regard. |
| 16 | +> |
| 17 | +
|
| 18 | +## Requirements |
| 19 | + |
| 20 | +- An **S3-compatible source bucket** in your current object storage with: |
| 21 | + - Your bucket name |
| 22 | + - Your associated access and secret keys |
| 23 | + - The associated region ID |
| 24 | +- An **OVHcloud Object Storage destination bucket** with: |
| 25 | + - Your bucket name |
| 26 | + - Your associated access and secret keys |
| 27 | + - The associated region ID |
| 28 | +- An **OVHcloud virtual machine** with Rclone installed working as the management workstation in our scenario. To get the best results, within your budget, we suggest at least the following specifications: |
| 29 | + - b3-16: 4 v-cores and 16 GB of RAM |
| 30 | + - c3-16: 8 v-cores and 16 GB of RAM |
| 31 | + |
| 32 | +> [!primary] |
| 33 | +> |
| 34 | +> If this is your first time creating an Object Storage bucket, read our guide [Getting Started with Object Storage](/pages/storage_and_backup/object_storage/s3_getting_started_with_object_storage). |
| 35 | +> |
| 36 | +
|
| 37 | +## Migration Process |
| 38 | + |
| 39 | +{.thumbnail} |
| 40 | + |
| 41 | +See the diagram above for an illustration of the architecture. An OVHcloud Public Cloud virtual machine acts as an entry point, on which Rclone (installed with SSH and sudo access enabled) moves data to OVHcloud Object Storage. |
| 42 | + |
| 43 | +## Considerations |
| 44 | + |
| 45 | +### Egress |
| 46 | + |
| 47 | +Egress fees may apply when migrating from your current platform, depending on your provider. The term “egress” describes the volume of data transferred from the provider’s network. **We highly recommend reviewing your current provider’s egress pricing** before starting the migration. |
| 48 | + |
| 49 | +### Migration speed optimisation |
| 50 | + |
| 51 | +Keep in mind that several factors could affect how long migration takes. Consider not only the volume of data you plan to migrate but also the quantity and size of individual objects. Infrastructure and network limitations (bandwidth, computing power, network interfaces, etc.) could also affect performance. |
| 52 | + |
| 53 | +### Data volume |
| 54 | + |
| 55 | +This guide mainly **focuses on data migration for small to medium volumes (generally under 200 TB)**. For applications needing migration of hundreds or thousands of terabytes, we suggest contacting our [Professional Services](/links/professional-services) team for identifying the best approaches for migrating your data. |
| 56 | + |
| 57 | +## Instructions |
| 58 | + |
| 59 | +### Step 1 - Preparing your S3-compatible source bucket |
| 60 | + |
| 61 | +As explained before you will need your `access key`, `secret key` but also the `region ID` in which your bucket is. Connect to your source bucket provider console to get those details. |
| 62 | + |
| 63 | +### Step 2 - Preparing your OVHcloud destination bucket |
| 64 | + |
| 65 | +Similar to your source bucket, you will need your `access key`, `secret key` but also the `region ID` for your destination bucket. Log in to the [OVHcloud Control Panel](/links/manager) and navigate to the `Object Storage`{.action} section to collect those details. |
| 66 | + |
| 67 | +### Step 3 - Installing, configuring and running Rclone |
| 68 | + |
| 69 | +#### Step 3.1 - Installing Rclone |
| 70 | + |
| 71 | +If you haven’t done it already, install **Rclone** by following the instructions from its [documentation](https://rclone.org/install/), based on your OS configuration. |
| 72 | + |
| 73 | +#### Step 3.2 - Configuring Rclone |
| 74 | + |
| 75 | +After installing **Rclone** on your virtual machine, configure its connection to both the source and destination buckets. |
| 76 | + |
| 77 | +```bash |
| 78 | +$ rclone config |
| 79 | +``` |
| 80 | + |
| 81 | +This command will open the configuration menu and will guide you step by step with the configuration. The official OVHcloud provider configuration is available and will guide you step by step. Follow the steps available [here](https://rclone.org/s3/#ovhcloud). |
| 82 | + |
| 83 | +You can also create/modify the configuration file yourself with the following command: |
| 84 | + |
| 85 | +```bash |
| 86 | +$ rclone config file |
| 87 | +``` |
| 88 | + |
| 89 | +If the configuration file doesn’t exist, you’ll be prompted to add the following configuration using your preferred editor. For example, on Linux you can use `nano` : |
| 90 | + |
| 91 | +```bash |
| 92 | +$ nano /home/<your linux user>/.config/rclone/rclone.conf |
| 93 | +``` |
| 94 | + |
| 95 | +Then, add your configuration blocks: |
| 96 | + |
| 97 | +```bash |
| 98 | +[<your source remote provider name>] |
| 99 | +type = s3 |
| 100 | +provider = <name of your source provider in rclone list> |
| 101 | +env_auth = false |
| 102 | +access_key_id = <your source provider access key> |
| 103 | +secret_access_key = <your source provider secret key> |
| 104 | +region = <your source provider region name> |
| 105 | + |
| 106 | +[ovhcloud] |
| 107 | +type = s3 |
| 108 | +provider = OVHcloud |
| 109 | +env_auth = false |
| 110 | +access_key_id = OVH-ACCESS-KEY |
| 111 | +secret_access_key = OVH-SECRET-KEY |
| 112 | +endpoint = s3.<region>.io.cloud.ovh.net |
| 113 | +region = <region> |
| 114 | +``` |
| 115 | + |
| 116 | +> [!primary] |
| 117 | +> |
| 118 | +> To get the list of OVHcloud region endpoints, see [Object Storage - Endpoints and Object Storage geoavailability](/pages/storage_and_backup/object_storage/s3_locations). |
| 119 | +> |
| 120 | +
|
| 121 | +You can then test your source provider and your OVHcloud connections using the `rclone config` command by as below: |
| 122 | + |
| 123 | +```bash |
| 124 | +$ rclone config |
| 125 | +``` |
| 126 | + |
| 127 | +#### Step 3.3 - Running Rclone |
| 128 | + |
| 129 | +Depending on your strategy you can use two different commands to start the migration. Either you use the `rclone sync` command to start the migration of one or all buckets. As detailed in the documentation, the `rclone sync`command will make source and destination identical. Be careful then when using it. |
| 130 | + |
| 131 | +You can also use the `rclone copy` command that will copy files from your source to your destination. |
| 132 | +In both cases, remember to change `source-bucket-name` and `ovh-bucket-name` to your S3-compatible source provider and OVHcloud Object Storage bucket names, respectively: |
| 133 | + |
| 134 | +```bash |
| 135 | +$ rclone sync <your source provider name>:source-bucket-name/ ovhcloud:ovh-bucket-name/ --progress |
| 136 | +``` |
| 137 | + |
| 138 | +or: |
| 139 | + |
| 140 | +```bash |
| 141 | +$ rclone copy <your source provider name>:source-bucket-name/ ovhcloud:ovh-bucket-name/ --progress |
| 142 | +``` |
| 143 | + |
| 144 | +`--progress` shows progress during transfer. |
| 145 | + |
| 146 | +In order to leverage the rclone WebUI GUI you can also use the following command: |
| 147 | + |
| 148 | +```bash |
| 149 | +$ rclone copy <your source provider name>:source-bucket-name/ ovhcloud:ovh-bucket-name/ --transfers 50 --rc --rc-addr :5572 --rc-web-gui --rc-user USERNAME --rc-pass PASSWORD |
| 150 | +``` |
| 151 | + |
| 152 | +In this command we added specific flags to optimize and monitor the copy: |
| 153 | + |
| 154 | +- `--transfers` represents the number of file transfers to run in parallel (default 4). Test different value based on your use case and your configuration as high values may increase CPU usage for example. |
| 155 | +- `--rc` enables the remote control server |
| 156 | +- `--rc-addr :5572` represents the address and the port used to access rclone’s WebUI GUI. Port 5572 is the default port used by Rclone to securely access the WebUI. |
| 157 | +- `--rc-web-gui` launches WebGUI on localhost |
| 158 | +- `--rc-user USERNAME` `--rc-pass PASSWORD` are your user and password for authentication. Make sure to enter the right credentials. |
| 159 | + |
| 160 | +> [!primary] |
| 161 | +> |
| 162 | +> Many other flags are available with rRlone. You can get them on the [Rclone documentation](https://rclone.org/commands/rclone/). |
| 163 | +> |
| 164 | +
|
| 165 | +With the copy process set up, you can now begin monitoring the migration process using Rclone’s WebUI GUI. |
| 166 | + |
| 167 | +In your preferred web browser, use port 5572 to reach your instance’s address: `http://IP-ADDRESS:5572`. |
| 168 | + |
| 169 | +You’ll need to log in using your rclone credentials: `--rc-user` and `–rc-pass`. |
| 170 | + |
| 171 | +Once you’re logged in, you can track the `rclone copy` command’s progress: check job status, throughput, bandwidth, object count, and total data volume. From the GUI, you can also manage new remotes and new actions. |
| 172 | + |
| 173 | +#### Migration status |
| 174 | + |
| 175 | +We recommend comparing the source and destination buckets after migration. Your source and OVHcloud destination buckets can be compared via command line or their respective control panels. |
| 176 | + |
| 177 | +You can check the size of both buckets and number of objects using this command line: |
| 178 | + |
| 179 | +```bash |
| 180 | +rclone size <your source provider name>:source-bucket-name/ |
| 181 | +rclone size ovhcloud:ovh-bucket-name/ |
| 182 | +``` |
| 183 | + |
| 184 | +## Go further |
| 185 | + |
| 186 | +If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project. |
| 187 | + |
| 188 | +Join our [community of users](/links/community). |
0 commit comments