Skip to content
  • There are no suggestions because the search field is empty.

How to Migrate Data to Impossible Cloud Storage Using Flexify.IO

This article explains how to use Flexify.IO to migrate data from any S3-compatible source to an Impossible Cloud bucket, including recommended settings for reliable large-scale transfers.

Flexify.IO is a cloud-to-cloud data migration service that supports Impossible Cloud as a native storage provider. It is well suited for moving backup data, archives, and general object data from another S3-compatible provider into Impossible Cloud Storage.

Important disclaimer: Before starting a migration, confirm that your backup or third-party application supports external copies of its data on the backend, followed by a rescan or re-inventory operation against the new bucket. Many backup products store metadata, catalogs, or pointers that must be reconciled after the data is moved at the object level. This is typically not possible for data protected by object lock, since locked objects cannot be modified or rewritten by the application after the copy. Versioned data presents an additional limitation: object version IDs are regenerated by the destination on copy, so any application that tracks or references specific version IDs on the source will not be able to resolve them after the migration.

If you are unsure whether your application supports this workflow, please consult the vendor's documentation or contact the vendor' support team before proceeding.

Step 1: Create a bucket in the Impossible Cloud Storage Console

Before starting the migration, create the new destination bucket in the Impossible Cloud Storage Console. For detailed instructions, refer to the Impossible Cloud Storage documentation on creating buckets. Additionally, generate an access key and secret key pair for an IAM user with proper permissions. You will use the keypair in Flexify in the next step.

Step 2: Add Impossible Cloud as a storage account in Flexify

In the Flexify.IO console, open the Data tab and click Add Storage Account.

  1. Under Storage Provider, select Impossible Cloud from the dropdown. Flexify ships with Impossible Cloud as a native provider, so no custom endpoint URL is required.
  2. Enter the Access Key ID and Secret Access Key you generated in the Storage Console.
  3. Leave Encrypt transfer with SSL/TLS enabled.
  4. Disable the Refresh now by listing objects toggle, especially when working with large buckets. Listing all objects on a large bucket can take some time and adds unnecessary load before the migration even starts.
  5. Leave Automatically refresh every hour disabled.
  6. Click Add Storage Account.

Repeat the same process for your source storage account.

Step 3: Create and configure the migration

Create a new migration in Flexify, selecting your source storage as the origin and the Impossible Cloud account as the destination. Map the source bucket to the destination bucket you created in Step 1.

Note: To prevent new data from arriving at the source during the copy, pause all scheduled jobs writing to the source bucket before starting the final migration pass.

For the migration parameters, we recommend the following settings for transfers to Impossible Cloud:

  • Engines: use a maximum of 3 engines.
  • Total streams: cap the total at 300 streams across all engines.
  • Engine deployment: always provision new, dedicated engines for the migration rather than reusing existing ones.
  • All other parameters can be left on auto.

These limits provide enough parallelism to saturate a typical migration link while staying within healthy request rates against the destination, and they reduce the risk of throttling or transient errors during long-running jobs.

Recommendation on parallel migrations: Avoid running too many migrations in parallel. For large data volumes in particular, run migrations sequentially rather than concurrently. Sequential execution gives each job the full benefit of the recommended engine and stream budget, makes failures easier to diagnose, and produces more predictable completion times.

Step 4: Handling incremental and restarted copies

If you are running an incremental copy (for example, a delta sync after an initial seed) or restarting a migration that was previously interrupted, set the conflict resolution option to "Prefer destination object".

This ensures that objects already successfully written to Impossible Cloud are not re-uploaded or overwritten, which significantly reduces transfer time and avoids unnecessary write operations against the destination bucket.

Step 5: Validate and finalize

After the migration completes, validate the result on the destination side:

  • Compare object counts and total size between source and destination in the Flexify migration summary.
  • Run a rescan or re-inventory in your backup or third-party application against the new Impossible Cloud bucket, as noted in the disclaimer above.
  • Perform a test restore or read operation through the application to confirm end-to-end functionality before decommissioning the source.

Need help?

If you need assistance planning or executing a migration to Impossible Cloud, please contact Impossible Cloud Support.