CBT機能利用について【VMWare専用 バックアップ & レプリケーションソフト Veeam】


vSphereやストレージの障害により、VMware CBT機能に問題が発生し、利用できなくなってしまう場合、機能をリセットする必要があります。

また、VMware CBT機能自体の不具合により、正確な変更ブロックの情報が取得されず、不整合なバックアップを取得してしまった場合には、バックアップ内に不整合なブロックが残ってしまう可能性があります。
VMware KB 2090639
ソフトウェアがVMwareのAPIコマンドであるQueryChangedDiskAreas(“*”)コマンドを実行した場合、誤ったディスクセクタの情報を返すことのある不具合です。
ディスクの実容量(割り当てサイズの拡張ではなく)が128GB以上の2のべき乗を超えて成長した場合にトリガされる問題です。
※この問題に関して、Veeamでは自動的にディスクの成長を検出し、CBTリセットを行う機能が含まれており、該当の環境でディスクが成長した場合には自動的にリセットされます。https://www.veeam.com/kb1940

VMware KB 2136854
ソフトウェアがVMwareのAPIコマンドであるQueryChangedDiskAreas(“*”)コマンドを実行した場合、誤ったディスクセクタの情報を返すことのある不具合です。
弊社ブログ記事でも情報展開しています。

どちらも既にVMwareからパッチが提供されていますが、パッチ適用後にもCBTのリセットは必要です。また既に問題が発生している状態でバックアップを行っている場合には不整合なブロックがVMware APIから取得されバックアップに保存されている可能性があります。そのためこのリセット操作後にActive Fullでフルバックアップを取得を推奨しています。

VMware CBT機能のリセット方法は2種類あります。
・仮想マシンのパワーオフ操作を含む、パラメータ変更によるリセット
・VMware PowerCLIからのスナップショット操作によるリセット

CBT機能のリセット時には対象VMがスナップショットを保持していない状態である必要があります。

・仮想マシンのパワーオフ操作を含む、パラメータ変更によるリセット
1. 構成パラメータの無効化
(1) 対象仮想マシンの電源を落とします。

(2) 仮想マシンを右クリックし、設定画面を開きます。

(3) “オプション” タブを開き、 “全般” をクリックします。表示された中から “構成パラメータ” をクリックします。

(4) 表示されるパラメータ一覧から CBT 機能に関するパラメータの値を “false” に設定します。
ctkEnabled : CBT 機能自体の有効、無効
scsi0:x.ctkEnabled : SCSI 接続されている仮想ディスクの CBT 機能の有効無効、接続しているディスクの数だけ設定する必要があります。
ide0:x.ctkEnabled : IDE 接続されている仮想ディスクの CBT 機能の有効無効、接続しているディスクの数だけ設定する必要があります。

2. CTK ファイルの削除
(1) 対象の仮想マシンのデータストアを参照します。ESX ホストを選択し、 “構成” タブをクリック、対象の仮想マシンを保存しているデータストアを右クリックし、 “データストアの参照” をクリックします。

(2) 対象の仮想マシンのフォルダを選択し、フォルダ内の “xxx-ctk.vmdk” ファイルを削除します。

3. CTK テーブルの更新
CTK テーブルの更新のため、仮想マシンの再起動を行います。
(1) 対象の仮想マシンをパワーオンします。
(2) 対象の仮想マシンをパワーオフします。(この時点で CTK テーブルは更新されます。)
(3) 対象の仮想マシンをパワーオンします。(任意)

4. ジョブの実行
(1) ジョブを実行します。この際、CBT 機能を使用するオプションと、対象の仮想マシンの CBT 機能を有効にするオプションにチェックが入っていることを確認してください。

※ 画像は Ver 6.1.0.203 のものです。(Ver 5.x の場合は設定ウィザードの “Backup/Replication Destination”、Ver 6.x の場合はBackup ウィザードでは “Storage”、Replication ウィザードでは “Job Settings” から “Advanced” ボタンをクリックし、 “vSphere” タブを開くことで確認できます。)

・VMware PowerCLIからのスナップショット操作によるリセット
こちらのスクリプトをVeeamからダウンロードし、実行いただくことでリセット可能です。スクリプト実行時にはパワーオン状態のVMにスナップショットがないことをご確認ください。またこのスクリプトはスナップショットの作成、削除を伴うため仮想環境への影響を考慮し、実行をお願いいたします。
※このスクリプトの実行のためにはPowerShellの実行ポリシーを変更する必要があります。

このスクリプトでは以下のようなコマンドが実行されています。
CBTが有効なVMの一覧を取得:
$vms=get-vm | ?{$_.ExtensionData.Config.ChangeTrackingEnabled -eq $true}

CBTを無効にする設定を作成:
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.ChangeTrackingEnabled = $false

各VMに対して設定を適用し、VMに対してスナップショット作成、削除を実施:
foreach($vm in $vms){
$vm.ExtensionData.ReconfigVM($spec)
$snap=$vm | New-Snapshot -Name ‘Disable CBT’
$snap | Remove-Snapshot -confirm:$false}

成功しているか確認:
get-vm | ?{$_.ExtensionData.Config.ChangeTrackingEnabled -eq $true}

関連トピックス

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください