Avamar: Orpojen Hyper-V-vm-ryhmien manuaalinen puhdistus
Summary: Tietämyskannan artikkelissa on yksityiskohtaiset ohjeet orpojen Hyper-V-vmryhmien poistamiseen eri menetelmillä.
Instructions
Hyper-V-varmuuskopioinnit voivat epäonnistua orpojen vuoksi vmgroups joiden viestit ovat seuraavanlaisia:
avhypervvss Info <0000>: Exception! WMI API returned error: 'The method call failed.' avhypervvss Info <0000>: WMI API RemoveMember returned Error! Exception in removing VMGroup Memeber 'PPDM01' from VM Group AvamarBackup_HYPERV10-app-20240301180052-0 and error message is 'The method call failed.'. avhypervvss Info <0000>: Exception in Removing VM 'PPDM01' from group 'AvamarBackup_HYPERV10-app-20240301180052-0' with error 'The method call failed.'. avhypervvss Info <0000>: Failed to RemoveVMGroupMember for groupname AvamarBackup_HYPERV10-app-20240301180052-0.
avhypervvss Info < 43394 >: Checking for Stale entries from previous backup. avhypervvss Error < 43417 >: Failed to cleanup Stale checkpoint entries for the targets
Orphaned Resilient Change Tracking (RCT) -laajuuksia ja varmuuskopiointivirheitä voi ilmetä, kun virtuaalikoneet (VM) Live Migrate siirtyy toiseen klusterisolmuun varmuuskopioinnin aikana.
Jos Hyper-V-virtuaalikone (VM) sijaitsee tietyssä klusterisolmussa, se lisätään kyseisen solmun virtuaalikoneryhmään (vmgroup) varmuuskopioinnin aikana. Jos virtuaalikone Live siirtyy toiseen klusterisolmuun varmuuskopioinnin aikana, se on edelleen olemassa vmgroup-jäsenenä lähdesolmussa. Ennen varmuuskopioinnin päättymistä Windows-käyttöjärjestelmä yrittää poistaa vmgroups kaikissa klusterisolmuissa.
Jos aiemmin Live-siirron tehnyt virtuaalikone ei ole enää käynnissä alkuperäisessä lähdesolmussa, Windows-käyttöjärjestelmä ei pysty poistamaan kyseistä vmgroupia. Tämä orpo vmgroup voi aiheuttaa myöhempien Hyper-V-varmuuskopiointien epäonnistumisen.
Tarkista alla seuraava Microsoft URL -osoite ennen manuaalista puhdistamista. Tietämyskannan artikkelissa on ratkaisuja, jotka voivat korjata ympäristötekijöistä johtuvia reaaliaikaisen siirron epäonnistumisia:
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/troubleshoot-live-migration-issues (Ulkoinen linkki)
get-vmgroup
Orpojen tarkistaminen vmgroup Suorita seuraava komento PowerShellissä kaikissa klusterisolmuissa samanaikaisesti (suorita järjestelmänvalvojana):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Jos on orpoja vmgroups, tuloksen pitäisi näyttää seuraavanlaiselta:
PS C:\> get-vmgroup
Name : AvamarBackup_Win2019-H4-crash-20240311112148-0
InstanceId : 416dd21c-e8b7-4f9e-8359-c78068cc0c69
GroupType : VMCollectionType
VMMembers : {win7-cl2}
VMGroupMembers :
CimSession : CimSession: .
ComputerName : WIN2019-H1
IsDeleted : False
Name : AvamarBackup_Win2019-H2-crash-20240311112148-0
InstanceId : 88c419c0-ceb8-46d2-af17-6560c55e0d06
GroupType : VMCollectionType
VMMembers : {}
VMGroupMembers :
CimSession : CimSession: .
ComputerName : WIN2019-H1
IsDeleted : False
I. Vakioidut vmgroup-poistomenettelyt
Kaikkien orpojen poistaminen vmgroups suorita erillisessä Hyper-V-palvelimessa seuraavat komennot PowerShellissä (suorita järjestelmänvalvojana):
Get-VMGroup | remove-vmgroup Get-VMGroup | remove-vmgroup -Force
vmgroups suorita kaikissa Hyper-V-klusterisolmuissa seuraavat komennot PowerShellissä (suorita järjestelmänvalvojana):
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup -Force }
Jos edellä olevat komennot epäonnistuvat, käytä seuraavaa PowerShell-komentosarjaa (VMGrpCln.ps1) automatisoidaksesi vmgroup Poistaminen kaikista klusterisolmuista:
Komentosarjan lataaminen:
Seuraavassa artikkelissa on lisätietoja komentosarjan paikantamisesta ja lataamisesta: Avamar: Avamar-komentosarjojen ja -työkalujen etsiminen ja lataaminen Dell Central Avamar -sivulta
- Lataa PowerShell-komentosarja esimerkiksi seuraavaan hakemistoon
"C:\temp"yhdessä klusterin solmuista. - Avaa PowerShell-kehote (suorita järjestelmänvalvojana) ja vaihda hakemistoon, joka sisältää PowerShell (PS) -komentosarjan.
- Varmista, että Windows-palvelin sallii PS-komentosarjojen suorittamisen, kirjoittamalla seuraava komento PowerShelliin (suorita järjestelmänvalvojana):
Get-ExecutionPolicy
Jos tuloste näkyy "Restricted" tai "Allsigned," ja suorita seuraava PowerShell-komento (suorita järjestelmänvalvojana), jotta nykyinen istunto voi tilapäisesti suorittaa PS-komentosarjoja:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
4. Suorita PS-skripti hakemistosta, jossa se sijaitsee:
Jos nämä komennot tai skriptit eivät poista orpoja vmgroups, ja seuraava vaihe on poistaa orvot ryhmät manuaalisesti.
II Manuaaliset vmgroup-poistomenettelyt
vmgroups sijaitsevat kunkin klusterisolmun paikallisessa hakemistossa (C:\ProgramData\Microsoft\Windows\Hyper-V\Groups).
Avamar: Hyper-V VSS -laajennus – uusimpien kumulatiivisten hotfix-korjausten määritys ja asennus versiolle 19.4 ja uudemmille
Nämä toimet eivät koske Hyper-V-klustereita, joissa on määritetty jaetun tallennuspolun parametri. Ota yhteyttä asiakastukeen vianmäärityksen
lisäämiseksi Vaihe # 1: Suorita seuraava komento kussakin Hyper-V-klusterisolmussa:
get-VMGroup
Vaihtoehtoisesti voit suorittaa seuraavan komennon saadaksesi vmgroups Kustakin klusterisolmusta:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Vaihe # 2a: Jos VMMembers-kenttä on täytetty, suorita seuraava komento kussakin klusterisolmussa:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Vaihe # 2b: Jos VMMembers ei ole täytetty:
- Siirry
C:\ProgramData\Microsoft\Windows\Hyper-V\GroupsKansio. Kirjoita sijainti manuaalisesti Resurssienhallinnassa tai muuta piilotettujen tiedostojen ja kansioiden tarkasteluasetuksia. - Muokkaa virtuaalikoneen kokoonpanotiedostoa
"*.vmcx", joka vastaa virtuaalikoneryhmän InstanceID:tä tekstieditorilla, kuten Muistiolla tai Notepad++:lla. Napsauta valikkorivillä Näytä ja valitse sitten "Word wrap" -vaihtoehto luettavuuden parantamiseksi. - Kopioi virtuaalikoneen (VM) GUID-tunnukset (Globally Unique Identifiers) tekstieditoriin; He noudattavat
'GUID H'teksti*.vmcxTiedosto. - Valitse tekstinkäsittelyohjelmassa Muokkaa ja sitten Korvaa. Sitten
'Find what'kenttä paina näppäimistön välilyöntiä ja napsauta sitten 'Replace All.'Tässä puhdistuksessa on luettelo ongelmallisista virtuaalikoneiden GUID-tunnuksista, jotka on siirrettävä reaaliaikaisesti takaisin edelliseen klusterisolmuun. - Etsi kyseisiin GUID-tunnuksiin sidottu virtuaalikone ja sitä isännöivät klusterisolmut suorittamalla seuraava PowerShell-komento:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "VM GUID Previously Collected" }
Voit esimerkiksi etsiä alla olevan komentosyntaksin avulla virtuaalikoneen (VM) nimen, joka on määritetty seuraavalle GUID-tunnukselle:
Invoke-Command -ComputerName (Get-ClusterNode).Name -ScriptBlock { Get-VM | ? VMID -eq "A6209559-F08F-440E-9AAE-21AEF4AF7E9D" }
Komennon tuloksen pitäisi sisältää virtuaalikoneen nimi ja klusterisolmu, jossa virtuaalikone on käynnissä. Jos tulos on tyhjä, GUID-tunnusta ei enää ole ja sen voi ohittaa.
6. Siirrä virtuaalikone reaaliaikaisesti isäntään, jossa on vanhentunut VM-ryhmä, käyttämällä Failover Cluster Manager -työkalua.
Toista vaiheet jokaiselle virtuaalikoneelle, joka on yksilöity vmgroup's "*.vmcx" Tiedosto.
7. Poista virtuaalikoneet kunkin orvoksi jääneen virtuaalikoneryhmän VMMembers-kentästä suorittamalla seuraava PowerShell-komento:
Get-VMGroup | % {Remove-VMGroupMember -VMGroup $_ -VM (Get-VM)}
Vahvista, että 'vmmembers' kenttä kullekin vmgroups on tyhjä suorittamalla seuraava komento kussakin klusterisolmussa:
get-vmgroup
Vaihtoehtoisesti voit varmistaa seuraavalla komennolla, että vmmembers-kenttä on tyhjä kaikille vmgroups Kaikissa solmuissa:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
Kun olet vahvistanut, siirry vaiheeseen # 3.
Vaihe # 3: Poista orvot seuraavalla PowerShell-komennolla vmgroups klusterisolmussa tai erillisessä Hyper-V-palvelimessa:
get-VMGroup | Remove-VMGroup
Toista samat vaiheet muille klusterisolmuille, jotka ovat jääneet orvoiksi vmgroups.
Vaihtoehtoisesti voit poistaa orvot virtuaalikoneet kaikista klusterisolmuista samanaikaisesti käyttämällä seuraavaa komentoa:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup | remove-vmgroup }
Kun kaikki solmut on määritetty, varmista, että kaikki ovat orpoja vmgroups on poistettu:
Invoke-Command -computername (get-clusternode).name -scriptblock { get-vmgroup }
pikanäppäimellä "remove-vmgroupmember" ja "remove-vmgroup" Komennot voivat epäonnistua ensimmäisessä klusterisolmussa seuraavankaltaisen virheen vuoksi:
Remove-VMGroup : The operation cannot be performed while the object is in its current state
Jos näin on, kokeile komentoja muissa klusterisolmuissa. Jos toimenpiteiden suorittaminen onnistuu, palaa ensimmäiseen solmuun ja yritä PowerShell-komentoja uudelleen.
Jos edellä olevat komennot epäonnistuvat kaikissa klusterisolmuissa, käynnistä Hyper-V Virtual Machine Management -palvelu uudelleen haavoittuvuuden sisältävässä solmussa. Vaihtoehtoisesti voit käynnistää uudelleen kaikki Hyper-V-klusterisolmut. Kun olet valmis, yritä PowerShell-komentoja uudelleen virtuaalikoneen jäsenten poistamiseksi ja vmgroups.
Jos vakiomenettelyt tai manuaaliset menettelyt eivät poista orpoja vmgroups, sitten viimeinen vaihtoehto on poistaa vmgroup tiedostot itse.
Additional Information
Viitteet:
Hyper-V Live Siirto isäntien välillä voi epäonnistua palautuksen tarkistuspisteiden seurauksena.
Avamar Hyper-V:n lisäävä RCT-varmuuskopiointi epäonnistuu ja näyttää virheen "Levytiedoston RCT-laajuuksien hakeminen epäonnistui" ja/tai "Virtuaalikoneen viitepisteen luonti epäonnistui"