vovfilerd Behavior

The vovfilerd daemon:
  • Monitors several metrics on one or more filers, such as the average latency per operation; the main metric used to represent the load on the filer is the "Latency", which is the "average latency per operation" measured in milliseconds;
  • Throttles the load on the filer by means of a resource map called "Filer:NAME_OF_FILER"
  • Preempt jobs to lower the load if the load on the filer exceeds a threshold.

Both the Latency signal extracted from the filer and the value of the controlling resource computed by vovfilerd are low-pass filtered to smooth out their behavior.

The values of L1, L2, and L3 can be defined by the administrator using the option -limits in AddFiler and can be different for each filer. The limits represent latency values in milliseconds. They have to be at least 1.0 and each has to be larger than the previous.

State of Filer Condition Description
S1‑OpenLoop Latency ≤ L1 The controlling resource is enough to accommodate the demand (running + queued); in this state of low latency, the resource is allowed to grow rapidly
S2‑Steady L1 < Latency ≤ L2 The controlling resource is set to about 2% above the current running count, representing a slow growth of the number of running jobs
S3‑FeedbackLoop L2 < Latency ≤ L3 The controlling resource is decreased based on the distance of latency from (L2+L3)/2. This state tries to maintain the latency in the middle between L2 and L3
S4‑Preemption L3 < Latency This state is the same as S3-FeebackLoop with the addition of preemption in a pro-active attempt to lower the latency on the driver. At every cycle, up to 5% of jobs impinging on the filer are preempted. This requires preemption to be activated for this filer with the option -preempt 1 in AddFiler
The selection of the jobs to be preempted is based on a number of metrics:
  • Only jobs that declare the resource "Filer:NAME_OF_FILER" are considered
  • The age, priority of the job: young jobs are more likely to be preempted, and low priority jobs are also preferred
  • The latency experienced by the host on which the job is executing
  • The directory in which the job was started, based on the load on the filer by path

All preempted jobs are suspended with SIGSTOP, their licenses are recovered, and then they are restarted when the load on the filer had decreased and the required licenses are again available.

Start vovfilerd

Once vovfilerd is configured, it can be started and stopped like any other daemon using vovdaemonmgr:
% vovdaemonmgr start vovfilerd
% vovdaemonmgr status vovfilerd
% vovdaemonmgr stop vovfilerd

Usage: vovfilerd - h

vovfilerd: Usage Message

   vovfilerd    -- A daemon to monitor filers and control Filer:XXX resources

    % vovfilerd \[OPTIONS\]

    -h                This help.
    -v                Increase verbosity.

   % vovfilerd
   % vovfilerd  -v -v