PowerStore: Неможливо відтворити спокійні знімки читання-запису віртуальних машин на основі vVol (можна виправити користувачем)
Summary: PowerStore не підтримує реплікацію знімків Read-Write vVol. Це спричиняє різноманітні проблеми з реплікацією знімків віртуальних машин на основі 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) не підтримує додавання віртуальної машини до групи захисту і викликає помилку ''Віртуальна машина '' файл '' типу 'diskDescriptor' не реплікується" :
- Якщо віртуальна машина вже була додана до групи захисту SRM, її статус змінюється на «Не налаштовано» з помилкою ''Віртуальна машина '' файл '' типу 'diskDescriptor' не реплікується»:
- Запланована міграція не вдається в SRM із помилкою «Неможливо підготувати групу захисту до відновлення після відмови. Він містить віртуальні машини, які не відновлюються. Операція може призвести до втрати даних. Віртуальна машина '' файл '' типу 'diskDescriptor' не реплікується"
- Аварійне відновлення частково завершується помилкою на кроці «Підготовка віртуальних машин захищеного сайту до міграції»: "Не вдається підготувати групу захисту до відновлення після відмови. Він містить віртуальні машини, які не відновлюються. Операція може призвести до втрати даних. Віртуальна машина '' файл '' типу 'diskDescriptor' не реплікується"
- Список знімків віртуальної машини порожній після відновлення після відмови для віртуальної машини, яка мала знімки до відмови
- Список знімків віртуальної машини перед перемиканням на відмову:
- Список знімків віртуальної машини після відновлення після відмови:

Cause
Всі перераховані вище симптоми можуть бути наслідком існування знімків читання-запису дисків ВМ. PowerStore не підтримує реплікацію знімків читання-запису. Це призводить до того, що дерево знімків віртуальної машини є неповним на цільовому місці реплікації. У зв'язку з цим, неможливо відновити дерево знімків після операції відновлення після відмови, що призводить до втрати всіх знімків у разі відновлення після відмови для віртуальної машини зі знімками RW. Помилки, які відображаються в SRM, попереджають про те, що знімки будуть втрачені в разі відмови.
Примітка: Проблема викликана SRM. Знімки будуть втрачені, якщо буде використано інший тип оркестратора реплікації vVol. Тобто, якщо відмова віртуальних машин на основі vVol виконується за допомогою іншого інструменту, знімки все одно будуть втрачені.
Наведені вище помилки не обов'язково означають, що проблеми пов'язані з існуванням знімків RW. Аналогічні помилки відображатимуться, якщо деякі диски віртуальної машини не додано до групи реплікації, або якщо вони були додані, але ще не скопійовані на цільову сторону.
Для того, щоб перевірити, чи пов'язані помилки з RW-знімками реплікованих vVols, ви можете використовувати PowerStore REST.
Знімки RW можна перерахувати, виконавши GET-запит за такою URL-адресою: https:///virtual_volume?select=id,name,parent_id&type=eq. Знімок&creator_type=екв. 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. Доступні наступні два варіанти.
Віртуальну машину можна знайти, виконавши GET-запит до /api/rest/virtual_machine з фільтром instance_uuid=eq.. Наприклад:
Примітка: Проблема викликана SRM. Знімки будуть втрачені, якщо буде використано інший тип оркестратора реплікації vVol. Тобто, якщо відмова віртуальних машин на основі vVol виконується за допомогою іншого інструменту, знімки все одно будуть втрачені.
Наведені вище помилки не обов'язково означають, що проблеми пов'язані з існуванням знімків RW. Аналогічні помилки відображатимуться, якщо деякі диски віртуальної машини не додано до групи реплікації, або якщо вони були додані, але ще не скопійовані на цільову сторону.
Для того, щоб перевірити, чи пов'язані помилки з RW-знімками реплікованих vVols, ви можете використовувати PowerStore REST.
Знімки RW можна перерахувати, виконавши GET-запит за такою URL-адресою: https:///virtual_volume?select=id,name,parent_id&type=eq. Знімок&creator_type=екв. 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. Якщо це так, ви можете знайти віртуальну машину наступним чином:
Віртуальну машину можна знайти, виконавши 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
Для того, щоб мати можливість відновити знімки на цільовому місці реплікації, ми рекомендуємо ніколи не створювати спокійні знімки реплікованих віртуальних машин на основі vVol. Спокійне створення знімків віртуальної машини спричиняє створення RW-знімків vVols, що спричиняє проблеми, згадані вище.
Рішення задачі складається з 2 частин:
Це можна зробити, перенісши віртуальну машину до тимчасового сховища даних, а потім назад до початкового.
Кроки:
Рішення задачі складається з 2 частин:
- Видаліть наявні знімки RW або перетворіть знімки RW vVol на знімки vVol лише для читання
- Уникайте створення знімків RW у майбутньому
Перетворення знімків RW на знімки зворотного осмосу
Це можна зробити, перенісши віртуальну машину до тимчасового сховища даних, а потім назад до початкового.
Кроки:
- Створення контейнера тимчасового зберігання в PowerStore
- Змонтуйте контейнер тимчасового сховища на хости ESXi
- Виконайте операцію зберігання 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: Натисніть на віртуальну машину та відкрийте її список «Знімки»
- Видаліть знімки з позначкою «Так» у полі «Гостьова файлова система»
Уникайте створення знімків RW у майбутньому
vSphere створює RW-знімки vVol у випадку створення спокійних знімків віртуальної машини, тому, щоб уникнути створення знімків RW, ви можете встановити прапорець спокою на false під час створення знімка віртуальної машини.
На скріншоті нижче показано вікно «Зробити знімок» у графічному інтерфейсі 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.