// Module included in the following assemblies:
//
// * migrating_from_ocp_3_to_4/migrating-applications-3-4.adoc
// * migration_toolkit_for_containers/migrating-applications-with-mtc.adoc

:_mod-docs-content-type: CONCEPT
[id="migration-understanding-data-copy-methods_{context}"]
= About data copy methods

The {mtc-full} ({mtc-short}) supports the file system and snapshot data copy methods for migrating data from the source cluster to the target cluster. You can select a method that is suited for your environment and is supported by your storage provider.

[id="file-system-copy-method_{context}"]
== File system copy method

{mtc-short} copies data files from the source cluster to the replication repository, and from there to the target cluster.

The file system copy method uses Restic for indirect migration or Rsync for direct volume migration.

[cols="1,1", options="header"]
.File system copy method summary
|===
|Benefits |Limitations
a|* Clusters can have different storage classes.
* Supported for all S3 storage providers.
* Optional data verification with checksum.
* Supports direct volume migration, which significantly increases performance.
a|* Slower than the snapshot copy method.
* Optional data verification significantly reduces performance.
|===

[NOTE]
====
The Restic and Rsync PV migration assumes that the PVs supported are only `volumeMode=filesystem`. Using `volumeMode=Block` for file system migration is _not_
supported.
====


[id="snapshot-copy-method_{context}"]
== Snapshot copy method

{mtc-short} copies a snapshot of the source cluster data to the replication repository of a cloud provider. The data is restored on the target cluster.

The snapshot copy method can be used with Amazon Web Services, Google Cloud Provider, and Microsoft Azure.

[cols="1,1", options="header"]
.Snapshot copy method summary
|===
|Benefits |Limitations
a|* Faster than the file system copy method.
a|* Cloud provider must support snapshots.
* Clusters must be on the same cloud provider.
* Clusters must be in the same location or region.
* Clusters must have the same storage class.
* Storage class must be compatible with snapshots.
* Does not support direct volume migration.
|===
