Saya berencana untuk mencadangkan HDD besar saya pada rsync
, dan mengantisipasi bahwa dibutuhkan beberapa hari. Apakah aman menggunakan HDD asli (menambahkan file) saat rsync
sedang bekerja? Atau lebih baik membiarkan HDD tidak tersentuh sampai rsync
selesai?
27
Jawaban:
Seperti yang telah ditunjukkan orang lain, aman untuk membaca dari disk sumber, atau menggunakan disk target di luar direktori target, ketika rsync sedang berjalan. Juga aman untuk membaca di dalam direktori target, terutama jika direktori target sedang diisi secara eksklusif oleh run rsync.
Yang umumnya tidak aman adalah menulis di dalam direktori sumber saat rsync berjalan. "Menulis" adalah segala sesuatu yang mengubah konten direktori sumber atau subdirektori apa pun darinya, jadi sertakan pembaruan file, penghapusan, pembuatan, dll.
Melakukannya tidak akan merusak apa pun, tetapi perubahan tersebut mungkin atau mungkin tidak benar-benar diambil oleh rsync untuk disalin ke lokasi target. Itu tergantung pada jenis perubahan, apakah rsync telah memindai direktori tertentu itu, dan apakah rsync telah menyalin file atau direktori yang dimaksud.
Namun, ada cara mudah untuk melakukannya: Setelah selesai, jalankan rsync lagi, dengan parameter yang sama. (Kecuali jika Anda memiliki beberapa parameter penghapusan yang funky; jika Anda melakukannya, maka berhati-hatilah.) Melakukannya akan memindai ulang sumber, dan mentransfer perbedaan yang tidak diambil selama proses awal.
Run kedua harus mentransfer hanya perbedaan yang terjadi selama run rsync sebelumnya, dan dengan demikian akan menyelesaikan lebih cepat. Dengan demikian, Anda dapat merasa bebas untuk menggunakan komputer secara normal selama menjalankan pertama, tetapi harus menghindari sebanyak mungkin membuat perubahan pada sumber selama menjalankan kedua. Jika Anda bisa, pertimbangkan untuk melakukan remount sistem file sumber hanya-baca sebelum memulai menjalankan rsync kedua. (Sesuatu seperti
mount -o ro,remount /media/source
harus dilakukan.)sumber
@reboot root find / -print &>/dev/null
di crontab sistem saya, untuk mengisi cache. (Entri yang sebenarnya lebih kompleks untuk menjelaskan beberapa kasus khusus pada sistem saya.) Menggunakan beberapa RAM dan beberapa waktu wallclock lebih awal setelah startup untuk meningkatkan pemindaian direktori-pohon sedikit IME.updatedb
(membangun basis data loc) atauslocate -u
(sama, jika Anda memiliki slocate)? Dengan cara itu Anda masih men-cache hierarki tetapi Anda juga membangun basis data lokasi atau slocate, yang memungkinkan Anda menggunakan perintah-perintah itu untuk dengan cepat menemukan banyak file?Ini tergantung pada sistem cadangan yang Anda gunakan, tetapi secara umum itu adalah ide yang buruk untuk mengubah konten perangkat saat Anda mencadangkannya. Namun, Anda dapat membaca isinya; itu operasi yang aman, bahkan jika itu akan memperlambat proses.
Dalam kasus Anda,
rsync
akan membangun daftar file dan kemudian memulai pencadangan. Karena itu file apa pun yang Anda tambahkan ke HDD sumber setelah pencadangan dimulai tidak akan disalin.Apa yang saya lakukan adalah tidak menggunakan perangkat sama sekali selama cadangan. Ini adalah cara yang lebih aman untuk mendapatkan cadangan yang cepat dan konsisten.
sumber
rsync
yang akan selesai dalam beberapa detik karena hanya file yang telah saya ubah selama menjalankan akan disalin. Semuanya akan ada dalam cache, jadi jauh lebih mudah untuk menahan diri dari modifikasi selama periode itu.Aman untuk membaca data dari area sumber saat
rsync
sedang beroperasi, tetapi jika Anda memperbarui apa pun, salinan yangrsync
membuat / memperbarui kemungkinan tidak konsisten:Jika Anda memperbarui file yang telah dipindai rsync maka file tersebut tidak akan melihat pembaruan hingga dijalankan di masa mendatang. Jika Anda memperbarui file itu belum memindai perubahan akan dihormati di tujuan. Jika Anda memperbarui file yang keduanya telah dan belum dipindai Anda akan berakhir dengan campuran versi lama dan baru di tujuan.
Jika Anda menambahkan file ke direktori yang telah dipindai, file tersebut akan hilang dari salinan tujuan kali ini. Jika Anda menghapus file dari direktori yang telah dipindai, file itu akan tersisa di salinan tujuan kali ini. Bergantung pada bagaimana Anda memohon
rsync
seluruh pohon dapat dipindai pada awal atau mungkin dipindai secara bertahap ketika proses sinkronisasi terjadi.Dalam beberapa keadaan
rsync
akan melihat ketidakkonsistenan dan memperingatkan Anda. Jika Anda menghapus file atau sub-direktori dari direktori yang telah dipindai sendiri tetapi belum dipindai isinya, Anda akan mendapatkan pesan kesalahan tentang objek yang hilang. Dalam keadaan yang sama kadang-kadang dapat (jika ukuran dan / atau stempel waktu telah berubah) juga memperingatkan tentang file yang mengubah mid-scan.Untuk beberapa cadangan, ketidakkonsistenan ini mungkin bukan masalah besar, tetapi untuk sebagian besar akan sangat disarankan agar Anda tidak mencoba menyinkronkan sumber yang berubah secara aktif.
Jika Anda menggunakan LVM untuk membagi sistem penyimpanan Anda, Anda dapat menggunakan snapshot sementara untuk mengambil cadangan point-in-time. Ini mengharuskan Anda memiliki cukup ruang pada grup volume untuk membuat volume foto yang cukup besar untuk menampung semua perubahan yang akan terjadi selama durasi foto itu diperlukan. Periksa dokumentasi LVM (atau salah satu dari banyak contoh online: cari "backup snapshot LVM" atau yang serupa) untuk detail lebih lanjut.
Bahkan tanpa LVM beberapa sistem file mendukung snapshot sendiri - jadi Anda mungkin ingin melihat opsi itu juga.
Jika Anda ingin membuat cadangan volume aktif besar tanpa waktu henti yang lama dan tidak dapat menggunakan snapshot, mungkin cukup untuk menjalankan pemindaian "langsung" hingga selesai kemudian menghentikan akses ke volume dan menjalankan proses rsync lain yang mungkin memerlukan waktu jauh lebih sedikit (jika sangat sedikit yang berubah itu hanya akan memindai pohon direktori kemudian beberapa file yang diperbarui). Dengan cara ini, durasi di mana Anda harus menghindari perubahan bisa jauh lebih pendek.
sumber
Sumber HDD dapat membaca apa pun saat rsync.
Sumber HDD dapat menulis konten apa pun yang tidak terkait dengan konten rsync.
HDD Tujuan dapat membaca apa pun saat rsync.
HDD Tujuan dapat menulis apa pun saat rsync dengan syarat memiliki ruang yang cukup dicadangkan untuk konten yang disinkronkan.
Tentu saja, dalam setiap kasus, akan ada pengurangan kinerja.
sumber
Semua jawaban saat ini berbicara tentang keamanan data dalam hal konsistensi dan mengasumsikan perangkat keras sempurna.
Satu hal yang perlu dipertimbangkan adalah keamanan perangkat keras itu sendiri. Jika Anda memiliki hard drive yang tidak didukung yang mungkin hampir gagal (Anda mungkin belum tahu) dan Anda sedang membuat cadangan komprehensif awal jangan menggunakannya. Jangan memasangkannya jika datanya kritis. Anda dapat menggunakan alat seperti
dd
untuk mengkloning disk sebagai perangkat blok. Apa yang Anda tidak ingin mencari kepala disk, dan mungkin menulis saat Anda mencoba membuat cadangan. Plusdd
harus lebih cepat untuk cadangan awal karena hanya menyalin bit dalam urutan (Jika sebagian besar drive tidak penuh saya kira rsync akan menang dalam kasus awal juga).Untuk backup incremental berikutnya rsync adalah pilihan yang bagus dan saya setuju dengan jawaban lainnya 100%.
sumber
dd
bukan pilihan terbaik. Gunakanddrescue
sebaliknya; itu menangani kegagalan parsial jauh lebih baik. Tapi itu bukan pertimbangan dalam pertanyaan awal.