Bagaimana Untuk Memulihkan VM Citrix-Xen untuk Percuma dengan Xen-Phoenix (Bash)
Pernahkah anda mempunyai keperluan untuk memulihkan VM Citrix-Xen anda untuk penyelesaian pemulihan bencana (DR), atau hanya untuk menguji bahawa backup anda berfungsi? HTG menerangkan cara menggunakan Xen-Phoenix, skrip bash percuma, untuk memulihkan VM.
Photo Credit: Ryan McCurdy melalui Compfight cc
Seperti yang telah kita sebutkan dalam "Cara Mencadangkan Citrix Xen VMs untuk Percuma dengan Xen-pokal", salah satu perkara yang baik dalam Citrix Xen ialah banyak ciri-cirinya percuma caj. Dengan itu, jika anda mahukan ciri "Perlindungan dan pemulihan VM automatik", anda perlu mula membayar lesen "Advance". Sekali lagi, bukan kerana kami di HTG menolak nilai penyelesaian sandaran sebenar, tetapi jika anda mempunyai anggaran yang ketat, sudah mendapat imej VM daripada hypervisor dan memerlukan cara untuk mengautomasikan " ujian mengembalikan "/" DR refresh "prosedur, anda mungkin dapati Xen-Phoenix menjadi penyelesaian yang munasabah sebelum anda membuat komitmen anggaran.
Gambaran keseluruhan
"Kes penggunaan": Anda mempunyai beberapa VM yang memerlukan pemulihan. Pengimport di "Xen Center" menggunakan klik kanan berfungsi ok, tetapi anda mahu proses ini berlaku secara automatik dan pada jadual. Skrip Bash ini menggunakan arahan "XE" untuk melaksanakan tugasnya. XE adalah antara muka baris perintah Xen (CLI), bersamaan automatik untuk mengeluarkan "klik kanan" dalam "Pusat Xen". Kami akan memanggil skrip dari Cron yang akan membekalkan bahagian "penjadualan". Dalam bentuk yang paling mudah, aliran pemulihan ialah:
- Padam semua * VM yang sedia ada pada pelayan
- Import VMs dari fail di lokasi sandaran.
- Sahkan bahawa semua VM dioperasi dengan mengaktifkannya satu persatu dan mencari denyutan alat alat tamu.
- Hidupkan VMs apabila denyutan jantung telah ditemui, atau masa tamat telah dicapai.
* Menghapus semua tingkah laku VM boleh dilumpuhkan sepenuhnya dan menyokong pengecualian (lihat di bawah).
Mari kita retak :)
Dapatkan skrip
Xen-phoenix boleh didapati secara bebas daripada github, menggunakan kaedah git biasa. Dengan kata itu, jika anda tidak mahir dalam git lagi, anda boleh merebut fail zip dengan pautan ini. Oleh kerana skrip perlu dijalankan di salah satu pelayan Xen anda, anda perlu mengeluarkannya di sana supaya kebenaran pelaksanaan disimpan.
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
unzip master
Walaupun perkara di atas akan berfungsi, anda dinasihatkan supaya menggunakan kaedah GIT supaya anda mendapat manfaat daripada kemas kini masa hadapan.
Lokasi eksport
Kita perlu mengkonfigurasi di mana untuk mengambil eksport VM dari.
Walaupun secara rawak berpura-pura di Citrix Xen, saya mendapati bahawa Repositori Penyimpanan (SR) boleh digunakan di bawah "/ var / run / sr-mount /% UUID%" di mana UUID adalah pengecam unik SR, yang diperolehi daripada GUI.
Ini bermakna kita boleh menggunakan wizard "Next -> Next -> Finish" biasa untuk membuat "mount" ke lokasi sandaran yang diingini, dan kemudian skrip menggunakan laluan tersebut (seperti yang digunakan untuk mengacau dengan pemasangan dari baris perintah yang di luar skop panduan ini).
Untuk membuat "mount" baru, klik kanan nama pelayan dan pilih SR baharu.
Dalam contoh ini, kami akan menunjuk Xen ke bahagian Windows, jadi pilih "Perkongsian Fail Windows (CIFS)":
Lengkapkan Selanjutnya -> Seterusnya -> Selesaikan.
Dapatkan UUID SR
Untuk mendapatkan UUID SR, klik pada namanya di Pusat Xen dan pergi ke tab "Umum".
Untuk menyalin UUID, klik kanan dan pilih "salinan".
Dengan maklumat ini, anda sudah bersedia untuk mengedit fail tetapan.
Konfigurasikan fail Tetapan
Projek Xen-phoenix dilengkapi dengan templat fail "tetapan". Templat ini harus diedit untuk menggambarkan persediaan anda dan diluluskan sebagai hujah pertama kepada skrip.
Fail tetapan menetapkan perkara berikut:
- Lokasi eksport sumber - Jika anda telah mengikuti panduan ke titik ini, anda hanya perlu mengganti% UUID% dengan SR kerana ia diperolehi dari atas.
- Lokasi SendEmail - Jika anda telah memilih untuk mendayakan E-mel, anda perlu memasukkan di mana anda telah dieksekusi perl perlaksanaan di sini.
- Verifier - Ini mengendalikan prosedur mengembalikan semula prosedur pengesahan. Ini diaktifkan secara lalai, sebagai berjaya "mengembalikan tahap fail" tidak perlu bermakna VM berfungsi.
- Server_prep - Ini mengawal pra-memulihkan penghapusan semua VM pada pelayan DR. Ini diaktifkan secara lalai kerana diandaikan bahawa pelayan DR adalah pelayan berdedikasi untuk tujuan ini. Jika anda memerlukan VM yang berjalan di pelayan ini untuk tidak dihapuskan, konfigurasikannya untuk dikecualikan. Sekiranya tingkah laku ini tidak sesuai untuk keadaan anda, semata-mata matikan sepenuhnya.
- Butiran e-mel - Sekali lagi, jika anda telah mendayakan e-mel, anda perlu menentukan butiran seperti: To, From, Servername / IP &.
- Debugging - Lalai adalah untuk membuat debug dimatikan dengan nilai "0" (sifar). Anda tidak sepatutnya perlu menghidupkan ini, tetapi jika anda melakukannya, lebih banyak maklumat dicatatkan dalam segmen penyelesaian masalah.
Pelaksanaan
Skrip ini mengambil fail tetapan sebagai hujah pertama dan sebarang hujah lain seperti "Chevrons" untuk mencari (dipisahkan oleh ruang). Chevrons, adalah "rentetan", yang menyokong ungkapan biasa yang mewakili sekurang-kurangnya sebahagian daripada nama fail yang dikehendaki dari eksport VM.
Itulah, dalam bentuk yang paling mudah, suatu panggilan Xen-phoenix akan kelihatan seperti:
./Xen-phoenix.sh settings.cfg DevTools
Di mana dalam kes di atas, kita berada di dalam direktori yang memegang skrip & fail tetapan dan "Chevron" skrip yang akan dicari adalah "DevTools". Ini akan menyebabkan semua fail dalam direktori eksport dengan rentetan "DevTools" dalam nama mereka untuk diimport.
Contoh yang lebih kompleks boleh kelihatan seperti:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Di mana dalam contoh di atas, fail yang mengandungi perkataan "devtools" yang dieja dengan modal "D" dan "T" atau modal bukan modal, serta "AD" & "BI" dengan atau tanpa permodalan, akan diimport.
Penjadualan
Seperti yang dinyatakan di atas, kami akan menggunakan Cron untuk menjadualkan pelaksanaannya. Sebelum kita masuk ke dalam konfigurasi, ia adalah amat disyorkan bahawa anda mengkonfigurasi pakej SSMTP yang telah dipasang pada pelayan Xen anda. Walaupun ini adalah langkah pilihan, berbuat demikian akan memberi anda pengumpul "backwash". Mempunyai apa-apa "pengumpul backwash" boleh memberi isyarat kepada anda untuk perkara yang skrip tidak dapat.
Masukkan ke dalam mod pengeditan cron dengan mengeluarkan:
crontab -e
Jika anda telah mengikuti arahan di atas dan anda mahu menambah sandaran berjadual untuk Ahad pada 01:31 (1:31 pagi), masukan di bawah:
31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt ] ools
Di atas adalah betul dengan mengandaikan fail skrip dan tetapan anda berada di bawah "/ root / Xen-phoenix-master /".
Dapatkan e-mel (pilihan)
Kami telah menulis mengenai program SendEmail perl pada masa lalu, jadi tidak perlu mengulangi sini. Cukup untuk mengatakan, ia berfungsi dengan cara yang sama pada Linux seperti yang dilakukan pada Windows.
Walaupun membolehkan e-mel adalah pilihan, sangat disyorkan kerana skrip akan dapat:
- Maklumkan kepada anda apabila ia bermula & selesai berjalan.
- Peringatkan anda tentang sebarang kesilapan yang dapat mengesan dan mengendalikannya.
Muat turun ke pelayan 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 diekstrak ke. Anda memerlukannya untuk fail tetapan.
Menetapkan Tag "Hapus Pengecualian" (pilihan)
Xen-Phoenix mengambil halaman dari nenek moyangnya (Xen-Pocalypse) dan memberi anda kebolehan untuk mengecualikan VM dari penghapusan seluruh sistem menggunakan TAG kawalan. Untuk melakukan ini, anda perlu menentukan "Medan Tersuai" baru.
Untuk melakukan ini, buka pelayan atau bahkan ciri-ciri VM. Dalam anak tetingkap navigasi, pilih "Medan Tersuai".
Jika ini adalah kali pertama anda mentakrifkan "medan khusus" (seperti dalam contoh di atas), anda tidak akan mempunyai medan "Phoenix_keeper" untuk memasukkan data ke dalamnya, jadi anda perlu menciptanya. Untuk melakukan ini, klik pada "Edit Bidang Tersuai" dalam kotak dialog yang muncul, kemudian klik pada "Tambah ..."
Buat medan jenis "Teks" dengan nama "Phoenix_keeper".
Catatan: Nama medan khusus telah "dikodekan keras" ke dalam skrip, jadi anda HARUS tidak menyimpang dari ejaan di atas, kecuali anda mengubah kod yang relevan juga.
Sebaik sahaja bidang telah dicipta, anda harus melihat:
Menutup tetingkap. Anda kini harus mempunyai medan "Phoenix_keeper" untuk diisi, seperti dalam gambar di bawah.
Kini, apa yang perlu anda lakukan ialah mengisi medan ini dengan kata-kata (apa-apa kenyataan yang akan dilakukan), yang akan menyebabkan Xen-phoenix melangkauinya apabila memadam.
Penyelesaian masalah
Walaupun saya telah membuat banyak usaha untuk menjadikan skrip sebagai mudah digunakan dan sebagai pelindung yang mungkin, "dunia adalah makmal yang lebih besar". Maklumat di bawah boleh membantu anda menentukan apakah sumber masalah anda.
Pembalakan
Semua "pembalakan" dikumpulkan oleh tuan rumah Xen yang menjalankan skrip dalam mekanisme syslog. Ini, tentu saja, boleh dilihat dengan:
kurang + F / var / log / mesej
Anda mencari kata kunci "Xen-Phoenix".
Nota: Citrix telah menetapkan dasar pengekalan dua (2) hari untuk syslog pelayannya. Anda mungkin mahu menyimpannya dalam minda untuk postmortem.
Debugging
Seperti yang dinyatakan dalam segmen fail tetapan, terdapat arahan untuk mendayakan penyahpepijatan. Mendayakan penyahpepijatan akan menyebabkan skrip mengeluarkan keluaran pembalakan verbose ke konsol dan membuangnya daripada menghantar e-mel dan sebenarnya melaksanakan import, kecuali bendera yang berkaitan juga ditetapkan. Bendera yang mungkin dicatatkan dalam templat fail tetapan, dan ia membolehkan anda mendefinisi secara mendatar apa yang anda mahu debug.
Adalah harapan saya bahawa anda tidak memerlukan debugging dan anda menuai hasil kerja saya :)
Cukup fikirkan semua kemiskinan, kebencian dan kebohongan, Dan bayangkan kemusnahan semua yang kamu benci. Perlahan dari abu, phoenix akan muncul ...