systemd を採用した Linux に NetBackup をインストールすると、NetBackup サービスは自動的に起動しません。

記事: 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 つの起動スクリプトが作成されます。
例:​
  1. /etc/init.d/netbackup
  2. /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.

参考: 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 ディレクトリに生成します。このファイルがスクリプトを使用してサービスを管理します。

その他の参考:
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

解決方法

現時点では、インストーラのバイナリと修正はありません。
次の回避方法を使用してください。
  1. 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 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)
  • ​ 次の方法でも、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
  • 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
  • これで、NetBackup は systemd で制御されます。
NetBackup を制御するには、systemd コマンドを使用します。
  • NetBackup と vxpbx を停止するには:
    • systemctl stop netbackup.service
    • systemctl stop vxpbx_exchanged.service
  • NetBackup と vxpbx を起動するには:
    • systemctl start vxpbx_exchanged.service
    • systemctl start netbackup.service
追加情報:
  1. NetBackup コマンドはすべて完全に機能し続けます。
  2. アップグレードの際に、 vxpbx_exchanged リンクやファイルを更新されることがあります。ファイルやリンクが更新された場合は、回避方法を繰り返し実行して、 vxpbx_exchanged ファイルを最新バージョンに更新します。

Was this content helpful?