PowerStore: vVol 기반 VM의 중지된 읽기-쓰기 스냅샷을 복제할 수 없음(사용자가 수정 가능)

Summary: PowerStore는 읽기-쓰기 vVol 스냅샷의 복제를 지원하지 않습니다. 이로 인해 vVol 기반 VM의 중지된 스냅샷 복제와 관련된 다양한 문제가 발생합니다.

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
 
  • VM이 이미 SRM Protection Group에 추가된 경우 상태가 'not configured'로 전환되고 ''diskDescriptor' 유형의 'virtual machine '' 파일 ''가 복제되지 않음"이라는 오류가 표시됩니다.
image.png

image.png

 
  • 페일오버에 대해 "Cannot prepare protection group 오류가 발생하여 SRM에서 계획된 마이그레이션이 실패합니다. 복구할 수 없는 가상 머신이 포함되어 있습니다. 이 작업을 수행하면 데이터 손실이 발생할 수 있습니다. 가상 머신 '' 파일 '' type 'diskDescriptor is not replicated'
image.png
 
  • '마이그레이션을 위해 보호된 사이트 VM 준비' 단계에서 오류가 발생하면서 재해 복구가 부분적으로 완료됩니다. 페일오버에 대한 보호 그룹 < 보호 그룹 이름>을 준비할 수 없습니다. 복구할 수 없는 가상 머신이 포함되어 있습니다. 이 작업을 수행하면 데이터 손실이 발생할 수 있습니다. 가상 머신 '' 파일 '' type 'diskDescriptor is not replicated'
image.png
 
  • 페일오버 전에 스냅샷이 있는 VM에 대한 페일오버 후 가상 머신의 스냅샷 목록이 비어 있음
    • 페일오버 전 VM 스냅샷 목록:
image.png
  • 페일오버 후 VM 스냅샷 목록: 
image.png

Cause

위의 모든 증상은 VM 디스크의 읽기-쓰기 스냅샷이 존재하기 때문에 발생할 수 있습니다. PowerStore는 읽기-쓰기 스냅샷의 복제를 지원하지 않습니다. 이로 인해 복제의 타겟 사이트에서 VM 스냅샷 트리가 불완전하게 됩니다. 따라서 페일오버 작업 후 스냅샷 트리를 복구할 수 없으므로 RW 스냅샷이 있는 VM에 대해 페일오버가 수행될 경우 모든 스냅샷이 손실됩니다. SRM에 표시되는 오류는 페일오버가 발생할 경우 스냅샷이 손실된다는 경고입니다.

참고: 이 문제는 SRM으로 인해 발생합니다. 다른 종류의 vVol 복제 오케스트레이터를 사용하는 경우 스냅샷이 손실됩니다. 즉, 다른 툴을 통해 vVol 기반 VM의 페일오버를 수행하면 스냅샷이 여전히 손실됩니다.

위의 오류가 반드시 RW 스냅샷이 존재하기 때문에 문제가 발생했음을 의미하지는 않습니다. 일부 VM 디스크가 복제 그룹에 추가되지 않았거나 추가되었지만 아직 대상 측에 복사되지 않은 경우 유사한 오류가 표시됩니다.



복제된 vVol의 RW 스냅으로 인해 오류가 발생하는지 확인하려면 PowerStore REST를 활용할 수 있습니다.

RW 스냅샷은 https:///virtual_volume?select=id,name,parent_id&type=eq URL을 사용하여 GET 요청을 수행하여 나열할 수 있습니다. Snapshot&creator_type=eq. user&is_readonly=eq.false, 여기서 는 PowerStore 클러스터 IP 예 출력입니다.
[
  {
    "id": "13ecfcef-8676-4605-ac83-478703346824",
    "name": "vss_demo_vm.vmdk",
    "parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
  }
]

RW 스냅샷 목록이 있으면 상위 vVol의 replication_group_id 속성을 조사하여 복제된 vVol의 하위 항목인지 확인할 수 있습니다. replication_group_id null이 아닌 경우 vVol이 복제됩니다. 다음 REST 요청을 사용할 수 있습니다. https:///virtual_volume?select=id,name,replication_group_id&id=eq. 여기서 를 이전 결과의 parent_id 교체해야 합니다.

다음은 RW 스냅샷이 있는 복제된 모든 vVol의 이름을 인쇄하는 bash 스크립트의 예입니다.
#!/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이 속한 VM을 식별할 수 있습니다. 다음 두 가지 옵션을 사용할 수 있습니다.
  1. 이름별로 VM 찾기

대부분의 경우 vVol의 이름에는 VM의 이름이 포함되어 있습니다. 아래 예에서 vVol은 VM 'vss_demo_vm'에 속합니다.
  1. PowerStore GUI 또는 REST에서 uuid로 VM을 찾습니다. 이 옵션은 vCenter Server가 PowerStore에 등록된 경우에 사용할 수 있습니다. 이 경우 다음과 같이 VM을 찾을 수 있습니다.

PowerStore GUI: Compute → Virtual Machines로 이동하여 'UUID' 열을 표시하고 목록에서
image.png

VM을 찾습니다. PowerStore REST: VM은 필터 instance_uuid=eq.를 사용하여 /api/rest/virtual_machine GET 요청을 수행하여 찾을 수 있습니다. 예:
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 기반 VM의 중지된 스냅샷을 생성하지 않는 것이 좋습니다. 중지된 VM 스냅샷 생성으로 인해 vVol의 RW 스냅샷이 생성되어 위에 언급된 문제가 발생합니다.

문제 해결 방법은 2개의 부품으로 구성됩니다.
  1. 기존 RW 스냅샷 제거 또는 RW vVol 스냅샷을 ReadOnly vVol 스냅샷으로 변환
  2. 향후 RW 스냅샷 생성 방지


RW 스냅샷을 RO 스냅샷으로 변환

이 작업은 VM을 임시 데이터 저장소로 마이그레이션한 다음 원래 데이터 저장소로 다시 마이그레이션하여 수행할 수 있습니다.

단계:
  1. PowerStore에서 임시 스토리지 컨테이너 생성
  2. 임시 스토리지 컨테이너를 ESXi 호스트에 마운트
  3. 임시 데이터 저장소에 대한 스토리지 vMotion 작업을 수행합니다. VMware 설명서 https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html 자세한 정보
  4. VM을 원래 데이터 저장소로 다시 마이그레이션


기존 RW 스냅샷 제거

  1. RW 스냅샷이 있는 복제된 가상 머신을 식별합니다. 이 작업을 수행하는 방법에 대한 지침은 '원인' 섹션에 나와 있습니다.
  2. vSphere GUI에서 다음을 수행합니다. VM을 클릭하고 'Snapshots' 목록을 엽니다.
  3. 'Quiesce guest file system' 필드에서 'Yes'가 있는 스냅샷 삭제
image.png
 


향후 RW 스냅샷 생성 방지

vSphere는 중지된 VM 스냅샷을 생성할 때 vVol의 RW 스냅샷을 생성하므로 RW 스냅샷이 생성되지 않도록 VM 스냅샷을 생성할 때 중지 플래그를 false로 설정할 수 있습니다.

아래 스크린샷은 vSphere GUI의 '스냅샷 가져오기' 창을 보여줍니다. 확인란이 선택되어 있지 않으면 스냅이 중지되지 않습니다.
image.png

중지 플래그는 vSphere createSnapshot API PowerCLI의 New-Snapshot cmdlet에서 사용할 수 있습니다.

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.