ホームページ » の仕方 » Xen-pocalypseを使ってCitrix Xen VMを無料でバックアップする方法(Bash)

    Xen-pocalypseを使ってCitrix Xen VMを無料でバックアップする方法(Bash)

    Citrix Xen仮想マシン(VM)をバックアップする必要がありましたが、その作業を中断したくはありませんでしたか。 HTGはXen-pocalypseであなたのためにちょうどbashスクリプトを持っています.

    h.koppdelaneyによるイメージ、カスタムおよびHotfortechで立ち往生.

    Citrix Xenの優れた点の1つは、その機能の多くが 無料 充電します。それでも、「自動化されたVM保護と復旧」機能が必要な場合は、「事前」ライセンスの支払いを開始する必要があります。それでも、Active Directory、Databasesなどのような多くの種類のワークロードには不十分な、ディスクレベルのバックアップを購入するだけで済みます。これを克服するには、全体を節約できる「Live memory snapshot and revert」が必要です。 RAMの内容を含むマシン状態。ただし、この機能は「Enterprise」および「Platinum」エディションの一部であり、さらに高価です。 HTGが真のバックアップソフトウェアの価値を却下しているわけではありませんが、予算が限られていてバックアップ操作に多少のダウンタイムを気にしないのであれば、Xen-pocalypseが完全に合理的なソリューションであると思います。予算を確定する前に.

    概要

    「ユースケース」:バックアップが必要なVMがいくつかあります。右クリックを使用して「Xen Center」から「VMの電源を切ってファイルとしてエクスポートする」は問題ありませんが、このプロセスを自動的かつスケジュールどおりに実行することをお勧めします。このBashスクリプトは、その役割を実行するために「XE」コマンドを使用します。 XEはXenコマンドラインインターフェイス(CLI)で、「Xen Center」で「右クリック」を発行するのと同じです。 「スケジューリング」部分を提供するCronからスクリプトを呼び出します。最も単純な形式では、バックアップフローは次のとおりです。

    • ターゲットVMをオフにする.
    • VMをバックアップ場所にファイルとしてエクスポートする.
    • バックアップが開始される前にVMがオンになっていた場合は、再びオンになります。.

    割れてみましょう:)

    スクリプトを入手する

    Xen-pocalypseは、通常のgitメソッドを使って、githubから自由に入手することができます。それでも、まだgitに精通していないのであれば、このリンクでzipファイルを入手できます。スクリプトはいずれかのXenサーバー上で実行する必要があるので、実行許可が保持されるようにそこに解凍する必要があります。.

    https://github.com/aviadra/Xen-pocalypse/archive/master.zip
    解凍マスター

    上記はうまくいくでしょうが、あなたはGITメソッドを使うことをお勧めします。.

    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

    解凍した場所に注意してください。設定ファイルに必要になります.

    タグを定義する

    Citrix Xenには、フィルタリング機能用の「カスタムフィールド」を設定する機能があります。フィールドを作成してから、Xen-pocalypseで使用される情報を入力します。 Xen-pocalypseは、バックアップ用のタグの名前と親子関係を指定する3つのコントロールTAGを認識します。ファイル入力方式を使用しない場合は、少なくともバックアップタグ名フィールドを作成する必要があります。.

    これを行うには、サーバーまたはVMのプロパティを開きます。ナビゲーションペインで、[カスタムフィールド]を選択します.

    上記の例のように、初めて関係を定義する場合は、データを入力するためのフィールドがないため、作成する必要があります。これを行うには、ポップアップするダイアログボックスで[Edit Custom Fields]をクリックし、[Add…]をクリックします。

    3つの「テキスト」タイプのフィールドを作成します。 1つは「BackupTAG」と呼ばれ、他は「親」と「子供」と呼ばれます.

    注意: カスタムフィールドの名前はスクリプトに「ハードコード」されているので、関連するコードも変更しない限り、上記の綴りから逸脱してはいけません。.

    すべてのフィールドが作成されたら、次のようになります。

    ウィンドウを閉じます。下の図のように、「BackupTAG」、「親」、「子」の各フィールドに入力します。.

    どのVMがどの「BackupTAG」に属しているのかを指定するだけです。.
    たとえば、スクリプトが成長した会社では、木曜日と金曜日に毎週バックアップされるVM、アトラシアン製品のVMのスケジュール、および月に1回だけバックアップされるVMがありました。だから私たちの概要はこんな感じでした

    たとえば「weekly-fri」が「BackupTAG」の「カスタムフィールド」に入力したテキストです。きちんとしたね? :)

    親と子(オプション)

    このスクリプトの本当の利点は、それが「親」から「子」への関係をサポートしていることです。つまり、親の前にオフにしてバックアップする「子」VMのリストを設定することができます。また、これらの子は、親がバックアップを終了して元に戻された後にのみオンになります。に。これは、親VMをオフにすると、子のサービスが利用できなくなる場合に役立ちます。そのようなことは、子VMのサービスが2回利用できないことを意味します。1回は子のバックアッププロセス用、もう1回は親用です。この関係を作ることはその問題を克服する.

    たとえば、当社のすべてのAtlassian VMは単一のデータベース(DB)VMを使用していましたが、これもバックアップするように設定されていました。そのため、DB VMが他のVMの「親」であることに注目することで、シャットダウン→バックアップ→起動という適切な順序を保証できます。.

    これを書いている時点で、この関数にはいくつか注意点があります。

    1. このような関係になるVMの名前にはスペースを含めることができません。以下の例のように、スペースで区切られているため、VM名からスペースを削除する必要があります。.
    2. 親は1人だけです。テストされたことは言うまでもありません.

    この関係を作成するには、VMのプロパティを調べます。これが「親」であれば、その子供が誰であるかを書き、これが「子」であれば、彼の親が誰であるかを書きます。例えば:

    注:子の親を指定しないと、子の親の準備が整う前に子が開始され、2回バックアップされる可能性があります。.

    FILEメソッド(オプション)

    歴史的な理由から、Xen-pocalypseはバックアップ対象のVMのリストをテキストファイルとして取得することもサポートしています。 「コード」がまだそこにある間、機能性はTAGメソッドよりひどく劣っている、そしてそれ故それは推奨されない。それでも、何らかの理由でlistメソッドを使用したい場合は、以下の制限が適用されます。

    1. VMの名前にスペースや特殊文字を含めることはできません.
    2. 1行に指定できるVM名は1つだけです.
    3. 空白行は許されません.

    リストを生成するには、XenセンターからVMの名前をコピーするか、Xenホストで実行します。

    xe vm-list | grep name-label | awk 'print $ 4' |ソート

    上記のリストを通常のテキストファイルにコピーする.

    バックアップ場所

    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-pocalypseプロジェクトには「設定」ファイルテンプレートがバンドルされています。このテンプレートはあなたの設定を反映するように編集され、スクリプトの最初の引数として渡されるべきです。設定ファイルは以下を指定します。

    メソッド バックアップ対象のVMを取得する方法 - デフォルトの方法はTAGです。これをFILEに変更することはできますが、これはお勧めできません.

    場所 バックアップ先の説明 - この時点までのガイドに従っている場合は、%UUID%をSRで置き換えられている必要があります。.

    SendEmailの場所  - Eメールを有効にすることを選択した場合は、ここでperl実行可能ファイルを抽出した場所を入力する必要があります。.

    メールの詳細 - また、Eメールを有効にしている場合は、To、From、Servername / IPなどの詳細を定義する必要があります。.

    圧縮 - これはデフォルトで「No」に設定されています。有効にすると、より小さいバックアップファイルが作成されますが、バックアップ手順もかなり長い時間実行されるためです。.

    空き容量を確認する コピー先 - これは、VMのバックアップを作成してもバックアップ先の空き容量が10GB以下にならないことをスクリプトで確認します。これは、1台の非常に大きなVMではなく、最も多くのVMを確実にバックアップするために行われます。計算は、VMに関連付けられているすべてのHDの総ディスクサイズ合計を使用して行われます。.

    デバッグ  - デフォルトでは、「0」(ゼロ)の値でデバッグがオフになります。これをオンにする必要はありませんが、オンにした場合は、トラブルシューティングセグメントに詳細情報が記載されています。.

    実行/スケジューリング

    その最も単純な形式では、Xen-pocalypseの呼び出しは次のようになります。

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

    上記のケースでは、スクリプトと設定ファイルが入っているディレクトリの中にいます。スクリプトが探す「Tag」は「weekly-fri」です。.

    上記のように、実行をスケジュールするためにCronを使用します。設定に入る前に、 強くお勧めします Xenサーバーに既にインストールされているSSMTPパッケージを構成すること。これはオプションのステップですが、そうすることで逆洗コレクターが得られます。そのような「逆洗コレクター」を持つことは、スクリプトができないことについてあなたに警告するかもしれません.

    次のコマンドを発行して、cronの編集に入ります。

    クロンタブ-e

    上記の手順に従い、金曜日の18時01分(午後6時01分)にスケジュールバックアップを追加する場合は、次のように入力します。

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

    スクリプトと設定ファイルが両方とも“ / root / Xen-pocalypse-master /”にあると仮定すると、上記は正しいです。.

    トラブルシューティング

    スクリプトをできるだけ使いやすく、できるだけ簡単にできるようにするために多大な努力を払っていますが、「世界はより大きなラボです」。下記の情報はあなたがあなたの悩みの原因であるものを確かめるのを助けるかもしれません.

    進捗

    この1つのライナーを使用して、進行中のすべてのタスクをすばやく「監視」して、それらが実際にまったく進行しているのかどうか、または実際に動かなくなっているのかどうかを確認できます。.

    while [-e / dev / null]; VMに対しては "$(xe task-list | grep uuid | awk 'print $ 5')"を指定してください。 xe task-param-getパラメータ名= progress uuid = $ VM;スリープ1;完了しました。終わった

    視聴を停止するには、Ctrl + Cを押して「whileループ」を停止します。.

    ロギング

    すべての「ロギング」は、syslogメカニズムでスクリプトを実行しているXenホストによって収集されます。もちろんこれは次のように見ることができます。

    少ない+ F / var / log / messages

    あなたはキーワード「Xen-pocalypse」を探しています.

    注:Citrixは、サーバーのsyslogに対して2日間の保存ポリシーを設定しました。あなたは死後のことを心に留めておくことをお勧めします.

    デバッグ

    設定ファイルのセグメントで述べたように、デバッグを有効にするためのディレクティブがあります。デバッグを有効にすると、関連するフラグも設定されていない限り、スクリプトは詳細なログをコンソールに出力し、電子メールを送信して実際にエクスポートを実行しないようにします。可能性のあるフラグは設定ファイルのテンプレートに記載されていて、デバッグしたいものをきめ細かく定義することができます。.

    あなたがデバッグを必要としておらず、あなたが私の労働の成果を享受していることを私は願っています:)


    推力、私の男、あなたはナンバーワンの詐欺師になろうとしている…