Community:NDR/HandleServerConfig

From NSDLWiki

Jump to: navigation, search

Handle Server Configuration

The NDR is dependent on a local instance of the Handle System (http://handle.net). Handles are used as the basis for all unique indentifiers in the NDR. When a repository item is added, the Handle server is queried for the next available handle and it is assigned to that item. The Handle service tracks all assignments made through it and prevents duplicative assignment.


Technical Information

NSDL's handle instance represent a live portion of the global handle network. Participating handle instances must be active at all time possible and permit anyone to resolve handles within our Namespace. NSDLs assigned namespace is:

0.NA/2200

Each handle instance must authenticate itself via pub key to handle.net in ordered to be considered as authoritative for that namespace. Once a server is athenticated handle.net will refer queries for the assigned namespace to that server. The pubkeys and configuration files to do this are incorporated in server directories.


There are two handle servers running with the NSDL cluster. NSDL's active handle server is assigned its own physical IP, handle.nsdl.org. Presently this is running on Server8.nsdl.org as a secondary IP (eth0:1). Handle Servers typically run on port 2641, which must be permitted Public Access through all firewalls.


A Mirroring server is also configured on Repo4, this is configured to poll the primary server and replicate its data. In the event of the need for a fall-over from Server8, one must 'down' the handle.nsdl.org IP on Server8 (# ifdown eth0:1 ) and then to 'up' the secondary IP interface on Repo4 (# ifup eth0:1). The config.dct file on repo4 must be replaced with the production version (config.dct.leader) and the handle server restarted (# service handled restart).


Both handle servers use Postgres backend storage. A local postgres database 'handle' is available on each server. This database is backed up daily on the Mirror server via crontab to /var/lib/pgsql/backups


The Handle server daemon runs as user 'fedorad' on each server. All files needed for the servers are located in /usr/local/hs . svr_1 directory contains the actual java .jar files, config files and pub keys. Startup and test scripts are found in the bin directory, in particular the script 'nsdl_start_handle_svr.sh' can be used to start the daemon by hand, running as user 'fedorad' and with all the correct parameters (eg: # screen nsdl_start_handle_svr.sh ).


There is also a redhat daemon startup script provided in /etc/init.d/handled that will automatically start/stop the service upon reboots. It can also be used with the 'service' command to perform hand operations (note: it calls nsdl_start_handle_svr.sh ). Similarly Server8 is configured to always start up with is secondary interface to handle.nsdl.org up and running (ONPARENT=yes).


The handle service has proven to be very reliable. In general it should come up automatically and work well under most conditions.

Personal tools