Library Table of Contents Index Previous Next Comments

Effects of hard quotas on clients

How Data ONTAP calculates disk space  Top

In general, when determining whether a hard quota will be exceeded, Data ONTAP counts only the blocks that are actually used in a file. In a file where blocks are not written contiguously, the number of blocks actually used can be smaller than the file size.

There is an exception to this rule, however, after Data ONTAP performs a zero-byte write beyond the end of the file as requested by a CIFS client. In this case, Data ONTAP reserves file system blocks and updates quotas based on the file size, not the number of blocks actually used. Subsequently, any CIFS and NFS write that extends this file uses these semantics: If the file is extended beyond the current end of file and the additional quota reservation based on the file size exceeds the hard quota block limit, the request fails. The write request also fails if the additional block reservation exceeds the available file system blocks.

Total capacity shown on Windows clients  Top

When a Windows client displays the properties of a drive that is mapped to a share on the filer, the capacity of the drive represents the disk space that the user can use after all applicable quotas are taken into consideration.

Example

A user, corp\jsmith, is restricted to 10 GB in the /vol/vol0 volume, and a hard tree quota restricts the /vol/vol0/test qtree to 5 GB. Suppose a share named QA corresponds to the /vol/vol0/test qtree and the corp\jsmith user maps the H: drive to the QA share. If the corp\jsmith user displays the properties of the H: drive, the capacity of the drive is 5 GB, which is the maximum disk space that the corp\jsmith user can use in the /vol/vol0/test qtree.

Data ONTAP messages when quotas are exceeded  Top

When it receives a write request, Data ONTAP first determines whether the file to be written is in a qtree. If the write would exceed the hard tree quota, Data ONTAP logs the following error message:

tid tree_id: tree quota exceeded on volume vol_name

tree_id is the number in the ID column of the quota report for an explicit tree quota.

If the qtree is not full but the write would cause either the user or group hard quota to be exceeded, Data ONTAP logs one of the following errors:

uid user_id: disk quota exceeded on volume vol_name
gid group_id: disk quota exceeded on volume vol_name

user_id is the UID and group_id is the GID.

Errors returned to clients  Top

To the client, Data ONTAP returns an "out of disk space" error to the NFS write request or a "disk full" error to the CIFS write request. The following sections describe how the clients notify users about hard quotas being exceeded.

On NFS clients

If a write from an NFS client to a filer causes a hard quota to be exceeded, the user experience depends on the operating system version and the application.

If a UNIX client mounts a filer without the noquota option, the login program on the client checks to see whether the user has reached the disk quota and file quota each time the user tries to log in to the client. The client displays a message to alert the user before displaying the system prompt if a hard quota was reached. In the following example, a user reached the disk quota on the filer mounted as /t/toaster on a client named client2:

rlogin client2
You have mail.
Block limit reached on /t/toaster
client2%

Not all versions of UNIX perform the quota check as described in this section. Also, the exact message printed varies from one version to another.

If a write causes a hard quota to be exceeded, the error message seen by the user depends on the application. For example, on a SunOS 4.x client, if a user tries to save a file using vi when his or her disk quota is reached, an error message similar to the following is displayed:

Disc quota exceeded[Warning - /toaster/home/file1 is incompleted]
On CIFS clients

If a write from a CIFS client to a filer causes a hard quota to be exceeded, the user experience depends on the operating system and the application. The following examples show possible error messages:

Library Table of Contents Index Previous Next Comments