Description
Consider this article an example to accompany the NetBackup BYO Universal Shares configuration steps, prerequisites, and hardware requirements document
Installing RHEL 7.9 is beyond the scope of this document. That said, a default RHEL 7.9 server just 'File and Print Services' and most if not all the utilities packages as Add-ons should install all the prerequisites (python, policycoreutils, policycoreutils-python and NFS server), except Nginx. Of course, all of these packages could be manually installed post-OS install.
This doc assumes a MSDP storage server, disk pool, storage unit is configured on this RHEL 7.9 host which will serve Universal Share and python2, policycoreutils, policycoreutils-python are installed. In the example below, NFS Server and Nginx are not yet installed.
All commands executed on the RHEL 7.9 NetBackup 8.3.0.1 MSDP storage server.
1) Install the EPEL release repo:$ sudo yum --nogpgcheck install epel-release
2) Install/start/enable NFS (if you did not choose to install NFS during initial OS install):$ sudo yum install -y nfs-utils
$ sudo systemctl start nfs-server rpcbind
$ sudo systemctl enable nfs-server rpcbind
3) Install/enable nginx:$ sudo yum install nginx.x86_64 -y
$ sudo systemctl enable nginx
4) Edit /etc/nginx/nginx.conf:
a. Make a backup copy of the nginx.conf file before editing:$ sudo cp -p /etc/nginx/nginx.conf{,.orig}
b. Edit the nginx.conf:
$ sudo vi /etc/nginx/nginx.conf .....ensure it looks like this:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 512;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
}
....save the /etc/nginx/nginx.conf file.
c. Test the nginx configuration file. If any errors reported, double-check the nginx.conf file for syntax issues like missing traiing semicolons, etc. Example of a successful test:$sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5) If SELinux is enforcing (confirm via 'getenforce'), then execute these:$ sudo semanage port -a -t http_port_t -p tcp 10087
$ sudo setsebool -P httpd_can_network_connect 1
$ sudo semanage permissive -a logrotate_t
6) start nginx:$sudo systemctl start nginx
Note: if nginx fails to start, check the output of 'journal -xe' and/or the /var/log/nginx/error.log file. Most common reasons are nginx.conf file syntax issues.
7) NB browser-based webui (https://master_hostname_or_ip/webui)
a. Click 'Storage', then 'Universal shares', then click blue '+Add' button on right
b. Give the share a name, leave NFS default (or choose SMB), leave default or choose a Quota size limit, add a client, click 'Save' button.
Common issues:
- missing EPEL repository, missing packages/services (NFS server, nginx server, Python 2, policycoreutils, policycoreutils-python)
- nginx.conf syntax problems
- Forward/reverse name resolution issues on the MSDP storage server resolving the remote Universal Share client
- On some rare occasions adding a Universal share in the NB webgui fails because it cannot find/access the /mnt/vpfs directory and upon checking the directory is not present. In those circumstances manually creating the /mnt/vpfs directory seems to resolve the issue.
Relevant logs:
- /var/log/nginx/error.log
- /var/log/messages
- /var/log/vpfs/*
- for errors adding a Universal Share via the webui, this log is often helpful:
/var/log/vpfs/spws_backend/spws_backend.log