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. Как выполнить восстановление File Level Restore VMware в Linux без использования sudo в учетной записи пользователя root

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 File Level Restore — это безагентное решение для восстановления, которое можно использовать для восстановления одного или нескольких гостевых файлов из резервной копии образа виртуальной машины. Для облегчения восстановления на уровне файлов используется механизм VMware Tools и vSphere API guest operation.functions. Резервная копия образа виртуальной машины виртуальный диск (.vmdk) монтируется на прокси-сервере Avamar во время просмотра. После выбора файлов для восстановления они будут скопированы с прокси-сервера на целевую виртуальную машину.

Обязательные требования FLR.
  1. Целевая виртуальная машина должна быть включена.
  2. На целевой виртуальной машине должны быть установлены инструменты VMware, а служба должна быть запущена во время операций восстановления. 
  3. Администратор Avamar или операция/пользователь резервного копирования/восстановления Avamar должны иметь действительные учетные данные целевого гостя (требование VMware Guest Operations SDK), и эти учетные данные должны быть введены перед началом операций восстановления на уровне файлов.
  4. Целевой гостевой пользователь должен иметь права на запись в местоположение, иначе операция не будет выполнена. Для виртуальной машины Windows пользователь ВМ восстановления также должен иметь права на запись без повышения уровня прав с помощью UAC. Для виртуальных машин Linux ВМ восстановления должна иметь возможность записи без sudo. 
Дополнительные требования FLR. Требуется для более быстрого способа передачи HTTPS. 
  1. Целевые виртуальные машины должны иметь доступ к виртуальным машинам прокси через TCP 443.
  2. На виртуальных машинах Linux перед восстановлением необходимо установить современное приложение wget.  
Если эксплуатационные требования не выполняются, перед отправкой задания отображаются следующие предупреждения:

Если целевая виртуальная машина не может установить соединение HTTPS с прокси-сервером:

kA23a000000GIVvCAO_3_0

Внутри прокси-сервера: /usr/local/avamarClient/bin/logs/VSphereWebService.log, см. 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

Или
  
Linux без wget:

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) 

По умолчанию эта функция не включена.
Результат.
Без включенной функции ACL (по умолчанию).

Все восстановленные файлы из функции File Level Restore будут принадлежать пользователю ВМ с гостевыми учетными данными, введенными во время операций FLR, и предыдущие разрешения на доступ к файлам не будут установлены.

С включенной функцией ACL.
Чтобы для восстановленных файлов были установлены те же владельцы и разрешения, как и для исходных файлов, необходимо включить эту дополнительную функцию.

kA23a000000GIVvCAO_3_2

Результат.
Во время операций восстановления новые файлы будут созданы от имени пользователей FLR виртуальной машины. Затем владельцы и права доступа к файлам будут восстановлены в исходное состояние с помощью рабочего процесса 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

В некоторых дистрибутивах Linux, таких как Ubuntu или Photon, пользователи root по умолчанию не заданы или не настроены. Вместо этого администраторы Linux используют команду sudo для выполнения операций, требующих расширенных прав доступа.  

Однако при использовании VMware Tools и VMware SDK в большинстве операций (VM_LoginInGuest, CopyFileFromHostToGuest и ListFilesInGuest) невозможно выполнить команду sudo. 

Операции восстановления, выполняемые от имени обычного пользователя могут завершаться сбоем из-за недостаточных прав.

Résolution

Для сред, в которых учетная запись пользователя root Linux отключена, не настроена или не может использоваться совместно из соображений безопасности, выполните следующие действия по решению проблемы:

Вариант 1. Восстановление в альтернативное местоположение от имени обычного (не root) пользователя. 
Пример:
Исходный файл:  /root/test (ограничения на папку/файл)
Файл назначения:  /home/flruser/ (местоположение, на которое не распространяются ограничения)
Гостевая учетная запись VM:  «flruser»

Результат :
При просмотре FLR виртуальные диски монтируются на прокси-сервере Avamar и отображаются в пользовательском интерфейсе, включая все папки и файлы. Откройте папку /root и выберите файл file1.txt, затем выберите пункт «restore everything to a different location»и укажите или введите /home/flruser/ в качестве Absolution Destination.

kA23a000000GIVvCAO_2_0

Результат:
Файл root/test будет восстановлен в /home/flruser/test
Примечание. Файл будет иметь права гостевых пользователей FLR. 

Вариант 2. Восстановление в альтернативное местоположение с помощью параметра Restore ACL и функции sudo. 
В Avamar 18.2 установите исправление прокси-сервера 318791 (или более поздней версии)
В Avamar 19.2 установите исправление прокси-сервера 318791 (или более поздней версии).


Эти исправления добавляют новую функцию «enablesouserrestore», которая по умолчанию отключена.

Инструкции по включению функции sudo:
На прокси-сервере Avamar:
  1. На прокси-сервере установите указанное выше исправление.
  2. Отредактируйте файл /usr/local/avamarclient/bin/config.xml, добавьте в него или отредактируйте строку (<enablesudouserrestore>1</enablesudouserrestore>)
  3. Перезапустите FLR с помощью команды: service vmwareflr restart
На каждой виртуальной машине Linux, на которой будет включена функция FLR:
  1. Создайте специального пользователя FLR:  например, flruser.  Для дополнительной безопасности можно отключить оболочку для этой учетной записи.
  2. Скопируйте двоичный файл /usr/local/avamarclient/bin/RestoreAcl из прокси-сервера Avamar в целевую виртуальную машину, используя исправленное местоположение /usr/bin/RestoreACL, и установите разрешение 755 с помощью chmod
Пример:
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 и если для восстановления выбрано более 5 Мбайт или 10 файлов.
  • Просмотр местоположений виртуальных машин с ограниченным доступом к папкам через графический интерфейс пользователя Avamar может не работать, но явный ввод в поле «Absolution Destination» будет по-прежнему функционировать. 
  1. Чтобы включить восстановление ACL, выполните на прокси-сервере действия, описанные в варианте 2.
  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. На каждой виртуальной машине Linux, на которой будет использоваться восстановление FLR в исходное местоположение, измените /etc/sudoers, чтобы разрешить пользователю FLR из шага 1 выполнять команду wget binary без пароля. 
Пример:
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.