NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix AHV におけるスナップショット & バックアップ。

Nutanix Meetup #37 での、AHV でのスナップショットとバックアップの話です。下記のような内容です。

  • 今回の「スナップショット」や「バックアップ」の対象となる、AHV の VM と vDisk の関係について。(ついでに VMとvDiskのiSCSI接続の様子も)
  • Nutanix のスナップショットの仕組みについて。
  • AHV で利用できるスナップショットの紹介。(PD 単位 / VM 単位)
  • Nutanix のスナップショットがバックアップとして利用できる理由について。

AHV → VM → vDiskの説明

Nutanix でのスナップショット取得と、その機能を利用したバックアップ & リストアの粒度は、vDisk 単位となります。

AHV の vDisk は、Acropolis 分散ストレージファブリック(DSF)に格納されます。

f:id:gowatana:20190313024229p:plain

(よく知られた iSCSI ストレージの利用ケースとして)ESXi での iSCSI ストレージを利用する場合は、一般的に iSCSI データストアを構成して、そのうえに vDisk 配置します。

一方、AHV では、VM から vDisk に直接 iSCSI 接続をする、RDM(ロー デバイス マッピング)のような構成になります。たとえば、VM に vDisk が 3つ接続されている場合は、iSCSI セッションも 3つになります。ちなみに、このときの iSCSI ストレージ(iSCSI Target)は、各 AHV の CVM です。

f:id:gowatana:20190313024248p:plain

ちなみに、AHV の VM には、Windows 用 / Linux 用といった、ゲスト OS の区別はなく、VM 自体は、特にゲスト OS を区別する設定を持ちません。そのため Nutanix のスナップショット & バックアップの仕組みもゲスト OS の影響をうけません。

f:id:gowatana:20190313024311p:plain

AHV での、スナップショットとその機能を利用したバックアップ & リストアは、VM / vDisk 単位で、とくにゲスト OS を意識せず利用できます。

f:id:gowatana:20190313024327p:plain

ストレージのスナップショット機能とは?

Nutanix のスナップショット機能の説明の前に、その前身にあたる「ストレージのスナップショット機能」についておおまかに説明します。

  • 特定の時点のディスクの状態を保持する仕組み。「スナップショットを取得する」といったりする。ここでのディスクとは「ボリューム」「LUN」など。
  • 主な用途は、静止点確保、データ複製、バックアップなど。
  • 仮想化基盤には、VMの「仮想ディスク」のスナップショットがある。
    ただし「バックアップ用途では利用不可」と言われることあり。★これの事情は後述。

単純化した例ですが、スナップショットがない場合には、ストレージクライアントからの、ストレージ領域(ここではボリューム)間でのデータコピーは、いったんクライアント(図では Host)を経由したものになったりして、時間がかかり、効率もよくありません。

一方、ストレージのスナップショットを利用すると、一瞬でボリュームのコピーが作成できたりします。

f:id:gowatana:20190313024713p:plain

ストレージのスナップショットは、ストレージの提供するボリューム単位です。そのため、仮想化基盤でストレージのスナップショットを取得すると、粒度が大きすぎることがあります。

f:id:gowatana:20190313024726p:plain

一方、たいていのハイパーバイザーでは、仮想ディスク単位でのスナップショットを取得することができます。これはストレージ側の機能ではなく、ハイパーバイザー側の機能によるスナップショットです。

f:id:gowatana:20190313024744p:plain

Nutanixのスナップショットとは?

Nutanix にも、スナップショットを取得する機能があります。

Nutanix Bible - Snapshots and Clones

https://nutanixbible.com/#anchor-book-of-acropolis-snapshots-and-clones

 

だいたい、下記のような機能です。

  • 分散ストレージファブリック(DSF)の機能で、vDiskのスナップショットを取得できる。仮想化基盤での機能ではあるが、ハイパーバイザーから見ると「ストレージ側のスナップショット」で、ハイパーバイザーが変わっても同じ仕組み。
  • VMのクローンでもこの仕組みが利用される。
  • DSFスナップショットは、Redirect on Write。(上記 URL に図あり)
  • スナップショットはバックアップとして利用できる。
  • バックアップの単位(粒度)はvDisk。

Nutanix のスナップショット(DSF のスナップショット)は、基本的に Protection Domain(PD、保護ドメイン)を Prism で作成して取得します。

  1. Protection Domain(PD)を作成。
  2. スナップショット取得対象の VM / Volume を PD に入れる。
    実際にはここで Consistency Group(同タイミングで静止点をとるグループ) の定義もする。
  3. PD でスケジュール設定。(定期取得も、すぐにスナップショット取得も可)
  4. スナップショットを取得。

Prismで操作する。手順は・・・

  • どのハイパーバイザーの場合でも同じ。
  • ローカルとリモート(レプリ/DR)どちらも同じ。

f:id:gowatana:20190313024941p:plain

豆知識として、Protection Domain(保護ドメイン)単位のスナップショットには、2種類の呼び名があります。

  • Time Stream
  • Async DR

ローカル Nutanix クラスターに取得したものは「Time Stream」、リモートの Nutainx クラスターに取得したものは「Async DR」と呼ばれます。

Nutanix の PD スナップショット(ハイパーバイザー共通)

ちょっと古い投稿ですが、PD スナップショットの様子は、下記のあたりにあります。Prism か、ncli コマンドで操作することができます。

PD スナップショットは、まとめて複数の VM(の vDisk)、ボリュームグループで取得することができます。

f:id:gowatana:20190313025632p:plain

PD スナップショットから、PD に含まれる VM から選択してリストアすることができます。

f:id:gowatana:20190313025752p:plain

Nutanix の VM 単位スナップショットの取得(AHV のみで利用可)

 AHV であれば、簡易的に(PD を作成しなくても)VM 単位のスナップショットを取得することができます。

f:id:gowatana:20190313025816p:plain

PD スナップショットと、VM 単位のスナップショットとの違いについては、下記もどうぞ。

そして VM 単位のスナップショットによるバックアップ & リストアの実施例は、下記をどうぞ。

「VM のスナップショットはバックアップではない」とは?

仮想化基盤の常識として、「仮想マシンのスナップショットはバックアップとして利用できない」と言われています。最後に、この事情について説明してみようと思います。仮想マシンのスナップショットには、実際に長期保存するような「バックアップとして利用できない」ものがあります。それは、ESXi の機能で取得する、仮想マシンのスナップショットです。

ESXi のスナップショットは、そもそも長期保存する想定での機能ではなく、VMware の KB(https://kb.vmware.com/s/article/1025279?lang=ja)でも、取得後は早めに削除するようにガイドされています。開発環境や、作業前後の一時的なバックアップとして利用できますが、長期保存のバックアップむけではないとのことです。

厳密な絵ではないですが、ESXi のスナップショットはチェーン構造のようになっていて、取得しすぎると I/O 効率が低下したり、チェーン構造が壊れることがあったりします。

f:id:gowatana:20190313030035p:plain

一方、ESXi 上の仮想マシンだとしても、ストレージ側の機能を利用したスナップショットを取得しているのであれば、それは ESXi のスナップショットの仕組みを利用していないので、「長期保存するバックアップとして利用できる」スナップショットとなります。(ただし、スナップショットの機能をもつストレージ側が、スナップショットでのバックアップ運用を認めている必要はあります)

f:id:gowatana:20190313030053p:plain

 Nutanix では、ハイパーバイザーとして ESXi を使用することもできますが、その場合には Nutanix のスナップショットとなる「PD スナップショット」を取得しているのであれば、それは長期保存するバックアップとして利用できます。

一方、Nutainx + ESXi の環境だとしても、ESXi / vCenter からスナップショットを取得したのであれば、それは長期保存するバックアップには向きません。

f:id:gowatana:20190313030112p:plain

 下記は、ESXi のスナップショットを持たない VM です。仮にこの VM で Nutanix の PD スナップショットを取得しているとしても、このように、ESXi のスナップショットは取得していないように見えます。

f:id:gowatana:20190313030233p:plain

 データストア ブラウザからだと、下記のように見えます。

f:id:gowatana:20190313030247p:plain

 ESXi のスナップショットと説明してきたものは、下記のように取得するスナップショットです。

f:id:gowatana:20190313030305p:plain

 ESXi のスナップショットを 2世代取得したとすると・・・

f:id:gowatana:20190313030319p:plain

 下記のようになります。

f:id:gowatana:20190313030335p:plain

 データストア ブラウザでは下記のように見えます。このスナップショットは、Nutanix 環境だとしても長期保存バックアップとしては期待できないものです。

f:id:gowatana:20190313030352p:plain

とはいっても、ESXi のスナップショットは運用作業を安全に実施するためには便利なので、私は毎日のように利用しています。ただ「必要な時にスナップショットを取得して、不要になったらすぐ削除する」という、適切な利用方法が重要かなと思います。

まとめ

  • ESXi のスナップショットは作業の切り戻しなどで利用すると便利。取得したスナップショットは長期保存に向かないため、不要になったら速やかに削除すべし。
  • 一方、「ストレージ側のスナップショット」である Nutanix のスナップショットは、どのハイパーバイザーの場合でもバックアップとして利用できる。ただしスナップショットの取得方法は「Nutanixによるスナップショット」になるように注意する。(PD を作成してからスナップショット取得する)
  • AHVでは、より簡単な(PD なしの)スナップショットを取得できる。

今年はもえつきた。

発表資料は下記。

https://1drv.ms/f/s!AnlE-3oEWaHs3X49OPq15yFr-nj8

以上。

©2019 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。