VMware Changed Block Tracking(CBT)とは何か、そしてどのように機能するか?

VMwareは、エージェントレスのバックアップを可能にし、増分VMバックアップの効率を向上させる機能を備えた、企業向け仮想環境におけるデータ保護を簡素化するAPIを提供しています。 増分バックアップは、完全バックアップと比較して著しい量のストレージスペースを節約するのに役立ちます。

現代のVMwareバックアップソリューションに関して言えば、ほとんどがVMwareのAPIに依存し、変更ブロックトラッキング(CBT)技術を使用して仮想マシンの増分バックアップの作成を容易にし、高速化することに頼っています。 このブログ記事では、動作原理や実用的なアプリケーションを含む変更ブロックトラッキングについて説明します。

変更ブロックトラッキングとは何ですか?

変更ブロックトラッキング(CBT)は、変更ブロックをトラッキングファイルに記録するVMware固有の機能です。 CBTは、バージョン4.0で初めてリリースされたVMware vSphere Storage API – Data Protectionフレームワークの一部であり、サードパーティのデータ保護アプリケーションがCBTを利用してより効率的なバックアップとレプリケーションを実行できるようにします。

CBTはESXiストレージスタックレベルで機能し、サードパーティのバックアップソリューションが、前回のバックアップ以降に変更されたデータブロックのみ、つまり増分バックアップ、または完全なVMではなく使用されているブロックのみをバックアップできるようにします。 これにより、特に数百のVMを備えた大規模な環境で、バックアップデータの量を大幅に削減し、バックアッププロセスを高速化できます。

VMware CBTは、特別なログファイルで変更を追跡することにより、バックアップソフトウェアが増分バックアップを実行するのにかかる時間を大幅に短縮します。第三者のバックアップソリューションは、他の方法を使用して変更を追跡する場合、ESXiサーバーにより多くのCPU負荷を引き起こします。したがって、CBTはデータのバックアップ時にESXiサーバーのパフォーマンスも最適化します。

VMwareのStorage vMotionプロセスでもCBTが使用され、仮想マシンディスクファイルを実行中に1つのデータストアから別のデータストアに移動できます。

VMware Changed Block Trackingの動作

CBT機能は、最後の変更セットIDと現在の変更セットIDを比較し、これらの変更セットID間で変更されたディスクセクタを特定することによって機能します。 VMware CBTは、仮想マシンファイルシステム(VMFS)ブロックを使用する仮想ディスク全体を特定します。 トラッキングはハイパーバイザ自体によって実行され、VMの外側で行われます。

CBTの要件

Changed Block Trackingの要件には、次のものが含まれます:

  • VMware vSphere(ESXi 4.0以降)
  • バージョン7の仮想ハードウェアまたはそれ以上
  • ローカルVMFSデータストア、NFSまたはiSCSIデータストア
  • 厚いまたは薄いプロビジョニング
  • RAWディスクマッピングなし。 物理互換モードでのRaw Device Mapping(RDM)はサポートされていません。
  • A VM must not have snapshots to start using VMware CBT

Changed Block Trackingの有効化方法

デフォルトでは、CBT はホスト CPU 時間のわずかな消費のために無効になっています。ただし、NAKIVO Backup & Replication のようなサードパーティのバックアップソリューションでは、製品が高速かつ信頼性の高い増分バックアップを実行できるように CBT を有効にする必要があります。

CBT は仮想マシンの高度な設定で有効になっています:

  1. VM の設定を開きます。VMware vSphere Client では、VM を右クリックして 設定の編集 を選択することで行えます。
  2. 設定の編集 ウィンドウで、VM オプション タブをクリックします。
  3. 詳細 オプションカテゴリをクリックして設定を展開し、構成の編集構成パラメータ 行でクリックします。VM の 構成パラメータ ウィンドウが開き、複数の行が含まれ、それぞれがパラメータ名と値を含んでいます。
  4. CBT のアクティベーションは、.vmx 構成の次の行によって決定されます:

ctkEnabled = “TRUE”

また、CBT が有効になっている各ディスクには、エントリが含まれます:

scsix:x.ctkEnabled = “TRUE”

これらのパラメータを設定して、ブロックトラッキングを有効にする必要があります。

: CBT を無効にするには、ctkEnabled および scsi0:0.ctkEnabled 行で TRUEFALSE に変更します(適切な SCSI デバイス番号を使用してください)。

-ctk.vmdkを使用して、VMkernelがVM上でCBTが有効になると、仮想ディスクブロックのマッピングを保存するための追加のファイルがVMディレクトリに作成されます。このファイルは、関連する.vmdkディスクに関連付けられており、最後の変更セットIDで識別された特定の時間と実際の状態の間にこの仮想ディスクで変更されたブロックのリストを含んでいます。作成されるCTKファイルのサイズは、元のサイズを超えることなく、常に同じままですが、仮想ディスクのサイズが増加した場合に限り増加します。CTKファイルのサイズは、VMディスクサイズの10 GBごとにおおよそ5 MBです。

ほとんどのバックアップソリューションでは、VMのCBTをプログラムで有効にするためにVMware SDKメソッドを使用し、スタン/アンスタンサイクルを使用します。これには、電源のオン/オフ、サスペンド/レジューム、またはスナップショットの作成/削除が含まれます。スタン/アンスタンサイクル中に、VMwareストレージスタックに特別な変更トラッキングフィルターが挿入され、これによりVM上でCBTがインスタンス化されます。

CBTが有効かどうかを確認する方法

CBTを手動で有効にしなかった場合、バックアップソフトウェアがVMのバックアップを実行するためにCBTを有効にしたかどうかを確認できます。 CBT設定を確認する手順は、この機能を有効にする手順と類似していますが、.vmx構成ファイルを使用したわずかに異なる方法を説明します。

VMがCBTに対して有効になっているかどうかを確認するには、次の手順を実行します。

  1. VMware vSphere Clientを開きます。
  2. 必要なVMを見つけ、電源がオフになっていることを確認します。
  3. データストア上のVMフォルダに移動します。
  4. VM構成ファイル(.vmx)を見つけます。
The .vmx configuration file should contain the ctkEnabled entry. The entry’s value has to be “TRUE”. If it is not, then change the value to “TRUE” to enable CBT for the VM.

有効なCBTを使用すると、各仮想ディスクにはxxx-ctk.vmdkファイルが付属しています。ここで、”xxx”は仮想ディスクの名前です。これらのCTKファイルが見つかると、動作中のCBT機能が示されます。

適切でないホストのシャットダウンや停電などの場合、VMが起動されたままの間にCBTが変更の追跡を失うことがあります。これにより、CBTがリセットされ、以前に収集されたすべてのCBTデータがフラッシュされ、新しいデータがリセット時点から収集され始めます。CBTリセット後にVMバックアップを実行すると、フルバックアップが作成されます。フルバックアップを作成し、新しい変更を追跡した後、再び増分バックアップを実行できます。

VMware CBTを使用したNAKIVO Backup & Replication

NAKIVO Backup & Replicationは、VMware vSphereで仮想マシンのバックアップ、リカバリ、およびレプリケーションを行う汎用データ保護ソリューションです。NAKIVOソリューションで実行される増分バックアップを高速化するために、新しいバックアップジョブではデフォルトでCBTが有効になっています。

他のvSphereバックアップソリューションと同様に、NAKIVO Backup & ReplicationでもVMware CBTを使用できない場合がいくつかあります:

  • VMware CBTがVMでサポートされていません: 可能な原因 – ESXiホストがv4.1未満であるか、仮想ハードウェアバージョンがv7未満です。
NOTE: NAKIVO Backup & Replication versions 10.6 and newer do not support ESXi 5.1 and older versions.
  • VMware CBTデータが提供されていません: 可能な原因 – ESXiホストの停電により、CBTがVMの増分変更の追跡を失いました。

追加の変更追跡設定では、CBTの使用中にエラーが発生した場合にソリューションが取るべきアクションを見つけることができます。

これらのエラー時アクションを詳しく見てみましょう:

  • プロプライエタリメソッドに切り替える: NAKIVO Backup & Replicationのプロプライエタリ変更追跡メソッドが使用され、VMware CBTよりも遅く、ESXiホストのリソースをより多く消費します。
  • CBTをリセットする: CBTの障害が発生した場合には、CBTがリセットされます。
  • VM処理を中断する: VM処理が停止されます。

また、選択したエラー時アクションを適用するタイミングを指定できます:

  • 即時: エラーアクションは即座に適用されます(リセットCBTアクションを除く)。
  • 次回のリトライ時: エラーアクションは次回のリトライ時に適用されます。
  • 最後のリトライ時: エラーアクションは最後のリトライ時に適用されます。

また、VMware CBTが提供する変更ブロックをダブルチェックするチェックボックスを選択することもできます。 この場合、VMware CBTによって提供されたデータがNAKIVO Backup & Replicationのプロプライエタリ変更追跡と追加で照合されます。 このアプローチは信頼性が高いですが、通常のVMware CBTよりも遅い場合があります。

結論

VMware Changed Block Trackingは、バックアッププロセスをすべての面で高速かつ信頼性のあるものにする強力な機能です。 この技術は十分にテストされ、Storage vMotionなどのネイティブVMware技術で広く利用されています。

VMware CBTは、ホストに追加の負荷をかけることなく、VMware環境の効率的なバックアップを提供するNAKIVO Backup & Replicationなどの現代のバックアップソリューションの重要な部分です。

Source:
https://www.nakivo.com/blog/vmware-changed-block-tracking-works/