この記事では、自動バックアップの構成と、無料の
ghettoVCBスクリプトを使用してESX(i)プラットフォームで実行されている仮想マシンを復元する例を説明します。 バージョンESXi 5.xに焦点を当てますが、同じツールはバージョン3.5-6.xでも機能しますが、以前のバージョンでは設定がわずかに異なります。 バックアップはNFSサーバーで実行されます。 レポートは郵便局に送信されます。 バックアップ中に、仮想マシンのスナップショット(作業中のものを含む)が取得され、マシンのVMDKディスクが保存され、画像が削除されます。
ghettoVCBプロジェクトは十分に文書化されていますが、実装の過程でこの指示をもたらす微妙な違いがありました。 この記事が初心者の管理者に役立つことを願っています。
- バックアップ設定
- ESXiサーバー構成の保存
- バックアップからのマシンの復元
- 参照資料
バックアップ設定
まず、バックアップを作成するNFSサーバーを好みに合わせて準備します。 私の場合、これらはFreeNAS(Freebsd 9.3)と重複排除と圧縮を有効にしたZFSデータセットであり、スペースを大幅に節約します。 ESXiサーバーでのセットアップは、SSHを介して
rootとして実行されます。 管理者権限を持つ別のユーザーの下では可能ですが、コンソールから検証用のスクリプトを実行することはできません。 始めましょう。
1.設定するには、SSH経由でサーバーにアクセスし、vSphereクライアント経由で有効にする必要があります。
Configuration -> security profile -> properties -> SSH
2.
githubリポジトリからスクリプトを取得し、コンテンツをサーバーに配置します。 必ず実行ビットを設定してください。設定しないと、スクリプトは機能しません。
3. 1週間に1回、4週間のサイクルでバックアップします。 期限切れのバックアップは削除されます。 適切な構成ファイルを作成します。
主なパラメーターは次のとおりです。
- VM_BACKUP_VOLUME-nfsパーティションがマウントされるESXiサーバー上のパス。
- DISK_BACKUP_FORMAT = thin-バックアップ中に作成されるディスクのVMDK形式。
- VM_BACKUP_ROTATION_COUNT-保存されたバックアップの数。
- POWER_VM_DOWN_BEFORE_BACKUP = 0-バックアップの前にマシンをオフにしないでください。
- ENABLE_COMPRESSION = 0-データを押さないで、zfsに残します。
- ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP = 0-スナップショットを使用したマシンのバックアップ(最近のバージョンのスクリプトはこれを実行できますが、必要ありません)。
- ENABLE_NON_PERSISTENT_NFS = 1-nfsドライブはバックアップ中のみ接続されます。
- UNMOUNT_NFS = 1-その後切断されます。
- NFS_SERVERおよびNFS_MOUNT-nfsディスクの座標。
- NFS_LOCAL_NAME-接続されたアレイに割り当てられる名前(データストアID)。
- NFS_VM_BACKUP_DIR-コピーが追加されるパス(VM_BACKUP_VOLUMEに相対的)。
- EMAIL_LOG = 1-レポートをメールで送信できるようにします。
- EMAIL_ *-メールパラメータ設定。
ESXiサーバーに、同じ座標(サーバー/パス)のnfsディスクが既に接続されている場合、ディスクは接続されません。
レターの本文は、スクリプトの実行中に形成され、
nc
ユーティリティによって送信されます。 これにより、メールサーバー側で「
Recipient address rejected: Improper use of SMTP command pipelining
」という引数でエラーが発生する可能性があります。 ESXiサーバーの対応するチェックを除外する必要があります(後
reject_unauth_pipelining
場合は
reject_unauth_pipelining
になります)。
4.バックアップが必要なマシンのリストを作成します。
esxcli vm process list
コマンドを使用して取得できます。 リストの各行は1台のマシンです。
頻度とパラメーターが異なる複数のバックアップ計画が必要な場合は、必要な数の構成を作成します。
5.
cronを設定して、定期的なタスクを実行します。
システム時刻はUTCになっているため、現在のタイムゾーンに合わせて調整する必要があります。 私の場合、+ 7時間-バックアップは日曜日の午前1時に開始されます。 ログを書き込む(または/ dev / nullにリダイレクトする)必要があります。そうしないと、ユーザーに割り当てられたバッファーがいっぱいになったときにスクリプトがフリーズする場合があります。 構文
$((($(date +\%d)-1)/7+1))
は月の週番号を与えるので、ゴミを取得しません。
6.
cronを再起動します。
7.メールを送信するには、ESXiサーバーのファイアウォールに送信トラフィックの許可を追加する必要があります。
次のように、「vCenterUpdate」という名前のマシンのテストバックアップテストを実行できます。
マシンのリストを手動で実行します。
マシンの各コピーは、次の形式のディレクトリに保存されます。
autobackup/vm01/VMNAME/VMNAME-FULL_DATE/
そして、
* .vmdk形式のマシンディスクとマシン構成ファイル
* .vmxになります。
ESXiサーバー構成の保存
上記のESXi設定は、最初の再起動まで有効です。 構成を保存するには、いくつかのアクションを実行する必要があります。
1. cronスクリプトをブートスクリプトに変更するコマンドを追加します。
2.ファイアウォール設定を保存するために、独自のVIBパッケージを作成し、サーバーにインストールします。 これを行うには、
VIB Authorユーティリティを使用します。 残念ながら、32ビットアーキテクチャ専用であるため、lxcコンテナを使用する必要がありました。 インストールするとき、フォームの依存関係を誓うのは怖いことがあります:
しかし、これは重要ではありません
rpm --nodeps
キーで節約できます。
VIBパッケージをビルドするためのディレクトリツリーを準備します。
そして、2つのファイルを作成します。 最初はパッケージの説明です:
# cat stage/descriptor.xml <vib version="5.0"> <type>bootbank</type> <name>mailFirewall</name> <version>5.0.0-0.0.1</version> <vendor>Lelik.13a</vendor> <summary>Custom VIB from Lelik.13a</summary> <description>Adds custom firewall rule for mail sender to ESXi host</description> <relationships> <depends> </depends> <conflicts/> <replaces/> <provides/> <compatibleWith/> </relationships> <software-tags> </software-tags> <system-requires> <maintenance-mode>false</maintenance-mode> </system-requires> <file-list> </file-list> <acceptance-level>community</acceptance-level> <live-install-allowed>true</live-install-allowed> <live-remove-allowed>true</live-remove-allowed> <cimom-restart>false</cimom-restart> <stateless-ready>true</stateless-ready> <overlay>false</overlay> <payloads> <payload name="payload1" type="vgz"></payload> </payloads> </vib>
パラメータの詳細な手順は、ユーティリティのWebサイトで見つけることができます。
そして、2番目のファイルはemail.xmlで、その内容は上記に記載されています。 そして、それはパス
stage/payloads/payload1/etc/vmware/firewall/email.xml
れます。「
payload1
」の後のパスは、ターゲットサーバー上の目的のパスです。
VIBパッケージを収集します。
必要に応じて、
私のパッケージを使用することができ
ます (あなた自身の危険とリスクで)。
3.パッケージをESXiサーバーにコピーし、インストールして何が起こったかを確認します。
パッケージはファイルをシステムに追加するため、「-
-f
」
-f
必要です。
念のため、ファイアウォールのルールをもう一度お読みください。
したがって、他の有用なサーバー設定を収集して修正できます。
4.最後に、ESXiサーバー設定を手動でバックアップします。
バックアップからのマシンの復元
すぐに、リカバリ後にホットなマシンにバックアップされたマシンがクラッシュ後のようになることを考慮する必要があります-マシン内のデータ損失が発生する可能性があります。
1.バックアップストレージをNFSを介してターゲットESXiサーバーに接続するか、単にそこにあるデータをsshでコピーします。
2.この種類の構成ファイル「vms_to_restore」を作成します。
「
; 」を介して順番に:
- 復元されたマシンが存在するパス。
- マシンを復元するパス(そのディレクトリが作成されます);
- リカバリマシンのディスクタイプ。
- マシンの新しい名前(オプション)。
3.テスト実行を実行します。
そして戦闘:
4.喜ぶ。
2番目のオプション。 バックアップは構成ファイルを含むマシンのダンプであるため、次のことが簡単にできます。
1. ESXiサーバーのどこかにコピーします。
2.マシンディスクの名前と場所のフィールドを変更して、マシン構成ファイル(* .vmx)を修正します。
displayName = vCenterUpdate-restore extendedConfigFile = "vCenterUpdate-restore.vmxf" scsi0:0.fileName = "vCenterUpdate-restore-0.vmdk" sched.swap.derivedName = "vCenterUpdate-ff0c3749.vswp"
ファイルへのパスは、マシンのディレクトリを基準に指定できます(指定する必要があります)。
3. vSphereClientを介して、ストレージにアクセスします。
Configuration -> storage -> -> "browse datastore"
リストに新しい車を追加します。
-> "Add to inventory" *.vmx
4.リカバリサーバーが異なる場合、マシンの設定で「ネットワーク接続」を変更します。
5.最初の起動時に、車の引き出された場所が尋ねられます。移動したものに答える必要があります。
複製したと答えると、ネットワークカードのMACアドレスを含む一意のデータが変更されます。
それだけです。 GhettoVCBスクリプトは、他の興味深いオプションとコピーオプションもサポートしているため、ドキュメントを読むと便利です。 この方法は理想とはほど遠いですが、安くて明るくしたい場合は、かなり実行可能です。
ご清聴ありがとうございました。
リンク集