Quick answers to common questions about syncopio™.
General
What is syncopio?
An enterprise tool for migrating data between storage systems.
It provides a web UI, distributed workers, and built-in verification to move millions of files between network-attached storage with confidence.
What storage protocols does syncopio support?
NFS (v3/v4), SMB/CIFS, and S3-compatible object storage.
Cross-protocol transfers are supported — for example, migrate from NFS to SMB or from on-premises NFS to S3-compatible cloud storage.
What operating systems does syncopio run on?
Workers run on Linux and Docker. The Controller deploys via Docker Compose.
Workers support all major Linux distributions and Docker containers. The Controller, Web UI, and database deploy via Docker Compose for easy setup.
How It Works
What is the Controller?
The central server that hosts the web UI, APIs, scheduler, and work queue.
It coordinates all Workers, stores state in PostgreSQL, and pushes live updates to the web UI via Server-Sent Events. You typically run one Controller per environment.
What is a Worker?
A lightweight agent that mounts storage, scans directories, transfers files, and computes checksums.
Workers run on or near the storage being migrated. They receive work from the Controller and report progress in real time. Run one or dozens depending on throughput needs.
What are the phases of a migration?
Four phases: Discovery, Assessment, Transfer, and Verification.
Discovery scans and catalogs files. Assessment analyzes risks and composition. Transfer moves the data. Verification confirms everything arrived intact. Each phase runs independently and can be repeated.
What is the difference between Mirror, Sync, and Copy?
Mirror = exact replica (deletes extras). Sync = add/update only (no deletes). Copy = transfer everything.
Use Mirror for exact replicas, Sync for safe incremental updates, and Copy for one-time bulk transfers.
Performance
How does syncopio distribute work?
Workers automatically balance work across the fleet — idle Workers pick up tasks from busy ones.
This ensures all Workers stay busy and no single bottleneck slows the migration, even when directories vary widely in size.
How does syncopio handle millions of small files?
Adaptive batching, efficient scan caching, and parallel processing keep throughput high.
Progress reporting is batched to minimize overhead, and the work queue distributes load across Workers to avoid single-thread bottlenecks.
What is the incremental scan cache?
Cached scan results that make repeat scans orders of magnitude faster.
Only changed data is rescanned. Everything else is served from cache.
Data Integrity
How does syncopio ensure no data is lost or corrupted?
Checksums during transfer + a dedicated post-transfer Verification phase + detailed pass/fail reports.
Choose from three verification depths (Quick, Standard, Deep) depending on your assurance requirements.
What are the three verification modes?
Quick (metadata comparison), Standard (+ fast checksums), Deep (+ cryptographic checksums).
All modes also verify permissions, ownership (UID/GID), and extended attributes.
What metadata is preserved during transfer?
Timestamps, ownership (UID/GID), POSIX permissions, extended attributes, ACLs, hard links, and symlinks.
Hard links are detected during scanning and recreated at the destination to preserve file relationships and save storage. Symlinks are preserved with target validation and broken-link detection.
Reliability
What happens if a Worker crashes mid-transfer?
Its work is automatically re-queued. Another Worker picks it up. No data loss, no manual intervention.
Each work item has a time-limited lease. If the Worker stops renewing it, the lease expires and the item returns to the queue.
Can I resume a failed migration?
Yes — completed work items are skipped, only remaining or failed items are reprocessed.
You never have to start from scratch because of a transient failure.
What happens if the Controller goes down?
Workers pause until it comes back, then automatically reconnect and resume.
In-flight work items are protected by the lease mechanism — they get re-queued if the lease expires while the Controller is offline.
Getting Started
What is an Endpoint?
A reusable storage connection — protocol, address, and credentials for an NFS server, SMB share, or S3 bucket.
Define once, reuse across multiple jobs.
What is a Dataset?
A specific directory path on an Endpoint, like /projects on an NFS server.
Jobs can include multiple source-destination Dataset pairs, each tracked independently for progress and verification.
Can I schedule recurring migrations?
Yes — built-in cron-style scheduler. No external cron needed.
Set daily, weekly, or custom schedules. Status is visible on the Dashboard, Jobs list, and Operations pages.
Does syncopio send notifications?
Yes — email (SMTP) and ntfy push notifications for scan, transfer, failure, and cutover events.
Configure recipients and event types per job. Failures are always notified by default. Workers also send ntfy alerts for memory and health issues.
How do I deploy syncopio?
Deploy via Docker Compose. The Controller, Web UI, Workers, and PostgreSQL all start together.
A single docker-compose.yml brings up the entire stack. Workers can also be deployed on separate hosts using the same Docker image.
How do I add remote Workers?
Deploy a Worker on any Linux or Docker host. Point it at your Controller URL with an API key.
The Worker auto-registers with the Controller and begins accepting work. No Controller-side configuration changes needed.
What export formats are available?
PDF, CSV, and Excel. Plus an interactive report viewer in the web UI.
PDF for stakeholders and compliance, CSV for spreadsheets, Excel for detailed analysis.
Still Migrating the Old Way?
See what you're missing. And what it's costing you.