Passer au contenu principal
  • Passer des commandes rapidement et facilement
  • Afficher les commandes et suivre l’état de votre expédition
  • Profitez de récompenses et de remises réservées aux membres
  • Créez et accédez à une liste de vos produits

Avamar: sudo를 사용하는 루트 사용자를 사용하지 않고 Linux VMware 파일 단위 복원을 수행하는 방법

Résumé: Avamar FLR Sudo

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes



Avamar FLR의 배경:
Avamar의 파일 단위 복원은 에이전트가 필요 없는 복구 솔루션으로, 가상 시스템 이미지 백업에서 하나 이상의 게스트 파일을 복원하는 데 사용할 수 있습니다. 파일 단위 복원을 용이하게 하는 데 사용되는 메커니즘은 VMware 툴 및 vSphere API 게스트 작업 기능입니다. 가상 시스템 이미지 백업은 탐색 중에 Avamar 프록시에 가상 디스크(.vmdk)를 마운트합니다. 복원할 파일을 선택하면 프록시에서 타겟 VM으로 전송 파일이 복사됩니다.

FLR 필수 요구 사항:
  1. 타겟 가상 시스템의 전원을 켜야 합니다.
  2. 타겟 가상 시스템에는 VMware 툴이 설치되어 있어야 하며 복원 작업 중에 서비스가 실행되고 있어야 합니다. 
  3. Avamar 관리자 또는 Avamar 백업/복원 작업/사용자는 타겟 게스트에 대한 유효한 자격 증명(VMware 게스트 작업 SDK 요구 사항)이 있어야 하며 파일 단위 복원 작업을 시작할 때 이 자격 증명을 입력해야 합니다.
  4. 타겟 게스트 사용자는 위치를 쓸 수 있는 권한이 있어야 합니다. 그렇지 않으면 작업이 실패합니다. Windows 가상 시스템의 경우 VM 복원 사용자는 UAC 권한 상승 없이 쓸 수 있는 권한도 있어야 합니다. Linux 가상 시스템의 경우 VM 복원은 sudo 없이 쓸 수 있어야 합니다. 
FLR 옵션 요구 사항: 더 빠른 HTTPS 전송 방법에 필요합니다. 
  1. 타겟 가상 시스템에는 프록시 가상 시스템에 대한 TCP 443 액세스 권한이 있어야 합니다.
  2. Linux 가상 시스템의 경우 작업을 복원하기 전에 가상 시스템 내에 최신 wget 애플리케이션이 설치되어 있어야 합니다.  
작업 요구 사항이 충족되지 않으면 작업을 제출하기 전에 다음 경고가 표시됩니다.

타겟 VM이 프록시에 HTTPS 연결을 설정할 수 없는 경우:

kA23a000000GIVvCAO_3_0

프록시 내부 /usr/local/avamarclient/bin/logs/VSphereWebService.log에서 wget 비 제로 종료 코드를 참조하십시오.

[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

또는
  
wget가 없는 Linux:

kA23a000000GIVvCAO_3_1

프록시 내부 /usr/local/avamarclient/bin/logs/VSphereWebService.log에서 다음을 참조하십시오.

[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>

또는

[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded. Ret: 1


FLR 옵션 기능: ACL(Access Control List) 복원

기본적으로 이 기능은 활성화되어 있지 않습니다.
결과:
ACL 기능 없음(기본값):

파일 단위 복원 기능에서 복원된 모든 파일은 FLR 작업 중에 사용자가 VM 게스트 자격 증명을 입력하여 소유하며 이전 파일 사용 권한은 설정되지 않습니다.

ACL 기능이 활성화된 경우:
사용자가 파일을 복원할 때 복원된 파일에 원래 생성 파일 소유권 및 소유 권한이 설정되도록 하려면 이 옵션 기능을 활성화해야 합니다.

kA23a000000GIVvCAO_3_2

결과:
복원 작업 중에는 새 파일이 FLR VM 사용자로 생성되지만 복원이 끝나면 ACL 워크플로가 실행되고 소유권 및 파일 소유 권한이 원래 상태로 다시 설정됩니다. 


프록시 내부 /usr/local/avamarclient/bin/logs/VSphereWebService.log에서 다음을 참조하십시오.

[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

Cause

Ubuntu 또는 Photon OS와 같은 일부 Linux 배포판에서는 기본적으로 OS 루트 사용자가 설정 또는 구성되지 않습니다. 대신 Linux 관리자는 sudo 명령을 사용하여 권한 상승 작업을 실행합니다.  

그러나 VMware 툴과 VMware SDK가 있어서 대부분의 작업(VM_LoginInGuest, CopyFileFromHostToGuest 및 ListFilesInGuest)에서 VMware 툴로 sudo 명령을 실행할 수 없습니다. 

일반 사용자가 복원 작업을 수행하는 경우 타겟 게스트 권한이 부족하여 작업이 실패할 수 있습니다.

Résolution

Linux 루트 사용자가 비활성화되었거나 구성되지 않았거나 보안 문제로 인해 Linux 루트 사용자를 공유할 수 없는 환경에서는 다음 해결 단계를 고려하십시오.

옵션 1. 루트 사용자가 아닌 대체 위치로 복원합니다. 
예:
소스 파일:  /root/test(제한된 폴더/파일)
대상 파일:  /Home/flruser/(제한되지 않은 위치)
VM 게스트 생성:  "flruser"

결과:
FLR 탐색 중에 가상 디스크가 Avamar 프록시에 마운트되어 사용자 인터페이스에 표시됩니다. 여기에는 모든 폴더와 파일이 포함됩니다. /root 폴더에서 file1.txt를 선택한 다음 'restore everything to a different location'을 선택하고 /home/flruser/로 이동하거나 Absolution Destination으로 /home/flruser/를 입력합니다.

kA23a000000GIVvCAO_2_0

결과:
root/test 파일이 /home/flruser/test로 복원됩니다.
참고: 파일에 FLR 게스트 사용자 사용 권한이 부여됩니다. 

옵션 2. sudo 기능을 사용하는 Restore ACL 옵션을 사용하여 대체 위치로 복원합니다. 
Avamar 18.2에 프록시 핫픽스 318791(이상) 설치
Avamar 19.2에 프록시 핫픽스 318791(이상) 설치


. 이 핫픽스는 기본적으로 비활성화되어 있는 새로운 'enablesudouserrestore' 기능을 추가합니다.

sudo 기능을 활성화하는 지침:
Avamar 프록시에서:
  1. 프록시에서 위에 핫픽스를 설치합니다.
  2. /usr/local/avamarclient/bin/config.xml을 편집하고, 파일에 줄(<enablesudouserrestore>1</enablesudouserrestore>)을 추가/편집합니다.
  3. 다음 명령을 사용하여 FLR을 다시 시작합니다. service vmwareflr restart
FLR 기능이 있는 모든 Linux 가상 시스템에서:
  1. 전용 FLR 사용자를 생성합니다.  (예: flruser)  보안을 강화하기 위해 이 계정에 대해 셸을 비활성화할 수 있습니다.
  2. 수정된 위치 /usr/bin/RestoreACL을 사용하여 Avamar 프록시에서 타겟 VM으로 /usr/local/avamarclient/bin/RestoreAcl 바이너리를 복사하고 chmod를 사용하여 사용 권한을 755로 설정합니다.
예:
linux-da91:~ # ls -l /usr/bin/RestoreAcl
-rwxr-xr-x 1 root root 148016 Feb 13 17:48 /usr/bin/RestoreAcl
  1. /etc/sudoers를 수정하여 FLR 사용자가 1단계에서 암호 없이 RestoreACL 바이너리를 실행할 수 있도록 합니다. 
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl

참고: sudoers requiretty 설정이 활성화된 경우(파일에 'Defaults requiretty' 줄이 있는 경우) 다음 줄도 필요합니다.  
Defaults!/usr/bin/RestoreAcl !requiretty


옵션 3: sudo wget 방법과 ACL을 사용하여 원래 위치로 복원합니다. 

참고: 

  • 이 옵션은 옵션 네트워크 HTTPS를 사용할 수 있고 복원 선택 항목에 5MB 또는 10개를 초과하는 파일이 선택된 경우에만 사용할 수 있습니다.
  • Avamar GUI를 사용하여 폴더 위치가 제한된 라이브 타겟 VM 위치를 탐색하는 것은 실패할 수 있지만 'Absolution Destination'을 명시적으로 입력하는 것은 여전히 작동합니다. 
  1. 프록시에서 옵션 2의 단계를 수행하여 ACL 복원을 활성화합니다.
  2. Avamar 프록시에서 /usr/local/avamarclient/bin/wget_linux_script.template을 편집합니다. 
이전:
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

이후:
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
  1. 다음 명령을 사용하여 FLR을 다시 시작합니다.service vmwareflr restart
  2. 원래 위치로 FLR 복원을 사용하는 모든 Linux 가상 시스템에서 /etc/sudoers를 수정하여 FLR 사용자가 1단계에서 암호 없이 wget 바이너리를 실행할 수 있도록 합니다. 
예:
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
flruser ALL=(ALL) NOPASSWD: /usr/bin/wget
 
참고: sudoers requiretty 설정이 활성화된 경우(파일에 'Defaults requiretty' 줄이 있는 경우) 다음 줄도 필요합니다.
Defaults!/usr/bin/RestoreAcl !requiretty
Defaults!/usr/bin/wget !requiretty

Produits concernés

Avamar

Produits

Avamar, Avamar Client for VMware
Propriétés de l’article
Numéro d’article: 000081871
Type d’article: Solution
Dernière modification: 20 nov. 2020
Version:  2
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.