Saya ingin metode yang kuat untuk mengambil cadangan KVM VPS dari file qcow2, ketika sedang berjalan. Setelah lama mencari saya menemukan bahwa kita dapat menggunakan rsync untuk live backup. Saya menggunakan perintah berikut untuk rsync:
rsync -avh /vms/base.qcow2 /backup/backup.qcow2
Itu bekerja dengan baik. Tapi saya khawatir itu dapat merusak cadangan gambar qcow2 jika cadangan diambil saat VPS sedang diubah karena operasi tulis dan hapus (Seperti menginstal perangkat lunak baru atau memperbarui).
Oleh karena itu mengambil cadangan dari snapshot VPS langsung sepertinya pilihan yang lebih menarik.
Saya menggunakan perintah berikut untuk mengambil cadangan menjalankan VPS:
1. Buat Snapshot:
qemu-img create -f qcow2 -b base.qcow2 snapshot.qcow2
2.Konversi snapshot dalam format gambar mentah (.img):
qemu-img convert -O raw snapshot.qcow2 /backup/backup.img
Untuk mengembalikan VPS:
3.Convert gambar mentah dalam gambar qcow2:
qemu-img convert -O qcow2 /backup/backup.img base.qcow2
Kemudian kita dapat memulai VPS dengan virsh create base.xml
perintah.
Meskipun metode ini juga berfungsi dengan baik, saya masih tidak yakin apakah ini metode yang tepat untuk mengambil cadangan menjalankan VPS. Saya menemukan dokumentasi yang bagus tentang perintah qemu-img di sini dan di sini . Tetapi mereka tidak menyebutkan apapun tentang mengonversi snapshot VPS langsung dalam gambar mentah.
Metode mana yang lebih cocok untuk cadangan VPS langsung? Apakah mengkonversi foto dalam gambar mentah aman?
Jika saya bisa mendapatkan dokumentasi terperinci yang bagus tentang bagaimana file snapshot dan file dasar berperilaku dalam kondisi tertentu yang akan sangat membantu.
Mungkin kita juga bisa mengonversi gambar dasar qcow2 menjadi file cadangan mentah alih-alih mengonversi foto. Jadi perintah aliran akan menjadi:
1. Buat snapshot
2. Konversi basis qcow2 menjadi gambar mentah cadangan
3. Ubah snapshot komit menjadi gambar dasar
4. Hapus snapshot
Saya mencoba ini dan itu bekerja dengan baik pada VPS kecil 5GB. Tetapi apakah ada kemungkinan kesalahan atau korupsi VPS ketika ukuran VPS sangat besar?
Terima kasih sebelumnya...
Jawaban:
Satu-satunya hal yang Anda lewatkan adalah menghentikan sistem file tamu sebelum mengambil snapshot, untuk memastikan bahwa itu konsisten. Ini dapat dilakukan dengan
virsh domfsfreeze
jika Anda menggunakan libvirtd.Sebagai contoh, urutan operasi adalah:
Perhatikan baik-baik bahwa ini mengharuskan
qemu-guest-agent
diinstal dan dijalankan di VM. Tergantung pada distribusi dan pilihan instalasi, ini mungkin atau mungkin tidak demikian.Ini
qemu-guest-agent
juga dapat diperluas; Anda dapat menambahkan skrip untuk mendukung perangkat lunak tertentu. Sebagai contoh, ini termasuk contoh skrip untuk menempatkan MySQL dalam keadaan konsisten.sumber
virsh domfsfreeze $VM_NAME
, saya mendapat izin ditolak pada sistem file tamu saya. Sistem file guest saya dienkripsi, tidak yakin itu penting.Ada pendekatan lain yang melibatkan pembuatan snapshot sementara selama pencadangan dan mengembalikannya setelah itu.
Untuk informasi lebih lanjut, lihat: https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
sumber