Saya banyak menggunakan Virtual Box untuk keperluan pengujian distro / aplikasi.
Salah satu fitur yang saya sukai dari itu adalah snapshot mesin virtual, ini menyimpan keadaan mesin virtual dan dapat mengembalikannya ke kejayaan sebelumnya jika sesuatu yang Anda lakukan salah tanpa masalah dan tanpa menghabiskan semua ruang hard disk Anda.
Pada sistem live saya, saya tahu cara membuat gambar 1: 1 dari sistem file tetapi semua solusi yang saya tahu akan membuat gambar baru dari sistem file lengkap.
Apakah ada program / sistem file yang mampu mengambil snapshot dari sistem file saat ini, menyimpannya di lokasi lain tetapi alih-alih membuat gambar baru yang lengkap, itu membuat cadangan tambahan?
Untuk mudah menggambarkan apa yang saya inginkan, itu harus sebagai dd
gambar dari sistem file, tetapi bukan hanya cadangan lengkap itu juga akan membuat tambahan.
Saya tidak mencari clonezilla, dll. Ini harus berjalan dalam sistem itu sendiri tanpa (atau hampir tidak ada) intervensi dari pengguna, tetapi berisi semua data dari sistem file. Saya juga tidak mencari duplicity
cadangan semua sistem Anda kecuali beberapa folder + script dd
untuk menyimpan mbr Anda. Saya bisa melakukannya sendiri, mencari kemahiran ekstra.
Saya mencari sesuatu yang bisa saya lakukan sebelum melakukan perubahan besar pada suatu sistem dan kemudian jika sesuatu ketika salah atau saya membakar hard disk saya setelah menumpahkan kopi di atasnya saya hanya bisa boot dari liveCD dan mengembalikan snapshot yang berfungsi ke hard disk.
Tidak perlu setiap hari, bahkan tidak perlu jadwal. Jalankan saja sesekali dan biarkan bekerja dan lebih baik berbasis RAW bukan berbasis salinan file.
sumber
Jawaban:
Untuk menjelaskan jawaban cprofitt ini (sebagai jawabannya adalah tambahan, karena saya akan menjelaskan) ...
Pertama, Anda perlu tahu tentang tautan keras.
Hard link menunjuk ke data yang sebenarnya ada di disk (lokasi fisik) dan Anda dapat mengakses data menggunakan hard link. Setiap file dan direktori adalah tautan keras ke lokasi data pada disk fisik. Karena itu jika ada dua file (hard link) yang menunjuk ke lokasi yang sama maka data hanya disimpan satu kali .
Proses yang diberikan oleh cprofitt melibatkan:
Putar cadangan untuk membuat tempat untuk yang baru. ("Cadangan hari ini" dari kemarin menjadi "Cadangan kemarin", "Cadangan kemarin" dari dua hari yang lalu menjadi "Cadangan dua hari yang lalu" dan seterusnya)
Salin snapshot terbaru yang telah Anda lakukan (mis. "Cadangan kemarin") ke tempat untuk yang baru (mis. "Cadangan hari ini"), membuat tautan keras baru ke file yang ada tanpa menyalin file. Jadi semua file dalam snapshot baru menunjuk ke lokasi yang sama dengan yang sebelumnya .
Contoh ilustrasi
Pada gambar di bawah ini, file dengan warna yang sama yang memiliki nama file yang sama adalah tautan keras ke file yang sama pada disk. Di sini kita hanya berurusan dengan dua snapshot dan beberapa file, tetapi contohnya berskala. (Kecuali fakta saya memindahkan snapshots ke arah yang berlawanan dengan skrip dalam jawaban cproffit)
Prosesnya adalah ini:
Ada snapshot dari sistem.
Snapshot adalah salinan (membuat tautan keras ke file yang ada)
Rsync dijalankan untuk memperbarui snapshot. Ketika file diubah, ia menyimpan file baru sebagai salinan baru pada hard disk (jadi snapshot lama tidak berubah). Dalam contoh ini, File B telah diubah. Catatan: kita sekarang hanya memiliki 1 salinan File A dan File C dan dua salinan File B disimpan di hard disk
Putar foto (dalam hal ini foto 0 'jatuh' dan dihapus dan saya ganti nama foto 1 menjadi foto 0)
Salin foto snapshot (ulangi langkah 2)
Rsync lagi. (Ulangi langkah 3). Sekarang kita memiliki 1 salinan File A dan 2 salinan File B dan File C
Versi sederhana dari skrip [pertama] (tidak boleh dijalankan, seperti batu loncatan) adalah ini:
Sekarang skrip lengkap memiliki penjelasan lengkap di sini (seperti ditautkan dengan cprofitt) dan lebih menyeluruh tetapi pada dasarnya seperti di atas. Script lainnya adalah untuk mengelompokkan snapshot dan bagian lain dari jawaban cprofitt berbicara tentang membuat proses otomatis (menggunakan cron) dan memverifikasi bahwa cadangan berhasil.
Anda dapat mengubah nama, jadi alih-alih direktori yang disebut "setiap jam ..." mereka disebut sesuatu yang lain dan skrip dijalankan secara manual.
Untuk mengembalikan seluruh lot, salin snapshot terbaru (atau yang sebelumnya) kembali ke direktori tempat Anda mengambil backup.
Untuk mengembalikan satu file yang masih dalam snapshot, buka snapshot dan salin kembali ke tempatnya.
Media cadangan dapat berupa hard drive eksternal (harus ext2 / ext3 / ext4). Jika Anda back up
/
(terutama/boot
,/home
,/etc
/root
dan/usr
) kemudian, mengatakan ...Anda memasang drive eksternal, melakukan pencadangan dan membuat snapshot terbaru.
Lepas drive.
Ingat Anda menghapus file (bahkan dari tempat sampah) yang Anda inginkan.
Sambungkan drive eksternal dan ambil file.
Lakukan backup (hanya untuk memastikan)
Putuskan sambungan drive dan bepergian ...
Sadarilah bahwa laptop dan lava tidak bercampur.
Dengan laptop baru Anda menjalankan live cd, format drive internal, pasang drive eksternal Anda dan kemudian
cp -a /media/external/snapshot-0/* /media/internal-drive
(dengan asumsi snapshot-0 adalah snapshot terbaru)Instal grub ke MBR (ya itu harus terpisah) - atau gunakan
dd
untuk membuat cadangan mbr, seperti yang dikatakan cprofitt di bagian bawah jawabannya.Mulai ulang.
Script perlu disempurnakan (hanya untuk mendapatkan barang yang Anda inginkan) dan prosedur aove mengasumsikan bahwa Anda tidak memiliki
/home
partisi. Jika Anda (atau pernah) membuat yang baru pada disk dan memasangnya di tempatmount /dev/sdxy /media/external/home
sebelum menyalin.sumber
100 x <average size of snapshot>
ruang disk. 100 dari ini akan dikenakan biaya<size of snapshot> + <size of changed files>
. Saya telah menggunakan ini untuk meletakkan beberapa snapshot / home (~ 400GB) ke dalam disk 500GB.cp -al
membuat hardlink ke file sumber alih-alih menyalin file sumber. Angka Anda juga harus mencerminkan hal itu, misalnya dengan menunjukkan bahwa file A pada gambar 2 adalah file yang sama.Anda bisa menggunakan rsync.
dan yang kedua:
Setelah membuat skrip untuk kebutuhan Anda, tambahkan ke cron jobs.
tambahkan yang berikut:
Mereka menyebabkan make_snapshot.sh dijalankan setiap empat jam pada jam tersebut dan daily_snapshot_rotate.sh dijalankan setiap hari pada pukul 13:00 (yaitu, 13:00).
sumber: http://www.mikerubel.org/computers/rsync_snapshots/
Jika Anda ingin menjalankannya setiap jam, Anda akan menambahkan tugas cron untuk setiap jam.
Opsi lain yang mungkin adalah menggunakan rsnapshot
Instal rsnapshot (tersedia di pusat perangkat lunak)
Konfigurasikan rsnapshot dan Tentukan Direktori Sumber Cadangan
Buka /etc/rsnapshot.conf dan batalkan komentar pada baris berikut.
Tentukan direktori cadangan tujuan Anda di /etc/rsnapshot.conf seperti yang ditunjukkan di bawah ini. Dalam contoh ini,
/ home - direktori sumber yang harus di-backup localhost / - direktori tujuan di mana cadangan akan disimpan. Harap dicatat bahwa direktori ini akan dibuat di bawah direktori /.snapshots/{internal.n}/ seperti yang ditunjukkan pada langkah terakhir.
nano /etc/rsnapshot.conf
backup / home / localhost /
Tes Konfigurasi rsnapshot
Lakukan tes konfigurasi untuk memastikan rsnapshot sudah diatur dengan benar dan siap untuk melakukan backup rsync linux.
Anda dapat membuat cadangan direktori atau file linux di berbagai interval. Secara default, cadangan harian dan harian dikonfigurasikan.
Verifikasi konfigurasi cadangan setiap jam.
Pastikan proses pencadangan rsnapshot cwrsync harian telah dikonfigurasi dengan benar.
Setelah Anda memverifikasi bahwa konfigurasi cadangan harian dan rsync telah dipasang dengan benar di utilitas csrs snapshot rsnapshot, sekarang saatnya untuk mengatur anak anjing ini di crontab seperti yang ditunjukkan di bawah ini.
sumber: http://www.thegeekstuff.com/2009/08/tutorial-backup-linux-using-rsnapshot-rsync-utility/
---- Pemulihan Logam Telanjang
Saya akan menggunakan dd dan tar untuk melakukan pemulihan baremetal.
Cadangkan metadata penting:
Cadangkan sistem operasi:
Saya pribadi akan cenderung mengambil sistem saya off-line jika saya ingin membuat file restore baremetal.
sumber
dd
tidak tambahan. Tidak satu pun dari ini yang saya tanyakan. 10% terakhir mungkin menarik untuk dicari tetapi semua informasi lainnya benar-benar tidak.Ada 2 cara untuk melakukan pencadangan tambahan berdasarkan blok
Snapshots berbasis filesystem
Baik ZFS dan BTRFS menyediakan snapshot inkremental berbasis blok ( BTRFS , ZFS (halaman 25) ). Anda bisa memiliki drive yang Anda rsync untuk itu baik ZFS atau BTRFS dan snapshot.
Ada juga snapshot LVM (disebutkan oleh cprofitt) yang menyediakan snapshot inkremental berdasarkan blok yang sama.
Snapshots berbasis program
Ada beberapa program cadangan , namun beberapa tetap dengan tujuan:
Saya tahu Anda secara khusus menyebutkan bahwa Anda tidak mencari sesuatu seperti bermuka dua, namun saya pikir saya mungkin menyebutkan beberapa fitur.
Namun program ini mengharuskan Anda untuk menginstalnya untuk memulihkan. Keindahan dari sesuatu seperti rsync adalah bahwa hampir setiap instalasi linux memiliki rsync (mis., Core kecil (distribusi 10MB) tidak ada) secara default.
Duplicity
Itu hanya menyimpan diff (level blok) dan kemudian kompres dan mengenkripsi mereka. Hal ini menyebabkan penyimpanan lebih sedikit daripada metode rsync, namun (setidaknya seperti yang saya lihat) sistem file perlu direkonstruksi, yang akan memakan waktu (jika Anda menggunakan cadangan tambahan dengan itu, dan itu tergantung pada waktu sejak cadangan penuh terakhir)
The halaman manual menjelaskan cara kerjanya.
Cadangan besar
Program klien-server yang membuat, seperti duplikat, perbedaan level blok, akan tetapi menyimpan perubahan dari titik pemulihan terakhir, sehingga snapshot terbaru adalah yang tercepat untuk dipulihkan. Kembali ke masa (bukan snapshot terbaru) membutuhkan lebih banyak perbedaan untuk dianalisis dan karena itu lebih lambat.
Beberapa orang membandingkan rdiff-backup dengan rsnapshot (sepertinya cara yang lebih otomatis dari rsync mentod). Hampir semua cara fokus menggunakan rdiff melalui jaringan, namun saya menemukan satu yang menyebutkan cara melakukannya di localhost .
sumber
duplicity
sebenarnya.Anda harus melihat di ddar ( beranda ).
Ini tambahan dalam arti tidak mentransfer bagian identik dari foto itu. Kata ini tidak bertambah dalam arti klasik kata tersebut, karena berhadapan dengan snapshot.
Catatan: Saya belum mencoba ini sendiri (tapi saya percaya penulis). Mungkin tidak melakukan apa yang ingin Anda capai, tetapi masih ada solusi yang lebih mirip pada halaman (mis. ZFS ), sehingga sebagai titik awal, itu mungkin terbukti bermanfaat.
sumber
Saya pikir Anda dapat melakukan ini dengan LVM satu-satunya teori, dan itu akan membuang sejumlah besar hard disk. Teori saya adalah bahwa Anda dapat membuat sistem root Anda hidup pada volume logis, maka jika Anda ingin melakukan tes Anda dapat membuat snapshot dan me-restart mesin menggunakan volume baru.
Snapshots LVM membutuhkan volume asli untuk bekerja. Ini karena volume baru menyimpan perbedaan antara snapshot dan sistem file nyata.
Jika Anda meninggalkan sistem dalam kondisi ini, Anda akan mulai membuang ruang disk saat sistem file baru berubah. Saya tidak tahu apakah ada cara untuk mengkonsolidasikan snapshot dan filesystem definitive. Tentunya Anda dapat dd ke volume logis lain, tetapi untuk ini Anda akan membutuhkan dua kali ruang filesystem Anda ditambah perbedaan antara "titik pemulihan" dan keadaan saat ini.
Dan semua ini membutuhkan reboot dan jauh dari otomatis.
Diperkirakan pula beberapa sistem file modern seperti ini, seperti zfs pada sistem solaris atau btrf eksperimental.
sumber
Yang ini sedikit di atas kepala saya, tetapi sepertinya bagian dari apa yang ingin Anda lakukan adalah membuat cadangan sebagian dari file biner (seperti file gambar partisi). Ada paket yang dirancang untuk melakukan itu (saya baru saja membaca - tidak mencobanya.)
Lihatlah bup.
https://github.com/apenwarr/bup
Mungkin memberi Anda beberapa ide.
sumber