Threshold Configuration

Top  Previous  Next

Threshold monitoring, introduced in release 1.15, is a powerful method for defining exactly what you want to monitor, how often you want to look at it, and what you want to happen should it occur.

 

What can you do with log page threshold monitoring?

Provide an alert if you have an A/C failure by monitoring drive temperature.
Watch for unrecovered read or write errors.
Watch for unrecovered write errors which might indicate data corruption.
Automatically alert you when your tape drive indicates it needs to have the heads cleaned.
Tell you if you have unrecovered read or write errors from your tape drive when creating a backup or performing a recovery.
Interface storage device and status information for your JBOD into enterprise-level SRM packages.

 

By optionally configuring an event script, you can launch a procedure of your choice if you have such a situation.

For example, with relatively little effort, you could poll megabytes read of a disk on 5 minute intervals, append the information into a flat file, and import it into a spread sheet to graph your throughput over time. If you have a disk that is in a SAN that is shared among multiple systems, there is NO other way to determine this information.

 

In order to utilize this feature, you must create a configuration file and launch SMARTMon-UX with the -W option (Note - no space between the W and the filename) and pass it the name of the configuration file. The configuration file is managed by launching smartmon-ux in the interactive mode with the -K option. You then choose configuration commands in order to manipulate the file. This configuration file is in ASCII text, and you are free to edit it manually if you desire. Once you familiarize yourself with the record layout, you might find it much more efficient to edit it manually. Note that while the record layout is slightly different for UNIX and Windows-family operating systems, it is consistent across all UNIX and LINUX versions.

 

Configuration Commands

When you launch the program with the -K option (smartmon-ux -K), it discovers all peripherals and returns with a list of options. The program will not launch into the background, and it will not monitor hardware. The purpose of this mode is to provide a means to have the program manage a configuration file, rather than require you to edit one manually.

 

This section of the documentation makes frequent use of screen snapshots. All computer-generated output is shown in blue, and all entered text is shown in red.

 

# smartmon-ux -K

(device information displays here)

Command (Enter ? for help): ?

 ?: Help

 S: Select device for threshold definition

 A: Add threshold entries for selected device

 V: View all defined thresholds

 D: Delete range of threshold entries

 P: Purge ALL threshold entries (erase all defined thresholds)

 L: Load threshold entries from file

 W: Write threshold entries to file

 Q: Quit this function

 

Command (Enter ? for help):

 

Option S - Select Device

This displays a list of discovered devices for this machine and assigns an index number to each of them. You then select a device which will be used to add threshold entries. The selected device is applicable to adding (or modifying) threshold entries. Only choices applicable to the selected device will display. Below is the dump for a Windows-based machine.  If you were attached to a UNIX machine, you would not see the adapter, channel, port, and ID information, but you would see the standard UNIX device driver name for the peripheral.

 

Command (Enter ? for help): S

Device#   Adapter  Port  Channel  ID  Description                Device Path

*  0        4        2      3     0  SEAGATE ST1181677FC        \\.\PHYSICALDRIVE5

   1        4        2      4     0  HITACHI DK31CJ-72FC        \\.\PHYSICALDRIVE6

   2        4        2      5     0  SGI ST336704FC             \\.\PHYSICALDRIVE7

   3        4        2      6     0  IBM DNEF-309170            \\.\PHYSICALDRIVE8

   4        4        2      7     0  IBM DNEF-309170            \\.\PHYSICALDRIVE9

   5        4        2      8     0  IBM DNEF-309170            \\.\PHYSICALDRIVE10

   6        4        2      9     0  IBM DNEF-309170            \\.\PHYSICALDRIVE11

   7        4        2     10     0  IBM DNEF-309170            \\.\PHYSICALDRIVE12

   8        4        2     11     0  IBM DNEF-309170            \\.\PHYSICALDRIVE13

   9        4        2     12     0  IBM DNEF-309170            \\.\PHYSICALDRIVE14

  10        4        2     13     0  IBM DNEF-309170            \\.\PHYSICALDRIVE15

  11        4        2     14     0  IBM DNEF-309170            \\.\PHYSICALDRIVE16

  12        3        0      3     0  TANDBERG SLR7              \\.\TAPE0 <--(See example below for adding thresholds)

  13        3        0      6     0  HP C1533A                  \\.\TAPE1

  14        2        0      0     0  TOSHIBA DVD-ROM SD-C2202   \\.\CDROM0

Select Device (0) : 12

 

Note that the (*) indicates the currently selected device. By default, the first discovered device will always be selected.

 

Option A - Add threshold entries for selected device

This is the heart of configuring an event. SMARTMon-UX presents all known values (a combination of ANSI-standard log parameters and our extensive list of vendor-unique fields that we have obtained from manufacturers of most FC and SCSI peripherals). SMARTMon-UX runs through this list, querying the selected device and presenting you with the current value as well as any defined action settings.

 

In the example below, we wish to monitor and report the cumulative number of minutes our Tandberg SLR7 tape drive has been powered on. (Not very useful in the real world, but a simple example to tutorial purposes).  Note that we selected the Tandberg, which is device #12, above.

 

Command (Enter ? for help): A

 

Total logical data blocks transferred (current value = 2):   Poll (N) :

Total physical blocks written to media (current value = 11026432):   Poll (N) :

Total physical blocks read from media (Read and Space operations only) (current value = 61440):   Poll (N) :

Approx remaining capacity of partition 0 (in KBytes) (current value = 19612408):   Poll (N) :

Approx remaining capacity of current partition (in KBytes) (current value = 19612408):   Poll (N) :

Approx maximum capacity of partition 0 (in KBytes) (current value = 19612408):   Poll (N) :

Approx maximum capacity of current partition (in KBytes) (current value = 19612408):   Poll (N) :

Number of file marks (current value = 0):   Poll (N) :

Number of set marks (current value = 0):   Poll (N) :

Number of minutes of motion since last head cleaning (current value = 58):   Poll (N) :

Number of head cleanings (current value = 2):   Poll (N) :

Total power-on minutes (current value = 75559):   Poll (N) : y

 Polling frequency in seconds (600) : 60

 Threshold (0) : 75000

 Send E-Mail if threshold met or exceeded (N) :

 Log event if threshold met or exceeded (Y) :

Optional program to launch: () : echo "Smartmon-ux event @ $$D: $$12=$$V" >> logfile$$1-$$2.$$3.log

 

Total number of cartridge loads (current value = 53):   Poll (N) :

Number of servo lock retries (current value = 0):   Poll (N) :

Number of servo track seeks (current value = 0):   Poll (N) :

Number of lost servo locks on writes (current value = 0):   Poll (N) :

Number of write servo dropouts (current value = 0):   Poll (N) :

Number of lost servo locks on reads (current value = 0):   Poll (N) :

Number of read servo dropouts (current value = 0):   Poll (N) :

Current selected track number (current value = 0):   Poll (N) :

Buffer under-runs (current value = 0):   Poll (N) :

Buffer over-runs (current value = 0):   Poll (N) :

Write errors corrected with possible delays (current value = 8471):   Poll (N) :

Total Write errors (current value = 0):   Poll (N) :

Write errors corrected (current value = 0):   Poll (N) :

Times correction algorithm processed (on Writes) (current value = 0):   Poll (N) :

Bytes processed (on Writes) (current value = 0):   Poll (N) :

Unrecovered errors (on Writes) (current value = 0):   Poll (N) :

Read errors corrected with possible delays (current value = 0):   Poll (N) :

Total Read errors (current value = 0):   Poll (N) :

Read errors corrected (current value = 0):   Poll (N) :

Times correction algorithm processed (on Reads) (current value = 0):   Poll (N) :

Bytes processed (on Reads) (current value = 0):   Poll (N) :

Unrecovered errors (on Reads) (current value = 0):   Poll (N) :

Total bytes written to media (not including ECC & formatting overhead) (current value = 0):   Poll (N) :

Total bytes read from media (not including ECC & formatting overhead) (current value = 0):   Poll (N) :

Total bytes transferred to the initiator(s) (during write operations) (current value = 0):   Poll (N) :

 

Command (Enter ? for help): ?

 

Note that the values in parentheses indicate the default response. Only a carriage return is required if you wish to take the default. All parameters allow you to select a threshold. When you select Y or y, to begin monitoring a parameter, you will be asked to answer a few more questions. The threshold is the point where you wish the program to take an action. When polling, an event occurs if the measured value from the device meets or exceeds the value. This is important and by design.  For example, if you wanted to create a log file that shows the number of unrecovered write errors before and after a tape backup, the threshold should be zero. Otherwise, you would only get feedback when there was a write error, when the threshold increased from zero.

 

If you select the option to generate an email, you must make sure you launch SMARTMon-UX with the appropriate option to enable email alerts, and the email address(es) you want the message to go to. No additional entry is required to globally enable event logging, but there is a -L runtime option which allows you to specify a different log file rather than the system default log file.

 

The optional program to launch looks confusing, but will make sense shortly. This is the means by which you can configure an external program or script to execute in the event the threshold is met. SMARTMon-UX uses field substitutions to pass parameters onto your command, so this external command has the information it requires to perform your desired task.

 

Configuring the Action Script Parameters

Prior to release 1.25, the action script contained 12 fields on windows-family operating systems and 10 fields on UNIX systems. At release 1.25, we were able to provide a common format and layout for all operating systems. In addition to the first 10 substitution fields, there are 4 fields unique to Windows ($$11 - $$14) and 8 additional fields common to all operating systems. These 8 additional parameters either provide field substitution or instruct the program to perform an action such as terminate the program.

 

Below is the header of system-generated configuration files which provides details on these fields.

 

#

# DO NOT MODIFY LINE BELOW

# Version 1.03 Fri Mar 12 00:26:40 2004

#

# This file is used to define what statistical data should be monitored

# and reported at each polling interval. It may be edited manually, as

# long as the record format is strictly adhered to.  Note also that there

# is one format common to all UNIX releases, and another common to Windows.

# Please refer to the manual for formatting information.

#

# Record #1:

# Field 1:  Physical Device Name (i.e, \\.\PHYSICALDRIVE3, \\.\SCSI2Port2Path0Target4Lun0 or \\.\CDROM0

#   (Both $$1 and $$P can be used to substitute for this value)

# Field 2:  Log page number (hex)

#   (Substitute as $$2)

# Field 3:  If Field #4 is P for Parameter, then this is Log page parameter#

#           Otherwise it is the hex byte offset to the start of the

#           data.

#   (Substitute as $$3)

# Field 4:  Enter 'P' if field represents the log parameter number, or

#           enter 'O' [capital letter O], if it is the byte offset

#   (Substitute as $$4)

# Field 5:  Threshold value (decimal).  If zero, then value will always get read and

#           reported (once value read is GREATER than 0). If non-zero, then a log entry

#           will be displayed and recorded only when the value read meets or exceeds the

#           threshold.

#   (Substitute as $$5)

# Field 6:  Polling frequency in seconds (decimal)

#   (Substitute as $$6 for UNIX)

# Field 7:  Can be 1 to 2 bytes. Enter 'E' to send email,

#           and/or 'L' to log threshold alert in log file. Enter 'X' for neither.

#   (Substitute as $$7)

# Field 8: Length in bytes of the data field (if Field#4 = O, otherwise, set to 0

#   (Substitute as $$8)

# Field 9: Field format string -- N (numeric), A (alphanumeric)

#   (Substitute as $$9)

# Field 10: The description. 1st character will start with a #, but that character will

#           be suppressed for reporting

#   (Substitute as $$10)

#

# Record #2:

# Script or program and options which will be launched in event threshold is exceeded

# Leave a blank line if this feature is not desired.

# WINDOWS Format:

# Both records same as above, with only exception is that fields 1-3 are replaced by the

# raw device driver. i.e.,

# \\.\PHYSICALDRIVE3 3c 11 P 1 E 0 #Time to clean the tape cartridge in Exabyte drive, rack slot #3

#

#

# Notes on substitutions

#   In addition to field substitutions, you may also use the below values:

#    $$P - Substitutes physical device path

#    $$11 - Substitutes Adapter number (same as port number, Windows only)

#    $$12 - SCSI ID of device to be queried (decimal, Windows only)

#    $$13 - SCSI LUN of device to be queried (decimal, Windows only)

#    $$14 - SCSI Path of device to be queried (decimal, Windows only) - Most but not all devices have multiple paths

#    $$V - Substitutes the current value read that was compared against threshold

#    $$T - Substitutes event log text message that would normally be written to log

#    $$D - Substitutes date and time string in default local format for this computer

#    $$S - Substitutes time in seconds since midnight Jan 1, 1970 GMT

#    $$X$$ - Instructs SMARTMon-UX to terminate the program after invoking the script

#    $$Y$$ - Instructs SMARTMon-UX to disable threshold monitoring for this parameter

#            after invoking the script

#    $$Z$$ - Instructs SMARTMon-UX to reset the threshold to current value + 1 after

#            invoking the script. (Think of this as turning off the alarm)

#

#    Example usage:

#       echo $$D: $$12 is currently at $$V >> EventlogDev$$1:$$2.$$3

#    will create individual event logs for specific devices on this threshold

#

 

 

Other rules apply:

The action script will be interpreted literally. If you require special characters, spaces, double or single quotes, you must supply them.
The program will not attempt to interpret the action script or check it for validity. It will merely make optional field substitutions and launch the routine. It is your responsibility to first test the script so that it has the desired effect.
The action script utilizes the library call "system" which means the script will have all permissions, priority, and environmental variables associated with the calling routine.
SMARTMon-UX will suspend operations until the script has been completed. If you wish to run the script in the background and have control passed back to SMARTMon-UX immediately, append an & to the end of the script.  (This is not supported by Windows).
There is one important characteristic of log page parameters and thresholds in general.  All values use 1 to 8 bytes to store the data, and the SCSI specification does not provide a method to report an overflow or roll over.  Information is reported as an unsigned integer. This means if the parameter you are interested in contains FFFFh ( 65535 in decimal), and it is increased by one, the value reported will be zero. That is because the maximum value that can be stored in two bytes is 65535, so it just rolls over to zero. This will normally not be a problem, because the device manufacturers and the ANSI specification typically assign a reasonable number of bytes to prevent an overflow from happening. If you enter a number that is larger than the overflow value for the threshold, SMARTMon-UX will alert you and tell you the maximum number you may use.
You may edit this file manually, but once you go down that path, do not let SMARTMon-UX programmatically manipulate the file. Your changes may be lost.
Lines beginning with # are treated as comments.
SMARTMon-UX currently allows a maximum of 1024 events.
The action script is optional, but you must still reserve a line for it. Just leave the line blank.
Note that substitution $$11 and $$1 are valid. SMARTMon-UX looks for $$11 first, then scans for $$1. This prevents $$1 from being executed in the event that $$11 is defined.
If you select the "A" option to add thresholds after some are already defined for the selected device, the program will default to these values as you run through them again.
You can not define more than one set of thresholds for the same device through the programmatic means described in this section. If this is what you require, you must edit the configuration file manually. You may also just launch multiple instances of the program with different configuration files.

 

Option V - View all defined thresholds

This displays all defined thresholds for all devices. The devices do not have to be on-line or attached to your system. However, if they are not attached to your system, you will not be able to make any modifications to them.

 

Command (Enter ? for help): V

Pollable parameters for all devices:

Device  Driver                            Description            Threshold PollingSec Actions Description

  0    \\.\SCSI2Port2Path0Target19Lun0   SEAGATE ST1181677FC           25         60     L   Current temperature +/- 3 degrees C

   script->"echo "Smartmon-ux event @ $$D: $$12=$$V" >> logfile$$1-$$2.$$3.log"

  1    \\.\SCSI2Port2Path0Target3Lun0    Unknown (offline)             25         60     L   Current temperature +/- 3 degrees C

   script->"echo "Smartmon-ux event @ $$D: $$12=$$V" >> logfile$$1-$$2.$$3.log"

 

In the case above the first entry represents parameters for our Seagate disk, but the second entry is for something that is offline. Note that this example provides a means to keep individual running temperature log files for the two devices. The script works for both Windows and UNIX operating systems. Note also, if you wanted to keep a current drive temperature file that could be read by an external application, you would script something like:

echo $$V > CurrentTemperature_SeagateAdapter.$$1ID$$2.txt

 

If you  wanted to create a comma-delimited file for importing into a spread sheet for graphing temperature over time, then you would enter:

echo "$$S","$$V" >> TemperatureLogFile.txt

 

This would result in something like:

"23502232","30"

"23502292","30"

(Where first field is system time in seconds, and the second field is drive temperature). This shows the temperature remained constant for the two readings that were taken 60 seconds apart.

 

D - Delete range of threshold entries

This option will display all defined events and prompt you for a starting and ending sequence number to delete. Once you delete a range of entries, they will be re numbered so the remaining entries are contiguous and start at zero.

 

P -Purge ALL threshold entries (erase all defined thresholds)

This will delete all entries.  Note that no changes will be made permanent until you save the configuration file. So if you make a mistake and want to "unpurge" entries from a selected configuration file, quit the program and start over.

 

L - Load threshold entries from file

You will be prompted for a configuration file. If the file does not exist, the program will tell you and nothing will happen. If the file does exist, these entries will be ADDED to the current list of entries. So, if you load a configuration file that has 5 entries for a particular device twice, you will then have 10 entries for that same device. If you save the file and invoke SMARTMon-UX with the -W option, each script will be invoked twice if the threshold condition is met.

 

W - Write threshold entries to file

This saves the entries into a file of your choice. By default, the file will be the name of the previously loaded configuration file. If you have not loaded a configuration file, the default will be smartmonux-thresholds.cfg, in the current directory. SMARTMon-UX will warn you if the file already exists and give you the choice whether or not to replace the file or abort the operation.

 

Frequently Asked Questions

1. How do I launch the action in background?

Under UNIX append the script with the "&" character. Unfortunately, Windows family operating systems do not have a method to launch command-lines in the background.  That means that the action script must complete before SMARTMon-UX resumes polling devices.

 

2. How can I validate the parsing of an action script without launching it?

Traditionally, you would add the word echo to the beginning of the script.  Add leading/trailing single quote to it and send the output to a scratch file that you can view.

 

3. Can I poll different devices at different polling intervals?

Yes. If you poll device "A" every 60 seconds and device "B" every 10 minutes, the threshold engine will perform the desired result properly. It will, however, have to scan all events every 60 seconds because that is the greatest common factor between the two times.  Warning, if you had set device "A" to 59 seconds, but left device "B" at the 10 minute interval, the program would have to run through the list every second. That is because the greatest common factor of the two intervals is the number one.  The downside is that this will cause additional CPU overhead between polling periods. (The overhead is still nominal, however).  SMARTMon-UX sleeps every polling period, so millions or billions of operations could be performed between each polling interval, even if it is only one second.

 

4. What does the output look like?

Whatever you want it to. Look at the output below which was generated by the parameters above, described in the View All Defined Thresholds section. We wanted to see how hot drives ran after power up.  The two dumps below represent a comparison between a Seagate ST1181677FC and a Hitachi DK31 ...

 

D:\smartmonux\smartmon-ux -Wdavid.cfg

(kill program after 15 minutes)

 

D:\smartmonux\>type *.log

 

logfile4-4.0.log

 

"Smartmon-ux event @ Fri Oct 25 23:46:32 2002: "Current temperature +/- 3 degrees C"=37"

"Smartmon-ux event @ Fri Oct 25 23:47:36 2002: "Current temperature +/- 3 degrees C"=38"

"Smartmon-ux event @ Fri Oct 25 23:48:36 2002: "Current temperature +/- 3 degrees C"=38"

"Smartmon-ux event @ Fri Oct 25 23:49:26 2002: "Current temperature +/- 3 degrees C"=38"

"Smartmon-ux event @ Fri Oct 25 23:50:28 2002: "Current temperature +/- 3 degrees C"=38"

"Smartmon-ux event @ Fri Oct 25 23:51:29 2002: "Current temperature +/- 3 degrees C"=39"

"Smartmon-ux event @ Fri Oct 25 23:52:30 2002: "Current temperature +/- 3 degrees C"=39"

"Smartmon-ux event @ Fri Oct 25 23:53:31 2002: "Current temperature +/- 3 degrees C"=39"

"Smartmon-ux event @ Fri Oct 25 23:54:32 2002: "Current temperature +/- 3 degrees C"=39"

"Smartmon-ux event @ Fri Oct 25 23:55:33 2002: "Current temperature +/- 3 degrees C"=39"

"Smartmon-ux event @ Fri Oct 25 23:56:34 2002: "Current temperature +/- 3 degrees C"=39"

"Smartmon-ux event @ Fri Oct 25 23:57:35 2002: "Current temperature +/- 3 degrees C"=40"

"Smartmon-ux event @ Fri Oct 25 23:58:36 2002: "Current temperature +/- 3 degrees C"=40"

"Smartmon-ux event @ Fri Oct 25 23:59:37 2002: "Current temperature +/- 3 degrees C"=40"

"Smartmon-ux event @ Sat Oct 26 00:00:38 2002: "Current temperature +/- 3 degrees C"=40"

 

logfile4-3.0.log

 

 

"Smartmon-ux event @ Fri Oct 25 23:49:25 2002: "Current temperature +/- 3 degrees C"=28"

"Smartmon-ux event @ Fri Oct 25 23:50:28 2002: "Current temperature +/- 3 degrees C"=28"

"Smartmon-ux event @ Fri Oct 25 23:51:28 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:52:30 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:53:31 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:54:32 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:55:33 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:56:34 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:57:34 2002: "Current temperature +/- 3 degrees C"=29"

"Smartmon-ux event @ Fri Oct 25 23:58:36 2002: "Current temperature +/- 3 degrees C"=30"

"Smartmon-ux event @ Fri Oct 25 23:59:37 2002: "Current temperature +/- 3 degrees C"=30"

"Smartmon-ux event @ Sat Oct 26 00:00:37 2002: "Current temperature +/- 3 degrees C"=30"

"Smartmon-ux event @ Sat Oct 26 00:01:38 2002: "Current temperature +/- 3 degrees C"=30"

"Smartmon-ux event @ Sat Oct 26 00:02:40 2002: "Current temperature +/- 3 degrees C"=30"

 

Note how much hotter the Seagate drives run. If you wanted to set a thermal alert, you might want to set something like 35 degrees for the Hitachi and 45 degrees for the Seagate. You should be very concerned if the Hitachi got that hot, as it normally runs around 30 degrees C.

 

5. How would I configure a script to let me know if the tape heads needed cleaning or media is nearing end of life?

Luckily most tape drives and libraries support this configurable parameter. If you do not know if your tape supports this, enter smartmon-ux -X+ <tape device name>.  You can see sample output by clicking here.  If the output contains "Passed" for either of the two fields below, you are in luck. Your tape has the ability to talk to our software through the ANSI-standard TapeAlert specification.

 Nearing Media Life               : Passed

 Clean Now                        : Unsupported

 

In addition,  there are typically vendor-specific fields to report this information. First, try to just run the automated procedure described in this section. Select your tape device, press "A" to add entries and look for a prompt indicating time to change the media. If you get one, you would probably want to log an email alert. No need for a user-defined script. If you have multiple tape drives, create a script such as DailyTapeHeadScript.cfg, set a polling interval of 24 hours, and configure your startup scripts to launch the job at system boot time.

 

If there is no known procedure to SMARTMon-UX, please read the next question.

 

6. I want to report a something that is not known to SMARTMon-UX. How do I do this?

First, contact us if this happens. We have over 1000 entries in our database and it only takes minutes to add more. We are constantly adding new ones and will be happy to provide you an update if we have one.

 

If we do not have an update, you should contact the manufacturer of the peripheral and ask whether or not there is a log page parameter or page that can be used to obtain this information. (Sadly, first-line technical support will be clueless as to what you are asking for. Request an engineer that understands programming).

 

If you have neither the time, desire, or resources to chase whether or not it is possible to report something, contact SANtools directly. (support@santools.com). For additional fees, we will be glad to play detective and provide you with a script to report what you desire.  We have non-disclosure agreements with most peripheral manufacturers, so we can typically get the programming information required to meet your needs.

 

If you cannot wait, you must make a manual entry into the threshold file that describes the log page, parameter (or offset), description, and byte length. We will assume you have obtained this information from the technical support department of the device's manufacturer. Make an entry in the configuration file as documented above. Be sure to note that the log information must be entered in hex, as that is how the manufacturer documents these settings.

 

7. Important note - feature change in 1.23B

With the point-release 1.23B, we made an important change in how this feature works.  Before this release, the threshold monitoring was combined with S.M.A.R.T. monitoring.  The program would scan all devices, enable SMART polling at whatever interval you defined, and concurrently do threshold monitoring at the desired intervals.

 

We improved the behavior by removing this additional logic. Now if you want to monitor thresholds, that is all that will be monitored. No I/Os other than log sense I/Os (and a standard Test Unit Ready command) are sent to the device to obtain the data you desire.

 

8. Important note - syntax change in 1.25 (Windows only)

With the changes required to the device naming convention that were necessitated by Microsoft's new SCSI drivers, we were forced to change the syntax of the file for the Windows distribution. The syntax now matches the UNIX format.  If you upgrade to version 1.25 and attempt to run a configuration file that was built with a prior release of the program, the program will detect that you are using an older-formatted file and reject the command.  The quickest and easiest way to convert the file is to edit the file with your favorite text editor and replace the first three parameters (which originally contained the SCSI Channel, ID, and LUN) with the device path name as shown in the sample above.