仮想マシン上の変更ブロックのトラッキング(CBT)
search cancel

仮想マシン上の変更ブロックのトラッキング(CBT)

book

Article ID: 344998

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

この KB では変更されたブロックのトラッキング(CBT)と、この機能に関連する仮想マシンのバックアップ中に発生するたアラートについて説明します。

変更されたブロックトラッキング(CBT)は、仮想マシンのストレージブロックが変化した際に追跡するVMkernelの機能です。
VMkernelは仮想マシンのブロック変更を追跡し、これにより、VMware の vStorageAPI を利用するために開発されたアプリケ
ーションのバックアッププロセスが強化されます。
  • バックアップアプライアンスは、VMware API コールを使用しスナップショットの作成を要求します。 次に、VMware はスナップショットを取得しバックアップを作成できるようにします。
  • 変更されたブロックトラッキング(CBT)は、変更されたまたは使用中のデータのブロックを識別する機能です。 これにより、増分バックアップで前回のバックアップからの変更を識別し、変更されたブロックまたは使用中のブロックのみを書き込むことができます。 


Symptoms:

免責事項: これは英文の記事「Changed Block Tracking (CBT) on virtual machines (1020128)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


仮想マシンのバックアップ取得時に下記のような事象が発生する:

  • 仮想マシンのバックアップの失敗
  • 下記のようなエラーが出力される

   One or more VM disks have incorrect changed block tracking configuration.

  • バックアップジョブが下記のようなエラーとなる

   Disk "Hard disk #" has incorrect changed block tracking configuration.
   One or more VM disks have incorrect changed block tracking configuration.


Resolution

ESXiホストで実行されている仮想マシンは、変更されたディスクセクターを追跡できます。この機能は、変更されたブロック追跡(CBT)と呼ばれます。

多くのファイルシステムでは、CBT は 2 つの変更 ID 間で変更されたディスクセクターを識別します。 VMFSパーティションでは、CBT は使用中のすべてのディスクセクターを識別することもできます。

CBT が無効になっているか正しく機能していない場合、増分バックアップは変更されたブロックのみではなく、完全な仮想マシンディスクをバックアップするか、完全なバックアップに戻る可能性があります。

仮想ディスクブロックの変更は仮想化レイヤー内の外部仮想マシンから追跡されます。ソフトウェアがバックアップを実行するとき、最後のバックアップ以降に変更されたブロック、または使用中のブロックのみの送信を要求することができます。。

CBT 機能には vSphereAPI の一部としてサードパーティのバックアップアプリケーションからアクセスできます。アプリケーションは VAPI を呼び出して、VMkernel が最後のバックアップスナップショット以降に
仮想ディスク上で変更されたデータのブロックを返すように要求します。

CBT が最後の変更 ID 以降に変更されたディスクセクターを識別するには、次の項目が必要です。
  • ホスト はESXi 4.0 以降である必要があります。
  • 追跡するディスクを所有する仮想マシンは、ハードウェアバージョン7 以降である必要があります。
  • I / O 操作は ESXi ストレージスタックを経由する必要があります。仮想互換モードの RDM と同様に NFS はサポートされいます。SAN、iSCSI または ローカル ディスクのいずれかにバッキングされていても、VMFS がサポートされています。
  • 仮想マシンに対して CBT を有効にする必要があります(以下を参照してください。デフォルトでは有効になっています)。
  • 仮想マシンストレージは、(永続的または非永続的)独立したディスクであってはなりません。つまり、スナップショットの影響を受けません。
 注:物理互換モードの RDM はサポートされていません

CBT が特殊な "*" 変更 ID で使用中のディスク セクタを特定するには、次の項目が必要です。
仮想ディスクが、SAN、iSCSI、またはローカルディスクにバッキングされている VMFS ボリューム上にあること。
クリーン スタートのため、CBT を有効にするときには仮想マシンのスナップショットをゼロとしておくこと。

注:変更されたブロックの追跡を有効にする前に、仮想マシンにスナップショットがないことを確認してください。 CBTを有効にする前にスナップショットを作成すると、
QueryChangedDiskAreas API がエラーを返さないか、QueryChangedDiskAreas によって返されるデータが正しくない可能性があります。

CBT が前回の変更 ID 以降に変更されたディスク セクタを特定するには、次の項目が必要です。
  • ホストが ESX/ESXi 4.0 以降であること。
  • 追跡対象のディスクを所有する仮想マシンが、ハードウェア バージョン 7 以降であること。
  • I/O 操作が ESX/ESXi ストレージ スタックを通過すること。 仮想互換モードの RDM と同様に NFS はサポートされますが、物理互換モードの RDM ではサポートされません。 SAN、iSCSI または ローカル ディスクのいずれかにバッキングされていても、VMFS がサポートされています。
  • CBT が仮想マシンに対して有効化されていること(下記参照)。
  • 仮想マシンのストレージが(通常あるいは読み取り専用の)独立ディスクではない、つまりスナップショットの影響を受けないこと。
CBT が特殊な "*" 変更 ID で使用中のディスク セクタを特定するには、次の項目が必要です。
  • 仮想ディスクが、SAN、iSCSI、またはローカルディスクにバッキングされている VMFS ボリューム上にあること。
  • クリーン スタートのため、CBT を有効にするときには仮想マシンのスナップショットをゼロとしておくこと。
仮想マシンのパワーオン時の電源の不具合やハード シャットダウンなど、一部のケースでは、CBT がリセットされ、差分変更の追跡を失う場合があります。

注:変更されたブロックの追跡を有効にする前に、仮想マシンにスナップショットがないことを確認してください。 CBTを有効にする前にスナップショットを作成すると、
QueryChangedDiskAreas API がエラーを返さないか、QueryChangedDiskAreas によって返されるデータが正しくない可能性があります。

仮想ディスクの CBT が有効化されているかどうかチェックするには:
  1. vSphere Client を開き、パワーオフされた仮想マシンを選択します。
  2. [編集] > [設定] > [オプション] > [詳細/一般] > [構成パラメータ] をクリックします。
1020128-1.jpg1020128-2.jpg
  3. 仮想マシンの構成ファイル (.vmx) に、次のエントリが含まれています。

  ctkEnabled = "TRUE"

    4. 各仮想ディスクについて、 .vmx ファイルに次のエントリが含まれています。

   scsix:x.ctkEnabled = "TRUE"
    注:scsi0:0.ctkEnabled の scsi0:0 は、仮想マシンに追加されたハードディスクに割り当てられた SCSI デイスを示します。 仮想マシンに追加されたすべてのハードディスクには、scsi0:0、scsi0:1、またはscsi 1:1 のような SCSI デバイスが与えられます。 CBT は各ディスクで個別に有効(または無効)することができます。

    5. 各仮想ディスクおよびスナップショット ディスクについては、.ctk ファイルがあります。

   例:

    vmname.vmdk
    vmname-flat.vmdk
    vmname-ctk.vmdk
    vmname-000001.vmdk
    vmname-000001-delta.vmdk
    vmname-000001-ctk.vmdk
 注: 正常なバックアップおよびフル スナップショット統合の後、データストアに .ctk ファイルに関連するスナップショットは残っていません。 例: vmname-000001-ctk.vmdk。

   6. 仮想マシンの電源を入れます。

   7. 仮想マシンのホームディレクトリで、CBT が有効になっている各ディスクに vmname-ctk.vmdk のようなファイルが存在していることを確認。
注:バックアップと完全なスナップショットの統合が成功した後は、スナップショットに関連する.ctk ファイルがデータストアに残っていないはずです。 例:vmname-000001-ctk.vmdk。 

CBT を無効にするには、仮想マシンにスナップショットがないことを確認します。 詳細については、以下を参照してください。
スナップショット マネージャにスナップショット エントリがない場合のスナップショットのコミット (1002310)
仮想マシンのクローン作成時に「指定されたパラメータが正しくありませんでした: vm.ctkEnabled (A specified parameter was not correct : vm.ctkEnabled)」というエラーが発生する(76280)

CBT を無効にするには:
1. 仮想マシンをパワーオフ
2. 仮想マシンを右クリックし、[設定の編集] をクリック
3. [オプション] タブをクリック
4. 「詳細」 セクションの下の 「一般」 をクリックしてから、「構成パラメーター」 をクリック  [構成パラメーター] ダイアログを開く
5. 目的の SCSI ディスクの ctkEnabled パラメーターを false に設定
6. 仮想マシンの電源を入れる

Additional Information

詳細については、『Virtual Disk API Programming Guide』の「vSphere バックアップ ソリューションの設計」の章の「仮想ディスク上での変更ブロックのトラッキング」のセクションを参照してください。
 
VMware Horizon View およびリンク クローン、インスタント クローンの仮想マシンを使用している場合、CBT を使用しないでください。 親仮想マシンに対して CBT が無効になっていることを常に確認してください。 
 
変更ブロックのトラッキングに関連する記事については、次の項目を参照してください。
Changed Block Tracking (CBT) on virtual machines