The StoRM Frontend service provides a SRM interface for storage management and data access supporting VOMS authentication and authorization mechanisms.
Grab the latest package from the StoRM repository. See instructions here.
Install the metapackage:
yum install storm-frontend-mp
The Frontend component relies on a single configuration file that contains all the configurable parameters. This file is:
/etc/storm/frontend-server/storm-frontend-server.conf
containing a list of key-value pairs that can be used to configure the Frontend server. In case a parameter is modified, the Frontend service has to be restarted in order to read the new value.
Currently, the Frontend’s configuration parameters can be divided per section as follows.
Property Name | Description |
---|---|
db.host |
Host for database connection. Default is localhost |
db.user |
User for database connection. Default is storm |
db.passwd |
Password for database connection. Default is password |
Property Name | Description |
---|---|
fe.port |
Frontend service port. Default is 8444 |
fe.threadpool.threads.number |
Size of the worker thread pool. Default is 50 |
fe.threadpool.maxpending |
Size of the internal queue used to maintain SRM tasks in case there are no free worker threads. Default is 200 |
fe.gsoap.maxpending |
Size of the GSOAP queue used to maintain pending SRM requests. Default is 1000 |
Property Name | Description |
---|---|
log.filename |
Full log file name path. Default is /var/log/storm/storm-frontend.log |
log.debuglevel |
Logging level. Possible values are: ERROR, WARN, INFO, DEBUG, DEBUG2. Default is INFO |
Property Name | Description |
---|---|
monitoring.enabled |
Enable/disable monitoring. Default is true. |
monitoring.timeInterval |
Time interval in seconds between each monitoring round. Default is 60. |
monitoring.detailed |
Enable/disable detailed monitoring. Default is false. |
Property Name | Description |
---|---|
be.xmlrpc.host |
Backend hostname. Default is localhost. |
be.xmlrpc.port |
Backend XML-RPC server port. Default is 8080. |
be.xmlrpc.token |
Token used for communicating with Backend service. Mandatory, has no default. |
be.xmlrpc.path |
XML-RPC server path. Default is /RPC2. |
be.xmlrpc.check.ascii |
Enable/disable ASCII checking on strings to be sent via XML-RPC. Default is true. |
Property Name | Description |
---|---|
be.recalltable.port |
REST server port running on the Backend machine. Default is 9998. |
Property Name | Description |
---|---|
check.user.blacklisting |
Enable/disable user blacklisting. Default is false. |
argus-pepd-endpoint |
The complete service endpoint of Argus PEP server. Mandatory if check.user.blacklisting is true. Example: https://argus-pep-host:8154/authz |
Property Name | Description |
---|---|
security.enable.mapping |
Flag to enable/disable DN-to-userid mapping via gridmap-file. Default is false. |
security.enable.vomscheck |
Flag to enable/disable checking proxy VOMS credentials. Default is true. |
Property Name | Description |
---|---|
wsdl.file |
WSDL file, complete with path, to be returned in case of GET request. |
StoRM Frontend can be configured with YAIM tool on CentOS 6 platform.
Read more about YAIM tool here and what are the general YAIM variables for a StoRM deployment.
Here is a minimal YAIM configuration example for a Frontend node:
## The site name
SITE_NAME="storm-testbed"
## BDII hostname
BDII_HOST="emitb-bdii-site.cern.ch"
## List of NTP hosts
NTP_HOSTS_IP="131.154.1.103 193.206.144.10"
## Users configuration
USERS_CONF="/etc/storm/siteinfo/storm-users.conf"
## Groups configuration
GROUPS_CONF="/etc/storm/siteinfo/storm-groups.conf"
## Supported VOs.
VOS="dteam"
## Backend hostname
STORM_BACKEND_HOST="storm-backend.example.org"
## Database hostname and password
STORM_DB_HOST=$STORM_BACKEND_HOST
STORM_DB_PWD="secret"
## Backend's XMLRPC secret token
STORM_BE_XMLRPC_TOKEN="secret"
To configure the service with yaim, run the following command:
/opt/glite/yaim/bin/yaim -c -s SITEINFO.def -n se_storm_frontend
The StoRM puppet module can be used to configure the service on CentOS 7 platform.
The module contains the storm::frontend
class that installs the metapackage storm-frontend-mp and allows site administrator to configure storm-frontend-server service by managing the following files:
The whole list of StoRM Frontend class parameters can be found here.
Example of StoRM Frontend configuration done through storm::frontend
class:
class { 'storm::frontend':
be_xmlrpc_host => 'backend.test.example',
be_xmlrpc_token => 'NS4kYAZuR65XJCq',
db_host => 'backend.test.example',
db_user => 'storm',
db_passwd => 'storm',
}
The Frontend logs information on the service status and the SRM requests received and managed by the process. The Frontend’s log supports different level of logging (ERROR, WARNING, INFO, DEBUG, DEBUG2) that can be set from the dedicated parameter in storm-frontend-server.conf configuration file. The Frontend log file named storm-frontend-server.log is placed in the /var/log/storm directory. At start-up time, the FE prints here the whole set of configuration parameters, this can be useful to check desired values. When a new SRM request is managed, the FE logs information about the user (DN and FQANs) and the requested parameters. At each SRM request, the FE logs also this important information:
03/19 11:51:42 0x88d4ab8 main: AUDIT - Active tasks: 3
03/19 11:51:42 0x88d4ab8 main: AUDIT - Pending tasks: 0
about the status of the worker pool threads and the pending process queue. Active tasks is the number of worker threads actually running. Pending tasks is the number of SRM requests queued in the worker pool queue. These data gives important information about the Frontend load.
Monitoring service, if enabled, provides information about the operations executed in a certain amount of time writing them on file /var/log/storm/monitoring.log. This amount of time (called Monitoring Round) is configurable via the configuration property monitoring.timeInterval
; its default value is 1 minute. At each Monitoring Round, a single row is printed on
log. This row reports both information about requests that have been performed in the last Monitoring Round and information considering the whole FE execution time (Aggregate Monitoring). Informations reported are generated from both Synchronous and Asynchronous requests and tell the user:
This row reports the Monitoring Summary and this is the default behavior of the monitoring service.
Example:
03/20 14:19:11 : [# 22927 lifetime=95:33:18] S [OK:47,F:15,E:0,m:0.085,M:3.623,Avg:0.201] A [OK:16,F:0,E:0,m:0.082,M:0.415,Avg:0.136]
Last:(S [OK:12,F:5,E:0,m:0.091,M:0.255] A [OK:6,F:0,E:0,m:0.121,M:0.415])
Furthermore it can be requested a more detailed Frontend Monitoring activity by setting the configuration property monitoring.detailed
to true. Doing this, at each Monitoring Round for each kind of SRM operation performed in the Monitoring Round (srmls, srmPtp, srmRm, …) the following information are printed in a section with header “Last round details:”:
This is called the Detailed Monitoring Round. After this, the Monitoring Summary is printed. Then, considering the whole Frontend execution time, in a section with header “Details:”, a similar detailed summary is printed. This is called the Aggregate Detailed Monitoring.
Example:
03/20 14:19:11 : Last round details:
03/20 14:19:11 : [PTP] [OK:3,F:0,E:0,Avg:0.203,Std Dev:0.026,m:0.183,M:0.240]
03/20 14:19:11 : [Put done] [OK:2,F:0,E:0,Avg:0.155,Std Dev:0.018,m:0.136,M:0.173]
03/20 14:19:11 : [# 22927 lifetime=95:33:18] S [OK:47,F:15,E:0,m:0.085,M:3.623,Avg:0.201] A [OK:16,F:0,E:0,m:0.082,M:0.415,Avg:0.136]
Last:(S [OK:12,F:5,E:0,m:0.091,M:0.255] A [OK:6,F:0,E:0,m:0.121,M:0.415])
03/20 14:19:11 : Details:
03/20 14:19:11 : [PTP] [OK:7,F:0,E:0,Avg:0.141,Std Dev:0.057,m:0.085,M:0.240]
03/20 14:19:11 : [Put done] [OK:5,F:0,E:0,Avg:0.152,Std Dev:0.027,m:0.110,M:0.185]
03/20 14:19:11 : [Release files] [OK:4,F:0,E:0,Avg:0.154,Std Dev:0.044,m:0.111,M:0.216]
03/20 14:19:11 : [Rm] [OK:3,F:0,E:0,Avg:0.116,Std Dev:0.004,m:0.111,M:0.122]
Note:
If you have problem at gSOAP level, and you have already looked at the troubleshooting section of the StoRM site without finding a solution, and you are brave enough, you could try to find some useful information on the gSOAP log file. To enable gSOAP logging, set the following environment variables:
$ export CGSI_TRACE=1
$ export CGSI_TRACEFILE=/tmp/tracefile
and restart the Frontend daemon by calling directly the init script /etc/init.d/storm-frontend-server and see if the error messages contained in /tmp/tracefile could help. Please be very careful, it prints really a huge amount of information.