Avamar FLRの背景:
Avamarのファイル レベルの復元は、1つまたは複数のゲスト ファイルを仮想マシン イメージのバックアップから復元するために使用できる、エージェント不要のリカバリー ソリューションです。ファイル レベルの復元を容易にするために使用されるメカニズムは、VMwareツールとvSphere APIゲストの操作です。機能。仮想マシン イメージのバックアップでは、参照中にAvamarプロキシーに仮想ディスク(.vmdk)をマウントします。復元するファイルを選択すると、それらはコピーされ、プロキシーからターゲットVMにファイルが転送されます。
FLRの必須要件:
- ターゲット仮想マシンの電源をオンにする必要があります。
- ターゲット仮想マシンにはVMwareツールがインストールされている必要があり、復元処理中はサービスが実行されている必要があります。
- Avamar管理者またはAvamarバックアップ/復元の操作/ユーザーには、ターゲット ゲストでの有効な認証情報が必要です(VMwareゲスト操作SDKの要件)。この認証情報は、ファイル レベルの復元処理の開始時に入力する必要があります。
- ターゲット ゲストのユーザーは、場所を書き込む権限が必要であり、この権限がないと操作が失敗します。Windows仮想マシンの場合、復元VMユーザーには、UAC昇格を使用しないで書き込みを行う権限も必要です。Linux仮想マシンの場合、復元VMはsudoなしで書き込みができなければなりません。
FLRのオプション要件:より高速なHTTPS転送方法に必要です。
- ターゲット仮想マシンは、プロキシー仮想マシンに対してTCP 443アクセスが可能でなければなりません。
- Linuxの仮想マシンでは、復元操作の前に、最新のwgetアプリケーションを仮想マシン内部にインストールする必要があります。
運用要件が満たされていない場合は、ジョブを送信する前に、次の警告が表示されます。
ターゲットVMがプロキシーへのHTTPS接続を確立できない場合は、次のようになります。
プロキシー内部: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see 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
または、
wgetを使用しないLinuxの場合:
プロキシー内部: /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>
または
[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded.Ret: 1
FLRのオプション機能:アクセス制御リスト(ACL)の復元
デフォルトでは、この機能は有効になっていません。
結果:
ACL機能なし(デフォルト):
ファイル レベルの復元機能から復元されたすべてのファイルは、FLR操作時に入力したVMゲスト認証情報のユーザーによって所有され、以前のファイル アクセス権は設定されません。
ACL機能が有効になっている場合:
復元されたファイルに、元々作成されたファイルの所有権とアクセス権を設定する場合は、
このオプション機能を有効化する必要があります。
結果:
復元処理中に、FLR VMユーザーとして新しいファイルが作成されますが、復元の終了時にACLワークフローが実行されて、所有権とファイル アクセス権が元の状態に戻されます。
プロキシー内部:/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
UbuntuまたはPhoton Osのような一部のLinuxディストリビューションでは、OSのrootユーザーがデフォルトでセットアップおよび設定されていない場合があります。代わりに、Linux管理者はsudoコマンドを使用して昇格操作を実行します。
ただし、VMwareツールやVMware SDKが原因で、ほとんどの操作(VM_LoginInGuest、CopyFileFromHostToGuest、ListFilesInGuest)はVMwareツールでは不可能であり、sudoコマンドを実行できません。
通常のユーザーについて復元処理が実行されると、ターゲット ゲストの権限が不十分であるため、操作が失敗する可能性があります。
Linux rootユーザーが無効になっている、設定されていない、またはセキュリティ上の懸念のため共有できないなどの環境では、次の解決手順を考慮してください。
オプション1.非rootユーザーとして別の場所に復元します。
例:
ソース ファイル: /root/test(制限されているフォルダー/ファイル)
宛先ファイル: /home/flruser/(制限されていない場所)
VMゲストの作成: "flruser"
結果:
FLRを参照中、仮想ディスクはAvamarプロキシーにマウントされ、ユーザー インターフェイスに表示されます。これにはすべてのフォルダーおよびファイルが含まれています。次に、/rootフォルダーを参照してfile1.txtを選択し、[
restore everything to a different location]を選択してから、/home/flruser/を参照または[
Absolution Destination]として入力します。
結果:
root/testファイルは/home/flruser/testに復元されます
ファイルにはFLRゲスト ユーザーのアクセス許可が設定されます。
オプション2.sudo機能を使用して、Restore ACLオプションで別の場所に復元します。
Avamar 18.2で、プロキシー ホットフィックス318791(またはそれ以降)をインストールします。
Avamar 19.2で、プロキシー ホットフィックス318791(またはそれ以降)をインストールします。
これらのホットフィックスは、新しい「
enablesudouserrestore」機能を追加します。この機能はデフォルトでは無効になっています。
sudo機能を有効にするための手順:
Avamarプロキシーで次を実行します。
- プロキシーで、上記のホットフィックスをインストールします
- /usr/local/avamarclient/bin/config.xmlを編集し、ファイルに「<enablesudouserrestore>1</enablesudouserrestore>」の行を追加/編集します
- 次のコマンドを実行してFLRを再起動します。service vmwareflr restart
FLR機能が実行されるすべてのLinux仮想マシン上で、次の操作を実行します。
- 専用のFLRユーザーを作成します。 例:flruser セキュリティを強化するために、このアカウントのシェルを無効にすることができます
- 固定の場所である/usr/bin/RestoreACLを使用して、/usr/local/avamarclient/bin/RestoreAclバイナリーをAvamarプロキシーからターゲットVMにコピーし、chmodを使用してアクセス権を755に設定します
例:
linux-da91:~ # ls -l /usr/bin/RestoreAcl
-rwxr-xr-x 1 root root 148016 Feb 13 17:48 /usr/bin/RestoreAcl
- /etc/sudoersを変更して、ステップ1のFLRユーザーがパスワードなしでRestoreACLバイナリーを実行することを許可します。
例
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
注:sudoers requirettyの設定が有効になっている(「Defaults requiretty」行がファイルに存在する)場合は、次の行も必要になります。
Defaults!/usr/bin/RestoreAcl !requiretty
オプション3:sudo wgetメソッドをACLとともに使用して元の場所に復元します。
注:
- このオプションは、オプションのネットワークHTTPSが使用可能であり、復元の選択で5 Mbよりも大きい場合、または11個以上のファイルが選択されている場合にのみ使用できます。
- Avamar GUIを使用して、フォルダーの場所が制限されているライブ ターゲットVMの場所を参照すると、失敗する場合がありますが、[Absolution Destination]に明示的に入力すると参照できます。
- 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
- 次のコマンドを実行してFLRを再起動します。service vmwareflr restart
- FLRの元の場所への復元が使用されるすべてのLinux仮想マシンで、/etc/sudoersを変更して、ステップ1のFLRユーザーがパスワードなしで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