NetBackup 7.0 and Solaris 10 project resource allocation for bptm

Article:TECH138168  |  Created: 2010-08-20  |  Updated: 2013-06-21  |  Article URL http://www.symantec.com/docs/TECH138168
Article Type
Technical Solution


Environment

Issue



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.

Error



Status Code 89: problems encountered during setup of shared memory


Environment



Solaris 10 projects and NetBackup 7.0.


Cause



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.

Solution



To use projects with NetBackup 7.0 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. TECH1724 in the Related Articles contains 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-shm-ids=(privileged,1024,deny)' NetBackup
 
$ /usr/sbin/projmod
-a
-K 'project.max-shm-memory=(privileged,8589934592,deny)' NetBackup
 
2. Review the project settings.
 
# projects -l NetBackup
NetBackup
      projid : 1000
      comment: "NetBackup resource project"
      users : root
      groups : (none)
      attribs: project.max-msg-ids=(privileged,256,deny)
               project.max-sem-ids=(privileged,1024,deny)
               project.max-shm-ids=(privileged,1024,deny)
              project.max-shm-memory=(privileged,8589934592,deny)
 
3) Ensure that any scripts that [re]start the NetBackup vnetd and bpcd processes 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.
 
/usr/openv/netbackup/bin/goodies/netbackup
/usr/openv/netbackup/bin/bp.start_all
 
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
exit
 
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
project.max-shm-memory
        privileged       8GB        -   deny                                 -
        system          16.0EB    max   deny                                 -

 





Article URL http://www.symantec.com/docs/TECH138168


Terms of use for this information are found in Legal Notices