Bakgrunnsinformasjon om Avamar FLR:
Filgjenoppretting fra Avamar er en agentløs gjenopprettingsløsning som kan brukes til å gjenopprette én eller flere gjestefiler fra et sikkerhetskopi-image på en virtuell maskin. Mekanismen som brukes til å forenkle gjenoppretting på filnivå, er VMware-verktøy og vSphere API guest operation-funksjoner. Sikkerhetskopi-imaget på den virtuelle maskinen monterer den virtuelle disken (.vmdk) på Avamar-proxyen mens man blar. Etter at filene er valgt for gjenoppretting, vil de bli kopiert fra proxy til target VM.
Obligatoriske krav for FLR:
- Den virtuelle målmaskinen må være slått på.
- Den virtuelle målmaskinen må ha VMware-verktøy installert, og tjenesten må kjøre under gjenopprettingsoperasjoner.
- Avamar-administratoren eller Avamar-sikkerhetskopiering / -gjenoppretting / -brukeren må ha gyldig legitimasjon på målgjesten (krav for VMware SDK-gjesteoperasjoner), og denne legitimasjonen må angis i begynnelsen av filgjenopprettingsoperasjonene.
- Gjestebrukeren må ha rettigheter til å skrive til plasseringen, ellers vil operasjonen mislykkes. For Windows Virtual Machine må VM-gjenopprettingsbrukeren også ha rettigheter til å skrive uten UAC-utvidelser. For virtuelle Linux-maskiner må restore VM være i stand til å skrive uten sudo.
Valgfrie krav for FLR: Nødvendig for å få raskere HTTPS-overføringsmetode.
- Virtuelle målmaskiner må ha TCP 443-tilgang til de virtuelle proxy-maskinene.
- Når det gjelder virtuelle Linux-maskiner må det være installert en moderne wget-applikasjon inne i den virtuelle maskinen før gjenopprettingsoperasjonen.
Hvis driftskravene ikke er oppfylt, vil følgende advarsler bli vist før jobben sendes:
Hvis target VM ikke kan opprette en HTTPS-tilkobling til proxy:
Inne i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, se wget non zero exit code
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398040: sGuestExeFullFilename = /usr/bin/wget --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398041: sUnicodeExeDir = /usr/bin
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398042: sExeFullPath = /usr/bin/wget
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398043: sParameters = --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - FUNC] 2020/02/24 15:56:2 TID=3662 MID=254389: VirtualMachineWs::CheckProcessStatus ENTER
[VWS - DEBUG] 2020/02/24 15:56:2 TID=3662 MID=254390: ullPid = 3053
[VWS - WARN] 2020/02/24 15:56:2 TID=140664473914958 MID=254428: CheckProcessStatus Succeeded
[VWS - DEBUG] 2020/02/24 15:56:2 TID=3662 MID=254441: StartProgramInGuest Succeeded. Ret: 4
Eller
Linux uten wget:
Inne i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see:
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398040: sGuestExeFullFilename = /usr/bin/wget --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398041: sUnicodeExeDir = /usr/bin
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398042: sExeFullPath = /usr/bin/wget
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398043: sParameters = --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - ERROR] 2020/02/24 15:56:20 TID=140363826202979 MID=398068: StartProgramInGuest Error: SOAP 1.1 fault: "":ServerFaultCode [no subcode]
"File /usr/bin/wget was not found"
Detail: <FileNotFoundFault xmlns="urn:vim25" xsi:type="FileNotFound"><file>/usr/bin/wget</file></FileNotFoundFault>
Eller
[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded. Ret: 1
Valgfri FLR-funksjon: Gjenopprett tilgangskontrolliste (ACL)
Denne funksjonen er ikke aktivert som standard.
Resultat:
Uten ACL-funksjon (standard):
Alle gjenopprettede filer fra filgjenopprettingsfunksjonen eies av brukeren med VM-gjest-legitimasjon som ble angitt under FLR-operasjoner, og tidligere filtillatelser vil ikke bli angitt.
Med ACL-funksjonen aktivert:
Hvis brukeren vil at de gjenopprettede filene skal ha det opprinnelige fileierskapet med tilhørende tillatelser,
må de aktivere denne valgfrie funksjonen.
Resultat:
Under gjenopprettingsoperasjonene vil nye filer bli opprettet som FLR VM-brukere, men på slutten av en gjenoppretting vil ACL-arbeidsflyten kjøre og sette eierskap og filtillatelser tilbake til opprinnelig status.
Inne i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see:
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254066: VirtualMachineWs::ExecuteRestoreAcl ENTER
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254067: VirtualMachineWs::ExecuteRestoreAcl RestoreAcl Input file created
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254068: VirtualMachineWs::ExecuteRestoreAcl Input File transfer /usr/local/avamarclient/bin/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml to /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml
[VWS - FUNC] 2020/03/03 03:42:32 TID=140664473914958 MID=254140: VirtualMachineWs::ExecuteRestoreAcl Exe File transfer /usr/local/avamarclient/bin/RestoreAcl to /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.exe
[VWS - DEBUG] 2020/03/03 03:42:40 TID=3662 MID=254349: sGuestExeFullFilename = /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.exe /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml 0001
[VWS - FUNC] 2020/03/03 03:42:42 TID=3662 MID=254389: VirtualMachineWs::CheckProcessStatus ENTER
[VWS - DEBUG] 2020/03/03 03:42:42 TID=3662 MID=254390: ullPid = 3053
[VWS - WARN] 2020/03/03 03:42:47 TID=140664473914958 MID=254428: CheckProcessStatus Succeeded
[VWS - DEBUG] 2020/03/03 03:42:47 TID=3662 MID=254441: StartProgramInGuest Succeeded. Ret: 0
[VWS - FUNC] 2020/03/03 03:42:47 TID=140664473914958 MID=254519: VirtualMachineWs::ExecuteRestoreAcl LEAVE
I enkelte Linux-distribusjoner, for eksempel Ubuntu eller Photon OS, er ikke operativsystemets rotbrukere satt opp eller konfigurert som standard. Linux-systemansvarlige er avhengige av sudo-kommandoen for å kjøre rettighetsutvidelser.
Men på grunn av VMware-verktøy og VMware SDK er det for de fleste operasjoner (VM_LoginInGuest, CopyFileFromHostToGuest og ListFilesInGuest) ikke mulig å utføre en sudo-kommando i VMware-verktøy.
Det kan være at en vanlig bruker ikke klarer å kjøre gjenopprettingsoperasjoner på grunn av utilstrekkelige målrettigheter for gjestekontoen.
I miljøer der Linux-rotbrukeren er deaktivert, ikke konfigurert eller ikke kan deles på grunn av sikkerhetsproblemer, må du vurdere følgende løsning:
Alternativ 1. Gjenopprette til alternativ plassering som ikke-rotbruker.
Eksempel:
Kildefil: /root/test (begrenset mappe/fil)
Målfil: /home/flruser/(ikke begrenset plassering)
Oppretting av VM-gjest: "flruser"
Resultat:
Under FLR-funksjonen monteres de virtuelle diskene til Avamar-proxy og vises i brukergrensesnittet. Dette inkluderer alle mapper og filer. Bla gjennom /root-mappen og velg file1.txt. Deretter velger du
restore everything to a different location og blar videre til eller skriver inn /home/flruser/ som
Absolution Destination.
Resultat:
root/test-filen vil bli gjenopprettet til /home/flruser/test
Merk at filen vil ha brukertillatelse for FLR-gjester.
Alternativ 2. Gjenopprette til alternativ plassering med Restore ACL-alternativet ved hjelp av sudo-funksjonen.
I Avamar 18.2 installerer du proxy hotfix 318791 (eller nyere)
I Avamar 19.2 installerer du proxy-hotfix 318791 (eller nyere)
Disse hotfixene legger til en ny
«enablesudouserrestore»-funksjon som er deaktivert som standard.
Instruksjon for å aktivere sudo-funksjonen:
På en Avamar-proxy:
- Installer ovennevnte hotfix på proxyen
- Rediger /usr/local/avamarclient/bin/config.xml, legg til / rediger linjen (<enablesudouserrestore>1</enablesudouserrestore>) til filen
- Start FLR på nytt ved hjelp av denne kommandoen: service vmwareflr restart
På hver virtuelle Linux-maskin der FLR-funksjonen skal være på:
- Opprett dedikert FLR-bruker: eksempel flruser. For ekstra sikkerhet kan skall deaktiveres for denne kontoen
- Kopier binærfilen /usr/local/avamarclient/bin/RestoreAcl fra Avamar-proxy til target VM ved hjelp av den faste plasseringen /usr/bin/RestoreACL, og angi tillatelse til 755 ved hjelp av chmod
eksempel:
linux-da91:~ # ls -l /usr/bin/RestoreAcl
-rwxr-xr-x 1 root root 148016 Feb 13 17:48 /usr/bin/RestoreAcl
- Endre /etc/sudoers slik at FLR-brukeren fra trinn 1 kan kjøre binærfilen RestoreACL uten passord.
eksempel
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
Merk: Hvis sudoers requiretty-innstillingen er aktivert (linjen «Defaults requiretty» finnes i filen), trenger vi også denne linjen.
Defaults!/usr/bin/RestoreAcl !requiretty
Alternativ 3: Gjenopprette den opprinnelige plasseringen ved hjelp av sudo wget-metoden med ACL.
Merk:
- Dette alternativet er bare tilgjengelig når et valgfritt nettverks-HTTPS er tilgjengelig, og når > 5 MB eller 10 filer er valgt for gjenoppretting.
- Bruk av Avamar-brukergrensesnitt til å bla gjennom live target VM-plasseringer med begrensede mapper kan mislykkes, men skriver du inn «Absolution Destination», kan det fortsatt fungere.
- Utfør trinnene i alternativ 2 på proxy for å aktivere ACL-gjenoppretting.
- På Avamar-proxy redigerer du /usr/local/avamarclient/bin/wget_linux_script.template
Før:
wget "$url/$filepath" -N -nH -x -P "$dest" --no-check-certificate -S --restrict-file-names=nocontrol --no-parent --tries 5 --header="Authorization:$token" --cut-dirs=2 --content-disposition 2>> $logfile
Etter:
sudo wget "$url/$filepath" -N -nH -x -P "$dest" --no-check-certificate -S --restrict-file-names=nocontrol --no-parent --tries 5 --header="Authorization:$token" --cut-dirs=2 --content-disposition 2>> $logfile
- Start FLR på nytt ved hjelp av denne kommandoen: service vmwareflr restart
- På hver virtuelle Linux-maskin hvor man skal bruke FLR-gjenoppretting til opprinnelig plassering, endrer du /etc/sudoers for at FLR-brukeren fra trinn 1 skal kunne kjøre wget-binærfilen uten passord.
Eksempel:
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
flruser ALL=(ALL) NOPASSWD: /usr/bin/wget
Merk: Hvis sudoers requiretty-innstillingen er aktivert (linjen «Defaults requiretty» finnes i filen), trenger vi også disse linjene:
Defaults!/usr/bin/RestoreAcl !requiretty
Defaults!/usr/bin/wget !requiretty