A cure for Full-disk Indigestion

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
By Denis Haskin

Reprinted from the January 1997 edition of BackOffice Magazine , http://www.backoffice.com. Copyright 1997 by PennWell Publishing Company.

Ask your seasoned Unix or VMS systems managers if they would like to manage a multi-usersystem without being able to enforce disk quotas on users, and they'll turn you down flat. Even on non-multi-user Windows NT systems, the ability to set and enforce disk quotas can mean the difference between having an entire system brought to a screeching halt by one wayward application and having that one application handled effectively while letting all other system activity continue.

Argent Software Inc, of Torrington, Connecticut, vendor of a range of systems management tools for Windows NT, has released version 4.0 of the Quota Server for Windows NT, developed by Northern Technologies of Stockholm. Quota Server allows an NT system administrator and authorized users to set and monitor disk quotas on single or multiple Windows NT systems, and, when disk quotas are exceeded, take a variety of actions, depending on the nature of the infraction.

This new version adds a range of enhancements. These include performance improvement, support for the Windows NT 4.0 Explorer shell (and continuing support for File Manager), customizable monitoring views and more reports, command line execution on exceeded quota, integration with the Windows NT Performance Monitor, and a major upgrade to the user interface. The installation was quite simple, although it would have been nice if a few more of the steps had been automated. IT\IS Labs first had to create a user account for the Quota Server service to use and a group account for users authorized to manage quotas. Installation proceeded by running a SETUP.EXE on the distribution media, which was fairly straightforward. For actual installations, the procedure is completed by obtaining a license key from Argent. This can be obtained via fax or E-mail. Our evaluation copy was delivered with a license key. One also has to ensure that the username which the Quota Server service runs under has the necessary access to those files and directories on the disks that it is to monitor and control, typically the NTFS "Full Control" security permission.

Quota Server is implemented using a Windows NT service, launched at system startup. This service is called by NT whenever the file system is modified and checks whether the file system activity would cause a disk quota to be exceeded. If so, it executes an action depending on the disk object affected and how the quota is exceeded, e.g., various threshold levels may be set and different actions taken on each one. Quota Server works most effectively on NTFS volumes. While it can monitor quotas on FAT and HPFS volumes and send notification or take other actions when a quota is exceeded, it cannot lock disk objects as it can on NTFS volumes.

Quotas are managed via either the File Manager or, in Windows NT 4.0, the Explorer. IT\IS Labs tested Quota Server using File Manager only. Quota Server adds menu options to the File Manager, which allows appropriately authorized users-for example, part of the Quota Server managers group account defined at installation-to maintain and monitor quotas.

Under Explorer, the Quota Server client software is accessed via the right-click pop-up menu and supports the same actions as under File Manager. Quotas are defined on directories, files, or groups of files (files within a single directory specified via a wildcarded file specification).

Quotas cannot be specified on a per-user basis, as they frequently are on other operating systems. For each quota specified, one specifies the amount of disk space (in bytes, but the suffixes KB, MB, and GB are recognized for easily entering large values), the object type (directory or file), whether to include subdirectories, and an access model.

Quota Server offers three options for each object monitored: Normal (the default), where Windows NT signals Quota Server in real time as to file system changes; Large, which is optimized for targets with large subdirectory structures and many files; and Interval, where Quota Server does not act on file system changes immediately but instead checks the object on a periodic basis, which may be specified, in seconds.

IT\IS Labs finds it clear that a substantial amount of design and effort went into making quotas quite easy to manage; one instance is its tight integration with the File Manager and Explorer. Another example is the very handy feature for each quota entry of the Enabled checkbox, by which a given quota may be easily disabled without having to delete the quota entry, so that it can later be re-enabled without having to be re-entered.

Quota templates may be defined, so that standard quota settings that need to be applied to many directories or files can be stored and easily applied to new quotas.

Notification methods

For each quota, one can define up to three levels of notification. Each takes effect at a different percentage level of the quota. By default, the three levels are at 75%, 90%, and 100% of the quota value.

For each notification level, the user may select an action to be performed, whether (and how) to notify the user, and whether (and how) to notify the system administrator.

The action is one of: none; lock directory so no new files may be created (existing files may increase in size); lock directory and closed files (open files may still be saved); and lock directory and all files. Notification methods can be any combination of sending a PopUp message; sending a Mail message, and executing a command line. The text of the PopUp or Mail notifications is defined via six script files, which can be easily modified with any text editor. There are 27 variables that may be included in the script file to convey information. As an example, the text "You are using [QTUsedAuto] of disk space; [QTLeftPercent]% remaining" would have the appropriate values substituted to become something such as "You are using 15 MB of disk space; 5% remaining."

The Quotas Main Window menu option opens the Quota Server client, through which quotas may be monitored, reported on, and managed.

One can get to the quota and server windows directly from the client window instead of having to go back to File Manager or Explorer It includes a dynamic display of defined quotas and their state, which by default includes the name of the Windows NT server for which the quota is defined, the disk object name, the quota amount, the current disk space used for the object, a bar chart showing the percent of quota in use, and the status of the quota, to wit, whether any of the previously described actions are in effect for the quota. IT\IS Labs sees another nice touch of the user interface: Additional monitoring views may be easily defined and are easily accessible via tabs at the bottom of the Quota Server client window, a la Microsoft Excel. These views may also be printed as reports. Quota Server is well integrated with the standard Windows NT system management tools. It can write entries to the Event Log when lock actions are triggered, although by default this is disabled. Error messages from the Quota Server always go to the Event Log. Quota Server can also make available to the Windows NT Performance Monitor a collection of performance statistics, such as the number of directories and files locked .

Testing: Tall and short results

In our testing, Quota Server was very effective in quickly detecting exceeded quotas and carrying out our specified actions and notifications.

Perhaps the most significant drawback is that it cannot lock open files. Thus, if a runaway application already has a file open to which it is pumping data, while we at least knew about it via Quota Server's notification mechanisms, the application was free to continue writing to that file until the disk was full. Another potential shortcoming is that when a user cannot save a file because of an exceeded quota, whatever application the user is using only knows that it cannot write the file, and returns an error message to that effect. Notepad and Write, for example, say "You do not have permission to open this file. See the owner of the file or an administrator to obtain permission."

While the error message is technically correct, we suspect users could be confused when finding there is no more explicit indication of why the file cannot be written.

IT\IS Labs also discovered that Quota Server exacted a small performance penalty. We created about 100 quotas and timed creating, writing to, and deleting files and found a performance penalty of up to 20% in wall-clock time for these I/O-intensive operations.

Quota Server includes a command-line utility to export and import quota and template definitions to and from a text file. There is an API via which quotas may be created, modified, and deleted under control of a program.

Apply for a FREE one-year subscription to BackOffice Magazine by setting your web browser to: www.backoffice.com.

We at Microsoft Corporation hope that the information in this work is valuable to you. Your use of the information contained in this work, however, is at your sole risk. All information in this work is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Microsoft Corporation. Microsoft Corporation shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.