PowerStore. Не удается реплицировать снимки виртуальных машин на основе vVol для чтения и записи в пассивном режиме (исправляется пользователем)
Summary: PowerStore не поддерживает репликацию снимков vVol для чтения и записи. Это вызывает различные проблемы с репликацией снимков виртуальных машин на основе vVols в пассивном режиме.
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) не поддерживает добавление виртуальной машины в группу защиты и вызывает ошибку «Virtual machine '' file '' of type 'diskDescriptor' is not replicated»
- Если виртуальная машина уже добавлена в SRM Protection Group, ее состояние переключается на «Not configured» с ошибкой «Virtual machine '' file '' type 'diskDescriptor' is not replicated»:
- Запланированный перенос завершается сбоем в SRM с ошибкой «Cannot prepare protection group for failover. Содержит неустраируемые виртуальные машины. Операция может привести к потере данных. Файл «» «» типа «diskDescriptor» не реплицируется»
- Аварийное восстановление частично завершается с ошибкой на шаге «Prepare protected site VMs for migration»: «Cannot prepare protection group for failover. Содержит неустраируемые виртуальные машины. Операция может привести к потере данных. Файл «» «» типа «diskDescriptor» не реплицируется»
- После переключения при отказе список снимков виртуальной машины пуст для виртуальной машины, у которой были снимки до переключения при отказе
- Список снимков виртуальных машин перед переключением при отказе:
- Список снимков виртуальных машин после переключения при отказе:

Cause
Все вышеперечисленные признаки могут быть результатом наличия снимков для чтения и записи дисков ВМ. PowerStore не поддерживает репликацию снимков для чтения и записи. Это приводит к тому, что дерево снимков виртуальной машины на целевой площадке репликации является неполным. Из-за этого восстановить дерево снимков после операции переключения при отказе невозможно, что приводит к потере всех моментальных снимков, если аварийное переключение на резервный ресурс выполняется для ВМ со снимками RW. Ошибки, отображаемых в SRM, предупреждают о том, что снимки будут потеряны в случае переключения при отказе.
Примечание: Проблема вызвана SRM. Моментальные снимки будут потеряны, если используется другой тип оркестратора репликации vVols. То есть, если переключение виртуальных машин на основе vVols при отказе выполняется с помощью другого инструмента, моментальные снимки все равно будут потеряны.
Указанные выше ошибки не обязательно означают, что проблемы вызваны наличием снимков RW. Аналогичные ошибки будут отображаться, если некоторые диски виртуальных машин не добавлены в группу репликации или если они были добавлены, но еще не скопированы на целевой стороне.
Чтобы проверить, вызваны ли ошибки снимками RW реплицируемых vVols, можно использовать PowerStore REST.
Снимки RW можно перечислены, выполнив запрос GET, используя следующий URL-адрес: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false , где — это вывод IP-адреса кластера PowerStore Пример вывода:
После создания списка снимков RW можно проверить, являются ли они дочерними реплицируемыми vVols, просмотрев replication_group_id их родительских vVols. Если replication_group_id не null, выполняется репликация vVol. Можно использовать следующий запрос REST: https:///virtual_volume?select=id,name,replication_group_id&id=eq. где следует заменить на parent_id из предыдущего результата.
Ниже приведен пример сценария bash, который распечатает имя всех реплицированных vVols, которые имеют моментальные снимки RW.
Пример результата:
Эти данные можно использовать для идентификации виртуальной машины, к которым принадлежит vVol. Доступны следующие два варианта.
PowerStore REST: Виртуальную машину можно найти, выполнив запрос GET в /api/rest/virtual_machine с фильтром instance_uuid=eq.. Пример.
Примечание: Проблема вызвана SRM. Моментальные снимки будут потеряны, если используется другой тип оркестратора репликации vVols. То есть, если переключение виртуальных машин на основе vVols при отказе выполняется с помощью другого инструмента, моментальные снимки все равно будут потеряны.
Указанные выше ошибки не обязательно означают, что проблемы вызваны наличием снимков RW. Аналогичные ошибки будут отображаться, если некоторые диски виртуальных машин не добавлены в группу репликации или если они были добавлены, но еще не скопированы на целевой стороне.
Чтобы проверить, вызваны ли ошибки снимками RW реплицируемых vVols, можно использовать PowerStore REST.
Снимки RW можно перечислены, выполнив запрос GET, используя следующий URL-адрес: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false , где — это вывод IP-адреса кластера PowerStore Пример вывода:
[
{
"id": "13ecfcef-8676-4605-ac83-478703346824",
"name": "vss_demo_vm.vmdk",
"parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
}
]
После создания списка снимков RW можно проверить, являются ли они дочерними реплицируемыми vVols, просмотрев replication_group_id их родительских vVols. Если replication_group_id не null, выполняется репликация vVol. Можно использовать следующий запрос REST: https:///virtual_volume?select=id,name,replication_group_id&id=eq. где следует заменить на parent_id из предыдущего результата.
Ниже приведен пример сценария bash, который распечатает имя всех реплицированных vVols, которые имеют моментальные снимки 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
Пример результата:
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. Доступны следующие два варианта.
-
Поиск виртуальной машины по имени
-
Найдите виртуальную машину по uuid в графическом интерфейсе PowerStore или REST. Этот параметр доступен, если сервер vCenter зарегистрирован в PowerStore. В этом случае виртуальную машину можно найти следующим образом:
PowerStore REST: Виртуальную машину можно найти, выполнив запрос GET в /api/rest/virtual_machine с фильтром instance_uuid=eq.. Пример.
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
Чтобы иметь возможность восстанавливать снимки на целевой площадке репликации, рекомендуется никогда не создавать снимки реплицированных виртуальных машин на основе vVols. При создании моментального снимка виртуальной машины в пассивном режиме создаются снимки vVols RW, что вызывает вышеуказанные проблемы.
Решение проблемы состоит из двух частей:
Это можно сделать, переведя виртуальную машину во временное хранилище данных, а затем обратно в исходное.
Шаги:
Решение проблемы состоит из двух частей:
- Удаление существующих снимков RW или преобразование снимков виртуальных томов RW в снимки vVols ReadOnly
- Избегайте создания снимков RW в будущем
Преобразование снимков RW в снимки RO
Это можно сделать, переведя виртуальную машину во временное хранилище данных, а затем обратно в исходное.
Шаги:
- Создание контейнера временного хранилища в PowerStore
- Смонтируйте временный контейнер хранилища на хостах ESXi
- Выполните операцию storage vMotion для временного хранилища данных. Дополнительные сведения см. в документации по VMware https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html
- Перенос виртуальных машин обратно в исходное хранилище данных
Удаление существующих снимков RW
- Определите реплицированные виртуальные машины с моментальными снимками RW. Инструкции по этому способу приведены в разделе «Причина».
- В графическом интерфейсе пользователя vSphere: Нажмите на виртуальную машину и откройте ее список «Snapshots».
- Удаление снимков с ответом «Да» в поле «Quiesce guest file system»
Избегайте создания снимков RW в будущем
vSphere создает снимки RW vVol в случае создания снимков виртуальных машин в пассивном режиме, поэтому во избежание создания моментальных снимков RW флаг «замещение» можно установить в значение false при создании моментального снимка виртуальной машины.
На снимке экрана ниже показано окно «Take Snapshot» в графическом интерфейсе пользователя vSphere. Если флажок не установлен, снимок не будет перезагру настроен.
Флаг «перевода в пассивное состояние» доступен в vSphere createSnapshot API , а также в командлете New-Snapshot в 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.