Cara Mengembalikan VM Citrix-Xen Gratis dengan Xen-Phoenix (Bash)
Pernahkah Anda memiliki kebutuhan untuk memulihkan VM Citrix-Xen Anda secara massal untuk solusi pemulihan bencana (DR), atau hanya untuk menguji apakah cadangan Anda berfungsi? HTG menjelaskan cara menggunakan Xen-Phoenix, skrip bash gratis, untuk memulihkan VM.
Kredit Foto: Ryan McCurdy via Compfight cc
Seperti yang telah kami sebutkan di “Cara Backup Citrix Xen VMs Gratis dengan Xen-pocalypse“, salah satu hal yang menyenangkan di Citrix Xen adalah banyak fitur-fiturnya bebas biaya. Dengan itu, jika Anda menginginkan fitur "Perlindungan VM otomatis dan pemulihan", Anda harus mulai membayar lisensi "Advance". Sekali lagi, bukan karena kami di HTG menolak nilai solusi cadangan yang sebenarnya, tetapi jika Anda memiliki anggaran yang ketat, sudah mendapatkan gambar VM dari hypervisor dan membutuhkan cara untuk mengotomatisasi Anda " prosedur pengembalian tes ”/” DR refresh ”, Anda mungkin menemukan Xen-Phoenix menjadi solusi yang masuk akal sebelum Anda membuat komitmen anggaran.
Ikhtisar
"Use case": Anda memiliki beberapa VM yang membutuhkan pemulihan. Mengimpor di "Xen Center" menggunakan klik kanan berfungsi dengan baik, tetapi Anda ingin proses ini terjadi secara otomatis dan sesuai jadwal. Skrip Bash ini menggunakan perintah "XE" untuk melakukan tugasnya. XE adalah antarmuka baris perintah Xen (CLI), setara otomatis untuk mengeluarkan "klik kanan" di "Xen Center". Kami akan memanggil skrip dari Cron yang akan menyediakan bagian "penjadwalan". Dalam bentuknya yang paling sederhana, aliran pengembalian adalah:
- Menghapus semua * VM yang ada sebelumnya di server
- Impor VM dari file di lokasi cadangan.
- Verifikasi bahwa semua VM dapat dioperasikan dengan mengaktifkannya satu per satu dan mencari detak jantung alat tamu.
- Matikan VM ketika detak jantung telah ditemukan, atau batas waktu telah tercapai.
* Perilaku delete all VMs dapat dinonaktifkan sepenuhnya dan mendukung pengecualian (lihat di bawah).
Mari kita mulai retak :)
Dapatkan skripnya
Xen-phoenix dapat diperoleh secara bebas dari github, menggunakan metode git biasa. Dengan itu, jika Anda belum berpengalaman di git, Anda dapat mengambil file zip dengan tautan ini. Karena skrip perlu dijalankan pada salah satu server Xen Anda, Anda harus mengekstraknya di sana sehingga izin eksekusi tetap dipertahankan.
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
unzip master
Meskipun hal di atas akan berhasil, Anda disarankan untuk menggunakan metode GIT sehingga Anda dapat memanfaatkan pembaruan di masa mendatang.
Lokasi ekspor
Kita perlu mengkonfigurasi dari mana mengambil ekspor VM.
Sementara secara acak mencari-cari di Citrix Xen, saya telah menemukan bahwa Penyimpanan Repositori (SR) tersedia untuk digunakan di bawah "/ var / run / sr-mount /% UUID%" di mana UUID adalah pengidentifikasi unik SR, yang dapat berupa diperoleh dari GUI.
Ini berarti kita dapat menggunakan wizard "Next -> Next -> Finish" biasa untuk membuat "mount" ke lokasi cadangan yang diinginkan, dan kemudian meminta skrip untuk menggunakan jalur itu (seperti yang diperintahkan untuk mengacaukan pemasangan dari baris perintah yang merupakan di luar cakupan panduan ini).
Untuk membuat "mount" baru, klik kanan nama server dan pilih SR Baru.
Dalam contoh ini, kita akan mengarahkan Xen ke share Windows, jadi pilih "Windows File Sharing (CIFS)":
Selesaikan Berikutnya -> Selanjutnya -> Selesai.
Dapatkan UUID SR
Untuk mendapatkan UUID SR, cukup klik namanya di Xen Center dan buka tab "General".
Untuk menyalin UUID, cukup klik kanan dan pilih "salin".
Dengan informasi ini, Anda siap untuk mengedit file pengaturan.
Konfigurasikan file Pengaturan
Proyek Xen-phoenix dibundel dengan templat file "pengaturan". Template ini harus diedit untuk mencerminkan pengaturan Anda dan diteruskan sebagai argumen pertama ke skrip.
File pengaturan menunjuk sebagai berikut:
- Lokasi ekspor sumber - Jika Anda telah mengikuti panduan ke titik ini, Anda hanya perlu mengganti% UUID% dengan SR seperti yang diperoleh dari atas.
- Lokasi SendEmail - Jika Anda memilih untuk mengaktifkan Email, Anda perlu memasukkan di mana Anda telah mengekstrak perl yang dapat dieksekusi di sini.
- Verifier - Ini mengontrol prosedur verifikasi pengembalian pos. Ini diaktifkan secara default, karena "pemulihan tingkat file" yang berhasil tidak perlu berarti VM fungsional.
- Server_prep - Ini mengontrol pra-pengembalian penghapusan semua VM di server DR. Ini diaktifkan secara default karena diasumsikan bahwa server DR adalah server khusus untuk tujuan ini. Jika Anda membutuhkan VM yang berjalan di server ini agar tidak dihapus, konfigurasikan untuk dikecualikan. Jika perilaku ini tidak cocok untuk situasi Anda, cukup nonaktifkan sepenuhnya.
- Rincian email - Sekali lagi, jika Anda telah mengaktifkan email, Anda perlu mendefinisikan detail seperti: Ke, Dari, Servername / IP & dll..
- Debugging - Standarnya adalah debugging dimatikan dengan nilai "0" (nol). Anda seharusnya tidak perlu mengaktifkan ini, tetapi jika Anda melakukannya, informasi lebih lanjut dicatat di segmen pemecahan masalah.
Eksekusi
Script ini mengambil file pengaturan sebagai argumen pertama dan argumen lain sebagai "Chevron" untuk dicari (dipisahkan oleh spasi). Chevron, adalah "string", yang mendukung ekspresi reguler yang mewakili setidaknya sebagian dari nama file ekspor VM yang diinginkan.
Artinya, dalam bentuknya yang paling sederhana, doa Xen-phoenix akan terlihat seperti:
./Xen-phoenix.sh settings.cfg DevTools
Di mana dalam kasus di atas, kita berada di dalam direktori yang menyimpan skrip & file pengaturan dan "Chevron" yang akan dicari skrip adalah "DevTools". Ini akan menyebabkan semua file dalam direktori ekspor dengan string "DevTools" di namanya diimpor.
Contoh yang lebih kompleks dapat terlihat seperti:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Di mana dalam contoh di atas, file yang berisi kata "devtools" dieja dengan huruf kapital "D" dan "T" atau yang non-kapital, serta "AD" & "BI" dengan atau tanpa huruf besar, akan diimpor.
Penjadwalan
Seperti disebutkan di atas, kami akan menggunakan Cron untuk menjadwalkan eksekusi. Sebelum kita masuk ke konfigurasi, itu sangat dianjurkan Anda mengkonfigurasi paket SSMTP yang sudah diinstal pada server Xen Anda. Meskipun ini merupakan langkah opsional, melakukannya akan memberi Anda kolektor "backwash". Memiliki "backwash collector" dapat mengingatkan Anda akan hal-hal yang tidak dapat dilakukan skrip.
Masuk ke mode pengeditan cron dengan mengeluarkan:
crontab -e
Jika Anda telah mengikuti instruksi di atas dan Anda ingin menambahkan cadangan yang dijadwalkan untuk hari Minggu pukul 01:31 (1:31), masukkan yang berikut ini:
31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [DI] ev [Tt ] ool
Di atas benar dengan asumsi skrip dan file pengaturan Anda berada di bawah "/ root / Xen-phoenix-master /".
Dapatkan SendEmail (opsional)
Kami telah menulis tentang program perl SendEmail di masa lalu, jadi tidak perlu mengulangi di sini. Cukuplah untuk mengatakan, ia bekerja dengan cara yang sama di Linux seperti halnya pada Windows.
Meskipun mengaktifkan email adalah opsional, sangat disarankan karena skrip akan dapat:
- Memberitahu Anda ketika itu mulai & selesai berjalan.
- Beri tahu Anda jika ada kesalahan yang dapat dideteksi dan ditangani.
Unduh ke server Xen dan ekstrak.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Perhatikan lokasi tempat Anda mengekstraknya. Anda akan membutuhkannya untuk file pengaturan.
Menentukan Tag "Hapus Pengecualian" (opsional)
Xen-Phoenix mengambil halaman dari leluhurnya (Xen-Pocalypse) dan memberi Anda kemampuan untuk secara granular mengecualikan VM dari penghapusan seluruh sistem menggunakan TAG kontrol. Untuk melakukan ini, Anda perlu mendefinisikan "Bidang Kustom" baru.
Untuk melakukan ini, buka properti server atau bahkan VM. Di panel navigasi, pilih "Bidang Kustom".
Jika ini adalah pertama kalinya Anda mendefinisikan "bidang khusus" (seperti pada contoh di atas), Anda tidak akan memiliki bidang "Phoenix_keeper" untuk memasukkan data, jadi Anda harus membuatnya. Untuk melakukan ini, klik "Edit Bidang Kustom" di kotak dialog yang muncul, lalu klik "Tambah ..."
Buat bidang jenis "Teks" dengan nama "Phoenix_keeper".
catatan: Nama bidang khusus telah "dikodekan keras" ke dalam skrip, jadi Anda tidak boleh menyimpang dari ejaan di atas, kecuali jika Anda juga mengubah kode yang relevan.
Setelah bidang dibuat, Anda akan melihat:
Menutup jendela. Anda sekarang harus memiliki bidang "Phoenix_keeper" untuk diisi, seperti pada gambar di bawah ini.
Sekarang, yang harus Anda lakukan adalah mengisi bidang ini dengan komentar (komentar apa pun akan dilakukan), yang akan menyebabkan Xen-phoenix melewatkannya saat menghapus.
Penyelesaian masalah
Meskipun saya telah berusaha keras membuat skrip itu mudah digunakan dan sangat mudah, "dunia adalah lab yang lebih besar". Informasi di bawah ini dapat membantu Anda memastikan apa sumber masalah Anda.
Penebangan
Semua "logging" dikumpulkan oleh host Xen yang menjalankan skrip dalam mekanisme syslog. Ini, tentu saja, dapat dilihat dengan:
kurang + F / var / log / pesan
Anda mencari kata kunci "Xen-Phoenix".
Catatan: Citrix telah menetapkan kebijakan retensi dua (2) hari untuk syslog servernya. Anda mungkin ingin mengingatnya untuk postmortem.
Debugging
Sebagaimana dicatat dalam segmen file pengaturan, ada arahan untuk mengaktifkan debugging. Mengaktifkan debugging akan menyebabkan skrip untuk menghasilkan logging verbose ke konsol dan mengebornya dari mengirim email dan benar-benar melakukan impor, kecuali jika flag yang relevan juga diatur. Bendera yang mungkin dicatat dalam templat file pengaturan, dan memungkinkan Anda untuk menentukan secara terperinci apa yang ingin Anda debug.
Ini adalah harapan saya bahwa Anda tidak memerlukan debugging dan Anda menuai hasil kerja saya :)
Pikirkan semua kemiskinan, kebencian dan kebohongan, dan bayangkan kehancuran semua yang Anda benci. Perlahan dari abu, phoenix akan muncul ...