Cara tercepat untuk memindahkan sejumlah besar file?

8

Saya harus memindahkan sekitar 320.000 file, 80.000 folder (hanya 100 Gb) data. Beberapa file> 1GB tetapi kebanyakan <1kB.

Saya telah melihat metode tercepat menyalin file tetapi saya tidak yakin seberapa berguna semua ini akan, masalah saya bukan tentang kecepatan transfer rate murni tetapi benar-benar tentang seberapa cepat Windows dapat menangani IO dari 320.000 file.

Apakah Anda pikir saya akan melihat manfaat kecepatan menggunakan xcopy, robocopy, teracopy atau fastcopy?

Kami butuh waktu lama (12 jam +) untuk menyalinnya sekali (menggunakan robocopy), dan saya benci harus melakukannya lagi. Apa yang bisa saya lakukan untuk mempercepatnya?

Barang ada di USB 2.0 External Drive.

in.spite
sumber

Jawaban:

9

Sesuatu seperti robocopy akan menjadi taruhan terbaik Anda. USB drive tidak dapat menangani banyak IO untuk memulai.

Saya telah mendorong jutaan file kecil ke dan dari drive USB menggunakan robocopy. Memang butuh waktu, tetapi menyelesaikan pekerjaan.

mrdenny
sumber
3

Seperti yang dikatakan mrdenny, Robocopy akan menjadi yang terbaik, sebagian karena kekokohannya. Saran terbaik yang bisa saya tawarkan, asalkan Anda yakin tentang kebersihan file yang akan dipindahkan, adalah untuk memastikan perangkat lunak antivirus dinonaktifkan saat sedang dipindahkan. Anda benar-benar tidak ingin overhead memiliki semua file yang dipindai.

John Gardeniers
sumber
1

Jelas ada cara yang lebih cepat dari semua yang disebutkan di sini. Lebih cepat, tetapi kurang fleksibel :-) Jika Anda telah meletakkan file di partisi yang terpisah, Anda dapat menyalin seluruh partisi ke disk target.

Saya tidak terbiasa dengan alat Windows gratis untuk pekerjaan itu (alat dengan dukungan VSS akan sempurna), tetapi yang pasti Anda bisa mem-boot Ghost CD, atau Partition Magic CD, atau boot CD mandiri Linux. Di linux Anda hanya ddpartisi, atau ntfsclonejika ini adalah partisi NTFS.

kubanczyk
sumber
0

Jika saya jadi Anda, saya akan mengubah Harddrive eksternal ke Firewire, transfer kecepatan jauh lebih cepat daripada USB2.

Saya pikir mungkin mengemas file menjadi "tar" tunggal, dan kemudian mentransfer file akan menghemat sedikit waktu. Karena itu mengurangi waktu I / O, karena Anda hanya menyalin 1 file raksasa lebih dari, dibandingkan dengan ribuan file, itu juga mengkonsumsi lebih sedikit sumber daya yang saya percaya (selama fase salin). Atau Anda dapat menyalurkan aliran tar langsung ke drive USB Anda.

chutsu
sumber
Ya, saya tahu pendekatan tar tunggal pasti akan menghasilkan hasil, tetapi tidak yakin apakah membangun file tunggal akan memakan banyak waktu.
in.spite
Firewire bagus tetapi eSATA juga bisa lebih cepat.
Chopper3
0

Saya menemukan cara paling efisien untuk menyalin sejumlah besar file adalah dengan mengalirkannya ke file ISO terlebih dahulu dan kemudian menyalin ISO. Dengan cara ini disk tidak peduli dengan mengeluarkan ribuan perintah yang diperlukan untuk menyalin file.

Tentu saja ini tergantung pada struktur direktori Anda. Saya cukup beruntung memiliki direktori baru yang dibuat pada interval 4,7GB sehingga membuat membuat VBScript untuk mengotomatiskan proses jauh lebih mudah.


sumber
Saya tidak mengikuti logika Anda. Untuk membuat ISO, semua file itu harus dibaca dan ditulis ke dalam ISO. Kemudian ISO dibaca untuk mengekstrak file dan akhirnya menulisnya ke tujuan. Bagaimana itu lebih efisien daripada membaca dan menulisnya sekali?
John Gardeniers
kode sampel dalam VBSCript, C #, atau bahasa skrip lain?
Kiquenet
@JohnGardeniers Lewis bertaruh bahwa waktu yang diperlukan untuk menyalin file kecil di seluruh jaringan memiliki overhead yang lebih besar daripada waktu yang diperlukan untuk memasukkannya ke ISO dan kemudian mentransfer file itu. Ini benar-benar tergantung pada lingkungan khusus Anda, tetapi tidak intuitif seperti kedengarannya, bisa lebih cepat untuk mentransfer satu file konsolidasi daripada ribuan file kecil.
Minggu
0

Anda hampir pasti akan mengalami kinerja keseluruhan yang lebih baik untuk urutan transfer jika Anda terlebih dahulu mengemas file sumber ke dalam satu arsip (tar, atau dikompres ke dalam zip, dll), kemudian mentransfer arsip melalui jaringan, dan kemudian membongkar arsip di tujuan.

Tolong jangan lupa bahwa ketika Anda mentransfer arsip melalui jaringan, Anda akan lebih baik menggunakan ftp (atau protokol transfer berorientasi file lainnya) daripada salinan file SMB sederhana.

Dengan menggunakan proses seperti di atas, saya secara rutin mentransfer direktori aplikasi sekitar 60GB (dengan sekitar 50.000-75.000 file) antara beberapa pusat data yang terpisah secara geografis (AS, Eropa, Asia). Perbedaan antara mentransfer satu file sekaligus, dan mentransfer arsip terkompresi melalui FTP adalah 10-40 kali lebih cepat.

Rsync juga bisa menjadi teman Anda di sini (seperti halnya dalam banyak skenario transfer file lainnya).

Jika Anda terbuka untuk opsi komersial, solusi streaming biner berbasis UDP yang dapat mendorong bit lebih dari beberapa aliran UDP mungkin bernilai bagi Anda. Lihatlah http://www.filecatalyst.com/

pengguna18764
sumber
0

Opsi lain adalah menggunakan Bittorrent menggunakan pelacak bawaan atau DHT dihidupkan. Klien akan mengelompokkan semua file bersama dalam blok (gunakan 2MB atau lebih besar jika tersedia). Di sisi penerima, Anda akan menerima file dalam potongan blok besar saat mereka ditulis ke hard drive. Ini membantu untuk mengkonsolidasikan file kecil Anda menjadi potongan 2MB dan Anda mendapatkan kecepatan transfer yang lebih baik dan

Matahari
sumber