PowerStore:VVolベースのVMの静止読み取り/書き込みスナップショットをレプリケートできない(ユーザー修正可能)
Summary: PowerStoreは、読み取り/書き込みVVolスナップショットのレプリケーションをサポートしていません。これにより、VVolベースのVMの停止されたスナップショットのレプリケーションに関するさまざまな問題が発生します。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
- VMware Site Recovery Manager(SRM)は 、保護グループへのVMの追加をサポートしておらず、「diskDescriptor」タイプの「virtual machine ''file '' is not replicated」というエラーを発生させます。
- VMがすでにSRM保護グループに追加されている場合、ステータスは「Not configured」に切り替わります。エラー「Virtual machine '' file '' type 'diskDescriptor' is not replicated":
- SRMで計画的な移行が失敗し、「Cannot prepare protection group for failover.これには、リカバリ不可能な仮想マシンが含まれています。この操作により、データが失われる可能性があります。「diskDescriptor」タイプの仮想マシン「」ファイル「」がレプリケートされない
- ステップ「Prepare protected site VM for migration」でディザスター リカバリーが部分的に完了し、次のエラーが表示されます。'Cannot prepare protection group for failover.これには、リカバリ不可能な仮想マシンが含まれています。この操作により、データが失われる可能性があります。「diskDescriptor」タイプの仮想マシン「」ファイル「」がレプリケートされない
- フェールオーバー前にスナップショットを持つVMのフェールオーバー後、仮想マシンのスナップショット リストが空になる
- フェールオーバー前のVMスナップショット リスト:
- フェールオーバー後のVMスナップショット リスト:

Cause
上記の現象はすべて、VMディスクの読み取り/書き込みスナップショットが存在した結果である可能性があります。PowerStoreは、読み取り/書き込みスナップショットのレプリケーションをサポートしていません。これにより、レプリケーションのターゲット サイトでVMスナップショット ツリーが不完全になります。このため、フェールオーバー操作後にスナップショット ツリーをリカバリすることはできません。これにより、RWスナップショットを使用したVMに対してフェールオーバーが実行された場合に備えて、すべてのスナップショットが失われます。SRMに表示されるエラーは、フェールオーバーが発生した場合にスナップショットが失われるという警告です。
メモ:この問題はSRMが原因で発生します。他の種類のVVolレプリケーション オーケストレーターが使用されている場合、スナップショットは失われます。つまり、別のツールを使用してVVolベースのVMのフェールオーバーを実行した場合でも、スナップショットは失われます。
上記のエラーは、必ずしもRWスナップショットが存在することが問題であるとは限りません。同様のエラーは、一部のVMディスクがレプリケーション グループに追加されていない場合、または追加されたがデスティネーション側にまだコピーされていない場合に表示されます。
エラーがレプリケートされたVVolsのRWスナップに起因しているかどうかを確認するには、PowerStore RESTを活用できます。
RWスナップショットは、https:///virtual_volume?select=id、name、parent_id&type=eqのURLを使用してGETリクエストを実行することで一覧表示できます。Snapshot&creator_type=eq.User&is_readonly=eq.false 。ここで、はPowerStoreクラスターIPです 出力例:
RWスナップショットのリストが表示されたら、親VVolsのreplication_group_id プロパティを調てることで、レプリケートされたVVolの子であるかどうかを確認できます。replication_group_idがnullでない場合は、VVolがレプリケートされます。次のRESTリクエストを使用できます。 https:///virtual_volume?select=id,name,replication_group_id&id=eq.ここでは前の結果のparent_idに置き換える必要があります。
以下は、RWスナップショットを持つすべてのレプリケートされたvVolsの名前を出力するbashスクリプトの例です。
出力例:
このデータは、VVolが属するVMを識別するために使用できます。次の2つのオプションを使用できます。
PowerStore REST: VMは、フィルター instance_uuid=eq.を使用して/api/rest/virtual_machineにGETリクエストを実行することで見つかります。例:
メモ:この問題はSRMが原因で発生します。他の種類のVVolレプリケーション オーケストレーターが使用されている場合、スナップショットは失われます。つまり、別のツールを使用してVVolベースのVMのフェールオーバーを実行した場合でも、スナップショットは失われます。
上記のエラーは、必ずしもRWスナップショットが存在することが問題であるとは限りません。同様のエラーは、一部のVMディスクがレプリケーション グループに追加されていない場合、または追加されたがデスティネーション側にまだコピーされていない場合に表示されます。
エラーがレプリケートされたVVolsのRWスナップに起因しているかどうかを確認するには、PowerStore RESTを活用できます。
RWスナップショットは、https:///virtual_volume?select=id、name、parent_id&type=eqのURLを使用してGETリクエストを実行することで一覧表示できます。Snapshot&creator_type=eq.User&is_readonly=eq.false 。ここで、はPowerStoreクラスターIPです 出力例:
[
{
"id": "13ecfcef-8676-4605-ac83-478703346824",
"name": "vss_demo_vm.vmdk",
"parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
}
]
RWスナップショットのリストが表示されたら、親VVolsのreplication_group_id プロパティを調てることで、レプリケートされたVVolの子であるかどうかを確認できます。replication_group_idがnullでない場合は、VVolがレプリケートされます。次のRESTリクエストを使用できます。 https:///virtual_volume?select=id,name,replication_group_id&id=eq.ここでは前の結果のparent_idに置き換える必要があります。
以下は、RWスナップショットを持つすべてのレプリケートされたvVolsの名前を出力するbashスクリプトの例です。
#!/bin/bash
powerstore_rest_ip=10.249.51.38 # define IP of the PowerStore
credentials=admin:Password123! # define powerstore credentials
set -e
## helper function to execute a REST request
function rest_request() {
url=$1
if [[ -z $url ]]; then
echo No url provided >&2
exit 1
fi
curl -f -s --insecure -u $credentials -H 'Content-Type: application/json' "https://$powerstore_rest_ip/api/rest/$url"
}
# Step 1: collect all the RW snapshots
snap_list='[]'
offset=0
# loop is used here because PowerStore REST has a limit on number of entities returned in a single response
# if the number of snapshots is more than a limit then not all the snapshots are returned and we need to request others by using offset parameter
while : ; do
tmp=$(rest_request "virtual_volume?select=id,name,parent_id,creation_timestamp,naa_name&type=eq.Snapshot&creator_type=eq.User&is_readonly=eq.falseℴ=creation_timestamp&offset=$offset")
len=$(jq length <<< "$tmp")
if [[ "$len" -eq "0" ]]; then break; fi
offset=$((offset+len))
snap_list=$(echo -e "$snap_list\n$tmp" | jq -s 'add')
done
# Step 2: Filter out vVols which are not replicated
for i in $(jq -r '.[].parent_id' <<< "$snap_list" | sort | uniq); do
replicated_parent=$(rest_request "virtual_volume?select=id,name,replication_group_id,virtual_machine_uuid&id=eq.$i&replication_group_id=not.is.null")
if [[ $(jq length <<< "$replicated_parent") != 0 ]]; then
vvol_name=$(jq '.[0].name' <<< "$replicated_parent")
vvol_id=$(jq -r '.[0].id' <<< "$replicated_parent")
vm_uuid=$(jq -r '.[0].virtual_machine_uuid' <<< "$replicated_parent")
vvol_rw_snap_count=$(jq "[ .[] | select(.parent_id==\"$i\") ] | length" <<< "$snap_list")
echo "Replicated vVol $vvol_name has $vvol_rw_snap_count RW snapshots. vVol id: $vvol_id, VM uuid: $vm_uuid"
echo "RW Snapshots:"
echo "name,naa_name,creation_timestamp"
jq -r '.[] | select(.parent_id=="'$i'") | [.name, .naa_name, .creation_timestamp] | @csv' <<< "$snap_list" | tr -d '"'
fi
done
出力例:
Replicated vVol "vss_demo_vm.vmdk" has 2 RW snapshots. vVol id: e0173e85-8dc2-4104-a11d-d670ac419f88, VM uuid: 50379fa2-dda5-6a20-3156-c31bcbe30fb4 RW Snapshots: name,naa_name,creation_timestamp vss_demo_vm.vmdk,naa.68ccf09800f030ce0bc208d40cfbacb3,2023-09-21T15:05:59.242+00:00 vss_demo_vm.vmdk,naa.68ccf098004b0ad8048b1c326ab341a8,2023-09-21T15:39:16.518+00:00
このデータは、VVolが属するVMを識別するために使用できます。次の2つのオプションを使用できます。
-
名前でVMを検索
-
PowerStore GUIまたはRESTでUUIDでVMを検索します。このオプションは、vCenter ServerがPowerStoreに登録されている場合に使用できます。このような場合は、次のようにVMを見つけることができます。
PowerStore REST: VMは、フィルター instance_uuid=eq.を使用して/api/rest/virtual_machineにGETリクエストを実行することで見つかります。例:
curl -u $credentials 'https://$powerstore_rest_ip/api/rest/virtual_machine?instance_uuid=eq.5037dc23-56fc-29d2-d567-05ef17ffa81a&select=id,name'
[{"id":"550d0148-d123-4303-9bcc-85ef26377851","name":"vss_demo_vm"}]
Resolution
レプリケーションのターゲット サイトでスナップショットをリカバリーできるようにするには、レプリケートされたVVolベースのVMの停止スナップショットを作成することは絶対に行わないことをお勧めします。停止されたVMスナップショットの作成により、VVolsのRWスナップショットが作成され、前述の問題が発生します。
この問題の解決策は、次の2つの部分で構成されています。
これは、VMを一時的なデータストアに移行してから元のデータストアに戻すことによって実行できます。
手順:
この問題の解決策は、次の2つの部分で構成されています。
- 既存のRWスナップショットを削除するか、RW VVolスナップショットをReadOnly vVolスナップショットに変換する
- 将来的にRWスナップショットを作成しないようにする
RWスナップショットからROスナップショットへの変換
これは、VMを一時的なデータストアに移行してから元のデータストアに戻すことによって実行できます。
手順:
- PowerStoreでの一時的なストレージ コンテナの作成
- ESXiホストへの一時ストレージ コンテナのマウント
- 時間的データストアへのストレージvMotion操作を実行します。VMwareのドキュメント https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html の詳細
- VMを元のデータストアに戻す
既存のRWスナップショットの削除
- RWスナップショットを持つレプリケートされた仮想マシンを特定します。これを行う方法については、「原因」セクションを参照してください。
- vSphere GUIで次の手順を実行します。VMをクリックして、[Snapshots]リストを開きます。
- [Quiesce guest file system]フィールドに「Yes」を持つスナップショットを削除する
将来的にRWスナップショットの作成を回避する
vSphereは、停止したVMスナップショットを作成する場合にVVolのRWスナップショットを作成するため、RWスナップショットの作成を回避するために、VMスナップショットの作成時にキューエス フラグをfalseに設定できます。
次のスクリーンショットは、vSphere GUIの[Take Snapshot]ウィンドウを示しています。チェックボックスがオンになっていない場合、スナップは停止されません。
キューエス フラグは、vSphere createSnapshot APIとPowerCLIのNew-Snapshot cmdletで使用できます。
Affected Products
PowerStoreArticle Properties
Article Number: 000218057
Article Type: Solution
Last Modified: 14 Jun 2025
Version: 4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.