Apa yang terjadi jika rsnapshot / rdiff-backup terputus di tengah transfer?

20

Pertanyaan mengatakan semuanya:

Apa yang terjadi jika rsnapshot atau rdiff-backup terputus di tengah transfer?

Saya tahu bahwa rsnapshot mencoba membuat snapshot lengkap dari sistem Anda secara bergilir, dan rdiff-backup membuat cadangan diferensial, yang akan didasarkan pada file yang sebelumnya disimpan di belakangnya.

Jadi: Apa yang terjadi jika terputus di tengah?

Apakah ini menghasilkan "snapshot tidak lengkap"?

Apakah snapshot lain yang bergantung pada yang ini rusak? (Tentunya tidak, tapi ...?)

ggl
sumber
1
Bukankah lebih jelas jika Anda memisahkan pertanyaan ini menjadi dua pertanyaan terpisah?
andol
2
@ Andol Jika dia mencari informasi tentang cara memulihkan dari transfer yang terputus, saya pikir akan lebih baik sebagai dua pertanyaan. Saya menafsirkan ini lebih merupakan permintaan untuk perbandingan berapa banyak masalah yang akan Anda hadapi jika Anda menggunakan masing-masing utilitas, meskipun, seperti varian "bantu saya memutuskan mana yang akan digunakan."
ændrük
Terima kasih Andol; tapi tidak, saya pikir ini berdiri sebagai satu pertanyaan. Pada dasarnya, "apa yang terjadi jika rsnapshot / rsync terputus di tengah transfer?", Dan saya pikir alat tersebut menjangkau satu niche tertentu, jadi ini tidak IMO menjamin dua pertanyaan terpisah. Saya mengajukan pertanyaan 'snapshot tidak lengkap' sebagai salah satu hasil potensial untuk tujuan klarifikasi.
emf

Jawaban:

22

Pemahaman saya adalah bahwa ...

rdiff-backup akan mendeteksi kenaikan yang tidak lengkap saat dijalankan berikutnya. Ini akan menghapus kenaikan yang tidak lengkap sehingga lokasi cadangan sama seperti jika upaya cadangan yang terputus tidak pernah dimulai.

rsnapshot sedikit lebih rumit karena rutinnya lebih bertahap dan bervariasi tergantung pada penggunaan opsi sync_firstdan use_lazy_deletes.

  • Jika Anda menggunakan sync_firstdan rsnapshot syncterganggu, Anda dapat menjalankannya rsnapshot synclagi untuk meluruskan hal-hal. Jika Anda tidak sengaja menjalankan rsnapshot <backup level>pada titik ini sebagai gantinya, titik cadangan terbaru akan tetap tidak lengkap dan akan dilakukan melalui rotasi.
  • Jika Anda tidak menggunakan sync_first, Anda hanya terjebak dengan titik cadangan tidak lengkap yang merupakan hibrida dari file lama dan baru. Kecuali jika Anda membalikkan secara manual setiap titik cadangan, titik cadangan yang tidak lengkap akan dilakukan melalui rotasi.
  • Dalam kedua kasus, menjalankan rsnapshot <backup level>akan menyebabkan titik cadangan terlama hilang kecuali use_lazy_deletesdiaktifkan.

Perhatikan itu sync_firstdan use_lazy_deletesbiayanya menggunakan lebih banyak ruang disk.


Pengingat / penafian: Ini harus dilakukan tanpa berkata, tetapi tidak pernah begitu saja mempercayai saran orang lain di internet. Jika Anda berencana untuk menggunakan rdiff-backup atau rsnapshot untuk sesuatu yang sangat penting , bacalah setiap kata dalam manual dan uji, uji, uji semuanya sendiri!

ændrük
sumber
1
Pengingat yang lumayan, dan praktik yang baik untuk mengikuti budaya "metode yang tepat" semacam ini, kami tidak ingin linux berubah menjadi tanah konsumen bisu. Terima kasih atas catatannya.
emf
Jadi, memahami dengan benar: memiliki cadangan yang tidak lengkap "dibawa melalui rotasi" untuk rsnapshot akan berjumlah dua hal: 1. Snapshot itu akan tidak lengkap jika dirujuk kembali pada titik selanjutnya 2. Setiap snapshot level yang lebih tinggi masih akan lengkap , tetapi tidak akan merujuk dengan benar ke file-file sebelumnya yang memiliki tautan keras yang terlewatkan dalam snapshot tidak lengkap. Apakah ini benar?
emf
1

Itu baru saja terjadi pada saya. drive eksternal saya menjadi setengah penuh melalui cadangan tambahan rsnapshot:

rsync: write failed on "<path>": No space left on device (28) 

Sekarang saya ingin berbagi beberapa hal yang saya pelajari dari ini. yaitu untuk memperbaiki dan membatasi peluang besar untuk kasus seperti itu untuk menggigit saya kembali;)

Lanjutkan cadangan terganggu Rsnapshot

Saya tahu dua cara untuk mengembalikannya dengan aman.

Secara manual

  1. Hapus direktori terakhir (mis. Harian.0)
  2. Ganti nama direktori berurutan (daily.1 -> daily.0, ...); kemungkinan skrip 1
  3. Jalankan pencadangan seperti biasa (lagi).

Secara otomatis

rsnapshot tidak memiliki kemampuan jeda / berhenti dan melanjutkan (kecuali untuk " lompati rencana rollback " 2 terbatas ), jadi kami harus menggunakan pembungkus untuk menangani fitur-fitur ini.

rsnapshot-once3 oleh Philipp C. Heckel adalah pembungkus untuk rsnapshot di PHP yang:

  • berfungsi tanpa mengubah konfigurasi rsnapshot Anda
  • memastikan bahwa tugas harian, mingguan dan bulanan dijalankan hanya sekali dalam periode waktu masing-masing, melalui cron (bagus untuk laptop)
  • rollback cadangan gagal (memeriksa apakah cadangan terakhir selesai; jika tidak direktori terakhir dihapus dan direktori berturut-turut diganti nama misalnya daily1. -> daily.0, ...)

Menggunakannya selama setahun, saya pengguna yang bahagia: Saya mengedit php.ini openbase_diruntuk kebutuhan cadangan dan voila, hari keberuntungan ^ _ ^ Lebih halus dan lebih aman daripada solusi berbasis rsnapshot mentah saya sebelumnya.

Catatan: slm menautkan saya di sini dari pertanyaan rangkap: Tujuan Rsnapshot penuh - bagaimana cara aman menjalankan kembali?

tuk0z
sumber