PowerStore: Não é possível replicar snapshots de leitura/gravação desativados de VMs baseadas em vVol (corrigível pelo usuário)
Summary: O PowerStore não dá suporte à replicação de snapshots do vVol de leitura e gravação. Isso causa vários problemas com a replicação de snapshots desativados de VMs baseadas em 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
- O VMware Site Recovery Manager (SRM) não dá suporte à adição de uma VM a um grupo de proteção e gera o erro "'Virtual machine '' file '' do tipo 'diskDescriptor' is not replicated" :
- Se a VM já tiver sido adicionada ao grupo de proteção do SRM, seu status alternará para "Not configured" com o erro "'Virtual machine '' file '' do tipo 'diskDescriptor' is not replicated":
- A migração planejada falha no SRM com o erro "Cannot prepare protection group for failover. Ele contém máquinas virtuais não recuperáveis. A operação pode causar perda de dados. O arquivo "" da máquina virtual "" do tipo "diskDescriptor" não é replicado"
- A recuperação de desastres é parcialmente concluída com o erro na etapa "Prepare protected site VMs for migration": "Não é possível preparar o nome < grupo de proteção> para failover. Ele contém máquinas virtuais não recuperáveis. A operação pode causar perda de dados. O arquivo "" da máquina virtual "" do tipo "diskDescriptor" não é replicado"
- A lista de snapshots da máquina virtual fica vazia após o failover de uma VM que tinha snapshots antes do failover
- Lista de snapshots da VM antes do failover:
- Lista de snapshots da VM após o failover:

Cause
Todos os sintomas acima podem ser o resultado da existência de snapshots de leitura e gravação de discos de VM. O PowerStore não dá suporte à replicação de snapshots de leitura e gravação. Isso faz com que a árvore de snapshots da VM seja incompleta no local de destino da replicação. Devido a isso, não é possível recuperar a árvore de snapshots após a operação de failover, o que leva à perda de todos os snapshots caso o failover seja executado para a VM com snapshots de RW. Os erros exibidos no SRM são avisos de que os snapshots serão perdidos caso haja um failover.
Nota: O problema é causado pelo SRM. Os snapshots seriam perdidos caso outro tipo de orquestrador de replicação de vVol fosse usado. Ou seja, se o failover de VMs baseadas em VVol for realizado por meio de outra ferramenta, os snapshots ainda serão perdidos.
Os erros acima não significam necessariamente que os problemas se devem à existência de snapshots de RW. Erros semelhantes seriam exibidos se alguns dos discos da VM não fossem adicionados a um grupo de replicação ou se fossem adicionados, mas ainda não copiados no lado do destino.
Para verificar se os erros são causados por snapshots de RW de vVols replicados, você pode aproveitar o POWERStore REST.
Os snapshots de RW podem ser listados executando a solicitação GET usando a seguinte URL: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false, em que é um resultado de EXEMPLO de IP do cluster do PowerStore:
Depois de ter uma lista de snapshots de RW, você pode verificar se eles são filhos de vVols replicados analisando a propriedade replication_group_id de seus vVols pai. Se replication_group_id não for nulo, o vVol será replicado. A seguinte solicitação REST pode ser usada: https:///virtual_volume?select=id,name,replication_group_id&id=eq. em que o ID do deve ser substituído pelo parent_id do resultado anterior.
Veja abaixo um exemplo de script bash que imprime o nome de todos os vVols replicados que têm snapshots de RW.
Exemplo de resultado:
Esses dados podem ser usados para identificar a VM à qual o vVol pertence. As duas opções a seguir estão disponíveis.
PowerStore REST: A VM pode ser encontrada executando a solicitação GET para /api/rest/virtual_machine com instance_uuid=eq.. Por exemplo:
Nota: O problema é causado pelo SRM. Os snapshots seriam perdidos caso outro tipo de orquestrador de replicação de vVol fosse usado. Ou seja, se o failover de VMs baseadas em VVol for realizado por meio de outra ferramenta, os snapshots ainda serão perdidos.
Os erros acima não significam necessariamente que os problemas se devem à existência de snapshots de RW. Erros semelhantes seriam exibidos se alguns dos discos da VM não fossem adicionados a um grupo de replicação ou se fossem adicionados, mas ainda não copiados no lado do destino.
Para verificar se os erros são causados por snapshots de RW de vVols replicados, você pode aproveitar o POWERStore REST.
Os snapshots de RW podem ser listados executando a solicitação GET usando a seguinte URL: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false, em que é um resultado de EXEMPLO de IP do cluster do PowerStore:
[
{
"id": "13ecfcef-8676-4605-ac83-478703346824",
"name": "vss_demo_vm.vmdk",
"parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
}
]
Depois de ter uma lista de snapshots de RW, você pode verificar se eles são filhos de vVols replicados analisando a propriedade replication_group_id de seus vVols pai. Se replication_group_id não for nulo, o vVol será replicado. A seguinte solicitação REST pode ser usada: https:///virtual_volume?select=id,name,replication_group_id&id=eq. em que o ID do deve ser substituído pelo parent_id do resultado anterior.
Veja abaixo um exemplo de script bash que imprime o nome de todos os vVols replicados que têm snapshots de 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
Exemplo de resultado:
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
Esses dados podem ser usados para identificar a VM à qual o vVol pertence. As duas opções a seguir estão disponíveis.
-
Localizar uma VM por nome
-
Localize uma VM por uuid na GUI ou REST do PowerStore. Essa opção está disponível caso o vCenter Server esteja registrado no PowerStore. Se esse for o caso, você pode encontrar a VM da seguinte forma:
PowerStore REST: A VM pode ser encontrada executando a solicitação GET para /api/rest/virtual_machine com instance_uuid=eq.. Por exemplo:
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
Para poder recuperar os snapshots no local de destino de replicação, recomendamos nunca criar snapshots desativados de VMs replicadas baseadas em vVol. A criação de snapshots de VMs desativadas causa a criação de snapshots de RW de vVols, o que causa problemas mencionados acima.
A solução do problema consiste em duas partes:
Isso pode ser feito migrando uma VM para um datastore temporário e, em seguida, de volta para a original.
Passos:
A solução do problema consiste em duas partes:
- Remover snapshots de RW existentes ou converter snapshots VVol RW em snapshots ReadOnly vVol
- Evite criar snapshots de RW no futuro
Converter snapshots de RW em snapshots de RO
Isso pode ser feito migrando uma VM para um datastore temporário e, em seguida, de volta para a original.
Passos:
- Criar um contêiner de armazenamento temporário no PowerStore
- Montar o contêiner de armazenamento temporário em hosts ESXi
- Execute a operação do vMotion de armazenamento para o datastore temporal. Mais detalhes na documentação do VMware https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html
- Migrar as VMs de volta para o datastore original
Remover snapshots de RW existentes
- Identifique as máquinas virtuais replicadas que têm snapshots de RW. As instruções sobre como fazer isso são fornecidas na seção "Causa"
- Na GUI do vSphere: Clique na VM e abra a lista "Snapshots"
- Exclua snapshots com "Yes" no campo "Quiesce guest file system"
Evite a criação de snapshots de RW no futuro
O vSphere cria snapshots de RW do vVol em caso de criação de snapshots de VM desativados, portanto, para evitar a criação de snapshots de RW, você pode definir o indicador de desativação como falso ao criar um snapshot de VM.
A captura de tela abaixo demonstra a janela "Take Snapshot" na GUI do vSphere. O snapshot não será desativado se a caixa de seleção não estiver marcada.
O indicador de desativação está disponível no vSphere createSnapshot API , bem como no cmdlet New-Snapshot no PowerCLI
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.