Flexify.IO works exclusively with object storage. However, for scenarios such as on-premises-to-cloud migration, you may want to add a legacy directory or a file share to Flexify.IO. While Flexify.IO cannot access data from your file system or a network share directly, it can do so with the help of MinIO.
First, start MinIO Server on a physical or virtual machine where your file or block storage is mounted. The storage can be mounted as a volume or a network share.
We recommend at least 4 vCPU and 16 GB RAM to run MinIO. Otherwise, you may not be able to achieve the maximum migration throughput.
MinIO Server allows exposing a file system directory via S3-compatible API. When doing so, the directories just inside Minio's data "root" directory become buckets. It imposes certain limitations on their names and may cause issues. That's why it's not recommended to point the MinIO server to an existing data directory of your file system.
Start MinIO before creating any mount points in the data directory. Otherwise MinIO would fail on the startup check.
Make sure to choose a secure password.
MinIO uses port 9000 by default. You may need to open port 9000 on a firewall to enable outside connections to the MinIO Server on your machine.
Using the -r option of the mount command would protect your data from accidental deletion and is recommended for the on-prem-to-cloud migration scenario. Make sure to umount the data directory before your delete minio-root.
Now the content of the /path/to/data directory is accessible via the S3 API and can be found in the mybucket bucket. You can see it by opening http://<your-server-ip>:9000/minio in your browser or by configuring any S3 client to use http://<your-server-ip>:9000 endpoint with minio/MySecurePassword as the S3 keys.
From Flexify.IO's standpoint, MinIO is no different from any other S3-compatible storage. To add MinIO to Flexify.IO, simply click Add Storage Account on the Data tab, select Minio from the drop-down list, and specify your MinIO server's IP:port and S3 keys.
By default MinIO uses HTTP. Make sure to remove the "Encrypt transfer with SSL/TLS" checkbox or configure SSL certificates on the MinIO server.
Now your file/disk storage is added to Flexify.IO, and you can migrate data to Amazon S3 or another cloud storage, or even attach it to the Flexify.IO multi-cloud virtual endpoint.
Disk storage might be slow. Especially in the case of rotational media, such as HDD-based RAID or Google Cloud Storage's standard persistent disks, storage systems may also suffer from high latency. Response times might as high as 20 ms, limiting sequential I/O to around 50 IOPS. But most storage systems allow many requests to be served in parallel, increasing the cumulative IOPS to thousands.
Unfortunately, MinIO is not taking advantage of parallelism when listing objects (each object requires a separate stat system call), and on a high latency rotational media would not be able to list more than ~50 objects/second. This could limit the total throughput of the migration in case your objects are relatively small in size.
There are two alternative solutions to this issue: