Avamar FLR - taustaa:
Avamarin tiedostotason palautus (File level restore) on hiljainen palautusratkaisu, jolla voi palauttaa vähintään yhden vierastiedoston virtuaalikoneen levykuvavarmuuskopiosta. Tiedostotason palautukseen käytetään VMware-työkaluja ja vSphere API -vierastoimintoja. Virtuaalikoneen levykuvavarmuuskopiointi lisää selauksen aikana virtuaalilevyn (.vmdk) Avamar-välityspalvelimeen. Kun palautettavat tiedostot on valittu, ne kopioidaan välityspalvelimesta kohdevirtuaalikoneeseen.
Pakolliset FLR-vaatimukset:
- Kohdevirtuaalikoneen on oltava käynnissä.
- Kohdevirtuaalikoneessa on oltava VMwar-työkalut asennettuna, ja palvelun on oltava käynnissä palautustoimintojen aikana.
- Avamar-järjestelmänvalvojalla tai Avamar-varmuuskopiointi-/palautustoiminnolla/-käyttäjällä on oltava kelvolliset oikeudet kohteen vierastiliin (VMware guest operations SDK -vaatimus), ja nämä tunnistetiedot on annettava tiedostotason palautustoimintojen alussa.
- Kohteen vieraskäyttäjällä on oltava oikeus kirjoittaa sijaintiin. Muutoin toiminto epäonnistuu. Windows-virtuaalikoneissa virtuaalikoneen palautuskäyttäjällä on lisäksi oltava oikeus kirjoittaa ilman käyttäjätilien valvontaa. Linux-virtuaalikoneissa virtuaalikoneen palautuskäyttäjällä on oltava oikeus kirjoittaa ilman sudo-komentoa.
Valinnaiset FLR-vaatimukset: tarvitaan nopeampiin HTTPS-siirtotapoihin.
- Kohdevirtuaalikoneista on oltava TCP 443 -käyttöoikeus välityspalvelimen virtuaalikoneisiin.
- Linux-virtuaalikoneissa on oltava asennettuna moderni wget-sovellus ennen palautustoimintoja.
Jos käyttövaatimukset eivät täyty, seuraavat varoitukset näkyvät ennen työn lähettämistä:
Jos kohdevirtuaalikone ei voi muodostaa HTTPS-yhteyttä välityspalvelimeen:
Välityspalvelimessa: katso, että tiedostossa /usr/local/avamarclient/bin/logs/VSphereWebService.log oleva sulkukoodi ei ole nolla
[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
Tai
Linux ilman wget-sovellusta:
Välityspalvelimessa: tiedostossa /usr/local/avamarclient/bin/logs/VSphereWebService.log katso:
[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>
tai
[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded. Ret: 1
Valinnainen FLR-ominaisuus: ACL (Access Control List) -luettelon palautus
Tämä ominaisuus on oletusarvoisesti poissa käytöstä.
Tulos:
Ilman ACL-ominaisuutta (oletus):
Kaikki tiedostotason palautustoiminnolla palautetut tiedostot kuuluvat virtuaalikoneen vierastunnistetiedoille, jotka annetaan FLR-toimintojen yhteydessä, ja aiempia tiedostojen oikeuksia ei määritetä.
ACL-ominaisuus käytössä:
jos käyttäjä haluaa, että palautettujen tiedostojen omistajuus ja oikeudet säilyvät,
tämä valinnainen ominaisuus on otettava käyttöön.
Tulos:
Palautustoimintojen aikana uudet tiedostot luodaan FLR-virtuaalikoneen käyttäjinä, mutta palautuksen lopuksi ACL-työnkulku palauttaa tiedostojen omistajuuden ja oikeudet alkuperäisiksi.
Välityspalvelimessa: tiedostossa /usr/local/avamarclient/bin/logs/VSphereWebService.log katso:
[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
Joissakin Linux-jakeluissa (kuten Ubuntu ja Photon Os) käyttöjärjestelmän pääkäyttäjiä (root) ei määritetä oletusarvoisesti. Sen sijaan Linux-järjestelmänvalvojat tekevät korotustoimintoja sudo-komennolla.
VMware-työkalujen ja VMware SDK:n vuoksi VMware-työkalujen useimmat toiminnot (VM_LoginInGuest, CopyFileFromHostToGuest ja ListFilesInGuest) eivät voi suorittaa sudo-komentoa.
Kun palautustoimintoja tehdään normaalina käyttäjänä, toiminto saattaa epäonnistua kohteen vieraan puutteellisten oikeuksien vuoksi.
Voit harkita seuraavia ratkaisukeinoja ympäristöissä, joissa Linux-pääkäyttäjä (root) on poistettu käytöstä, sitä ei ole määritetty tai sitä ei voi suojauksen vuoksi jakaa:
Vaihtoehto 1. Palauta vaihtoehtoiseen sijaintiin muuna kuin pääkäyttäjänä (root).
Esimerkki:
Lähdetiedosto: /root/test (rajoitettu kansio/tiedosto)
Kohdetiedosto: /home/flruser/ (rajoittamaton sijainti)
VM-vieraan luonnit: flruser
Tulos:
FLR-selauksen aikana virtuaalilevyt lisätään Avamar-välityspalvelimeen ja ne näkyvät käyttöliittymässä. Tämä sisältää kaikki kansiot ja tiedostot. Siirry kansioon /root ja valitse file1.txt. Valitse sen jälkeen
restore everything to a different location ja siirry selaamalla tai kirjoita
Absolution Destination -kohtaan /home/flruser/.
Tulos:
root/test-tiedosto palautetaan kansioon /home/flruser/test
Huomioi, että tiedostolla on FLR-vieraskäyttäjän oikeudet.
Vaihtoehto 2. Palauta vaihtoehtoiseen sijaintiin Restore ACL -asetuksella käyttäen sudo-ominaisuutta.
Asenna Avamar 18.2:ssa välityspalvelimen hotfix-korjaus 318791 (tai uudempi)
Asenna Avamar 19.2:ssa välityspalvelimen hotfix-korjaus 318791 (tai uudempi)
Nämä hotfix-korjaukset lisäävät uuden
enablesudouserrestore-ominaisuuden, joka on oletusarvoisesti poissa käytöstä.
Sudo-ominaisuuden käyttöönotto-ohje:
Avamar-välityspalvelimessa:
- Asenna välityspalvelimeen edellä mainittu hotfix-korjaus
- Muokkaa tiedostoa /usr/local/avamarclient/bin/config.xml, lisää tiedostoon rivi / muokkaa riviä (<enablesudouserrestore>1</enablesudouserrestore>)
- Käynnistä FLR uudelleen komennolla: service vmwareflr restart
Toimi seuraavasti kaikissa Linux-virtuaalikoneissa, joissa FLR on käytössä:
- Luo erityinen FLR-käyttäjä: flruser-esimerkkikäyttäjä. Suojausta voi parantaa poistamalla komentotulkin käytöstä kyseisellä tilillä
- Kopioi /usr/local/avamarclient/bin/RestoreAcl-binääritiedosto Avamar-välityspalvelimesta kohdevirtuaalikoneeseen käyttäen kiinteää sijaintia /usr/bin/RestoreACL ja määritä oikeudeksi 755 chmod-komennolla
Esimerkki:
linux-da91:~ # ls -l /usr/bin/RestoreAcl
-rwxr-xr-x 1 root root 148016 Feb 13 17:48 /usr/bin/RestoreAcl
- Muuta tiedostoa /etc/sudoers siten, että sallit vaiheen 1 FLR-käyttäjän suorittaa RestoreACL-binääritiedoston ilman salasanaa.
Esimerkki
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
Huomautus: Jos sudoers requiretty -asetus on käytössä (tiedostossa on rivi Defaults requiretty), myös tämä rivi tarvitaan.
Defaults!/usr/bin/RestoreAcl !requiretty
Vaihtoehto 3: Palauta alkuperäiseen sijaintiin sudo wget -menetelmällä ACL:ssä.
Huomautus:
- Tämä vaihtoehto on käytettävissä ainoastaan, kun valinnainen verkon HTTPS on käytettävissä ja kun palautusvalinta on yli >5 Mt tai valittuna on yli 10 tiedostoa.
- Käytössä olevien kohdevirtuaalikoneiden sijaintien ja rajoitettujen kansiosijaintien selaaminen Avamar-käyttöliittymässä saattaa epäonnistua, mutta kansioiden nimenomainen kirjoittaminen kohtaan Absolution Destination toimii.
- Ota ACL-palautus käyttöön tekemällä vaihtoehdon 2 vaiheet välityspalvelimessa.
- Muokkaa Avamar-välityspalvelimessa tiedostoa /usr/local/avamarclient/bin/wget_linux_script.template
Ennen:
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
Jälkeen:
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
- Käynnistä FLR uudelleen komennolla: service vmwareflr restart
- Toimi seuraavasti kaikissa Linux-virtuaalikoneissa, joissa käytetään FLR-palautusta alkuperäiseen sijaintiin: muokkaa kohtaa /etc/sudoers, jotta vaiheen 1 FLR-käyttäjä saa suorittaa komennon wget binary ilman salasanaa.
Esimerkki:
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
flruser ALL=(ALL) NOPASSWD: /usr/bin/wget
Huomautus: Jos sudoers requiretty -asetus on käytössä (tiedostossa on rivi Defaults requiretty), myös nämä rivit tarvitaan:
Defaults!/usr/bin/RestoreAcl !requiretty
Defaults!/usr/bin/wget !requiretty