検索クエリーを入力してください
すべてのサポートコンテンツとコミュニティコンテンツを検索...
記事: 100036901
最終公開日: 2017-08-17
評価: 0 0
製品: NetBackup & Alta Data Protection
問題
systemd を採用した Linux Red Hat バージョン 7 アップデート 2 で NetBackup 7.7.1 または 7.7.2 のインストールまたはアップグレードを行うと、pbx_exchange サービスが再ブート時に起動しなくなります。注意: Red Hat Enterprise Linux 7 GA およびアップデート 1 はサポートされます。アップデート 2 はサポートされますが、NetBackup 7.7.1 以降が必要です。
エラーメッセージ
デーモンやサービスが起動されていないため、再ブート時に pbx (private branch exchange) デーモンについてのエラーメッセージは発生しません。ただし、管理者が管理コンソールを開いたりコマンドを実行したりしたときにエラーが表示されることがあります。NetBackup リモート管理コンソールを開いたときの例:
ログインできません。状態: 526
コマンドを実行したときの例:
# nbemmcmd -listhosts
EMM 接続の初期化に失敗しました。EMM サーバーへのネットワークアクセスが利用可能であり、サービス nbemm および pbx_exchange が EMM サーバー上で実行されていることを確認してください。(195)
原因
SysV init または Upstart で配布された、以前のバージョンの Red Hat Enterprise Linux では、/etc/rc.d/init.d/ ディレクトリの init スクリプトが使用されました。この init スクリプトは通常 Bash で作成され、このスクリプトを使用してシステム管理者はシステムのサービスやデーモンの状態を制御できました。Red Hat Enterprise Linux 7 では、この init スクリプトがサービスユニットに置き換えられました。サービスユニットは、末尾に .service 拡張子が付いたファイルで、使用目的は init スクリプトと同じです。NetBackup のインストールスクリプトでは、systemd のサービスユニットは作成されませんが、systemd は従来の init スクリプトを実行するため、NetBackup は Linux 7 アップデート 2 に対応しています。また、Linux の systemd は、 systemd-sysv-generator ツールを介して従来の init スクリプトを systemd サービスファイルに変換することも試みます。
この変換プロセスは netbackup では成功しますが、vxpbx_exchanged では失敗します。
NetBackup のインストールでは、netbackup 用と vxpbx 用の 2 つの起動スクリプトが作成されます。
例:
- /etc/init.d/netbackup
- /etc/init.d/vxpbx_exchanged -> /opt/VRTSpbx/bin/vxpbx_exchanged
/etc/init.d/vxpbx_exchanged は、/opt/VRTSpbx/bin/vxpbx_exchanged のリンクであることに注意してください。
systemd-sysv-generator ツールは従来の init スクリプトの変換を試み、そのスクリプトをブート時に /var/run/systemd/generator.late フォルダに挿入します。NetBackup はインストール後に完全に機能しますが、機能するのは、変換プロセスが行われる最初の再ブートまでです。再ブート後、netbackup では変換が成功しますが、 vxpbx_exchanged は / opt/VRTSpbx/bin/vxpbx_exchanged のリンクであるため、変換は行えません。 vxpbx_exchanged.service ファイルがないため、 pbx_exchange サービスは起動しません。これは netbackup の前提条件であるため、 netbackup.service は、 pbx_exchange に依存するこれらの NetBackup サービスを起動できません。
以下に、最初のインストール後の /etc/init.d の例を示します。
# ls -l
-rw-r--r--. 1 root root 13948 Sep 16 07:51 functions
-r-x------. 1 root root 20969 Jan 20 12:59 netbackup
-rwxr-xr-x. 1 root root 2989 Sep 16 07:51 netconsole
-rwxr-xr-x. 1 root root 6630 Sep 16 07:51 network
-rw-r--r--. 1 root root 1160 Oct 12 08:39 README
-rwxr-xr-x. 1 root root 2437 Jun 26 2015 rhnsd
-rwxr-xr-x. 1 root root 40673 Jan 13 02:29 vmware-tools
lrwxrwxrwx. 1 root root 32 Jan 20 12:57 vxpbx_exchanged -> /opt/VRTSpbx/bin/vxpbx_exchanged
以下に再ブート後の /var/run/systemd/generator.late の例を示します。
# ls -l
-rw-r--r--. 1 root root 454 Jan 22 12:52 netbackup.service
-rw-r--r--. 1 root root 453 Jan 22 12:52 netconsole.service
-rw-r--r--. 1 root root 728 Jan 22 12:52 network.service
-rw-r--r--. 1 root root 715 Jan 22 12:52 rhnsd.service
drwxr-xr-x. 2 root root 100 Jan 22 12:52 runlevel2.target.wants
drwxr-xr-x. 2 root root 100 Jan 22 12:52 runlevel3.target.wants
drwxr-xr-x. 2 root root 100 Jan 22 12:52 runlevel4.target.wants
drwxr-xr-x. 2 root root 100 Jan 22 12:52 runlevel5.target.wants
-rw-r--r--. 1 root root 572 Jan 22 12:52 vmware-tools.service
上記の例で、 vxpbx_exchanged を除き、/etc/init.d 内の init スクリプトはすべて、/var/run/systemd/generator.late 内の.service ファイルに変換されます。
systemd、systemd サービスファイル、systemd-sysv-generator ツールに関する追加情報:
出典: Linux RHEL 7.2
/etc/rc.d/init.d/README
You are looking for the traditional init scripts in /etc/rc.d/init.d, and they are gone?
Here's an explanation on what's going on: You are running a systemd-based OS where traditional init scripts have been replaced by native systemd services files. Service files provide very similar functionality to init scripts. To make use of service files simply invoke "systemctl", which will output a list of all currently running services (and other units). Use "systemctl list-unit-files" to get a listing of all known unit files, including stopped, disabled and masked ones. Use "systemctl start foobar.service" and "systemctl stop foobar.service" to start or stop a service, respectively. For further details, please refer to systemctl(1).
Note that traditional init scripts continue to function on a systemd system. An init script /etc/rc.d/init.d/foobar is implicitly mapped into a service unit foobar.service during system initialization.
End README.
/etc/rc.d/init.d/README
You are looking for the traditional init scripts in /etc/rc.d/init.d, and they are gone?
Here's an explanation on what's going on: You are running a systemd-based OS where traditional init scripts have been replaced by native systemd services files. Service files provide very similar functionality to init scripts. To make use of service files simply invoke "systemctl", which will output a list of all currently running services (and other units). Use "systemctl list-unit-files" to get a listing of all known unit files, including stopped, disabled and masked ones. Use "systemctl start foobar.service" and "systemctl stop foobar.service" to start or stop a service, respectively. For further details, please refer to systemctl(1).
Note that traditional init scripts continue to function on a systemd system. An init script /etc/rc.d/init.d/foobar is implicitly mapped into a service unit foobar.service during system initialization.
End README.
参考: Ubuntu 15.04 Server With Systemd (Richard Peterson)。
System V スクリプトと生成される systemd サービスファイル:
/etc/init.d および /run/systemd/generator.late
一部のサービスは systemd 向けにまだ設定されていません。 これらのファイルは、systemd サービスファイルなしでインストールされ、代わりに SysV スクリプトが /etc/init.d ディレクトリにインストールされます。systemd-sysv-generator ツールはこのスクリプトを自動的に読み込んで、対応する systemd ユニットファイルを /var/run/systemd/generator.late ディレクトリに生成します。このファイルがスクリプトを使用してサービスを管理します。
/etc/init.d および /run/systemd/generator.late
一部のサービスは systemd 向けにまだ設定されていません。 これらのファイルは、systemd サービスファイルなしでインストールされ、代わりに SysV スクリプトが /etc/init.d ディレクトリにインストールされます。systemd-sysv-generator ツールはこのスクリプトを自動的に読み込んで、対応する systemd ユニットファイルを /var/run/systemd/generator.late ディレクトリに生成します。このファイルがスクリプトを使用してサービスを管理します。
その他の参考:
Red Hat Enterprise Linux 7 System Administrator's Guide (Chapter 8.2)
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Services.html
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Services.html
解決方法
現時点では、インストーラのバイナリと修正はありません。次の回避方法を使用してください。
- vxpbx_exchanged を systemd 制御に 追加します。
- NetBackup のインストール後、vxpbx_exchanged のリンクを削除し、起動ファイルを /etc/init.d に直接コピーします。
- # cd/etc/init.d
- # rm vxpbx_exchanged
- # cp /opt/VRTSpbx/bin/vxpbx_exchanged ./vxpbx_exchanged
- /etc/init.d の更新後のフォルダリストは次のとおりです。
# ls -l
-rw-r--r--. 1 root root 13948 Sep 16 07:51 functions
-r-x------. 1 root root 20969 Jan 20 12:59 netbackup
-rwxr-xr-x. 1 root root 2989 Sep 16 07:51 netconsole
-rwxr-xr-x. 1 root root 6630 Sep 16 07:51 network
-rw-r--r--. 1 root root 1160 Oct 12 08:39 README
-rwxr-xr-x. 1 root root 2437 Jun 26 2015 rhnsd
-rwxr-xr-x. 1 root root 40673 Jan 13 02:29 vmware-tools
-r-xr-x---. 1 root root 11008 Feb 9 11:26 vxpbx_exchanged
- システムを再ブートします。
- # systemctl reboot
- vxpbx サービスと NetBackup サービスが起動したことを確認します (下記の出力例を参照)。
- # systemctl status vxpbx_exchanged
● vxpbx_exchanged.service - SYSV: Provides Veritas Private Branch Exchange
Loaded: loaded (/etc/rc.d/init.d/vxpbx_exchanged)
Active: active (running) since Mon 2016-02-08 09:24:37 EST; 1h 47min ago
Docs: man:systemd-sysv-generator(8)
Process: 1356 ExecStart=/etc/rc.d/init.d/vxpbx_exchanged start (code=exited, status=0/SUCCESS)
- # systemctl status vxpbx_exchanged
- # systemctl status netbackup.service (以下省略)
● netbackup.service - LSB: NetBackup
Loaded: loaded (/etc/rc.d/init.d/netbackup)
Active: active (running) since Mon 2016-02-08 09:25:21 EST; 1h 47min ago
Docs: man:systemd-sysv-generator(8)
Process: 2573 ExecStart=/etc/rc.d/init.d/netbackup start (code=exited, status=0/SUCCESS)
Loaded: loaded (/etc/rc.d/init.d/netbackup)
Active: active (running) since Mon 2016-02-08 09:25:21 EST; 1h 47min ago
Docs: man:systemd-sysv-generator(8)
Process: 2573 ExecStart=/etc/rc.d/init.d/netbackup start (code=exited, status=0/SUCCESS)
- 次の方法でも、vxpbx サービスと netbackup サービスが起動したことを確認できます。
- # systemctl list-units --type service | egrep -i "netbackup|vxpbx"
netbackup.service loaded active running LSB: NetBackup
vxpbx_exchanged.service loaded active running SYSV: Provides Veritas Private Branch Exchange
- # systemctl list-units --type service | egrep -i "netbackup|vxpbx"
- NetBackup サービスを確認します。
- # /usr/openv/netbackup/bin/bpps -x
NB Processes
------------
root 2598 1 0 09:24 ? 00:00:00 /usr/openv/netbackup/bin/private/nbatd -c /usr/openv/var/global/vxss/eab/data
root 2601 1 0 09:24 ? 00:00:00 /usr/openv/netbackup/bin/vnetd -standalone
root 2611 1 0 09:24 ? 00:00:00 /usr/openv/netbackup/bin/bpcd -standalone
root 2694 1 0 09:24 ? 00:00:00 /usr/openv/netbackup/bin/nbdisco
root 2763 1 1 09:24 ? 00:01:36 /usr/openv/db//bin/NB_dbsrv @/usr/openv/var/global/server.conf @/usr/openv/var/global/databases.conf -hn 5
root 2828 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbevtmgr
root 2857 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/nbaudit
root 2970 1 0 09:25 ? 00:00:02 /usr/openv/netbackup/bin/nbemm
root 2975 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/nbrb
root 3113 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/bprd
root 3129 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/bpcompatd
root 3139 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbjm
root 3168 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/nbpem
root 3185 3168 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbproxy dblib nbpem
root 3191 3139 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbproxy dblib nbjm
root 3193 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/bpdbm
root 3196 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/nbstserv
root 3197 3193 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/bpjobd
root 3288 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/nbrmms
root 3374 1 0 09:25 ? 00:00:01 /usr/openv/netbackup/bin/nbsl
root 3378 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbim
root 3424 1 0 09:25 ? 00:00:02 /usr/openv/netbackup/bin/nbars
root 3473 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbvault
root 3489 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbcssc -a NetBackup
root 3515 1 0 09:25 ? 00:00:00 /usr/openv/netbackup/bin/nbsvcmon
MM Processes
------------
root 3025 1 0 09:25 ? 00:00:00 vmd
Shared Veritas Processes
-------------------------
root 2564 1 0 09:24 ? 00:00:00 /opt/VRTSpbx/bin/pbx_exchange
- # /usr/openv/netbackup/bin/bpps -x
- これで、NetBackup は systemd で制御されます。
- NetBackup と vxpbx を停止するには:
- systemctl stop netbackup.service
- systemctl stop vxpbx_exchanged.service
- NetBackup と vxpbx を起動するには:
- systemctl start vxpbx_exchanged.service
- systemctl start netbackup.service
- NetBackup コマンドはすべて完全に機能し続けます。
- アップグレードの際に、 vxpbx_exchanged リンクやファイルを更新されることがあります。ファイルやリンクが更新された場合は、回避方法を繰り返し実行して、 vxpbx_exchanged ファイルを最新バージョンに更新します。