vzquota - manipulate containers disk quotas
] command quota_id
controls disk quotas for Virtuozzo/OpenVZ container. These are
per-container disk quotas set from Virtuozzo/OpenVZ host system.
can be one of the following: init
must be numeric-only identifier. Note, that quota ID is not
the same as container ID (CTID). One container can mount several filesystems
and each of them can have its own quotas.
- Print usage information.
- Print utility version.
- Quiet mode. Causes all warning and diagnostic messages to
be suppressed. Only fatal errors are displayed.
- Verbose mode. Causes vzquota to print debugging
messages about its progress. Multiple -v options increase
verbosity. Maximum is 2.
- Batch mode. in this mode outputs (usually on stat
and show commands) will be in format better suitable for parsing by
The following commands are available:
- A necessary preliminary for any other quota command work:
create a new quota file, calculating current disk usage from given path.
This command requires full set of quota soft- and hardlimits given as
command-line options. Limits are also stored in quota file, so subsequent
vzquota on doesn't requires any quota limit as command-line
parameter, although accepts them as well. New specified limits and flags
will also be stored in the quota file.
You can also create your own quota files for arbitrary quota accounting
points. Quota file location and path to quota accounting point can be
specified via -c and -p options (see below). You can use
also -R option instead of -c option, to set relative quota
file location. In this case quota file resides one dirrectory upper than
quota accounting point and has special name (see below).
- Remove quota file. Command checks if quota is running and
refuses to remove file in this case, option -f allows to override
- Turn quota on. If previous quota session wasn't switched
off properly (quota is not running, but quota file indicates it is),
initialization procedure will be performed. -f option allow to
force initialization procedure regardless of the shutdown status. Command
on doesn't work in case specified quota id is running.
- Turn quota off, write usage statistic back to the quota
file. Doesn't work if quota file cannot be accessed, also accepts
-f option (force switching off, even if usage statistic will be
lost). This is possible that quota will still be in a stopped state, even
if -f flag is used.
- Set new quota parameters. Requires at least one quota
parameter or flag specified. Applies new parameters immediately if quota
with given quota_id is running. Stores new limits and flags in the quota
file. Option -f specifies to mark quota as dirty, so at the next
quota start, disk will be rescanned and usage updated.
- Set second-level quota parameters. Applies new parameters
immediately if quota with given quota_id is running and second-level quota
is on. Stores new limits in the quota file.
- Reload second-level quota limits from quota file for given
- Show usage statistics and update it in quota file. Option
-f causes to do not read and update quota file, just print
statistics from kernel. Option -t specifies to show and update
user/group based quota statistics for a container. Works on running
containers only. The command with -t option flushes all quota
statistics from kernel to file and thus may be used for backup
- Show usage and limits info from quota file. Option
-t specifies to show user/group quota information as well.
All these options are required in init
command, and optionally accepted
- -s, --sub-quotas 1|0
- Enables or disables user/group based quota inside the
container. Here 1 means to enable, and 0 - to disable. By
default user/group quota is disabled. This option is accepted by
init, on and setlimit commands.
- -u user_id
- For setlimit2 command only. Limits will be applied
to the specified user_id.
- -g group_id
- For setlimit2 command only. Limits will be applied
to the specified group_id.
- -u, --ugid-limit limit
- For on and setlimit commands only. Specifies
maximum number of user and group IDs allowed in the container. If the
value is 0, user/group quota will not be accounted. Default value
is 0. There is one note concerning setlimit command. If
first-level quota is running, second-level quota is active and not all
ugid objects were loaded into kernel by on command due to
insufficient ugid_limit value (this can be checked by issuing
stat -t command and observing whether ugid limit was exceeded),
then setlimit with new limit value updates it in kernel and
file but this change does not take immediate effect. Modification will be
applied after quota restart.
- -b, --block-softlimit bsl
- Disk quota block soft limit. Soft limit is amount of blocks
which excess is allowed in time equal exptime. On the expiration of
this time soft limit becomes hard limit. Block limits are set in 1k sized
- -B, --block-hardlimit bhl
- Disk quota block hard limit. Hard limit is amount of blocks
which excess is not allowed.
- -e, --block-exptime bet
- Disk quota expiration time for excess of a block soft
limit. Time can be given in two different formats:
For instance: 30 - 30 seconds; 12:00 - 12 minutes;
20:15:11:00 - 20 days, 15 hours, 11 minutes
2. xxA, where A - h/H(hour); d/D(day); w/W(week); m/M(month);
For instance: 7D - 7 days; 01w - 1 week; 3m - 3
- -i, --inode-softlimit isl
- Disk quota inode soft limit. Similarly to block soft
- -I, --inode-hardlimit ihl
- Disk quota inode hard limit.
- -n, --inode-exptime iet
- Disk quota expiration time for excess of a inode soft
- -p path
- Point of quota accounting for given quota_id. This
option required for init command and can be used also with any
another command to override quota path obtained from quota file. For
on and setlimit commands, this option can be used to set and
save new quota accounting path for given quota_id
- Set special relative path to quota_file. If this
option is specified, quota file location will depends on path to quota
accounting dir: if your quota accounting path is /path/to/
somewhere/ than quota file will be /path/to/quota.
somewhere. If this option is not specified, quota file location is
/var/lib/vzquota/quota. quota_id. All commands accept this
- -c quota_file
- This option allows to specify a quota_file to work
with. All commands accept this option. If this option is not specified,
default file location depends on whether -R option is specified or
not (see above).
- Force option. Accepted by drop, on,
off, stat, setlimit and setlimit2 commands.
Action of this option differs for different commands and is described
above for each command separately.
- For stat and show commands only. Processes
user/group quota statistics. Specifies whether to show (update in file)
user/group quota information.
- For setlimit2 command. Set second-level quota time
It is impossible to start or stop quota accounting if the directory given by
option is busy. This is rather limitation of kernel part of disk
and vzquota show
display the following information:
- Either 1k-blocks or inodes.
- Current usage of resource.
- Resource limit. Current usage can exceed this limit up to
hard limit during grace time.
- Resource limit. Current usage can't exceed this limit.
- During this amount of time usage can exceed softlimit. If a
soft limit has not been exceeded the grace column is blank. If the grace
period has expired, the grace column contain special none
In case option -t
is specified, the following information is also
- User/group quota:
- Status of the 2nd level quota. This can be on or
off, active or inactive. Values on/off
define the state of the 2nd level quota at the next start of container
quota. Values active/inactive indicate the current state of
the 2nd level quota in the kernel.
- Three values are shown: loaded, total and
limit. loaded is the number of records (uids or gids) in the
kernel. total is the number of unique records located in the kernel
and quota file. limit is the current kernel limit of records
amount. Note that loaded and total may be greater then
- Ugid limit was exceeded:
- Can be yes or no. yes indicates that
vzquota did not loaded all records into the kernel. In this case you
should reduce the number of unique records (remove files which belong to
unnecessary users) or increase the ugid limit. After that you should
- User/group grace times and quotafile flags:
- Grace times and quota file flags (internal parameters of
standard linux kernel quota v.3).
- Command executed successfully
- System error
- Usage error
- Virtuozzo syscall error
- Quota file error
- Quota is already running
- Quota is not running
- Can not get lock on this quota id
- Directory tree crosses mount points
- Quota is running but user/group quota is inactive; this
status is returned by stat -t command for information purposes and
does not indicate a error
- Quota is marked as dirty in file; this status is returned
by show command for information purposes and does not indicate a
- Quota file does not exist
- Internal error
- Can't obtain mount point
Copyright (C) 2000-2011, Parallels, Inc. Licensed under GNU GPL.