Xen-Phoenix(Bash)でCitrix-Xen VMを無料で復元する方法
災害復旧(DR)ソリューションのためにCitrix-Xen VMを一括復元する必要があるか、単にバックアップが機能していることをテストする必要がありましたか。 HTGがVM復元のための無料のbashスクリプトであるXen-Phoenixの使い方を説明します.
写真提供:Ryan McCurdy、Compfight cc
「Xen-pocalypseを使って無料でCitrix Xen VMをバックアップする方法」で説明したように、Citrix Xenの優れた点の1つは、その機能の多くが 無料 充電します。それでも、「自動化されたVM保護と復旧」機能が必要な場合は、「事前」ライセンスの支払いを開始する必要があります。繰り返しになりますが、HTGが真のバックアップソリューションの価値を却下しているわけではありませんが、予算が限られている場合は、すでにハイパーバイザーからVMイメージを取得しており、自動化する方法が必要です。 "/" DR更新 "の手順をテストして、予算を確定する前にXen-Phoenixが完全に合理的な解決策であると思うかもしれません。.
概要
「ユースケース」:復元が必要なVMがいくつかあります。右クリックを使用して「Xen Center」にインポートしても問題ありませんが、このプロセスは自動的にスケジュールに従って実行する必要があります。このBashスクリプトは、その役割を実行するために「XE」コマンドを使用します。 XEはXenコマンドラインインターフェイス(CLI)で、「Xen Center」で「右クリック」を発行するのと同じです。 「スケジューリング」部分を提供するCronからスクリプトを呼び出します。最も単純な形式の復元フローは次のとおりです。
- 削除する サーバー上のすべての*以前から存在するVM
- バックアップ場所のファイルからVMをインポートする.
- すべての仮想マシンを1つずつアクティブ化し、ゲストツールのハートビートを探すことで、すべての仮想マシンが動作可能であることを確認します。.
- ハートビートが検出されたとき、またはタイムアウトになったときにVMをオフにする.
*すべてのVMを削除する動作を完全に無効にすることができ、例外をサポートします(下記参照)。.
割れてみましょう:)
スクリプトを入手する
Xen-phoenixは、通常のgitメソッドを使って、githubから自由に入手することができます。それでも、まだgitに精通していないのであれば、このリンクでzipファイルを入手できます。スクリプトはいずれかのXenサーバー上で実行する必要があるので、実行許可が保持されるようにそこに解凍する必要があります。.
https://github.com/aviadra/Xen-phoenix/archive/master.zip
解凍マスター
上記はうまくいくでしょうが、将来のアップデートから利益を得るためにGITメソッドを使用することをお勧めします。.
輸出場所
VMエクスポートをどこから取得するかを設定する必要があります。.
Citrix Xenではランダムに調べていますが、ストレージリポジトリ(SR)は“ / var / run / sr-mount /%UUID%”で使用できます。UUIDはSRの一意の識別子です。 GUIから取得.
これは、通常の「次へ - >次へ - >完了」ウィザードを使用して目的のバックアップ場所に「マウント」を作成し、スクリプトにそのパスを使用させることができることを意味します。このガイドの範囲を超えて.
新しい「マウント」を作成するには、サーバー名を右クリックして「New SR」を選択します。.
この例では、XenがWindows共有を指すようにするので、「Windows File Sharing(CIFS)」を選択します。
次へ - >次へ - >完了.
SRのUUIDを入手する
SRのUUIDを取得するには、Xen Centerでその名前をクリックして「全般」タブに移動します。.
UUIDをコピーするには、それを右クリックして「コピー」を選択してください。.
この情報が手元にあれば、設定ファイルを編集する準備ができています。.
設定ファイルを構成する
Xen-phoenixプロジェクトには「設定」ファイルテンプレートがバンドルされています。このテンプレートはあなたの設定を反映するように編集され、スクリプトの最初の引数として渡されるべきです。.
設定ファイルは以下を指定します。
- ソースのエクスポート先 - ここまでの手順に従った場合は、%UUID%を上記で取得したSRに置き換えてください。.
- SendEmailの場所 - Eメールを有効にすることを選択した場合は、ここでperl実行可能ファイルを抽出した場所を入力する必要があります。.
- 検証 - 復元後の検証手順を制御します。 「ファイルレベルの復元」が成功したからといって、正常に機能しているとは限らないため、これはデフォルトで有効になっています。.
- Server_prep - これは復元前を制御します 削除 DRサーバー上のすべてのVMの。 DRサーバーはこの目的のための専用サーバーであると想定されているため、これはデフォルトで有効になっています。このサーバーで実行されているVMを削除しないようにする必要がある場合は、それを除外するように構成してください。この動作が自分の状況に合わない場合は、単に完全に無効にしてください。.
- メールの詳細 - また、Eメールを有効にしている場合は、To、From、Servername / IPなどの詳細を定義する必要があります。.
- デバッグ - デフォルトでは、「0」(ゼロ)の値でデバッグがオフになっています。オンにする必要はありませんが、オンにした場合は、トラブルシューティングの章に詳細な情報が記載されています。.
実行
このスクリプトは、設定ファイルを最初の引数として取り、その他の引数を検索するために「山形文字」として取ります(スペースで区切られています)。山形文字は、VMエクスポートの目的のファイル名の少なくとも一部を表す正規表現をサポートする「文字列」です。.
つまり、最も単純な形式では、Xen-phoenixの呼び出しは次のようになります。
./Xen-phoenix.sh settings.cfg DevTools
上記のケースでは、スクリプトと設定ファイルを格納するディレクトリ内にスクリプトがある「Chevron」が「DevTools」です。これにより、exportsディレクトリ内の名前に "DevTools"という文字列を含むすべてのファイルがインポートされます。.
より複雑な例は次のようになります。
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
上記の例では、大文字の「D」と「T」または大文字以外のスペル、および大文字と小文字の区別なしの「AD」と「BI」で綴られた単語「devtools」を含むファイルがインポートされます。.
スケジューリング
上記のように、実行をスケジュールするためにCronを使用します。設定に入る前に、 強くお勧めします Xenサーバーに既にインストールされているSSMTPパッケージを構成すること。これはオプションの手順ですが、そうすることで「逆洗」コレクタが得られます。そのような「逆洗コレクター」を持つことは、スクリプトができないことをあなたに警告するかもしれません.
次のコマンドを発行してcronの編集モードに入ります。
クロンタブ-e
上記の指示に従い、日曜日の午前1時31分(午前1時31分)にスケジュールバックアップを追加する場合は、次のように入力します。
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
スクリプトと設定ファイルが両方とも“ / root / Xen-phoenix-master /”にあると仮定すると、上記は正しいです。.
SendEmailを入手する(オプション)
我々は過去にSendEmailのperlプログラムについて書いたので、ここで繰り返す必要はありません。言い換えれば、LinuxでもWindowsでも同じように機能します。.
電子メールを有効にすることはオプションですが、スクリプトが次のことができるようになるため、強くお勧めします。
- 起動時および実行終了時に通知する.
- 検出して処理できたエラーを警告します.
Xenサーバーにダウンロードして解凍します。.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
解凍した場所に注意してください。設定ファイルに必要になります.
「削除例外」タグの定義(オプション)
Xen-Phoenixはその先祖(Xen-Pocalypse)からページを取り出し、コントロールTAGを使用してシステム全体の削除からVMを細かく除外することができます。これを行うには、新しい「カスタムフィールド」を定義する必要があります。.
これを行うには、サーバーまたはVMのプロパティを開きます。ナビゲーションペインで、[カスタムフィールド]を選択します.
(上記の例のように)初めて「カスタムフィールド」を定義する場合は、データを入力するための「Phoenix_keeper」フィールドがないため、作成する必要があります。これを行うには、ポップアップ表示されるダイアログボックスで[Edit Custom Fields]をクリックしてから、[Add…]をクリックします。
「Phoenix_keeper」という名前の「Text」タイプのフィールドを作成します。.
注意: カスタムフィールドの名前はスクリプトに「ハードコード」されているので、関連するコードも変更しない限り、上記の綴りから逸脱してはいけません。.
フィールドが作成されると、次のようになります。
窓を閉めて。下の図のように、「Phoenix_keeper」フィールドに記入する必要があります。.
さて、あなたがしなければならないのは、削除するときXen-phoenixがそれをスキップさせるであろうコメントをこのフィールドに入れることだけです(任意のコメントはそうするでしょう)。.
トラブルシューティング
スクリプトをできるだけ使いやすく、できるだけ簡単にできるようにするために多大な努力を払っていますが、「世界はより大きなラボです」。下記の情報はあなたがあなたの悩みの原因であるものを確かめるのを助けるかもしれません.
ロギング
すべての「ロギング」は、syslogメカニズムでスクリプトを実行しているXenホストによって収集されます。これは、もちろん、と見ることができます:
少ない+ F / var / log / messages
「Xen-Phoenix」というキーワードを探しています.
注:Citrixは、サーバーのsyslogに対して2日間の保存ポリシーを設定しました。あなたは死後のことを心に留めておくことをお勧めします.
デバッグ
設定ファイルのセグメントで述べたように、デバッグを有効にするためのディレクティブがあります。デバッグを有効にすると、関連するフラグも設定されていない限り、スクリプトは詳細なログをコンソールに出力し、電子メールを送信して実際にインポートを実行しないようにします。可能性のあるフラグは設定ファイルのテンプレートに記載されていて、デバッグしたいものをきめ細かく定義することができます。.
あなたがデバッグを必要としておらず、あなたが私の労働の成果を享受していることを私は願っています:)
すべての貧困、憎しみ、そして嘘について考えてください。そして、あなたが軽蔑するものすべての破壊を想像してください。灰からゆっくりと、フェニックスが起こるでしょう…