Cara Backup Citrix Xen VMs Gratis dengan Xen-pocalypse (Bash)

Daftar Isi:

Cara Backup Citrix Xen VMs Gratis dengan Xen-pocalypse (Bash)
Cara Backup Citrix Xen VMs Gratis dengan Xen-pocalypse (Bash)

Video: Cara Backup Citrix Xen VMs Gratis dengan Xen-pocalypse (Bash)

Video: Cara Backup Citrix Xen VMs Gratis dengan Xen-pocalypse (Bash)
Video: Cara Mengembalikan File Data yang Hilang Terhapus Terformat dari FlashDisk dan Harddisk - YouTube 2024, April
Anonim
Pernahkah Anda perlu mem-backup Citrix Xen Virtual Machines (VMs) Anda tetapi tidak ingin merusak bank melakukannya? HTG hanya memiliki skrip bash untuk Anda dengan Xen-pocalypse.
Pernahkah Anda perlu mem-backup Citrix Xen Virtual Machines (VMs) Anda tetapi tidak ingin merusak bank melakukannya? HTG hanya memiliki skrip bash untuk Anda dengan Xen-pocalypse.

Gambar oleh h.koppdelaney, Stuck di Custom dan Hotfortech.

Salah satu hal yang menyenangkan di Citrix Xen adalah banyak fiturnya bebas biaya. Dengan demikian, jika Anda menginginkan fitur "Perlindungan VM otomatis dan pemulihan", Anda harus mulai membayar untuk lisensi "Muka". Bahkan kemudian, Anda hanya membayar untuk cadangan tingkat disk, yang tidak cukup untuk banyak jenis beban kerja seperti direktori Aktif, Database & Dll. Untuk mengatasi ini, Anda mungkin ingin "Live snapshot memori dan kembali", yang dapat menyimpan seluruh keadaan mesin, termasuk isi RAM. Namun, fitur itu adalah bagian dari edisi "Perusahaan" dan "Platinum", yang bahkan lebih mahal. Bukannya kami di HTG mengabaikan nilai dari perangkat lunak cadangan yang sebenarnya, tetapi jika Anda pada anggaran yang ketat dan tidak keberatan beberapa downtime untuk operasi cadangan, Anda mungkin menemukan Xen-pocalypse menjadi solusi yang masuk akal. sebelum Anda membuat komitmen anggaran.

Ikhtisar

The "use case": Anda memiliki beberapa VM yang membutuhkan cadangan. "Mematikan VM dan mengekspornya sebagai file" dari "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 menjalankan tugasnya. XE adalah antarmuka baris perintah Xen (CLI), otomatis setara untuk mengeluarkan "klik kanan" di "Xen Center". Kami akan memanggil skrip dari Cron yang akan menyediakan bagian "penjadwalan". Dalam bentuk yang paling sederhana, aliran cadangan adalah:

  • Matikan VM target.
  • Ekspor VM sebagai file ke lokasi cadangan.
  • Jika VM dihidupkan, sebelum pencadangan dimulai, itu akan diaktifkan kembali.

Ayo dapatkan cracking:)

Dapatkan skripnya

Xen-pocalypse dapat diperoleh dengan bebas dari github, menggunakan metode git biasa. Dengan demikian, jika Anda belum menguasai git, Anda dapat mengambil file zip dengan tautan ini. Karena skrip perlu dijalankan di salah satu server Xen Anda, Anda harus mengekstraknya di sana agar izin eksekusi dipertahankan.

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master

Sementara hal di atas akan berhasil, Anda disarankan untuk menggunakan metode GIT, sehingga Anda dapat memperoleh manfaat dari pembaruan di masa mendatang.

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 kapan mulai & selesai berjalan.
  • Beri tahu Anda tentang kesalahan apa pun yang dapat dideteksi dan ditangani.
  • Menginformasikan diskualifikasi cadangan karena masalah ruang. (Perilaku ini dapat dinonaktifkan jika tidak diinginkan)

Unduh ke server Xen dan ekstrak.

wget https://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

Citrix Xen memberi Anda kemampuan untuk mengkonfigurasi "Custom Fields" untuk kemampuan penyaringan. Kami akan membuat Fields dan kemudian mengisinya dengan informasi yang digunakan oleh Xen-pocalypse. Xen-pocalypse mengenali 3 TAG kontrol yang menunjuk nama tag untuk cadangan dan hubungan induk ke anak. Jika Anda tidak berniat menggunakan metode input file, Anda HARUS membuat setidaknya bidang nama tag cadangan.

Untuk melakukan ini, buka server atau bahkan properti VM. Di panel navigasi, pilih "Bidang Kustom".

Jika ini adalah pertama kalinya Anda menentukan hubungan (seperti pada contoh di atas), Anda tidak akan memiliki bidang apa pun untuk memasukkan data, jadi Anda perlu membuatnya. Untuk melakukan ini, klik "Edit Bidang Kustom" di kotak dialog yang muncul, klik "Tambah …"
Jika ini adalah pertama kalinya Anda menentukan hubungan (seperti pada contoh di atas), Anda tidak akan memiliki bidang apa pun untuk memasukkan data, jadi Anda perlu membuatnya. Untuk melakukan ini, klik "Edit Bidang Kustom" di kotak dialog yang muncul, klik "Tambah …"
Buat tiga (3) bidang jenis "Teks". Satu akan disebut "BackupTAG" dan yang lainnya "Induk" dan "Anak-anak".
Buat tiga (3) bidang jenis "Teks". Satu akan disebut "BackupTAG" dan yang lainnya "Induk" dan "Anak-anak".

catatan: Nama-nama bidang khusus, telah "dikodekan keras" ke dalam skrip, jadi Anda TIDAK HARUS menyimpang dari ejaan di atas, kecuali Anda mengubah kode yang relevan juga.

Setelah semua bidang dibuat, Anda akan melihat:

Tutup jendelanya. Sekarang Anda harus memiliki kolom "BackupTAG", "Induk", dan "Anak-anak" untuk diisi, seperti pada gambar di bawah.
Tutup jendelanya. Sekarang Anda harus memiliki kolom "BackupTAG", "Induk", dan "Anak-anak" untuk diisi, seperti pada gambar di bawah.
Image
Image

Sekarang yang harus Anda lakukan hanyalah menunjuk VM mana yang termasuk dalam "BackupTAG". Sebagai contoh, di perusahaan tempat skrip ditumbuhkan, kami memiliki VM yang akan dicadangkan mingguan pada hari Kamis dan Jumat, jadwal untuk VM produk Atlassian kami dan beberapa yang akan dicadangkan hanya setiap bulan. Jadi gambaran umum kami tampak seperti:

Image
Image

Di mana misalnya "mingguan-fri" adalah teks yang kami masukkan ke "BackupTAG" "Bidang Kustom". Rapi ya?:)

Orangtua & Anak-anak (opsional)

Keindahan nyata dari skrip ini adalah bahwa ia mendukung hubungan "orang tua" dengan "anak". Yaitu, dimungkinkan untuk menetapkan daftar VM “anak” yang akan dimatikan dan dicadangkan sebelum orang tua, dan bahwa anak-anak ini hanya akan dihidupkan kembali setelah orang tua menyelesaikan cadangannya dan telah dikembalikan di.Ini berguna dalam kasus di mana mematikan VM induk akan menyebabkan layanan pada anak menjadi tidak tersedia. Hal semacam itu berarti layanan pada VM anak tidak akan tersedia dua kali, satu kali untuk proses pencadangan anak dan satu kali untuk orang tua. Menciptakan hubungan ini mengatasi masalah itu.

Sebagai contoh, semua dari Atlassian VM kami menggunakan VM DataBase (DB) tunggal, yang juga diatur untuk dicadangkan. Jadi dengan mencatat bahwa DB VM adalah "Induk" untuk VM lain, urutan shutdown yang tepat -> cadangan -> startup, dapat dipastikan.

Pada saat penulisan ini, fungsi ini memiliki beberapa peringatan:

  1. Nama-nama VM yang memiliki hubungan semacam itu tidak dapat berisi spasi. Anda harus menghapus spasi dari nama VM Anda, karena mereka akan dibatasi oleh ruang, seperti pada contoh di bawah ini.
  2. Hanya ada satu orang tua. Menunjuk lebih dari satu bahkan belum direncanakan, belum lagi diuji.

Untuk membuat hubungan ini, masuki properti VM. Jika ini adalah "orang tua", tulislah siapa anak-anaknya dan jika ini adalah "anak", tulislah siapa orang tuanya. Sebagai contoh:

Catatan: Tidak menunjuk Orangtua untuk seorang anak dapat menyebabkan anak tersebut dimulai sebelum induknya siap, dan dapat menyebabkannya dicadangkan dua kali.
Catatan: Tidak menunjuk Orangtua untuk seorang anak dapat menyebabkan anak tersebut dimulai sebelum induknya siap, dan dapat menyebabkannya dicadangkan dua kali.

Metode FILE (Opsional)

Untuk alasan historis, Xen-pocalypse juga mendukung daftar VMs untuk dicadangkan sebagai file teks. Sementara "kode" masih ada di sana, fungsinya sangat inferior dengan metode TAG dan oleh karena itu tidak disarankan. Dengan demikian, jika Anda lebih suka menggunakan metode daftar karena beberapa alasan, pembatasan berikut berlaku:

  1. Nama-nama VM tidak boleh berisi spasi atau karakter khusus apa pun.
  2. Hanya ada satu nama VM per baris.
  3. Baris kosong tidak diizinkan.

Untuk menghasilkan daftar, salin nama VM dari pusat Xen, atau jalankan pada host Xen:

xe vm-list | grep name-label | awk

'{ print $4 }' | sort

Salin daftar di atas ke file teks biasa.

Lokasi cadangan

Sementara secara acak mengaduk-aduk Citrix Xen, saya telah menemukan bahwa Storage Repositories (SRs) tersedia untuk digunakan di bawah "/ var / run / sr-mount /% UUID%" di mana UUID adalah pengidentifikasi unik dari SR, yang dapat diperoleh dari GUI.

Ini berarti kita dapat menggunakan wizard "Next -> Next -> Finish" biasa untuk membuat mount ke lokasi backup yang diinginkan, dan kemudian memiliki skrip yang menggunakan path tersebut (sebagaimana disarankan untuk mengacaukan pemasangan dari baris perintah), tetapi melakukan demikian di luar lingkup 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)":
Dalam contoh ini kita akan mengarahkan Xen ke share windows, jadi pilih "Windows File Sharing (CIFS)":
Lengkapi Berikutnya -> Berikutnya -> Selesai.
Lengkapi Berikutnya -> Berikutnya -> Selesai.

Dapatkan UUID SR

Untuk mendapatkan UUID SR, cukup klik namanya di Pusat Xen dan buka tab "Umum".

Untuk menyalin UUID, cukup klik kanan dan pilih "copy".
Untuk menyalin UUID, cukup klik kanan dan pilih "copy".
Dengan informasi ini di tangan, Anda siap untuk mengedit file pengaturan.
Dengan informasi ini di tangan, Anda siap untuk mengedit file pengaturan.

Konfigurasikan file Pengaturan.

Proyek Xen-pocalypse datang dibundel dengan template file "pengaturan". Template ini harus diedit untuk mencerminkan pengaturan Anda dan lulus sebagai argumen pertama pada skrip. File pengaturan menunjukkan yang berikut:

Metode untuk mendapatkan VM yang akan dicadangkan - Metode defaultnya adalah TAG. Anda dapat mengubahnya ke FILE, tetapi ini tidak disarankan.

Lokasinya tujuan cadangan - Jika Anda telah mengikuti panduan hingga 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 dieksekusi di sini.

Detail email -Sekali lagi, jika Anda telah mengaktifkan email, Anda perlu menentukan detail seperti: Ke, Dari, Servername / IP & dll '.

Kompresi - Ini disetel ke "Tidak" secara default, karena ketika mengaktifkannya akan menghasilkan file cadangan yang lebih kecil, ini juga akan menyebabkan prosedur pencadangan berjalan untuk waktu yang jauh lebih lama.

Periksa ruang kosong pada tujuan - Ini akan memiliki pemeriksaan skrip yang membuat backup VM tidak akan menyebabkan ruang bebas lokasi cadangan jatuh di bawah 10GB. Ini dilakukan untuk memastikan jumlah VM paling banyak di-backup, bukan hanya satu VM yang sangat besar. Perhitungan dilakukan menggunakan total ukuran disk bruto dari semua HD yang terkait dengan VM.

Debugging - Defaultnya adalah memiliki debugging yang dimatikan dengan nilai "0" (nol). Anda tidak perlu mengaktifkan ini, tetapi jika Anda melakukannya, informasi lebih lanjut dicatat dalam segmen pemecahan masalah.

Eksekusi / Penjadwalan

Dalam bentuk yang paling sederhana, sebuah doa Xen-pocalypse akan terlihat seperti:

./Xen-backup.sh settings.cfg weekly-fri

Di mana dalam kasus di atas, kita berada di dalam direktori yang menyimpan script & file pengaturan. "Tag" yang akan dicari skrip adalah "mingguan-fri".

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 di server Xen Anda. Meskipun ini merupakan langkah opsional, tindakan ini akan memberi Anda kolektor backwash. Memiliki "pengumpul backwash" semacam itu dapat mengingatkan Anda tentang hal-hal yang skrip tidak dapat lakukan.

Masuk ke dalam pengeditan cron lebih banyak dengan menerbitkan:

crontab -e

Jika Anda telah mengikuti petunjuk di atas dan Anda ingin menambahkan cadangan terjadwal untuk hari Jumat pukul 18:01 (18:01), masukkan di bawah ini:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

Di atas benar dengan asumsi skrip dan file pengaturan Anda keduanya di bawah “/ root / Xen-pocalypse-master /”.

Penyelesaian masalah

Meskipun saya berupaya keras membuat skrip mudah digunakan dan sesedan mungkin, "Dunia adalah lab yang lebih besar". Informasi di bawah ini dapat membantu Anda memastikan apa sumber masalah Anda.

Kemajuan

Anda mungkin ingin menggunakan liner satu ini untuk secara cepat “mengawasi” semua tugas yang sedang berlangsung, untuk melihat apakah mereka benar-benar maju atau jika mereka benar-benar terjebak.

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done

Untuk berhenti menonton, gunakan Ctrl + C untuk mengerem “while loop”.

Logging

Semua "logging" dikumpulkan oleh host Xen menjalankan skrip dalam mekanisme syslog. Ini tentu saja dapat dilihat dengan:

less +F /var/log/messages

Anda mencari kata kunci "Xen-pocalypse".

Catatan: Citrix telah menetapkan kebijakan penyimpanan dua (2) hari untuk syslog servernya. Anda mungkin ingin mengingatnya untuk postmortem.

Debugging

Seperti yang tercatat di segmen file pengaturan, ada petunjuk untuk mengaktifkan debugging. Mengaktifkan debugging akan menyebabkan skrip untuk menampilkan pencatatan log verbose ke konsol dan mengebornya dari mengirim email dan benar-benar melakukan ekspor, kecuali bendera yang relevan juga ditetapkan. Flag-flag yang memungkinkan dicatat dalam template file pengaturan dan mereka memungkinkan Anda untuk menentukan secara rinci apa yang ingin Anda debug.

Ini adalah harapan saya bahwa Anda tidak memerlukan debugging apa pun dan Anda sedang menuai hasil kerja saya:)

Dorong, laki-laki saya, Anda akan menjadi nomor satu decepticon …

Direkomendasikan: