PowerStore: Stillgelegte Lese-/Schreib-Snapshots von vVol-basierten VMs können nicht repliziert werden (vom Nutzer korrigierbar)
Summary: PowerStore unterstützt keine Replikation von Lese-/Schreib-vVol-Snapshots. Dies führt zu verschiedenen Problemen bei der Replikation stillgelegter Snapshots von vVol-basierten VMs.
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) unterstützt das Hinzufügen einer VM zu einer Schutzgruppe nicht und löst den Fehler "Virtual machine '' file '' des Typs 'diskDescriptor' is not replicated" aus:
- Wenn die VM bereits zur SRM-Schutzgruppe hinzugefügt wurde, wechselt ihr Status zu "Not configured" mit dem Fehler "'Virtual machine '' file '' vom Typ 'diskDescriptor' is not replicated":
- Die geplante Migration schlägt in SRM mit dem Fehler "Cannot prepare protection group for failover fehl. Es enthält nicht wiederherstellbare virtuelle Maschinen. Der Vorgang kann zu Datenverlust führen. Virtual machine '' file '' des Typs 'diskDescriptor' is not replicated"
- Die Disaster Recovery wird teilweise mit dem Fehler in Schritt "Prepare protected site VMs for migration" abgeschlossen: "Cannot prepare protection group for failover. Es enthält nicht wiederherstellbare virtuelle Maschinen. Der Vorgang kann zu Datenverlust führen. Virtual machine '' file '' des Typs 'diskDescriptor' is not replicated"
- Die Snapshot-Liste der virtuellen Maschine ist nach dem Failover für eine VM leer, die vor dem Failover Snapshots hatte.
- VM-Snapshot-Liste vor Failover:
- VM-Snapshot-Liste nach Failover:

Cause
Alle der oben genannten Symptome können das Ergebnis des Vorhandenseins von Lese-/Schreib-Snapshots von VM-Festplatten sein. PowerStore unterstützt keine Replikation von Lese-/Schreib-Snapshots. Dies führt dazu, dass die VM-Snapshot-Struktur am Zielstandort der Replikation unvollständig ist. Aus diesem Grund ist es nicht möglich, die Snapshot-Struktur nach einem Failover-Vorgang wiederherzustellen, was zum Verlust aller Snapshots führt, falls ein Failover für die VM mit RW-Snapshots durchgeführt wird. Die in SRM angezeigten Fehler sind warnungshalber, dass Snapshots verloren gehen, falls es zu einem Failover kommt.
Hinweis: Das Problem wird durch SRM verursacht. Die Snapshots gehen verloren, wenn eine andere Art von vVol-Replikationsorchestrierer verwendet wird. Das heißt, wenn ein Failover von vVol-basierten VMs über ein anderes Tool durchgeführt wird, gehen die Snapshots weiterhin verloren.
Die obigen Fehler bedeuten nicht unbedingt, dass die Probleme auf das Vorhandensein von RW-Snapshots zurückzuführen sind. Ähnliche Fehler werden angezeigt, wenn einige der VM-Festplatten nicht zu einer Replikationsgruppe hinzugefügt werden oder wenn sie hinzugefügt, aber noch nicht auf die Zielseite kopiert wurden.
Um zu überprüfen, ob die Fehler auf RW-Snapshots replizierter VVols zurückzuführen sind, können Sie PowerStore REST nutzen.
RW-Snapshots können durch Ausführen einer GET-Anforderung unter Verwendung der folgenden URL aufgelistet werden: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false , wobei eine PowerStore-Cluster-IP ist Beispielausgabe:
Sobald Sie eine Liste der RW-Snapshots haben, können Sie überprüfen, ob sie untergeordnete Elemente replizierter VVols sind, indem Sie sich die replication_group_id Eigenschaft ihrer übergeordneten VVols ansehen. Wenn replication_group_id nicht null ist, wird das vVol repliziert. Die folgende REST-Anforderung kann verwendet werden: https:///virtual_volume?select=id,name,replication_group_id&id=eq. wobei durch parent_id aus dem vorherigen Ergebnis ersetzt werden sollte.
Im Folgenden finden Sie ein Beispiel für ein Bash-Skript, das den Namen aller replizierten VVols druckt, die RW-Snapshots haben.
Beispiel Ausgabe:
Diese Daten können verwendet werden, um die VM zu identifizieren, zu der das vVol gehört. Die folgenden beiden Optionen sind verfügbar.
PowerStore REST: Die VM kann durch Ausführen einer GET-Anforderung an /api/rest/virtual_machine mit filter instance_uuid=eq. gefunden werden. Zum Beispiel:
Hinweis: Das Problem wird durch SRM verursacht. Die Snapshots gehen verloren, wenn eine andere Art von vVol-Replikationsorchestrierer verwendet wird. Das heißt, wenn ein Failover von vVol-basierten VMs über ein anderes Tool durchgeführt wird, gehen die Snapshots weiterhin verloren.
Die obigen Fehler bedeuten nicht unbedingt, dass die Probleme auf das Vorhandensein von RW-Snapshots zurückzuführen sind. Ähnliche Fehler werden angezeigt, wenn einige der VM-Festplatten nicht zu einer Replikationsgruppe hinzugefügt werden oder wenn sie hinzugefügt, aber noch nicht auf die Zielseite kopiert wurden.
Um zu überprüfen, ob die Fehler auf RW-Snapshots replizierter VVols zurückzuführen sind, können Sie PowerStore REST nutzen.
RW-Snapshots können durch Ausführen einer GET-Anforderung unter Verwendung der folgenden URL aufgelistet werden: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false , wobei eine PowerStore-Cluster-IP ist Beispielausgabe:
[
{
"id": "13ecfcef-8676-4605-ac83-478703346824",
"name": "vss_demo_vm.vmdk",
"parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
}
]
Sobald Sie eine Liste der RW-Snapshots haben, können Sie überprüfen, ob sie untergeordnete Elemente replizierter VVols sind, indem Sie sich die replication_group_id Eigenschaft ihrer übergeordneten VVols ansehen. Wenn replication_group_id nicht null ist, wird das vVol repliziert. Die folgende REST-Anforderung kann verwendet werden: https:///virtual_volume?select=id,name,replication_group_id&id=eq. wobei durch parent_id aus dem vorherigen Ergebnis ersetzt werden sollte.
Im Folgenden finden Sie ein Beispiel für ein Bash-Skript, das den Namen aller replizierten VVols druckt, die RW-Snapshots haben.
#!/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
Beispiel Ausgabe:
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
Diese Daten können verwendet werden, um die VM zu identifizieren, zu der das vVol gehört. Die folgenden beiden Optionen sind verfügbar.
-
Suchen einer VM nach Namen
-
Suchen Sie eine VM nach uuid in der PowerStore-GUI oder rest. Diese Option ist für den Fall verfügbar, dass vCenter Server auf PowerStore registriert ist. Wenn dies der Fall ist, finden Sie die VM wie folgt:
PowerStore REST: Die VM kann durch Ausführen einer GET-Anforderung an /api/rest/virtual_machine mit filter instance_uuid=eq. gefunden werden. Zum Beispiel:
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
Um die Snapshots am Zielstandort der Replikation wiederherstellen zu können, empfehlen wir, niemals stillgelegte Snapshots replizierter vVol-basierter VMs zu erstellen. Die Erstellung stillgelegter VM-Snapshots verursacht die Erstellung von RW-Snapshots von VVols, was zu oben genannten Problemen führt.
Die Problemlösung besteht aus 2 Teilen:
Dies kann durch die Migration einer VM zu einem temporären Datenspeicher und dann zurück zum ursprünglichen Datenspeicher erfolgen.
Schritte:
Die Problemlösung besteht aus 2 Teilen:
- Entfernen vorhandener RW-Snapshots oder Konvertieren von RW-VVol-Snapshots in ReadOnly-vVol-Snapshots
- Vermeiden Sie in Zukunft die Erstellung von RW-Snapshots.
Konvertieren von RW-Snapshots in RO-Snapshots
Dies kann durch die Migration einer VM zu einem temporären Datenspeicher und dann zurück zum ursprünglichen Datenspeicher erfolgen.
Schritte:
- Erstellen eines temporären Speichercontainers auf PowerStore
- Mounten des temporären Speichercontainers auf ESXi-Hosts
- Führen Sie einen vMotion-Speichervorgang zum zeitlichen Datenspeicher durch. Weitere Details finden Sie in der VMware-Dokumentation https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html
- Migrieren der VMs zurück zum ursprünglichen Datenspeicher
Entfernen vorhandener RW-Snapshots
- Identifizieren Sie die replizierten virtuellen Maschinen mit RW-Snapshots. Anweisungen dazu finden Sie im Abschnitt "Ursache".
- In der vSphere-GUI: Klicken Sie auf die VM und öffnen Sie die Liste "Snapshots".
- Löschen von Snapshots mit "Yes" im Feld "Quiesce guest file system"
Vermeidung der Erstellung von RW-Snapshots in Zukunft
vSphere erstellt RW-Snapshots von vVol im Falle der Erstellung stillgelegter VM-Snapshots. Um die Erstellung von RW-Snapshots zu vermeiden, können Sie das Stilllegungs-Flag bei der Erstellung eines VM-Snapshot auf "false" setzen.
Der folgende Screenshot zeigt das Fenster "Take Snapshot" in der vSphere-GUI. Der Snapshot wird nicht stillgelegt, wenn das Kontrollkästchen nicht aktiviert ist.
Das Stilllegungs-Flag ist in vSphere createSnapshot API sowie im Cmdlet New-Snapshot in PowerCLI verfügbar.
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.