Other than ls in nfs mode, there are two ways.
Compared to listing in nfs mode,
- Pros
- the speed of listing is very fast so if you already have much objects in the source cluster then this choice would be suitable in most cases.
- Cons
- need to run the command the number of storage nodes times like below (but it shouldn't be big deal)
- leofs-adm diagnosis-start storage_0@a
- leofs-adm diagnosis-start storage_1@b
- leofs-adm diagnosis-start storage_2@c
- Since the list generated by diagnosis-start can contain the same file multiple times, you may have to dedupe before putting files into the destination cluster (or just ignoring duplicated files also should work although the number of requests sent to the destination will be increased)
- Since the list generated by diagnosis-start can contain files that already got deleted in the past, you may have to ignore such files when sending files into the destination. (or doing compaction on all nodes and prohibiting to request deletes during the moving process grantees there is no files already deleted in the list)
IMO, Although this option would force you to have more knowledge than listing in nfs however I'd recommend you this one as listing in nfs may take too much time and make a significant load against the source cluster during listing.
A brief procedure is
- setting up MDCR properly
- invoke leofs-adm recover-cluster then data copy into the destination cluster will be started
Compared to listing in nfs mode,
- Pros
- the speed of transfer is very fast so if you already have much objects in the source cluster then this choice would be suitable in most cases.
- Cons
- need to tweak MDCR settings
- since MDCR use the specific tcp ports, you may have to configure firewall rules and so on depending on your network settings.
IMO, diagnose-start VS MDCR
the winner is diagnose-start as there has been much experiences than MDCR to move (transfer) data to the another cluster.