免責事項:これは英文の記事「vSphere Replication is replicating huge data though there are no changes occurring on the virtual machine」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新の内容については、英語版の記事を参照してください。
このような仮想マシンでレプリケーションを一時停止すると、前述の問題は発生しないことに注意することが重要です。
VMware vSphere Replication 8.x
VMware vSphere Replication 9.x
この問題は、ゲスト OS で UNMAP が有効になっている場合に発生します。
UNMAP (または TRIM) は、ゲスト オペレーティング システムがストレージ サブシステムに、特定のデータ ブロックが使用されなくなったことを通知し、ストレージがその領域を再利用できるようにする機能です。
回避策
ゲスト OS の trim/unmap コマンド使用時の vSphere Replication の動作
ゲスト OS が応答しなくなったり、ターゲット データストア (VMFS) がソース ディスク容量の使用量と比較してより高い容量を消費したりしている場合は、以下のオプションを試すことができます。
ESXi ホストの詳細設定を構成する
DemandlogFailCollidingUnmap オプションを 0、2、または 3 のいずれかの値に構成します。この設定の影響は、使用しているゲスト オペレーティング システムによって異なる場合があるため、特定の環境に最も適した構成を適用することをお勧めします。詳細設定の変更はすぐに適用され、ホスト システムの再起動は必要ありません。
ESXi 詳細オプション「DemandlogFailCollidingUnmap」の履歴
ESXi バージョン 7.0.3 のリリース前:
hbr_filter ドライバーは、ゲスト オペレーティング システムからのアンマッピングとの同期操作中に発生する競合を、それぞれのブロックのオンデマンド コピーを開始することで管理していました。
欠点: この方法では、重複領域を維持するために余分な READ および WRITE 操作が必要であり、予期せぬ遅延が発生する可能性がありました。
注: この動作は、後から導入された詳細オプション「DemandlogFailCollidingUnmap」と似ており、オプション 0 が選択されています。
ESXi バージョン 7.0.3:
DemandlogFailCollidingUnmap オプションは ESXi 7.0.3 で導入されました。
デフォルト オプション: 1
ESXi バージョン 7.0.3 から 7.0.3 P07、および 8.0 から 8.0.1 の間
DemandlogFailCollidingUnmap オプションは、0 と 1 の 2 つの値で利用可能でした。
ESXi バージョン 7.0.3 以降の現在の構成設定を確認するには、次のコマンドを実行してください。
$ esxcli system settings advanced list -o /HBR/DemandlogFailCollidingUnmap
このオプションを変更するには、次のコマンドを使用します。
$ esxcli system settings advanced set -o /HBR/DemandlogFailCollidingUnmap -i 0
デフォルト設定を復元するには、次のコマンドを実行する必要があります。
$ esxcli system settings advanced set -o /HBR/DemandlogFailCollidingUnmap -i 1
ESXi 7.0.3 P08 以降のパッチおよび ESXi 8.0.2 以降のバージョン
DemandlogFailCollidingUnmap 構成オプションは、2 つの追加値 (2 および 3) を組み込むように改訂されました。これらの新しい値は、ゲスト オペレーティング システムによって発行されたアンマッピング/トリム コマンドに対するドライバーの応答の柔軟性を向上させます。
DemandlogFailCollidingUnmap 構成オプションの新しい値:
オプション値「2」: 「チェック条件」エラー (SCSI イベント ステータス コード 02h)
hbr_filter ドライバーは、追加のセンス データを提供せずに「チェック条件」エラーを生成します。その結果、ゲスト オペレーティング システムは、即時再試行を試みずにコマンドを失敗させます。
$ esxcli system settings advanced set -o /HBR/DemandlogFailCollidingUnmap -i 2
オプション値「3」: 「成功」応答 (SCSI イベント ステータス コード 00h)
hbr_filter ドライバーは、ゲスト オペレーティング システムによって発行されたトリム/アンマッピング コマンドに対して成功ステータスを返します。
$ esxcli system settings advanced set -o /HBR/DemandlogFailCollidingUnmap -i 3
ESXi 8.0.3 以降のバージョン
DemandlogFailCollidingUnmap は ESXi 8.0u3 以降機能していません。この問題は今後のリリースで修正される予定です。
ディスク ファイルにストレージ ポリシーを適用すると、ディスクの消費容量が再び大きくなります。これはストレージ ポリシーの構成です。ストレージ ポリシーのため、使用容量は元のサイズよりも大きくなります。これは想定どおりです。
たとえば、1 つのファイルが 10 GB の場合、RAID 1 ポリシーを適用すると、約 20 GB になります。
ゲスト OS の Unmap を無効にし、VM がシン プロビジョニング ディスクを使用している場合、以下を考慮する必要があります。