13Jul
Pernahkah Anda memiliki kebutuhan untuk mengembalikan VM Citrix-Xen Anda secara massal untuk solusi pemulihan bencana( DR), atau hanya untuk menguji apakah backup Anda bekerja? HTG menjelaskan cara menggunakan Xen-Phoenix, skrip bash gratis, untuk pemulihan VM.
Photo Credit: Ryan McCurdy via Compfight cc
Seperti yang telah kami sebutkan dalam "Cara Mencetak Citrix Xen VMs secara Gratis dengan Xen-pocalypse", salah satu hal bagus di Citrix Xen adalah bahwa banyak fiturnya adalah gratis.biaya. Dengan mengatakan bahwa, jika Anda menginginkan fitur "Perlindungan VM otomatis dan pemulihan", Anda harus mulai membayar lisensi "Advance".Sekali lagi, bukan berarti kita di HTG mengabaikan nilai solusi cadangan sebenarnya, tapi jika Anda memiliki anggaran yang ketat, sudah mendapatkan gambar VM dari hypervisor dan membutuhkan cara untuk mengotomatisasi "test restore "/" DR refresh "prosedur, Anda mungkin menemukan Xen-Phoenix menjadi solusi yang sangat masuk akal sebelum Anda membuat komitmen anggaran.
Ikhtisar
"use case": Anda memiliki beberapa VM yang memerlukan pemulihan. Pengimporan di "Xen Center" menggunakan klik kanan bekerja dengan baik, namun Anda ingin proses ini terjadi secara otomatis dan sesuai jadwal. Script Bash ini menggunakan perintah "XE" untuk menjalankan 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 memasok bagian "penjadwalan".Dalam bentuknya yang paling sederhana, aliran pengembaliannya adalah:
- Hapus semua * VM yang ada sebelumnya di server
- Import VMs dari file di lokasi backup.
- Verifikasi bahwa semua VM dapat dioperasikan dengan mengaktifkannya satu per satu dan mencari alat bantu detak jantung tamu.
- Menghidupkan VM saat detak jantung telah ditemukan, atau batas waktu telah tercapai.
* Menghapus semua perilaku VMs dapat dinonaktifkan sepenuhnya dan mendukung pengecualian( lihat di bawah).
Mari kita mulai cracking:)
Mendapatkan skrip
Xen-phoenix dapat diperoleh secara bebas dari github, dengan menggunakan metode git biasa. Dengan mengatakan bahwa, jika Anda belum berpengalaman dalam git, Anda bisa mengambil file zip dengan link ini. Karena skrip perlu dijalankan di salah satu server Xen Anda, Anda harus mengekstraknya di sana sehingga izin eksekusi dipertahankan.
wget https: //github.com/aviadra/ Xen-phoenix /archive/ master.zip
unzip master
Sementara di atas akan bekerja, Anda disarankan untuk menggunakan metode GIT sehingga Anda dapat memanfaatkan pembaruan di masa depan.
Lokasi ekspor
Kita perlu mengkonfigurasi tempat untuk mengambil ekspor VM dari.
Sementara secara acak menusuk-nusuk Citrix Xen, saya telah menemukan bahwa Repositori Penyimpanan( SR) tersedia untuk digunakan di bawah "/var/run/ sr-mount /% UUID%" dimana UUID adalah pengenal unik dari SR, yang dapat diperoleh dariGUI.
Ini berarti kita bisa menggunakan "Next - & gt;Berikutnya - & gt;Selesai "wizard untuk membuat" mount "ke lokasi backup yang diinginkan, dan kemudian gunakan script tersebut untuk path( seperti apposed untuk bermain-main dengan mounting dari command line yang berada di luar cakupan panduan ini).
Untuk membuat "mount" baru, klik kanan nama server dan pilih New SR.
Dalam contoh ini, kita akan menunjuk Xen ke bagian Windows, jadi pilih "Windows File Sharing( CIFS)":
Lengkapi Next - & gt;Berikutnya - & gt;Selesai.
Mendapatkan UUID
untuk mendapatkan UUID SR, cukup klik namanya di Xen Center dan masuk ke tab "General".
Untuk menyalin UUID, cukup klik kanan dan pilih "copy".
Dengan informasi ini, Anda siap untuk mengedit file pengaturan.
Mengkonfigurasi file Pengaturan
Proyek Xen-phoenix dibundel dengan template "settings" file. Template ini harus diedit untuk mencerminkan penyiapan Anda dan lulus sebagai argumen pertama naskah.
File pengaturan menunjuk yang berikut ini:
- Lokasi sumber ekspor - Jika Anda telah mengikuti panduan sampai saat ini, Anda hanya perlu mengganti% UUID% dengan SR seperti yang diperoleh dari atas.
- Lokasi SendEmail - Jika Anda telah memilih untuk mengaktifkan Email, Anda perlu memasukkan di mana Anda telah mengekstrak berkas yang dapat dieksekusi di sini. Verifikasi
- - Ini mengontrol prosedur verifikasi pengembalian pos. Ini diaktifkan secara default, karena berhasil "mengembalikan tingkat file" tidak perlu berarti VM fungsional.
- Server_prep - Ini mengendalikan penghapusan pra-pemulihan dari semua VM pada server DR.Ini diaktifkan secara default karena diasumsikan bahwa server DR adalah dedicated server untuk tujuan ini. Jika Anda memerlukan 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 mengaktifkan email, Anda perlu menentukan rincian seperti: Ke, Dari, ServerName / IP &dll '.
- Debugging - Defaultnya adalah apakah debugging dimatikan dengan nilai "0"( nol).Anda seharusnya tidak perlu menyalakannya lagi, namun jika Anda melakukannya, informasi lebih banyak tercantum di segmen pemecahan masalah.
Execution
Script ini mengambil file pengaturan sebagai argumen pertamanya dan argumen lainnya sebagai "Chevrons" untuk dicari( dipisahkan oleh spasi).Chevrons, adalah "string", yang mendukung ekspresi reguler yang mewakili setidaknya sebagian dari nama file yang diinginkan dari ekspor VM.
Artinya, dalam bentuknya yang paling sederhana, seruan Xen-phoenix akan terlihat seperti:
. /Xen-phoenix.sh settings.cfg DevTools
Dimana dalam kasus di atas, kita berada di dalam direktori yang memegang skrip &file pengaturan dan "Chevron" script akan mencari adalah "DevTools".Ini akan menyebabkan semua file dalam direktori ekspor dengan string "DevTools" sesuai namanya untuk diimpor.
Contoh yang lebih kompleks dapat terlihat seperti:
. /Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Dimana pada contoh di atas, file yang berisikata "devtools" dieja dengan modal "D" dan "T" atau non-kapital, dan juga "AD" &"BI" dengan atau tanpa kapitalisasi, akan diimpor.
Penjadwalan
Seperti disebutkan di atas, kita akan menggunakan Cron untuk menjadwalkan eksekusi. Sebelum kita masuk ke konfigurasi, sangat merekomendasikan bahwa Anda telah mengkonfigurasi paket SSMTP yang sudah terinstal di server Xen Anda. Meskipun ini adalah langkah opsional, melakukannya akan memberi Anda kolektor "backwash".Memiliki "kolektor backwash" semacam itu mungkin mengingatkan Anda akan hal-hal yang tidak dapat dilakukan skrip.
Masuk ke mode pengeditan cron dengan mengeluarkan:
crontab -e
Jika Anda telah mengikuti petunjuk di atas dan Anda ingin menambahkan cadangan terjadwal untuk hari Minggu pukul 01:31( 1:31 AM), masukan di bawah ini:
31 01 * *matahari /root/ Xen-phoenix-master / Xen-phoenix.sh /root/ Xen-phoenix-master / settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt] ools
Hal di atas adalah asumsi yang benarscript dan file pengaturan Anda berada di bawah "/root/ Xen-phoenix-master /".
Mendapatkan SendEmail( opsional)
Kami telah menulis tentang program perl SendEmail di masa lalu, jadi tidak perlu mengulangi di sini. Cukup dengan mengatakan, ia bekerja dengan cara yang sama di Linux seperti pada Windows.
Sementara mengaktifkan email bersifat opsional, sangat disarankan karena skripnya akan dapat:
- Menginformasikan Anda saat memulai &selesai berlari
- Memberitahu Anda tentang kesalahan yang bisa dideteksi dan ditangani.
Download 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 di mana Anda mengekstraknya. Anda akan membutuhkannya untuk file pengaturan.
Mendefinisikan Tag "Hapus Pengecualian"( opsional)
Xen-Phoenix mengambil halaman dari nenek moyangnya( Xen-Pocalypse) dan memberi Anda kemampuan untuk secara rinci mengecualikan VM dari penghapusan seluruh sistem menggunakan kontrol TAG.Untuk melakukan ini, Anda perlu menentukan "Bidang Khusus" baru.
Untuk melakukan ini, buka server atau bahkan properti VM.Di panel navigasi, pilih "Custom Fields".
Jika ini adalah pertama kalinya Anda mendefinisikan "bidang khusus"( seperti pada contoh di atas), Anda tidak akan memiliki field "Phoenix_keeper" untuk memasukkan data ke dalam, jadi Anda perlu membuatnya. Untuk melakukan ini, klik "Edit Custom Fields" di kotak dialog yang muncul, lalu klik "Add. .."
Buat field "Text" type dengan nama "Phoenix_keeper".
Catatan: Nama bidang kustom telah "dikodekan dengan keras" ke dalam skrip, jadi Anda HARUS tidak menyimpang dari ejaan di atas, kecuali jika Anda mengubah kode yang relevan juga.
Begitu bidang telah dibuat, Anda harus melihat:
Tutup jendela. Anda sekarang harus memiliki field "Phoenix_keeper" untuk mengisi, seperti pada gambar di bawah ini.
Sekarang, yang harus Anda lakukan adalah mengisi bidang ini dengan sebuah pernyataan( semua ucapan akan dilakukan), yang akan menyebabkan Xen-phoenix melewatkannya saat menghapusnya.
Mengatasi Masalah
Sementara saya telah berupaya keras membuat skrip itu mudah digunakan dan setepat mungkin, "dunia adalah laboratorium yang lebih besar".Informasi di bawah ini dapat membantu Anda memastikan apa sumber masalah Anda.
Logging
Semua "logging" dikumpulkan oleh host Xen yang menjalankan skrip dalam mekanisme syslog. Ini, tentu saja, dapat dilihat dengan:
kurang + F Pesan /var/log/
Anda mencari kata kunci "Xen-Phoenix".
Catatan: Citrix telah menetapkan dua( 2) hari kebijakan retensi untuk syslog server-nya. Anda mungkin ingin mengingatnya untuk postmortem. Seperti dicatat dalam segmen file pengaturan, ada perintah untuk mengaktifkan debugging. Mengaktifkan debugging akan menyebabkan skrip untuk mengeluarkan logging verbose ke konsol dan mengebiri dari mengirim email dan benar-benar melakukan impor, kecuali jika flag yang relevan juga ditetapkan. Bendera yang mungkin dicatat dalam template file pengaturan, dan memungkinkan Anda menjelaskan secara terperinci apa yang ingin Anda debug.
Ini adalah harapan saya bahwa Anda tidak memerlukan debugging dan Anda menuai hasil kerja keras saya:)
Bayangkan semua kemiskinan, kebencian dan kebohongan, dan bayangkan penghancuran semua yang Anda benci. Perlahan dari abu, burung phoenix akan muncul. ..