Saya mencadangkan kotak Linux melalui SMB ke NAS. Saya memasang NAS secara lokal dan kemudian saya menghubungkan banyak data (100GB atau lebih). Saya percaya ini membutuhkan waktu yang sangat lama untuk melakukannya: lebih dari 12 jam. Saya diharapkan akan jauh lebih cepat setelah semuanya disalin karena hampir tidak ada yang berubah dari hari ke hari.
Apakah ada cara untuk mempercepat ini?
Saya berpikir bahwa mungkin rsync berpikir itu bekerja dengan hard disk lokal dan menggunakan checksum alih-alih perbandingan waktu / ukuran? Tetapi saya tidak menemukan cara untuk memaksa perbandingan waktu dan tanggal. Ada lagi yang bisa saya periksa?
Jawaban:
Saya pikir Anda memiliki kesalahpahaman tentang algoritma rsync dan bagaimana alat tersebut harus diterapkan.
Keuntungan kinerja Rsync berasal dari melakukan transfer delta - yaitu, hanya memindahkan bit yang diubah dalam file. Untuk menentukan bit yang diubah, file harus dibaca oleh host sumber dan tujuan dan memblokir checksum dibandingkan untuk menentukan bit yang diubah. Ini adalah bagian "ajaib" dari rsync - algoritma rsync itu sendiri.
Ketika Anda memasang volume tujuan dengan SMB dan menggunakan rsync untuk menyalin file dari apa yang "dilihat" Linux sebagai sumber lokal dan tujuan lokal (keduanya dipasang pada mesin itu), sebagian besar versi rsync modern beralih ke mode salin 'seluruh file' , dan matikan algoritme delta copy. Ini adalah "win" karena, dengan algoritma delta-copy aktif, rsync akan membaca seluruh file tujuan (melalui kabel dari NAS) untuk menentukan bit-bit apa dari file yang telah berubah.
"Cara yang benar" untuk menggunakan rsync adalah dengan menjalankan server rsync pada satu mesin dan klien rsync di yang lain. Setiap mesin akan membaca file dari penyimpanan lokalnya sendiri (yang seharusnya sangat cepat), menyetujui bit-bit apa dari file yang telah berubah, dan hanya mentransfer bit-bit itu. Mereka seperti Anda menggunakan jumlah rsync dari 'cp' yang dibuat-buat. Anda dapat mencapai hal yang sama dengan 'cp' dan mungkin akan lebih cepat.
Jika perangkat NAS Anda mendukung menjalankan server rsync (atau klien) maka Anda sedang dalam bisnis. Jika Anda hanya akan memasangnya di mesin sumber melalui SMB maka Anda mungkin juga cukup menggunakan 'cp' untuk menyalin file.
sumber
Sepertinya cap waktu adalah masalah Anda, karena terkait halaman ini:
http://www.goodjobsucking.com/?p=16
Solusi yang diusulkan adalah menambahkan
ke parameter rsync.
sumber
Ya, Anda bisa mempercepatnya. Anda perlu membuat sumber atau tujuan terlihat seperti mesin jarak jauh, katakan dengan menyebutnya sebagai "
localhost:
".Anda menyatakan bahwa Anda memasang pangsa SMB secara lokal. Ini membuat sumber atau tujuan terlihat seperti jalur lokal ke rsync. Halaman manual rsync menyatakan bahwa salinan tempat sumber dan tujuan adalah jalur lokal akan menyalin seluruh file. Ini dinyatakan dalam paragraf untuk opsi "--whole-file" di halaman manual. Oleh karena itu, algoritma delta tidak digunakan. Menggunakan
localhost:
solusi " " akan mengembalikan fungsionalitas algoritma delta dan akan mempercepat transfer.sumber
rsync
menggunakan cap waktu dan tanggal untuk memeriksa apakah suatu file perlu diperbarui atau tidak. Jika perlu pembaruan, maka rsync akan membagi file dalam potongan dan membandingkan checksum. Itu berarti akan membaca seluruh file untuk dapat melakukan itu. Jadi jika Anda tidak memiliki daemon rsync yang berjalan dari jarak jauh, Anda harus mentransfer seluruh file untuk melakukan chunking dan checksumming sehingga Anda dapat langsung mentransfernya. Jadi "solusi" yang diuraikan di sini tidak memberi Anda apa pun dalam skenario ini.Kupikir aku akan melempar 2pku ke sini.
Adikku baru saja menginstal Buffalo NAS di jaringan kantornya. Dia sekarang melihat backup di luar kantor, sehingga kantor itu harus terbakar, setidaknya dia masih memiliki semua dokumen bisnisnya di tempat lain (ratusan kilometer jauhnya).
Rintangan pertama saya adalah untuk mendapatkan VPS yang dimilikinya (server privat virtual Linux kecil, tidak ada yang terlalu gemuk) untuk dial-in sebagai pengguna VPN ke router broadband-nya (dia menggunakan DrayTek untuk ini) sehingga itu sendiri dapat menjadi bagian dari VPN-nya, sehingga dapat mengakses NAS secara langsung, dengan cara yang aman. Dapatkan itu diurutkan dan bekerja dengan cemerlang.
Masalah selanjutnya adalah mentransfer file dari NAS ke server VPS. Saya mulai dengan melakukan pemasangan Samba dan mengalami masalah yang persis sama (atau bahkan lebih buruk) yang telah Anda jelaskan. Saya melakukan rsync kering-lari dan butuh lebih dari 1 jam 30 menit hanya untuk mengetahui file apa yang akan ditransfer, karena seperti Evan mengatakan, di bawah metode ini, ujung yang lain tidak rsync sehingga harus melakukan banyak pengajuan system call / reads pada Samba mount (melintasi koneksi PPTP / tunnelled, dengan waktu perjalanan sekitar 40ms). Benar-benar tidak bisa digunakan.
Sedikit yang saya tahu bahwa Buffalo sebenarnya menjalankan daemon rsync jadi, sebagai gantinya, seluruh proses kering hanya membutuhkan waktu 1 menit 30 detik untuk 87k file dengan total 50Gb. Jelas, untuk mentransfer 50Gb file (dari NAS yang ada di jalur broadband dengan hanya 100k / detik bandwidth keluar) adalah masalah lain sepenuhnya (ini akan memakan waktu beberapa hari) tetapi, begitu rsync awal selesai, setiap pencadangan tambahan harus grease lightening (datanya tidak akan banyak berubah setiap hari).
Saran saya adalah gunakan NAS yang layak, yang mendukung rsync, untuk alasan yang Evan katakan di atas. Itu akan menyelesaikan semua masalah Anda.
sumber
Baunya seperti Anda memiliki NAS yang lebih murah. Bisa juga dari bandwidth jaringan Anda ...
NAS "standar" konsumen benar-benar lemah ketika datang ke IO berat yang adalah apa yang Anda coba lakukan di sini. Ini juga bisa menjadi saklar murah yang menghubungkan PC Anda dan NAS Anda yang tidak cukup kuat untuk menangani semua paket dengan benar.
sumber
coba ini ia berpikir aleast memberi Anda 10% lebih banyak kecepatan apa yang Anda dapatkan http://www.thegeekstuff.com/2009/09/linux-remote-backup-using-rsnapshot-rsync-utility/
sumber
Ada dua sumber potensial masalah - Anda menggunakan opsi baris comman yang salah atau NAS Anda memiliki masalah dengan timestamping (atau keduanya :-). Silakan periksa utas ini "rsync to NAS copy everything every time" untuk info lebih lanjut.
sumber