PowerStore: vVol-perustaisten virtuaalikoneiden (käyttäjän korjattavissa) tietovisattuja luku- ja kirjoitusvedoksia ei voi replikoida

Summary: PowerStore ei tue vVol-luku-kirjoitusvedosten replikointia. Tämä aiheuttaa monenlaisia ongelmia vVol-pohjaisten virtuaalikoneiden kvisced-tilannevedosten replikointiin.

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
 
  • Jos virtuaalikone on jo lisätty SRM Protection Groupiin, sen tilakytkimet eivät määrity ja näyttöön tulee virheilmoitus "Virtual machine '' file '' of type 'diskDescriptor'is not replicated:
image.png

image.png

 
  • Suunniteltu siirto epäonnistuu SRM:ssä virheen "Cannot prepare protection group for failover. Se sisältää virtuaalikoneita, jotka eivät ole palautettavissa. Toiminto voi johtaa tietojen menetykseen. Virtuaalikoneen diskDescriptor-tyyppiä tiedostoa ei replikoida
image.png
 
  • Katastrofista palautuminen suoritetaan osittain virheilmoituksella "Prepare protected site VMs for migration": Cannot prepare protection group for failover. Se sisältää virtuaalikoneita, jotka eivät ole palautettavissa. Toiminto voi johtaa tietojen menetykseen. Virtuaalikoneen diskDescriptor-tyyppiä tiedostoa ei replikoida
image.png
 
  • Virtuaalikoneen tilannevedosluettelo on tyhjä vikasiedon jälkeen virtuaalikoneessa, jossa oli tilannevedoksia ennen vikasietoisuusta
    • Virtuaalikoneen tilannevedosluettelo ennen vikasietoisuutta:
image.png
  • Virtuaalikoneen tilannevedosluettelo vikasiedon jälkeen: 
image.png

Cause

Kaikki edellä mainitut oireet voivat johtua VM-levyjen luku- ja kirjoitusvedoksista. PowerStore ei tue luku- ja kirjoitusvedosten replikointia. Tämä aiheuttaa virtuaalikoneen tilannevedospuun puutteellisen replikoinnin kohdesijainnissa. Tämän vuoksi tilannevedoshakemistoa ei voi palauttaa vikasietotoiminnon jälkeen, mikä johtaa kaikkien tilannevedosten menettämiseen siltä varalta, että virtuaalikoneessa tehdään vikasietoisuus RW-tilannevedoksilla. SRM:ssä näkyvät virheet ovat varoituksia siitä, että tilannevedokset menetetään vikasietotilanteissa.

Huomautus: Ongelma johtuu SRM:stä. Tilannevedokset menetetään siltä varalta, että käytetään muunlaista vVol-replikoinnin hallintatyökalua. Jos vVol-pohjaisten virtuaalikoneiden vikasietoisuus siis tehdään toisen työkalun kautta, tilannevedokset menetetään.

Edellä olevat virheet eivät välttämättä tarkoita, että ongelmat johtuvat RW-tilannevedoksista. Vastaavia virheitä tulee näkyviin, jos joitakin virtuaalikonelevyjä ei ole lisätty replikointiryhmään tai jos ne on lisätty, mutta niitä ei ole vielä kopioitu kohdepuolelle.



Voit tarkistaa PowerStoren RESTistä, johtuvatko virheet replikoitujen vVol-kansioiden RW-laajennuksista.

RW-tilannevedokset voi näyttää get-pyynnöllä käyttämällä seuraavaa URL-osoitetta: https:///virtual_volume?select=id,name,parent_id&type=eq. Snapshot&creator_type=eq. User&is_readonly=eq.false, jossa on PowerStore-klusterin IP-osoite. Esimerkki tuloksesta:
[
  {
    "id": "13ecfcef-8676-4605-ac83-478703346824",
    "name": "vss_demo_vm.vmdk",
    "parent_id": "8f9d26b9-007e-4d51-8255-3dad7fc243d1"
  }
]

Kun olet lisännyt luettelon RW-tilannevedoksista, voit tarkistaa, ovatko ne replikoitujen vVol-kansioiden vanhempia, tarkistamalla pää-vVol-kansion replication_group_id. Jos replication_group_id ei ole tyhjäarvo, vVol replikoidaan. Voit käyttää seuraavaa REST-pyyntöä: https:///virtual_volume?select=id,name,replication_group_id&id=eq. missä on korvattava edellisen tuloksen parent_id.

Seuraavassa on esimerkki bash-komentosarjasta, joka tulostaa kaikkien replikoitujen vVol-kansioiden nimen, joissa on RW-tilannevedoksia.
#!/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  

Esimerkki tuloksesta:
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

Näiden tietojen avulla voidaan tunnistaa virtuaalikone, jolle vVol kuuluu. Käytettävissä on kaksi seuraavaa vaihtoehtoa.
  1. Etsi virtuaalikone nimen perusteella

Useimmiten vVol-nimen nimi sisältää virtuaalikoneen nimen. Alla olevassa esimerkissä vVol kuuluu virtuaalikoneeseen vss_demo_vm
  1. Etsi virtuaalikone uuid-painikkeella PowerStoren graafisessa käyttöliittymässä tai RESTissä. Tämä vaihtoehto on käytettävissä, jos vCenter-palvelin on rekisteröity PowerStoreen. Siinä tapauksessa virtuaalikone löytyy seuraavasti:

PowerStoren graafinen käyttöliittymä: Siirry Kohtaan Compute → Virtual Machines, näytä UUID-sarake ja etsi virtuaalikone PowerStoren


image.png RESTistä: Virtuaalikoneen voi etsiä lähettämällä GET-pyynnön osoitteeseen /api/rest/virtual_machine, jossa on suodatin instance_uuid=eq.. Esimerkki:
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

Jotta tilannevedokset voidaan palauttaa replikoinnin kohdesijainnista, suosittelemme, ettei replikoiduista vVol-perustaisista virtuaalikoneista luoda tietovisavedoksia. Tietovisatun VM-tilannevedoksen luonti aiheuttaa vVol-kytkinten RW-tilannevedosten luonnin, mikä aiheuttaa edellä mainittuja ongelmia.

Ongelmaratkaisu koostuu kahdesta osasta:
  1. Poista nykyiset RW-tilannevedokset tai muunna RW vVol -tilannevedokset ReadOnly vVol -tilannevedoksiksi
  2. Vältä RW-tilannevedosten luomista tulevaisuudessa


Muunna RW-tilannevedokset RO-tilannevedoksiksi

Tämä voidaan tehdä siirtämällä virtuaalikone tilapäiseen tietosäilön ja sitten alkuperäiseen tietosäilön.

Vaiheet:
  1. Väliaikaisen säilön luominen PowerStoreen
  2. Ota käyttöön tilapäinen säilö ESXi-isäntiin
  3. Tee tallennuksen vMotion-toiminto aikatietosäilön kautta. Lisätietoja on VMwaren https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-A15EE2F6-AAF5-40DC-98B7-0DF72E166888.html
  4. Siirrä virtuaalikoneet takaisin alkuperäiseen tietosäilön


Poista nykyiset RW-tilannevedokset

  1. Tunnista replikoidut virtuaalikoneet, joissa on RW-tilannevedoksia. Ohjeet ovat Syy-osassa
  2. vSpheren graafisessa käyttöliittymässä: Napsauta virtuaalikonetta ja avaa sen Snapshots-luettelo.
  3. Poista tilannevedokset, joiden Quiesce guest file system -kentässä on kyllä
image.png
 


Vältä RW-tilannevedosten luontia tulevaisuudessa

vSphere luo vVolista RW-tilannevedoksia, jos VM-tilannevedoksia luodaan. Siten voit välttää RW-tilannevedosten luonnin määrittämällä tietovisamerkinnäksi epätosi luodessasi VM-tilannevedosta.

Seuraavassa näyttökuvassa esitellään Take Snapshot -ikkuna vSpheren graafisessa käyttöliittymässä. Laajennusta ei tarkisteta, jos valintaruutua ei ole valittu.
image.png

Tietovisamerkintä on käytettävissä vSpheren createSnapshot APIssa ja PowerCLI:n New-Snapshot cmdlet-komennossa.

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.