PowerStore: Kan geen ge quiesced Read-Write snapshots van op vVol gebaseerde VM's repliceren (op te lossen door gebruiker)

Summary: PowerStore biedt geen ondersteuning voor replicatie van Read-Write vVol snapshots. Dit veroorzaakt verschillende problemen met replicatie van stilliggende snapshots van op vVol gebaseerde VM's. ...

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

image.png
 
  • Als de VM al is toegevoegd aan SRM Protection Group, worden de statusswitches naar 'Not configured' met de foutmelding 'Virtual machine '' file '' van het type 'diskDescriptor' niet gerepliceerd":
image.png

image.png

 
  • Geplande migratie mislukt in SRM met de foutmelding 'Cannot prepare protection group for failover. Het bevat niet-herstelbare virtuele machines. De bewerking kan leiden tot dataverlies. Virtual machine ''-bestand '' van het type 'diskDescriptor' wordt niet gerepliceerd'
image.png
 
  • Disaster Recovery wordt gedeeltelijk voltooid met de foutmelding 'Prepare protected site VM's for migration': 'Cannot prepare protection group for failover. Het bevat niet-herstelbare virtuele machines. De bewerking kan leiden tot dataverlies. Virtual machine ''-bestand '' van het type 'diskDescriptor' wordt niet gerepliceerd'
image.png
 
  • De lijst met snapshots van virtuele machines is leeg na failover voor een VM die snapshots had vóór failover
    • Lijst met VM-snapshots vóór failover:
image.png
  • Lijst met VM-snapshots na failover: 
image.png

Cause

Alle bovenstaande symptomen kunnen het gevolg zijn van het bestaan van lees-schrijf-snapshots van VM-schijven. PowerStore biedt geen ondersteuning voor replicatie van lees-schrijf-snapshots. Dit zorgt ervoor dat de VM-snapshotstructuur onvolledig is op de doellocatie van replicatie. Hierdoor is het niet mogelijk om de snapshot-boomstructuur te herstellen na failoverbewerking, wat leidt tot verlies van alle snapshots in het geval dat failover wordt uitgevoerd voor de VM met RW-snapshots. De fouten die worden weergegeven in SRM zijn een waarschuwing dat snapshots verloren gaan in het geval er een failover plaatsvindt.

Opmerking: Het probleem wordt veroorzaakt door SRM. De snapshots zouden verloren gaan in het geval dat een andere vorm van vVol replicatie orchestrator wordt gebruikt. Als failover van op vVol gebaseerde VM's wordt uitgevoerd via een ander hulpprogramma, zouden de snapshots nog steeds verloren gaan.

De bovenstaande fouten betekenen niet noodzakelijkerwijs dat de problemen te wijten zijn aan het bestaan van RW-snapshots. Vergelijkbare fouten worden weergegeven als sommige VM-schijven niet worden toegevoegd aan een replicatiegroep of als ze zijn toegevoegd maar nog niet naar de doelzijde zijn gekopieerd.



Om te controleren of de fouten te wijten zijn aan RW-snaps van gerepliceerde vVols, kunt u PowerStore REST gebruiken.

RW-snapshots kunnen worden vermeld door get-aanvraag uit te voeren via de volgende URL: https:///virtual_volume?select=id, naam, parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false, waarbij een PowerStore cluster-IP voorbeelduitvoer is:
[
  {
    "id": "13ecfcef-8676-4605-ac83-478703346824",
    "name": "vss_demo_vm.vmdk",
    "parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
  }
]

Zodra u een lijst met RW-snapshots hebt, kunt u controleren of het kinderen zijn van gerepliceerde vVols door te kijken naar de replication_group_id eigenschap van hun bovenliggende vVols. Als replication_group_id niet null is, wordt de vVol gerepliceerd. De volgende REST-aanvraag kan worden gebruikt: https:///virtual_volume?select=id,naam, replication_group_id&id=eq. waarbij moet worden vervangen door parent_id van het vorige resultaat.

Hieronder vindt u een voorbeeld van een BASH-script dat de naam van alle gerepliceerde vVol's met RW-snapshots afdrukt.
#!/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  

Voorbeelduitvoer:
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

Deze data kunnen worden gebruikt om de VM te identificeren waartoe de vVol behoort. De volgende twee opties zijn beschikbaar.
  1. Een VM zoeken op naam

In de meeste gevallen bevat de naam van vVol een naam van de VM. In het onderstaande voorbeeld behoort de vVol tot VM 'vss_demo_vm'
  1. Zoek een VM op uuid in PowerStore GUI of REST. Deze optie is beschikbaar voor het geval vCenter server is geregistreerd op PowerStore. Als dit het geval is, kunt u de VM als volgt vinden:

PowerStore GUI: Ga naar Compute → Virtual Machines, maak de kolom 'UUID' zichtbaar en zoek de VM in de lijst:
image.png

PowerStore REST: VM kan worden gevonden door GET-aanvraag uit te voeren naar /api/rest/virtual_machine met filter instance_uuid=eq.. Bijvoorbeeld:
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

Om de snapshots op de doelsite van replicatie te kunnen herstellen, raden we aan om nooit stil te leggen snapshots te maken van gerepliceerde vm's op basis van vVol. Het maken van vm-snapshots veroorzaakt het maken van RW-snapshots van vVols, wat problemen veroorzaakt die hierboven worden genoemd.

De probleemoplossing bestaat uit 2 onderdelen:
  1. Bestaande RW-snapshots verwijderen of RW vVol-snapshots converteren naar ReadOnly vVol-snapshots
  2. Maak in de toekomst geen RW-snapshots


Rw-snapshots converteren naar RO-snapshots

Dit kan worden gedaan door een VM te migreren naar een tijdelijke datastore en vervolgens terug te keren naar de oorspronkelijke.

Stappen:
  1. Een tijdelijke storagecontainer maken op PowerStore
  2. De tijdelijke storagecontainer koppelen aan ESXi-hosts
  3. Voer een storage vMotion-bewerking uit naar de temporele datastore. Meer informatie in VMware-documentatie https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html
  4. Migreer de VM's terug naar de oorspronkelijke datastore


Bestaande RW-snapshots verwijderen

  1. Identificeer de gerepliceerde virtuele machines met RW-snapshots. De instructies over hoe u dit kunt doen, vindt u in het gedeelte 'Oorzaak'.
  2. In vSphere GUI: Klik op de VM en open de lijst met snapshots
  3. Verwijder snapshots met 'Yes' in het veld 'Quiesce guest file system'
image.png
 


Maak in de toekomst geen RW-snapshots meer

vSphere maakt RW-snapshots van vVol in het geval van het maken van stilleggende VM-snapshots. Om te voorkomen dat RW-snapshots worden gemaakt, kunt u de quiesce-vlag instellen op false bij het maken van een VM-snapshot.

De onderstaande schermafbeelding toont het venster 'Snapshot maken' in de vSphere GUI. De klikknop wordt niet stilgezet als het selectievakje niet is aangevinkt.
image.png

De quiesce-vlag is beschikbaar in vSphere createSnapshot API en in New-Snapshot cmdlet in PowerCLI

Affected Products

PowerStore
Article 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.