This section gives an overall view of the EnFuzion environment on a node host. It describes the use of user accounts, the layout of directories on the node, the executables required and EnFuzion configuration files.
By default, all EnFuzion node processes and user jobs execute under the same user account on the node. This account determines user rights on the system. Any user account on the node system can be used. The accounts can differ between the nodes.
Although EnFuzion does not impose any requirements on the account, it is strongly recommended that the root account is not used for EnFuzion node operation. If possible, it is suggested that a special user account is created and used for installation on all EnFuzion nodes.
The default handling of user accounts on the node can be modified on Linux/Unix nodes. These nodes can be configured to allow users to specify the execution account for the user jobs. Each user can specify his or her own account for job execution. Accounts that can be specified by users can be restricted through a configuration file on the EnFuzion root. To prevent a security risk, EnFuzion node programs do not allow users to specify the system root account, regardless of the configuration on the EnFuzion root.
EnFuzion creates and maintains a directory hierarchy on nodes, which prevents interference during the concurrent execution of different jobs. Each node creates its own directory. The directory is created in the main EnFuzion directory on the node system. The directory is at the top of the hierarchy for all jobs executed by the node. It contains files specific to the node.
When the Dispatcher connects to a node, a subdirectory is created for the Dispatcher. The Dispatcher directory contains files specific to the Dispatcher.
When a run is started on the node by a nodestart task, a run subdirectory is created within the appropriate Dispatcher subdirectory. This directory is a working directory for the nodestart task. The run subdirectory contains files, specific to this run and usually common to all the jobs. Files with relative file names that have been copied to the node by the nodestart task are located in this directory.
When a job is started by the main task, a job subdirectory is created within the appropriate run subdirectory. This directory is a working directory for the main task. The job directory contains files specific to the job. During the job initialization, files in the parent run directory are made available as local files in the job directory.
After a job completes, its directory on the node is deleted in order to free disk space for other jobs. Similarly, run subdirectories and Dispatcher subdirectories are deleted, when all the jobs from the run complete or the Dispatcher disconnects from the node. This directory deletion prevents any accumulation of obsolete files on the nodes, which significantly reduces the effort that is required to maintain the nodes.
If user jobs are executed under a user specified account and not under the EnFuzion node account, then job directory is set to the home directory of the user specified account. In that case, the job directory is not deleted after the job completes, since this would delete the entire user home directory.
All node executables must be in the path accessible to the node. The following executables are required by EnFuzion on the node:
enfecho, a system independent echo utility for use in tasks;
enfexecute, allows user jobs to interface with EnFuzion;
enfjobserver, the process that executes a job;
enfnodeserver, the central node process;
enfrm, a system independent file deletion utility for use in tasks.
On Windows, in addition to the executables above, the following files are required:
enfstartersvc.exe, the EnFuzion starter service executable;
dbghelp.dll, a library required by EnFuzion diagnostics;
enfauth.dll and libeay32.dll, libraries required for authentication;
enfuser.dll, an optional dynamic library used for decryption.
The following configuration files are used by EnFuzion on the node:
enfuzion.key, contains root public keys (Windows only);
enfuzion.options, contains load monitoring options;
enfuzion.security, defines trusted hosts and executables;
node.config, contains node configuration options.