NetBackup 7 and Solaris project resource allocation

Article:TECH138168  |  Created: 2010-08-20  |  Updated: 2014-12-01  |  Article URL
Article Type
Technical Solution



Symantec does not formally test third-party facilities that manage or restrict system resources. However, many sites have created custom Solaris projects to manage the resources used by NetBackup 6.5 and will find those projects are not utilized after upgrading to NetBackup 7.0.

The following information is offered “as-is” to assist those sites in further customizing their configurations to be compatible with NetBackup 7.x.


This situation is most commonly identified by the following error message in the NetBackup Job Details.  It occurs when Solaris rejects a request by the bptm or bpdm process for either a shared memory ID or a shared memory segment.

Status Code 89: problems encountered during setup of shared memory


Solaris 10 projects
Solaris 11 projects
NetBackup 7.0, 7.1, 7.5, 7.6


Prior versions of NetBackup registered the NetBackup 6.5 bpcd and vnetd processes with the Solaris 10 Service Management Facility (SMF) for the purpose of having inetd listen for inbound connections and then start the appropriate vnetd or bpcd process. This made it easy for enterprising sites to create projects which managed the resources for the other processes, such as bptm, that were forked from vnetd and bpcd. (See TECH62633 in the Related Articles for details).

NetBackup 7.0 installs the vnetd and bpcd processes as standalone daemons which are no longer started by inetd.  This breaks the relationship between the existing project and the bptm or other processes that are forked from vnetd and bpcd. The most common side affect is that the default project does not provide a large enough allocation of shared memory or shared memory identifiers which results in backups failing with status 89.


To use projects with NetBackup 7 it is necessary to customize the environment so that the project is associated with the NetBackup process of interest any time the process is started. The following examples relate to bptm because it is started from vnetd or bpcd, depending on the connect options. Similar steps should be successful relative to other NetBackup processes.

1. Create a project for NetBackup. See the related articles for advice on appropriate sizing for NetBackup shared memory requirements. This example creates project 1000, named "NetBackup". 
$ /usr/sbin/projadd -U root -c "NetBackup resource project" -p 1000 NetBackup
$ /usr/sbin/projmod -a -K 'project.max-msg-ids=(privileged,256,deny)' NetBackup 
$ /usr/sbin/projmod -a -K 'project.max-sem-ids=(privileged,1024,deny)' NetBackup
$ /usr/sbin/projmod -a -K 'project.max-sem-ops=(privileged,32,deny)' NetBackup
$ /usr/sbin/projmod -a -K 'project.max-sem-nsems=(privileged,300,deny)' NetBackup
$ /usr/sbin/projmod -a
-K 'project.max-shm-ids=(privileged,1024,deny)' NetBackup 
$ /usr/sbin/projmod
-K 'project.max-shm-memory=(privileged,8589934592,deny)' NetBackup
2. Review the project settings.
# projects -l NetBackup
      projid : 1000
      comment: "NetBackup resource project"
      users : root
      groups : (none)
      attribs: project.max-msg-ids=(privileged,256,deny)
3) Ensure that any scripts that [re]start the NetBackup processes, especially vnetd and bpcd, are associated with the project before forking any child processes.
To ensure association at system boot time, modify the /etc/init.d/netbackup script to make this the second line in the script.
MYPID=$$; newtask -p NetBackup -c $MYPID
To ensure association during scripted [re]start of NetBackup, make the same edit to these scripts and any other scripts used to stop or restart netbackup.
Note:  Any custom site-specific changes to a script will need to be reapplied if a future NetBackup release update or hotfix contains an updated copy of the file. 
4) Ensure that any ad hoc restart of vnetd or bpcd from the command line makes a similar association. Be sure to confirm that the processes have been stopped, then create a subshell and associate it with the project before restarting the processes. That way the project settings apply only to the processes started within the subshell and not to the login shell which is resumed following the exit from the subshell.
$ ps -ef | egrep 'vnetd|bpcd'
    root 13323     1   0   Aug 16 ?           0:05 /usr/openv/netbackup/bin/bpcd -standalone
    root 13320     1   0   Aug 16 ?           0:14 /usr/openv/netbackup/bin/vnetd -standalone
$ /usr/openv/netbackup/bin/bpcd -terminate
$ /usr/openv/netbackup/bin/vnetd -terminate
$ ps -ef | egrep 'vnetd|bpcd'
$ sh
MYPID=$$ ; newtask -p NetBackup -c $MYPID
/usr/openv/netbackup/bin/vnetd -standalone
/usr/openv/netbackup/bin/bpcd -standalone
5) The resource limits can be verified at any time.
$ ps -ef | egrep 'vnetd|bpcd'
    root 29318     1   0 14:05:31 ?           0:00 vnetd -standalone
    root 29315     1   0 14:05:26 ?           0:00 bpcd -standalone

$ /bin/prctl -n project.max-shm-memory 29318
process: 29318: vnetd -standalone
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
        privileged       8GB        -   deny                                 -
        system          16.0EB    max   deny                                 -

$ ipcs -A
IPC status from <running system> as of Mon Dec  1 12:47:11 CST 2014
T         ID KEY        MODE        OWNER GROUP ... PROJECT
Message Queues:
q         44 0x52455051 --rw------- root  root  ... NetBackup
q         43 0x52455151 --rw------- root  root  ... NetBackup
T         ID KEY        MODE        OWNER GROUP ... PROJECT
Shared Memory:
m 1275068433 0x5654     --rw-rw-rw- root  root  ... NetBackup
m 1275068432 0x5643     --rw-rw-rw- root  root  ... NetBackup
m   16777225 0x88d2d3f0 --rw-rw---- ora    dba  ...   default
T         ID KEY        MODE        OWNER  GROUP ... PROJECT
s   16777324 0x5653     --ra-ra-ra-  root  root  ... NetBackup
s   16777321 0xacb45d9a --ra-r--r--  root  root  ... NetBackup
s   16777300 0x991c66a4 --ra-ra----   ora   dba  ...   default
s          3 0x6312     --ra-ra-ra-  root  root  ... user.root

Article URL

Terms of use for this information are found in Legal Notices