NetBackupのトラブル調査とログ取り

しばらくやってなかったら忘却してしまったのでメモ書き

・NetBackupサポートユーティリティ(nbsu)を使った一括収集

インストールパス/NetBackup/bin/support 以下で以下を実行する

nbsu -t -c -g OS -s OS_ODBC -s OS_currentcontrolset_reg -s OS_currentversion_reg -g NET -s NET_network_reg -s NET_services -g DEV -s DEV_scsi_reg -g MM -g NBU -s NBU_vrts_reg -s NBU_nbdb_info -s NBU_bptestnetconn

実行後、support/output/nbsu/ に結果が出力される。
なお、クライアント台数および保存期間が長いような環境では、上記コマンドをそのまま実行すると終了までかなり時間がかかることがある。

また、NetBackup 8.1.1では上記オプションを使うのはold_nbsuとなり、新しい「nbsu」はオプションいらなくなった模様
参考資料:Veritas NetBackup™ トラブルシューティングガイド「NetBackup サポートユーティリティ (nbsu) について

・nbcplogs によるログ収集

インストールパス/NetBackup/bin/support 以下で以下を実行する

nbcplogs -d 期間 出力先ディレクトリ

例: nbcplogs -d 7d /tmp/nblogs
/tmp/nblogs ディレクトリに、過去7Days分のログを出力する
なお、出力に時間がかかる場合がある

インストールパス/NetBackup/bin/admincmd 以下にある管理ツール群

・普通にエラーログなどを取得

bperror -L -hoursago 672 -columns 200

・NetBackupの全体設定確認

 bpconfig -U
 bpgetconfig

・バックアップ設定(ポリシー)確認

bppllist -L -allpolicies

・バックアップデバイス確認

bpstulist -U
nbstlutil list -l

・バックアップメディア一覧と有効期限の確認

bpmedialist -U

・バックアップされたイメージ一覧

bpimagelist -idonly -d 01/01/1970 00:00:00

・ライセンスの確認

get_license_key

・Storage Life Cycle Policy(SLP)設定

nbstl -L -all_versions

他に関連するNetBackupに関する資料。

NetBackupのGUI(jnbSA)上で行う操作をコマンドで置き換えるとしたらどのようになるのか?→「NetBackupの操作をコマンドで行う

テープチェンジャのインベントリ関連操作をコマンドで行うにはどうするのか?→「NetBackupでインベントリ操作をコマンドで実行する方法

他のNetBackupで使っていたテープメディアを読み出すには?→「NetBackupで他のNetBackupサーバから持ってきたテープメディア内のデータをリストアする

日本語のWindows環境でNetBackupのJREをアップデートしようとすると失敗する

Veritas NetBackupではGUIインタフェースにJavaを使用しており、インストールディレクトリにJREも含まれている。
NetBackup 7.7以降では、このJREをアップデートするためのコマンド nbcomponentupdate が用意され、JREのアップデートを個別で行うことができるようになった。
NetBackup 8.1.1 Command Reference Guide – nbcomponentupdate
Updating JRE for NetBackup and OpsCenter

しかし、日本語のWindows環境では2つの原因により素直に実行できない。

・空き容量チェックをdirのコマンドに表示される「XXX Byte free」という文字列で行っている。
日本語環境では「XXX バイトの空き容量」となるため、空き容量検出に失敗する
・nbcomponentupdate内でNetBackupサービスの停止を行っているが、やはり英語文字列を見ている。
日本語Locate Packを適用したNetBackupではコードページを変えても常に日本語文字列で出力するため
サービスの停止確認に失敗する

これを回避するためには、以下の手順で実行する必要がある。

1. コマンドプロンプトを開く

2. Javaのバージョンを確認する

C:\Windows\system32>"\Program Files\Veritas\NetBackup\jre\bin\java.exe" -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b11\3, mixed mode)

C:\Windows\system32>

3. bpdownを実行し、NetBackupを停止

C:\Windows\system32>"\Program Files\Veritas\NetBackup\bin\bpdown.exe" /f /v
NetBackup 8.0 -- 停止ユーティリティ

サービスの停止中
> NetBackup Bare Metal Restore Master Server
> NetBackup Bare Metal Restore Master Server -- 停止状態
> NetBackup Web Management Console
> NetBackup Web Management Console -- 停止状態
> NetBackup Indexing Manager
> NetBackup Indexing Manager -- 停止状態
> NetBackup Service Monitor
> NetBackup Service Monitor -- 停止状態
> NetBackup Agent Request Server
> NetBackup Agent Request Server -- 停止状態
> NetBackup Storage Lifecycle Manager
> NetBackup Storage Lifecycle Manager -- 停止状態
> NetBackup Key Management Service
> NetBackup Key Management Service -- 停止状態
> NetBackup Vault Manager
> NetBackup Vault Manager -- 停止状態
> NetBackup Service Layer
> NetBackup Service Layer -- 停止状態
> NetBackup Policy Execution Manager
> NetBackup Policy Execution Manager -- 停止状態
> NetBackup Job Manager
> NetBackup Job Manager -- 停止状態
> NetBackup Request Daemon
> NetBackup Request Daemon -- 停止状態
> NetBackup Compatibility Service
> NetBackup Compatibility Service -- 停止状態
> NetBackup Database Manager
> NetBackup Database Manager -- 停止状態
> NetBackup Audit Manager
> NetBackup Audit Manager -- 停止状態
> NetBackup Authorization
> NetBackup Authorization -- 無効状態
> NetBackup Authentication
> NetBackup Authentication -- 停止状態
> NetBackup CloudStore Service Container
> NetBackup CloudStore Service Container -- 停止状態
> NetBackup Deduplication Engine
> NetBackup Deduplication Engine -- 無効状態
> NetBackup Deduplication Manager
> NetBackup Deduplication Manager -- 無効状態
> NetBackup Remote Manager and Monitor Service
> NetBackup Remote Manager and Monitor Service -- 停止状態
> NetBackup Device Manager
> NetBackup Device Manager -- 停止状態
> NetBackup Volume Manager
> NetBackup Volume Manager -- 停止状態
> NetBackup Resource Broker
> NetBackup Resource Broker -- 停止状態
> NetBackup Enterprise Media Manager
> NetBackup Enterprise Media Manager -- 停止状態
> NetBackup Relational Database Manager
> NetBackup Relational Database Manager -- 停止状態
> NetBackup Event Manager
> NetBackup Event Manager -- 停止状態
> NetBackup Deduplication Multi-Threaded Agent
> NetBackup Deduplication Multi-Threaded Agent -- 停止状態
> NetBackup Discovery Framework
> NetBackup Discovery Framework -- 停止状態
> NetBackup SAN Client Fibre Transport Service
> NetBackup SAN Client Fibre Transport Service -- 無効状態
> NetBackup Client Service
> NetBackup Client Service -- 停止状態
> NetBackup Legacy Client Service
> NetBackup Legacy Client Service -- 停止状態
> NetBackup Legacy Network Service
> NetBackup Legacy Network Service -- 停止状態

ロボット制御デーモンの停止中

停止が正常に完了しました。
C:\Windows\system32>

4. コードページ 437(英語)に変更するため「chcp 437」を実行

C:\Windows\system32>chcp 437
Active code page: 437

C:\Windows\system32>

5. nbcomponentupdateコマンドでJREをアップデート

今回は、c:\Program Files\Java\jre1.8.0_171 にインストールされているJRE 1.8.0 Build 171を指定した。

C:\Windows\system32>"\Program Files\Veritas\NetBackup\bin\goodies\nbcomponentupdate.exe" -Product NetBackup -component jre -path "c:\Program Files\Java\jre1.8.0_171"
Command line: C:\Program Files\Veritas\NetBackup\bin\goodies\nbcomponentupdate.exe -Product NetBackup -component jre -path c:\Program Files\Java\jre1.8.0_171

Java Runtime Envrionment(JRE) version installed with product 'Veritas NetBackup'                                 : 1.8.0_101 (64bit)
Java Runtime Envrionment(JRE) version found at path 'c:\Program Files\Java\jre1.8.0_171'                         : 1.8.0_171 (64bit)

This utility will update the Java Runtime Envrionment(JRE) binaries present at 'C:\Program Files\Veritas\NetBackup\jre' path

This utility may start and stop all (or some) services depending upon the present state of services.

Do you want to continue (Y[es]/N[o]): y

Performing upgrade steps ...

[1/4] Pre-installation step is in progress
[1/4] Pre-installation step is completed successfully

[2/4] Installation step is in progress
[2/4] Installation step is completed successfully

[3/4] Post-installation step is in progress
[3/4] Post-installation step is completed successfully

[4/4] Commit and Cleanup step is in progress
[4/4] Commit and Cleanup step is completed successfully

After upgrading, Java Runtime Envrionment(JRE) version installed with product 'Veritas NetBackup'                                 : 1.8.0_171 (64bit)

Successfully upgraded Java Runtime Envrionment(JRE) for Veritas NetBackup.
The log file generated for this operation is C:\Users\ADMINI~1\AppData\Local\Temp\2\logs\nbcomponentupdate\nbcomponentupdate_20-06-2018_17.17.37.log

C:\Windows\system32>

なお、NetBackupサービスはバージョンによっては自動的に起動されたりするようだ。

自働起動しなかった場合は「bpup」を実行して起動する

6. Javaのバージョンを確認する

C:\Windows\system32>"\Program Files\Veritas\NetBackup\jre\bin\java.exe" -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

C:\Windows\system32>

7. 更新完了


2021/04/26追記

Oracle JRE 1.8.0u291にアップデートをかけてみたところ、NetBackup Web Management Consoleが起動できなくなるという問題が発生しました。

このため「nbcomponentupdate.exe -Product NetBackup -component jre -revert」を実行し、以前のバージョンに戻してみたところ正常に動作しました。

NetBackup 8.1.1のデフォルトは1.8.0 u151で、手持ちの古いバージョンのうちOracle JRE 1.8.0u172とOracle JRE 1.8.0u241はnbcomponentupdateでアップデートして動作しました。

AZULのZulu Open JRE 1.8.0 はデフォルトインストール先が C:\Program Files\Zulu\zulu-8-jre\ で、バージョンが入ってないからダメだそうで・・・

AdoptOpen JDK 1.8.0 のデフォルトインストール先は C:\Program Files\AdoptOpenJDK\jre-8.0.292.10-hotspot\ で、こちらもやはり使用できませんでした。

ちなみにインストール先を「C:\Program Files\Zulu\jre1.8.0_292」とか「C:\Program Files\Java\jre1.8.0_292」に変更してみましたが同じエラー

java -versionの結果を比較すると「java version」ではなく「openjdk version」に切り替わっているので失敗していた模様

というわけで、NetBackup 8.1.1/8.1.2などではOracle以外のJavaに切り替えることはできない模様です。

Backup ExecでHyper-V仮想マシンバックアップ/リストア時にGRT用テンポラリディレクトリは使われるのか?

Backup ExecではHyper-V/vSphereの仮想マシンバックアップを仮想レイヤーの方からバックアップを行った場合、その仮想マシンの上でWindowsが動いている場合は、ファイル単位でのリストアを行えるGRT機能というのをサポートしている。

で・・・Backup Execの設定を見ていくと、全体設定の中に
・Granular Recover Technology
  バックアップ時にBackup Execが一時的にデータを保存するパス C:\TEMP
  リストア時にBackup Execが一時的にデータを保存するパス   C:\TEMP
というものがある。

仮想マシンバックアップ時にC:\TEMPを観察してみたけど、使用している様子が見受けられない。
不思議に思って調べてみた

Veritas Backup Exec 管理者ガイド「Granular Recovery Technology」の「Granular Recovery Technology を使うバックアップ用の推奨デバイス」

ディスクデバイス、重複排除デバイス、およびディスクカートリッジデバイスに送信された GRT 対応のバックアップジョブの暗号化を有効にすると、Backup Exec は詳細バックアップセットを暗号化された形式でディスクに格納しません。GRT 非対応のバックアップソースのバックアップセットのみが暗号化型式で格納されます。 クラウド、OpenStorage、およびテープデバイスに送信されるバックアップジョブのすべてのバックアップセットは、暗号化型式で格納されます。

ファイルサイズの制限があるボリューム上でディスクストレージデバイスを使う必要がある場合、Backup Exec ではステージングの場所が必要です。 Backup Exec はバックアップジョブの実行中に少しのメタデータをステージングの場所に一時的に格納します。 バックアップが終了したら、ステージングの場所からデータを削除します。 ただし、ファイルサイズの制限がないボリューム上のディスクストレージデバイスを宛先として使う場合、ステージングの場所は必要ありません。

ステージングの場所のデフォルトのパスは C:\temp です。

テープ装置などを使っている場合はステージングの場所が必要。
ローカルのNTFSディスクやCIFS共有を使っている場合は、「ファイルサイズの制限に制限がないボリューム」なので、ステージングの場所は不要。

というわけで、今回テストした環境は、CIFS共有をバックアップ保存先としていたため、ステージング領域が不要であった。ということのようでした。

BackupExec / NetBackupでWinPEを使った起動ディスクで仮想マシンをリカバリするとNIC設定が消える場合がある

BackupExec 20.1を使ってHyper-V上のWindows Serverのバックアップを行った。
最初、Hyper-V経由で仮想マシンとしてのバックアップにしようと考えていたのだが、BackupExecでは特定のドライブのバックアップを取らないという設定が出来ず、必ず全ドライブをバックアップする必要があることが分かった。
このため、対象サーバにBackupExec Agentをインストールして、エージェント経由でのバックアップを取ることにした。

で、Windows ADKを使用したSDR起動ディスクを作って、フルリストアのテストを行ったところ問題発生。
NICが2つついている場合、片側につけたIPアドレス設定がリカバリされない。

いろいろ条件をかえて試してみたけど、必ず発生している。

どうやら仕様らしい。

Veritasのサイト上だとNetBackup / vSphere環境での話として、「After restore a Windows Virtual Machine to original or alternate location, Virtual NIC settings may be changed or lost.」というのが掲載されている。

回避方法はなく、手動で再設定しろ、だそうな

LTFS Bulk Transferとは何か?

LTFSの記事を更新する為にSNIAの「LTFS規格書ページ」を見たら「LTFS Bulk Transfer v1.0」なるものを発見。
見てみると2016年10月11日発行の規格書だった。

しかし、SNIA以外のページで見かけない・・・
一体どういうものなのか、規格書を流し読みしてみた。

大量のファイルをひとまとめにして、システム間で転送できるようにする仕組み
Windows/Linux/MacOSX間で可搬性があるLTFSを流用し、
ファイルのアーカイブ処理はLTFSに任せ、システム間転送に司る部分を「LTFS Bulk Transfer」として定義している
というものであるようだ。

対象となるテープは1本だけとは限らないので、LTFS Bulk Transferの定義ファイル内では、xml記述でファイルと格納されているテープのIDを列挙し、それぞれにsha256によるチェックサムを記載し、コード化けを検出できるようにしている。

規格書内の使用例には、クラウドへの移行やクラウド間移行という模式図があり、汎用的な移行に使えるツールとしてLTFSを使用していくような感じも見受けられる。

特に明記はされていないが、物理LTOテープだけではなく、仮想LTOテープ的なものへの適用も考えられていそうな感じではある。