Utilizing an NSS volume for ZFS processing on OES2 Linux
We are in the process of migrating our ZENworks 7 servers from NetWare 6.5 to OES2 SP1 Linux. However, as we don't have shared storage for our ZEN servers and required NSS volumes we wanted to make sure we got the most out of the local storage on the servers.
Looking at our current NetWare servers we noticed that our ZENworks folders used by ZENworks for Servers on the Data volumes where over 100GB in size. So when partitioning our new OES2 Linux servers we had to take into account that the default location for the ZENworks directory (/var/opt/novell/zenworks) needed to have plenty of capacity to store the ZFS data.
However, we also required an NSS volume on the server for data requirements. We decided that it was too inefficient to split the disk into two partitions. One for /var and one for NSS. We didn't want to over allocate the /var partition and discover that there was wasted capacity. So we decided to just create one NSS partition and move the "/var/opt/novell/zenworks" directory to the NSS volume and create a symlink to it from it original location.
This solved the problem as far as capacity issues on the server were concerned. The ZFS subscriber on the server worked the same as it did on NetWare. We were able to apply the latest ZFS release (IR3a HP3), deploy applications and images to the server. All seemed to work fine.
However after rebooting the server the ZFS wouldn't start properly. After going through the logs we noticed that it was failing trying to find numerous files during start. Files that were in /var/opt/novell/zenworks. However when I looked in the location specified in the logs I could see the files in question and they appeared fine. So I tried to restart the novell-zfs service. This however failed with a "Novell ZENworks Server Management has experienced an error" message. Going through the logs revealed that it couldn't start because there was already an instance of the ZenWebServer running. So after many reboot and going through log files I finally discovered the problem.
The problem was the order in which the server was loading the ZENworks service. It was loading the ZENworks for Servers service before it was loading NSS meaning that the files it required to load were not available during startup.
So to fix this all I did was modify the "novell-zfs" script in "/etc/init.d/". The only thing required to be running in order for the ZENworks for Servers service to load was eDirectory (ndsd). So what I did was to add nss to the required services to be running.
Below is an excerpt from the novell-zfs launch script. All that is change is adding "nss" to the end of the line "X-UnitedLinux-Should-Start:".
### BEGIN INIT INFO
# Provides: novell-zfs
# Required-Start: $local_fs $network
# X-UnitedLinux-Should-Start: ndsd nss
# Required-Stop: $network $local_fs
# Default-Start: 3 5
# Default-Stop: 1 6
# Description: Starts and stops the Novell ZENworks Server Management daemon.
### END INIT INFO
After you made the changes simply run the following commands:
chkconfig novell-zfs off
chkconfig novell-zfs on
You will notice that now if you look in the "/etc/init.d/rc3.d" or "/etc/init.d/r5.d" directories that the novell-zfs start order will now be after novell-nss. Now you can reboot the server and Novell ZENworks for Servers will not start until the NSS volume is up and running.
Disclaimer: As with everything else at Cool Solutions, this content is definitely not supported by Novell (so don't even think of calling Support if you try something and it blows up).
It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.