How to Migrate Linode Object Storage to Vultr Object Storage

Updated on 20 May, 2025
Guide
Learn how to migrate from Linode to Vultr Object Storage using S3-compatible tools for seamless transfer.
How to Migrate Linode Object Storage to Vultr Object Storage header image

Object Storage is a scalable, S3-compatible service used to store unstructured data including media files, backups, logs, static website assets, and application data. It organizes data as individual objects inside buckets and is ideal for applications that require durable, cost-effective, and accessible cloud storage. Migrating from Linode Object Storage to Vultr Object Storage allows you to take advantage of improved performance, regional flexibility, and expanded features offered by Vultr. Both platforms support S3-compatible APIs, but Vultr Object Storage provides several enhanced capabilities:

  • Multiple Locations: Vultr Object Storage is available in multiple locations, allowing you to select the closest region to store your files.
  • High-Performance Tiers: Vultr Object Storage offers faster storage, with increased throughput and faster response times using accelerated performance storage tiers.
  • CDN Integration: Vultr Object Storage seamlessly integrates with the Vultr's CDN for low-latency, distributed content delivery.
  • Multi-Bucket Architecture: Manage multiple buckets within a single subscription, each with a unique DNS-style URL for simplified object access and management.

Follow this guide to migrate your objects, buckets, and associated data from Linode Object Storage to Vultr Object Storage using rclone. You will configure both endpoints, synchronize the data, verify its integrity, and complete the migration by updating your application or client configuration.

Prerequisites

Before you begin, you need to:

  • Have access to an existing Linode Object Storage subscription.
  • Retrieve the Linode Object Storage access key and secret key from the Linode Object Storage dashboard.
  • Provision a new Vultr Object Storage subscription and retrieve the access key credentials from its dashboard.
  • Provision an Ubuntu 24.04 Instance to use as the migration workstation and access the instance as a non-root sudo user.

Set Up the Migration Workstation

Rclone is an open-source command-line tool used for managing cloud storage, including S3-compatible solutions such as Linode Object Storage and Vultr Object Storage. It allows you to transfer and synchronize files and objects between cloud providers. In this section, you'll set up Rclone on your migration workstation. This includes updating your package manager, installing Rclone, and configuring it with the access details for both your source (Linode) and destination (Vultr) Object Storage Buckets.

  1. Update the APT package index.

    console
    $ sudo apt update
    
  2. Install Rclone on your workstation.

    console
    $ sudo apt install rclone -y
    
  3. View the installed Rclone version.

    console
    $ rclone version
    

    Your output should be similar to the one below:

    rclone v1.60.1-DEV
    - os/version: ubuntu 24.04 (64 bit)
    - os/kernel: 6.8.0-57-generic (x86_64)
    - os/type: linux
    - os/arch: amd64
    - go/version: go1.22.2
    - go/linking: dynamic
    - go/tags: none

    This output provides details about the version of Rclone, the operating system and kernel, and the Go version that was used to compile Rclone.

  4. Create a new Rclone configuration.

    console
    $ rclone config file
    

    Your output should be similar to the one below:

    Configuration file doesn't exist, but rclone will use this path:
    /home/linuxuser/.config/rclone/rclone.conf

    The above output displays the configuration path, which is essential because Rclone uses this configuration file to store your cloud object storage connection details.

Configure Rclone with Linode Object Storage

In the following steps, configure Rclone to authenticate with your Linode Object Storage using your access and secret key credentials.

  1. Open the Rclone configuration file using a text editor such as nano.

    console
    $ nano ~/.config/rclone/rclone.conf
    
  2. Add the following Linode configuration block to specify your Linode Object Storage connection details.

    ini
    [linode]
    type = s3
    provider = Other
    access_key_id = YOUR_LINODE_ACCESS_KEY
    secret_access_key = YOUR_LINODE_SECRET_ACCESS_KEY
    endpoint = YOUR_LINODE_OBJECT_STORAGE_ENDPOINT
    env_auth = false
    

    Replace YOUR_LINODE_OBJECT_STORAGE_ENDPOINT, YOUR_LINODE_ACCESS_KEY, and YOUR_LINODE_SECRET_ACCESS_KEY with your actual Linode endpoint, access key and secret key.

    Save and exit the file.

  3. List all configured Rclone remotes to confirm that the Linode Object Storage profile is active.

    console
    $ rclone listremotes
    

    Your output should be like the one below:

    linode:
  4. List all buckets in your Linode Object Storage to verify the connection.

    console
    $ rclone lsd linode:
    

    The above command lists all Linode Object Storage buckets associated with your access key, depending on your storage region.

    Your output should be similar to the one below:

    -1 2025-05-07 17:36:10        -1 migration-bucket
    -1 2025-05-07 18:54:59        -1 test-storage
  5. List all objects present in a specific Linode Object Storage bucket.

    console
    $ rclone ls linode:test-storage
    

    Replace test-storage with your actual bucket name.

    Your output should be similar to the one below:

    2986036 20250406_090937.jpg
    2944141 20250406_090946.jpg
    ...

Configure Rclone with Vultr Object Storage

In the following steps, configure Rclone to authenticate with your Vultr Object Storage using your access and secret key credentials.

  1. Refer to the Vultr Object Storage product documentation to retrieve your S3 credentials and the object storage endpoint URL.

  2. Open the Rclone configuration file.

    console
    $ nano ~/.config/rclone/rclone.conf
    
  3. Add the following Vultr configuration block to define your Vultr Object Storage connection.

    ini
    [vultr]
    type = s3
    provider = Other
    access_key_id = YOUR_VULTR_ACCESS_KEY
    secret_access_key = YOUR_VULTR_SECRET_ACCESS_KEY
    endpoint = YOUR_VULTR_OBJECT_STORAGE_ENDPOINT
    env_auth = false
    

    Replace YOUR_VULTR_OBJECT_STORAGE_ENDPOINT, YOUR_VULTR_ACCESS_KEY, and YOUR_VULTR_SECRET_ACCESS_KEY with your actual Vultr Object Storage access keys and endpoint.

    Save and exit the file.

  4. List all configured Rclone remotes to confirm that the Vultr Object Storage profile is active.

    console
    $ rclone listremotes
    

    Your output should be like the one below:

    linode:
    vultr:
  5. List all buckets in your Vultr Object Storage to confirm the connection.

    console
    $ rclone lsd vultr:
    

    The above command displays a list of available buckets. If your Vultr Object Storage subscription does not contain any buckets, the output will be empty.

Migrate Linode Object Storage to Vultr Object Storage

You can migrate all buckets or specific buckets from your Linode Object Storage subscription to Vultr Object Storage subscription using rclone. Follow the steps below to perform a complete or selective bucket migration with real-time progress and transfer verification.

  1. List all buckets in your Linode Object Storage subscription.

    console
    $ rclone lsd linode:
    

    Your output should be similar to the one below:

    -1 2025-05-07 17:36:10        -1 migration-bucket
    -1 2025-05-07 18:54:59        -1 test-storage
  2. Migrate all buckets and their objects from your Linode Object Storage subscription to your Vultr Object Storage subscription.

    console
    $ rclone sync linode: vultr: --progress
    

    This command initiates a full migration of all buckets and their objects. Monitor the transfer statistics in real-time and ensure the sync completes without any errors. After the migration is completed, the output should resemble the following:

    Transferred:       14.451 MiB / 14.451 MiB, 100%, 986.521 KiB/s, ETA 0s
    Transferred:            7 / 7, 100%
    Elapsed time:        16.0s

    The above transfer duration depends on the total size of your Linode Object Storage. Always verify the 100% prompt in the summary to confirm a complete migration.

    • To migrate a specific bucket such as test-storage from Linode Object Storage subscription to Vultr Object Storage subscription. Run the following command.

      console
      $ rclone sync linode:test-storage vultr:test-storage --progress
      

      This syncs all objects within the test-storage bucket to the corresponding bucket on Vultr Object Storage subscription.

Test Vultr Object Storage and Cut-over Applications

Follow the steps below to verify that all your objects have been migrated to Vultr Object Storage. This includes validating the bucket structure, checking object integrity, and confirming that the source and destination objects match.

  1. List all the buckets in your Vultr Object Storage subscription and confirm that all expected buckets have been migrated.

    console
    $ rclone lsd vultr:
    

    Your output should be similar to the one below:

    -1 2025-05-07 22:26:08        -1 migration-bucket
    -1 2025-05-07 23:52:39        -1 test-storage
  2. Run the following command to verify that the objects integrity in your Linode Object Storage subscription match those in your Vultr Object Storage subscription.

    console
    $ rclone check linode: vultr:
    

    If there are no differences, the output should similar to the one below:

    2025/04/24 10:19:13 NOTICE: S3 root: 0 differences found
    2025/04/24 10:19:13 NOTICE: S3 root: 12 matching files

    The 0 differences found message confirms that all objects in the source Linode Object Storage match the destination in Vultr Object Storage, indicating a complete and error-free migration.

  3. Update your existing application configurations to replace all Linode Object Storage endpoints with your Vultr Object Storage bucket endpoints.

  4. Cut over all applications and services to use Vultr Object Storage as the primary backend.

Conclusion

You have migrated your data from Linode Object Storage to Vultr Object Storage. By leveraging Rclone, you were able to configure both Linode and Vultr endpoints, synchronize data, and ensure data integrity through detailed verification steps. Vultr Object Storage offers multiple regions, faster performance tiers, and greater flexibility, providing you with a highly efficient solution for cloud storage. The migration was completed with minimal downtime, and your applications can now take advantage of Vultr's enhanced features for improved performance and scalability. For further guidance, refer to the official Vultr Object Storage documentation.