Manual Pages
Table of Contents
na_qtree - create and manage qtrees
qtree create name [ -m mode ]
qtree oplocks name [ enable | disable ]
qtree security name [ unix | ntfs | mixed ]
qtree status [ -i ] [ -v ] [ name ]
qtree stats [ -z ] [ name ]
The qtree command creates qtrees and specifies attributes
for qtrees.
A qtree is similar in concept to a partition. It creates
a subset of a volume to which a quota can be applied to
limit its size. As a special case, a qtree can be the
entire volume. A qtree is more flexible than a partition
because you can change the size of a qtree at any time.
In addition to a quota, a qtree possesses a few other
properties.
A qtree enables you to apply attributes such as
oplocks and security style to a subset of files and
directories rather than to an entire volume.
Single files can be moved across a qtree without
moving the data blocks. Directories cannot be
moved across a qtree. However, since most clients
use recursion to move the children of directories,
the actual observed behavior is that directories
are copied and files are then moved.
Qtrees represent the third level at which filer storage
can be partitioned. Disks are organized into aggregates
which provides pools of storage. In each aggregate, one or
more flexible volumes can be created. Traditional volumes
may also be created directly without the previous creation
of an aggregate. Each volume contains a file system.
Finally, the volume can be divided into qtrees.
If there are files and directories in a volume that do not
belong to any qtrees you create, the filer considers them
to be in qtree 0. Qtree 0 can take on the same types of
attributes as any other qtrees.
You can use any qtree command whether or not quotas are
enabled on your filer.
The qtree create command creates a qtree. If name does not
begin with a slash (/), the qtree is created in the root
volume. To create a qtree in a particular volume, specify
name in this format: /vol/vol_name/qtree_name.
A qtree can be created only in the root directory of a
volume. By default, a qtree has the same security style
as the root directory of the volume and oplocks are
enabled. The root directory of a volume, by default, uses
the unix security style.
When you create a qtree, you can optionally specify the
file permission bits of the qtree using the mode option.
The format of the mode option is similar to UNIX permission
bits: 0755 gives read/write/execute permissions to
owner and read/execute to group and other users. It consists
of 4 octal digits derived by adding up bits 4, 2,
and 1. Omitted digits are assumed to be zeros. The first
digit selects the set user ID (4), set group ID
- (2),
- and sticky (1) attributes. The second digit selects
permissions for the owner of the file: read (4), write
(2), and execute (1); the third selects permissions for
other users in the same group; the fourth for other users
not in the group. If this argument is missing, the
permission bits are set using the value of the option
"wafl.default_qtree_mode".
A qtree does not have any restrictions on disk space or
the number of files. To impose these restrictions on a
qtree, edit the /etc/quotas file. Refer to the na_quotas(5)
man page for more information about the file format.
To make the changes to the /etc/quotas file go into
effect, use the quota command. Refer to the na_quota(1)
man page for more information about the quota command.
To delete a qtree, remove it from a client as you would
any directory. There is a limit of 4994 qtrees per volume.
If you do not specify the name in the "qtree" command, the
attributes for all quota trees on the filer are displayed.
The qtree oplocks command enables or disables oplocks for
files and directories in a qtree or in a volume. If name
is the path name to a qtree, the attribute applies to
files and directories in the specified qtree. The path
name to a quota tree does not need to end with a slash.
If name is the path name to a volume, the attribute
applies to those files and directories in qtree 0. The
path name to a volume must end with a slash.
If the cifs.oplocks.enable option is off, oplocks are not
sent even if you enable the oplocks on a per-quota-tree
basis with the qtree oplocks command. The
cifs.oplocks.enable option is enabled by default.
If you do not specify enable or disable in the qtree
oplocks command, the oplock attribute for name is displayed.
The qtree security command changes the security style for
files and directories. Security style means the method
the filer uses to determine whether a user has access to a
file. If name is the path name to a qtree, the security
style applies to the files and directories in the specified
qtree. The path name to a qtree does not need to end
with a slash. If name is a path name to a volume, the
security style applies to those directories and files in
qtree 0. Any new qtree you create inherits the security
style from qtree 0 by default. The path name to a volume
must end with a slash.
The security style can be one of the following values:
- unix
- The user's UID and GID, and the UNIX-style permission
bits of the file or directory determine
user access. The filer uses the same method for
determining access for both NFS and CIFS
requests. If you change the security style of a
qtree or a volume from ntfs to unix, the filer
disregards the Windows NT permissions that were
established when the qtree or volume used the
ntfs security style.
- ntfs
- For CIFS requests, Windows NT permissions determine
user access. For NFS requests, the filer
generates and stores a set of UNIX-style permission
bits that are at least as restrictive as
the Windows NT permissions. The filer grants NFS
access only if the UNIX-style permission bits
allow the user access. If you change the security
style of a qtree or a volume from unix to
ntfs, files created before the change do not
have Windows NT permissions. For these files,
the filer uses only the UNIX-style permission
bits to determine access.
- mixed
- Some files in the qtree or volume have the unix
security style, and some have the ntfs security
style. A file's security style depends on
whether the permission was last set from CIFS or
NFS. For example, if a file currently uses the
unix security style and a CIFS user sends a setACL
request to the file, the file's security
style is changed to ntfs. If a file currently
uses the ntfs style and an NFS user sends a setpermission
request to the file, the file's security
style is changed to unix.
If you do not specify unix, ntfs, or mixed in the qtree
security command, the security style for name is displayed.
The qtree status command displays the attributes of all
quota trees for volume name on the filer. It displays the
containing volume, the tree name, the security style,
oplock status, and whether the qtree is snapmirrored or
not. The "-i" flag will add an "ID" column which displays
the "tree id" - an integer used to identify the qtree in
various syslog messages. If vfilers are licensed, the
"-v" flag can be used to display the owning vfiler for
each qtree.
If you do not specify the name in the "qtree status" command,
the attributes for all quota trees on the filer are
displayed.
The qtree stats command displays a count of the number
NFS/CIFS operations caused by user accesses to files in
quota trees. The filer maintains counters for each quota
tree in each of the filer's volumes. The counters are
non-persistent.
The "-z" flag can be used to reset the counters.
The values displayed correspond to the operations on
qtrees since the volume (in which the qtrees exist) was
created or since it was made online on the filer via
either a "vol online" command or a filer reboot, or since
the counters were last reset, whichever occured most
recently.
If you do not specify the name in the "qtree stats" command,
the statistics for all quota trees on the filer are
displayed. Otherwise, statistics for quota trees in volume
name are displayed.
Similarly, if you do not specify the name with the "-z"
flag, the counters for all quota trees on all volumes is
reset.
The following example sets the security style of a qtree
named marketing in the root volume to ntfs:
toaster> qtree security marketing ntfs
The following example sets the security style of a qtree
named engineering in the vol1 volume to ntfs:
toaster> qtree security /vol/vol1/engr ntfs
The following example sets the security style of the root
volume to unix:
toaster> qtree security / unix
The following example sets the security style of the vol1
volume to unix:
toaster> qtree security /vol/vol1/ unix
The following example disables oplocks for the engr qtree:
toaster> qtree oplocks /vol/vol1/engr disable
The following example enables oplocks for the vol1 volume:
toaster> qtree oplocks /vol/vol1/ enable
The following example displays the security style, oplocks
attribute, and snapmirrored status for all volumes and
qtrees on the filer:
toaster> qtree status
Volume Tree Style Oplocks Status
-------- -------- ----- -------- ---------
vol0 unix enabled normal
vol0 marketing ntfs enabled normal
vol1 unix enabled normal
vol1 engr ntfs disabled normal
vol1 backup unix enabled snapmirrored
The following example displays the security style, oplocks
attribute, and snapmirrored status for the qtrees on vol1
of the filer:
toaster> qtree status vol1
Volume Tree Style Oplocks Status
-------- -------- ----- -------- ---------
vol1 unix enabled normal
vol1 engr ntfs disabled normal
vol1 backup unix enabled snapmirrored
The following example displays the statistics for all volumes
and qtrees on the filer:
toaster> qtree stats
Volume Tree NFS ops CIFS ops
-------- -------- ------- --------
vol0 backup 18636 2340
vol1 engr 8636 30
vol1 marketing 36 2000
The following example displays the statistics for the
qtrees in vol1 of the filer:
toaster> qtree stats vol1
Volume Tree NFS ops CIFS ops
-------- -------- ------- --------
vol1 engr 8636 30
vol1 marketing 36 2000
The following example displays how to clear the counters
reported in qtree statistics for the qtrees in vol1 of the
filer:
toaster> qtree stats -z vol1
toaster> qtree stats vol1
Volume Tree NFS ops CIFS ops
-------- -------- ------- --------
vol1 engr 0 0
vol1 marketing 0 0
The FSF's implementation of mv does not use recursion to
move the contents of a directory. Their assumption is
that if the rename of the directory failed, then the
rename of its files will also fail. Both Linux and BSD
clients utilize the GNU package for their stock mv command.
The NOW site has a patch set to fix this problem.
Also, this patch has been fed back to the FSF.
When run from a vfiler context, (e.g. via the vfiler run
command), qtree operates on the concerned vfiler. If a
vfiler owns a volume, running qtree in context of that
vfiler can create qtrees in that volume, and change the
oplocks and security settings of these qtrees. For other
qtrees owned by a vfiler (that reside in volumes not owned
by the vfiler), the qtree command can be used to change
oplocks and security settings of these qtrees.
na_options(1), na_quota(1), na_quotas(5), na_snapmirror(1),
na_vfiler(1), na_file(1), na_aggr(1), na_vol(1)
Table of Contents