VMwareの変更ブロック追跡(CBT)とは何か、またその仕組みはどのようなものか?
VMwareは、エージェントレスバックアップを可能にし、VMの増分バックアップの効率を向上させる機能を備えたAPIを提供しており、これによりエンタープライズ仮想環境におけるデータ保護を簡素化します。増分バックアップは、フルバックアップと比較して、ストレージ容量を大幅に節約するのに役立ちます。
現代の VMwareのバックアップソリューション、その多くはVMwareのAPIを活用し、Changed Block Tracking(CBT)技術を用いて、仮想マシンの増分バックアップの作成を容易にし、高速化しています。このブログ記事では、Changed Block Trackingについて、その動作原理や実用的な活用例を含めて解説します。
変更ブロック追跡とは何ですか?
変更ブロック追跡(CBT)は、変更されたブロックを追跡ファイルに記録するVMwareのネイティブ機能です。CBTは、バージョン4.0で初めてリリースされた"VMware vSphere Storage APIs – Data Protection"フレームワークの一部であり、これによりサードパーティ製のデータ保護アプリケーションがCBTを活用して、より効率的なバックアップやレプリケーションを実行できるようになります。
CBTはESXiストレージスタックレベルで動作し、サードパーティ製のバックアップソリューションが、前回のバックアップ以降に変更されたデータブロックのみ、つまり増分バックアップを作成したり、VM全体ではなく使用中のブロックのみをバックアップしたりできるようにします。これにより、特に数百台のVMが存在する大規模な環境において、バックアップデータの量を大幅に削減し、バックアッププロセスを高速化できます。
VMware CBTは、特別なログファイルで変更を追跡するため、バックアップソフトウェアが増分バックアップを実行するのに要する時間を大幅に短縮します。サードパーティ製のバックアップソリューションが、CBTを使用せずに他の方法で変更を追跡する場合、ESXiサーバーへのCPU負荷が高くなります。したがって、CBTはデータのバックアップ時にもESXiサーバーのパフォーマンスを最適化します。
CBTは、VMwareの Storage vMotion 仮想マシンが稼働中の状態で、そのディスクファイルをあるデータストアから別のデータストアへ移動できるプロセス。
VMwareによるブロック追跡の仕組みの変更点
CBT機能は、直前のチェンジセットIDと現在のチェンジセットIDを比較し、これらのチェンジセットIDの間で変更されたディスクセクタを特定することで動作します。また、VMware CBTは、仮想ディスク全体において使用中のすべての仮想マシンファイルシステム(VMFS)ブロックを特定します。この追跡処理はハイパーバイザー自体によって行われ、仮想マシン(VM)の外部で実行されます。
CBTの要件
変更ブロック追跡(Changed Block Tracking)の要件は以下の通りです:
- VMware vSphere(ESXi 4.0 以降)
- バージョン 7 以降の仮想ハードウェア
- ローカル VMFS データストア、NFS または iSCSI データストア
- シック・プロビジョニングまたはシン・プロビジョニング
- RAWディスクマッピングは使用できません。物理互換モードでのRAWデバイスマッピング(RDM)はサポートされていません。
- VMには、以下のものが含まれていてはならない スナップショット VMware CBT の使用を開始するには
変更ブロック追跡を有効にする方法
CBTはホストのCPU時間をわずかに消費するため、デフォルトでは無効になっています。しかし、次のようなサードパーティ製のバックアップソリューションでは NAKIVO Backup & Replication, 製品が高速かつ信頼性の高い増分バックアップを実行するには、CBTを有効にする必要があります。
CBTは、仮想マシンの詳細設定で有効にします:
- VMの設定を開きます。VMware vSphere Clientでは、VMを右クリックして、[設定] を選択することでこれを行うことができます。 設定を編集.
- その 設定を編集する ウィンドウで、[ VMオプション タブ。
- をクリックして 上級 オプションカテゴリをクリックして設定を展開し、[ ] をクリックします 設定の編集 その中では 設定パラメータ 行。その 設定パラメータ 仮想マシンのウィンドウが開き、そこには複数の行が表示され、各行にはパラメータ名と値が含まれています。
- CBTの有効化は、 .vmx 設定:
ctkEnabled = "TRUE"
また、CBTが有効になっている各ディスクについて、以下のエントリが追加されます:
scsix:x.ctkEnabled = "TRUE"
"変更ブロック追跡"を有効にするには、これらのパラメータを設定する必要があります。
注意!!!: CBTを無効にするには、以下を変更してください。 TRUE ~へ FALSE で ctkEnabled そして scsi0:0.ctkEnabled 行(SCSIデバイスの番号を適切に指定してください)。
VMでCBTが有効になっている場合、VMkernelは以下の内容を含む追加のファイルを作成します。 -ctk.vmdk 仮想ディスクブロックのマッピングを格納するために使用されるVMディレクトリ内にあります。このファイルは、それぞれの.に関連しています。vmdk ディスクに保存され、前回の変更セットIDで特定された時点から現在の状態までの間に、この仮想ディスクで変更されたブロックのリストが含まれています。作成されるCTKファイルのサイズは一定であり、仮想ディスクのサイズが拡大されない限り、元のサイズを超えることはありません。CTKファイルのサイズはおおよそ 5 MB すべての 10 GB VMディスクのサイズ。
ほとんどのバックアップソリューションでは、VMware SDK を使用してプログラム的に仮想マシンの CBT を有効にし、電源のオン/オフ、サスペンド/レジューム、またはスナップショットの作成/削除のいずれかを含む"stun/unstun"サイクルを利用します。stun/unstun サイクル中、その仮想マシン専用の VMware ストレージスタックに特別な変更追跡フィルターが挿入され、これにより CBT が仮想マシン上で有効化されます。
CBTが有効になっているかを確認する方法
手動でCBTを有効にしていない場合は、バックアップソフトウェアがVMのバックアップを実行するためにCBTを有効にしているかどうかを確認できます。CBTの設定を確認する手順は、この機能を有効にする手順と似ています。ただし、ここでは、 .vmx 設定ファイル。
。VMでCBTが有効になっているかどうかを確認するには、次の手順を実行します。
- 開く VMware vSphere Client.
- 必要なVMを見つけ、電源がオフになっていることを確認してください。
- データストア上のVMフォルダに移動します。
- VMの設定ファイルを探します(.vmx).
ctkEnabled エントリ。このエントリの値は、 “TRUE”である必要があります。そうでない場合は、値を “TRUE” に変更して、VM の CBT を有効にしてください。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が有効になっています。
次のようなケースがいくつかあります。 NAKIVO Backup & Replication, 他のvSphereバックアップソリューションと同様、VMware CBTは使用できません:
- VMware CBT は、VM ではサポートされていません。: 考えられる原因 – ESXi ホストのバージョンが v4.1 未満であるか、仮想ハードウェアのバージョンが v7 未満である。
- VMware CBTのデータは提供されませんでした: 考えられる原因 – ESXiホストの停電により、CBTがVMの増分変更を追跡できなくなった。
"変更履歴"の追加項目で 設定, ここでは、CBTの使用中にエラーが発生した場合に、ソリューションが実行すべき処理を確認できます。
これらについて詳しく見ていきましょう エラーが発生した場合 アクション:
- 独自の方法に切り替える: NAKIVO Backup & Replication 独自の変更追跡方式が採用されますが、これはVMware CBTよりも処理速度が遅く、ESXiホストのリソースをより多く消費します。
- CBTをリセット: CBTに失敗した場合、そのCBTのデータはリセットされます。
- VM処理の失敗: VMの処理が停止されます。
また、選択した設定をいつ適用するかを指定することもできます。 エラーが発生した場合 アクション:
- 直ちに: エラーが発生すると、アクションは直ちに実行されます("CBTをリセット"アクションを除く)。
- 次回の再試行時: エラーが発生した場合、次の再試行時にその処理が適用されます。
- 最後の再試行で: エラーが発生した場合、最後の再試行に対してアクションが適用されます。
また、以下の項目を選択することもできます。 CBTから提供された変更済みブロックを再確認する チェックボックス。この場合、VMware CBT から提供されたデータは、さらに以下の項目と照合されます。 NAKIVO Backup & Replication 独自の変更追跡機能。このアプローチは信頼性が高いですが、通常のVMware CBTよりも処理に時間がかかる場合があります。
結論
VMwareのChanged Block Tracking(CBT)は、バックアッププロセスをあらゆる面で高速かつ信頼性の高いものにする強力な機能です。この技術は、Storage vMotionなどのVMwareネイティブ技術において十分に検証され、広く活用されています。
VMware CBTは、次のような最新のバックアップソリューションに不可欠な要素です。 NAKIVO Backup & Replication ホストに追加の負荷をかけることなく、VMware環境のバックアップを効率的に実行できるものです。



