PowerStore : Impossible de répliquer les snapshots en lecture-écriture mis en veille des machines virtuelles basées sur vVol (corrigible par l’utilisateur)

Summary: PowerStore ne prend pas en charge la réplication des snapshots vVol en lecture/écriture. Cela entraîne divers problèmes de réplication des snapshots mis en veille des machines virtuelles basées sur vVol. ...

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) ne prend pas en charge l’ajout d’une machine virtuelle à un groupe de protection et déclenche l’erreur « Virtual machine '' file '' du type ' diskDescriptor' is not replicated » :
image.png
 
  • Si la machine virtuelle a déjà été ajoutée au groupe de protection SRM, son état passe à « Not configured » avec l’erreur « Virtual machine '' file '' of type 'diskDescriptor' is not replicated » :
image.png

image.png

 
  • La migration planifiée échoue dans SRM avec l’erreur « Cannot prepare protection group for failover. Il contient des machines virtuelles non récupérables. L’opération peut entraîner une perte de données. Le fichier « » de la machine virtuelle « » du type « diskDescriptor » n’est pas répliqué »
image.png
 
  • La reprise après sinistre se termine partiellement avec l’erreur « Prepare protected site VMs for migration » à l’étape suivante : ' Cannot prepare protection group for failover. Il contient des machines virtuelles non récupérables. L’opération peut entraîner une perte de données. Le fichier « » de la machine virtuelle « » du type « diskDescriptor » n’est pas répliqué »
image.png
 
  • La liste des snapshots de la machine virtuelle est vide après le basculement sur incident d’une machine virtuelle qui disposait de snapshots avant le basculement
    • Liste des snapshots de machines virtuelles avant le basculement :
image.png
  • Liste des snapshots de machines virtuelles après basculement : 
image.png

Cause

Tous les symptômes ci-dessus peuvent être le résultat de l’existence de snapshots en lecture-écriture des disques de machine virtuelle. PowerStore ne prend pas en charge la réplication des snapshots en lecture/écriture. Cela entraîne l’échec de l’arborescence de snapshots de machine virtuelle sur le site cible de la réplication. Pour cette raison, il n’est pas possible de restaurer l’arborescence de snapshots après l’opération de basculement, ce qui entraîne la perte de tous les snapshots en cas de basculement sur incident pour la machine virtuelle avec des snapshots RW. Les erreurs affichées dans SRM sont des avertissements indiquant que les snapshots seront perdus en cas de basculement.

Note: Le problème est dû à SRM. Les snapshots sont perdus si un autre type d’orchestrateur de réplication vVol est utilisé. Autrement dit, si le basculement des machines virtuelles basées sur vVol est effectué via un autre outil, les snapshots seront toujours perdus.

Les erreurs ci-dessus ne signifient pas nécessairement que les problèmes sont dus à l’existence de snapshots RW. Des erreurs similaires s’affichent si certains disques de machine virtuelle ne sont pas ajoutés à un groupe de réplication, ou s’ils ont été ajoutés, mais pas encore copiés du côté destination.



Afin de vérifier si les erreurs sont dues à des snapshots RW de vVols répliqués, vous pouvez utiliser PowerStore REST.

Les snapshots RW peuvent être répertoriés en effectuant une demande GET à l’aide de l’URL suivante : https:///virtual_volume ?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false, où est une adresse IP de cluster PowerStore Exemple de sortie :
[
  {
    "id": "13ecfcef-8676-4605-ac83-478703346824",
    "name": "vss_demo_vm.vmdk",
    "parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
  }
]

Une fois que vous disposez d’une liste de snapshots RW, vous pouvez vérifier s’il s’agit d’enfants de VVols répliqués en examinant la propriété replication_group_id de leurs vVols parents. Si replication_group_id n’est pas nul, le VVol est répliqué. La demande REST suivante peut être utilisée : https:///virtual_volume ?select=id,name,replication_group_id&id=eq. où doit être remplacé par parent_id du résultat précédent.

Vous trouverez ci-dessous un exemple de script bash qui imprime le nom de tous les vVols répliqués qui ont des snapshots RW.
#!/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  

Exemple de résultat :
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

Ces données peuvent être utilisées pour identifier la machine virtuelle à laquelle appartient le VVol. Les deux options suivantes sont disponibles.
  1. Recherche d’une machine virtuelle par nom

Dans la plupart des cas, le nom du VVol contient le nom de la machine virtuelle. Dans l’exemple ci-dessous, le VVol appartient à la machine virtuelle « vss_demo_vm ».
  1. Recherchez une machine virtuelle par uuid dans l’interface utilisateur PowerStore ou REST. Cette option est disponible si le serveur vCenter est enregistré sur PowerStore. Si c’est le cas, vous pouvez trouver la machine virtuelle comme suit :

Interface graphique PowerStore : Accédez à Compute → Virtual Machines, rendez la colonne « UUID » visible et recherchez la machine virtuelle dans la liste :
image.png

PowerStore REST : La machine virtuelle peut être trouvée en effectuant une demande GET vers /api/rest/virtual_machine avec le filtre instance_uuid=eq.. Par exemple :
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

Afin de pouvoir restaurer les snapshots sur le site cible de la réplication, nous vous recommandons de ne jamais créer de snapshots en veille des machines virtuelles répliquées basées sur vVol. La création d’un snapshot de machine virtuelle mise en veille entraîne la création de snapshots RW de vVols, ce qui entraîne des problèmes mentionnés ci-dessus.

La solution à ce problème se compose de 2 parties :
  1. Supprimer des snapshots RW existants ou convertir des snapshots VVol RW en snapshots ReadOnly vVol
  2. Évitez de créer des snapshots RW à l’avenir


Convertir des snapshots RW en snapshots RO

Pour ce faire, il est possible de migrer une machine virtuelle vers un datastore temporaire, puis de revenir à la machine virtuelle d’origine.

Étapes:
  1. Créer un conteneur de stockage temporaire sur PowerStore
  2. Monter le conteneur de stockage temporaire sur les hôtes ESXi
  3. Effectuez une opération storage vMotion sur le datastore temporel. Plus de détails dans la documentation VMware https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html
  4. Migrer les machines virtuelles vers le datastore d’origine


Supprimer les snapshots RW existants

  1. Identifiez les machines virtuelles répliquées ayant des snapshots RW. Les instructions sur la façon de procéder sont fournies dans la section « Cause »
  2. Dans l’interface graphique vSphere : Cliquez sur la machine virtuelle et ouvrez sa liste « Snapshots ».
  3. Supprimez les snapshots ayant « Yes » dans le champ « Quiesce guest file system »
image.png
 


Évitez de créer des snapshots RW à l’avenir

vSphere crée des snapshots RW de vVol en cas de création de snapshots de machines virtuelles mis en veille. Par conséquent, afin d’éviter la création de snapshots RW, vous pouvez définir la balise de mise en veille sur false lors de la création d’un snapshot de machine virtuelle.

La capture d’écran ci-dessous présente la fenêtre « Take Snapshot » dans l’interface utilisateur vSphere. Le snapshot ne sera pas mis en veille si la case n’est pas cochée.
image.png

La balise de mise en veille est disponible dans vSphere createSnapshot API , ainsi que dans la cmdlet New-Snapshot dans 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.