横河レンタ・リース株式会社の技術検証ブログへようこそ。
横河レンタ・リース株式会社の技術検証ブログへようこそ。技術ブログも第五回目となります。まだまだ暑い日が続きますが、いかがお過ごしでしょうか。今回は「スナップショットとネイティブバックアップ」についてご説明します。本技術ブログでは、可能な限り実機検証に基づいた内容をお届けします。
一回目~四回目をお読みでない方は、ぜひこちらもご覧ください。
【技術ブログ:第一回】技術ブログはじめました~HPE Morpheus VM Essentials Software とは~
【技術ブログ:第四回】VM EssentialsでOEMメディアは使えるのか? BIOS HOST MODEで解決する方法を解説!
※本ブログの情報は『HPE Morpheus VM Essentials Software』 Version 9.0.0までの情報をベースに記載しております。
ストレージや仮想化、バックアップソリューションに触れている方々は、スナップショットという言葉はよく聞く言葉かも知れません。ただ、あまりインフラ業務に触れてきていない方々は、スナップショットと聞いてもピンと来ないかもしれません。
スナップショットとは何でしょうか。スナップショットは、システムのある特定の瞬間(断面)の状態を再現するために、メタデータや差分データを保存する機能です。万が一の作業失敗時に、元の状態へ素早く戻す(リストアする)目的などでよく使われます。
VM Essentialsでは、仮想ディスクのフォーマットにQCOW2(QEMU Copy-on-Write)が使用されています。それでは、QCOW2のスナップショットはどう動くのでしょうか。
スナップショットを作成すると、システムは以下のようにデータを扱います。
ベースディスクの固定:スナップショットを作成した時点の元の仮想ディスクファイルは、読み取り専用になり、以降は一切変更されません。
差分ファイルの作成と書き込み:新しく「差分ファイル」が作成されます。スナップショット作成後に発生するデータの追加・変更は、すべてこの差分ファイル側にのみ書き込まれます。
つまり、「元のデータは変更せず保持し、変更があった部分だけを新しいファイルに積み重ねていく」という仕組みです。
スナップショットを作成する瞬間には、大きなデータコピーが発生しません。そのため、一瞬で作成が完了します。
長期間の保持や取りすぎには注意が必要です。スナップショットを長期間残したり、複数重ねたりすると、システムは「差分ファイルになければベースファイルを見に行く」という確認作業(参照経路の追跡)を行います。そのため、読み込みパフォーマンスの低下を引き起こします。また、差分ファイルが肥大化して、ストレージ容量を圧迫する要因にもなります。
運用ポイントです。スナップショットは、あくまで作業直前のバックアップなど「一時的な状態保存」として利用してください。作業が完了したら、不要になったスナップショットを削除し、差分を溜め込まない運用が推奨されます。
それでは、実際にVM Essentialsでスナップショットを取得してみましょう。手順としては簡単で、以下の方法で取得できます。
プロビジョニング → インスタンス → インスタンスを選択します。
アクション → スナップショットの作成を選択します。
必要に応じて名前を修正し、[完了] ボタンを押下します。
[バックアップ] タブを選択し、スナップショットの項目にスナップショットが追加されていることを確認します。
仮想マシンフォルダの中を確認すると、差分データの保存用にディスクが作成されたことがわかります。ベースディスクは、シンプロビジョニングで構成されています。
では、テスト用に作成し、それを誤って消してしまったことを想定し、スナップショットからリストアをかけてみましょう。以下のような手順で実施します。
テスト用のファイルを作成する(作成時にハッシュ値を取得)
スナップショットを取得する
テスト用データを消去する
スナップショットからのリストアを実施する(リストア後にハッシュ値比較)
スクリプトを使用し、ランダムデータを書き込んだテストファイルを用意します(約10GB程度)。作成したテストファイルのハッシュ値をスクリプトで取得し、ログファイルとして出力します。
テストファイルがある状態で、スナップショットを取得します。
Shift+Deleteで、テストファイルを完全に消去します。
復帰ボタンを押下します。仮想マシンの再起動を伴うスナップショットのリストアを実行します。
リストア処理が完了するまで待機します。
リストア後の仮想サーバーにログインすると、データが復元していることを確認できます。また、復元したデータのハッシュ値を復元前のデータと比較しても、同一であることが確認できます。
スナップショットが、システムのある特定の瞬間(断面)の状態を再現するために、メタデータや差分データを保存する機能なのに対して、VM Essentialsのネイティブバックアップは、仮想マシンを丸ごとバックアップする方式です。
ネイティブバックアップは、初期バックアップに時間がかかりますが、実体データを独立して保持するため、バックアップ用途として適しています。なお、初期バックアップ以降は、効率的な差分バックアップが行われます。
ネイティブバックアップのデフォルトの保存先は、VM Essentials Manager内部(ローカル)となっているため、そのまま使用すると容量を使い切り、システムの動作が不安定になる原因となります。そのため、別途CIFSやNFS等の外部保存先を用意しておくことが強く推奨されています。
管理 → 設定 → バックアップから、バックアップを有効化します。主な設定項目は以下のとおりです。
スケジュール済みのバックアップ:有効化により、設定済みのバックアップはスケジュール通りに実行されます。無効化にする場合は、バックアップを手動で実行する必要があります。
バックアップの作成:有効化で、プロビジョニング時にインスタンスのバックアップジョブを自動的に設定します。
バックアップアプライアンス:有効化で、VM Essentials Managerのデータベースのバックアップを作成します。
デフォルトのバックアップバケット:バックアップ作成用に使うデフォルトのデータ保存先を選択します。必要に応じて、新しい保存先をインフラストラクチャ → ストレージで設定・管理できます。
バックアップデータの保存先は、インフラストラクチャ → ストレージ → ファイル共有から設定可能です。新規作成から保存先を追加します。
デフォルトのバックアップターゲットとして設定したい場合は、チェックをいれます。
ネイティブバックアップの取得手順は、以下のとおりです。
バックアップ取得対象のインスタンスを選択し、バックアップ → バックアップの追加を選択します。必要に応じてバックアップジョブ名を修正し、次へボタンを押下します。
設定画面で設定値を設定し、完了ボタンを押下します。
設定画面の主な項目は、以下のとおりです。
保持数:バックアップデータの保持数を指定します。
スケジュール:バックアップ実行のスケジュールを選択します。
SYNTHETIC FULL:合成フルバックアップを作成するか設定できます。チェックボックスを入れると、合成フルバックアップを作成するスケジュールを選択できます。
バックアップジョブが作成され、ジョブのリンクを押下します。
ジョブの設定が正しいことを確認します。スケジュール通り実行する場合は、特に操作は不要です。すぐに実行したい場合は [今すぐ実行] ボタンを押下します。
ジョブが実行され、インジケーターが完了に向かうまで待機します。以上でバックアップの取得手順は終了です。
デフォルトでは「Daily at Midnight」と「Weekly on Sunday at Midnight」の2つのスケジュールが用意されています。これらの初期スケジュールを選択すると、cron式には 0 0 * * * と設定されているにもかかわらず、実際の開始時間は 9:00 と表示されます。これは、初期スケジュールのタイムゾーンが UTC 基準で設定されているためと考えられます。
任意の時間帯でバックアップを実行したい場合は、ライブラリ → 自動化 → 実行スケジュール → 追加から、新しいスケジュールを作成します。スケジュール追加画面では、名前、タイムゾーン(Asia/Tokyo 等)、実行タイミングを設定します。実行タイミングは、cron表記での直接入力と、下部のUIエディタ(Every...)からの直感的な調整のどちらにも対応しています。
cron表記は、分・時・日・月・曜日の順で指定します。各項目の範囲は、以下のとおりです。
分:0 ~ 59
時:0 ~ 23
日:1 ~ 31
月:1 ~ 12
曜日:1:月 2:火 3:水 4:木 5:金 6:土 0 or 7:日
複数期間を指定する場合は "-" で期間を、区切って指定する場合は "," などで区切ることができます。例は以下のとおりです。
0 0 * * 1-6 月~土 AM0:00
0 0 * * 1,3,5 月,水,金 AM0:00
ネイティブバックアップのリストア手順は、以下のとおりです。
対象のインスタンスを選択 → バックアップ → バックアップ結果の中から、復元したいデータのアクションを選択 → リストアを押下します。
リストアボタンを押下し、新規インスタンスとして仮想マシンの作成操作を進めます。インスタンスの作成手順と同様に、操作を進めていきます。
VM Essentialsのスナップショット(snapshot)とネイティブバックアップ(native backup)の仕組みについて、ご理解いただけたでしょうか。
スナップショットのような一時的な状態保存は、検証作業において大変有効なため、用途を踏まえて適切に活用いただければと思います。一方、ネイティブバックアップは、本番利用にあたって復元所要時間(recovery time)、保存先設計、運用監視などを十分に検証する必要があります。
本番環境でバックアップ運用を行う場合は、ISV(Independent Software Vendor)が提供するバックアップソリューションを導入することで、より安定した運用が期待できます。
本ブログを最後までお読みいただき、ありがとうございました。次回は「Veeam VME Plugin」についてです。
|
項目 |
内容 |
|
名前 |
永野 裕介 (ながの ゆうすけ) |
|
職種 |
製品の技術検証 |
|
得意分野 |
ストレージ製品、仮想化製品 |
|
趣味 |
ゲーム、動画視聴 |
デスクトップ製品のコールセンターからインフラエンジニアまで幅広く業務を経験、IT業界には21年以上携わってきたエンジニア。本ブログでは、可能な限り実機検証に基づいた情報をお届けします。
横河レンタ・リース株式会社は「実機検証で知りえた知見を皆さまへ」をキャッチフレーズに、今後もVM Essentialsをはじめとする仮想化基盤の技術情報を発信してまいります。VM Essentialsの導入検討やVMwareからの移行にお悩みの方は、お気軽にご相談ください。