Migrating Data to SFS Turbo Using Direct Connect (rsync)
Solution Overview
You can migrate data from a local NAS to SFS Turbo using rsync over Direct Connect.
In this solution, a Linux ECS is created to connect the local NAS and SFS Turbo, and data is migrated to the cloud using this ECS.
You can also refer to this solution to migrate data from an on-cloud NAS to SFS Turbo using the Internet. Ensure that the on-cloud NAS and SFS Turbo belong to the same VPC.
Constraints
- Special files, such as devices and linked files, can be migrated.
- Resumable data transfer is supported.
- Properties, such as permissions, time, soft and hard links, owner, and group, of the original files and directories can be retained after data migration.
- The rcp, rsh, and ssh tools are supported during file transfer.
- Incremental migration is supported, so you can only migrate the changed data.
- If there are multi-level directories or massive small files, you are recommended to use a multi-process script or rclone. This is because rsync has low efficiency in these scenarios.
Prerequisites
- You have purchased and configured Direct Connect. For details, see Direct Connect User Guide.
- You have created a Linux ECS.
- You have created an SFS Turbo file system and obtained its shared path.
- You have obtained the shared path of the local NAS.
- A trust relationship has been established between the local NAS and the ECS.
Resource Planning
Table 1 describes the resource planning in this solution.
Procedure
- Log in to the Linux ECS.
- Mount the local NAS to the ECS.
Replace <shared-path-of-the-local-NAS> with the actual NAS address, for example, 192.168.0.0:/. Replace /mnt/src with the actual source path.
mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp <shared-path-of-the-local-NAS> /mnt/src
- Mount the SFS Turbo file system to the ECS.
Replace <shared-path-of-the-SFS-Turbo-file-system> with the actual SFS Turbo file system address, for example, 192.168.0.0:/. Replace /mnt/dst with the actual destination path.
mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp <shared-path-of-the-SFS-Turbo-file-system> /mnt/dst
- Install rsync on the Linux ECS.
yum install rsync
Figure 1 Installing rsyncEnsure that rsync is installed on both the source and destination servers. Or, an error will be reported.
- Check the installation result and version of rsync.
rsync -version
Figure 2 Checking the installation result - Run the rsync command to migrate the existing or incremental data.
- Migrating the existing data: Run the following command to migrate data in the /mnt/src directory on the source server to the /mnt/dst directory (SFS Turbo file system) on the destination server.
rsync -avP /mnt/src/ /mnt/dst/
You can also run the following command to use rsync to concurrently copy and upload data:
threads=${number-of-threads};src=/mnt/src/;dest=/mnt/dst/;rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
For example, if the number of threads is 10, run the following command:
threads=10;src=/mnt/src/;dest=/mnt/dst/;rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
- Migrating the incremental data: Run the following command to synchronize the incremental data generated after the existing data is migrated to the destination SFS Turbo file system:
rsync -avP --delete /mnt/src/ /mnt/dst/
--delete means to delete from the SFS Turbo file system the data that has already been deleted from the source directory. Use this option carefully to avoid accidentally deleting data from the destination SFS Turbo file system.
- Migrating the existing data: Run the following command to migrate data in the /mnt/src directory on the source server to the /mnt/dst directory (SFS Turbo file system) on the destination server.
Verification
- Log in to the Linux ECS.
- Check the file synchronization results on the destination server. This command only compares the file name and size. If the file name and size are the same as the source, it is considered that data is migrated successfully.
rsync -avn --size-only /mnt/src/ /mnt/dst/
- (Optional) To check data consistency, use the following command to compare the hash values. If the hash values are the same, data is migrated successfully.
rsync -avn --checksum /mnt/src/ /mnt/dst/
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot