- 论坛徽章:
- 0
|
Data ONTAP limitations on files, directories and subdirectories
Symptoms
What is a hard link?
What is the maximum number of subdirectories that a single directory may contain?
Subdirectories may be limited by the number of available inodes and maxdirsize setting.
Error: "Dir has reached its sub-directory limit of 100000"
Limit of 99,998 Directories per sub-directory.
Solution
The purpose of a directory is to provide a mapping between an inode and one or more names, possibly with different paths. A directory is nothing else than a "special" file that uses up an inode. Inode information is held in the inode file, which is a hidden system file, and each inode is 192 bytes long (for Data ONTAP 6.4 and earlier, the inode size was 128 bytes).
Starting with Data ONTAP 6.5, the maximum number of subdirectories a single directory may have is 99998 (100K). Data ONTAP 6.4 and earlier versions were restricted to 65534 (64K) subdirectories. This number may not be changed. To understand the reason for this limit, see the section below on hard links and subdirectory implementation.
You can face limits on creating a subdirectory within a directory because subdirectories are also files and hence are limited by the following:
Maximum size of the parent directory (maxdirsize). An error message is generated when this limit is hit, and an error is returned to the client which generally interprets the error as a full volume, although this does not necessarily mean that the volume is out of space.
Number of files that can exist in a volume (maxfiles)
Maximum size of the volume
100K/64K limitation specific to subdirectories
Enter df -i or maxfiles to view the available number of inodes.
Hard links and subdirectories
A hard link is a mapping between a name (or a unified group of names) and an inode number and is held in a directory. An inode number can be referenced by multiple names, and each reference adds to the link count for the inode.
Directories make extensive use of and are implemented using hard links. Hard links are used to show connectivity between parent and child directories in a directory tree. Each directory has a minimum of two entries "." and "..".
"." is a hard link to itself
".." is a hard link to the parent directory
--------------------------以上版权属Netapp所有----------------------------
稍稍翻译了下,顺序有所改变:
hard link的概念:
hard link是name(或者一组name)与inode号之间的映射,这个映射关系保存在“目录”文件中。一个inode号可以被多个name引用,每个引用都会增加inode的链接计数。
目录就是使用hard link来实现的,hard link被用来维持目录树中父目录和子目录的关系。
目录的概念:
目录是inode和一个或多个名字的映射。目录是一种特殊的文件,同样使用inode。inode信息存放在系统隐藏的inode文件中,每个inode大小是192字节(在Data ONTAP 6.4 及之前的版本,inode大小是128 字节)。
从Data ONTAP 6.5版本起,一个目录可包含的最大子目录数限制为99998,即10万,Data ONTAP 6.4及之前的版本该限制为65534,这是写死在代码里且不可更改的。为什么不是100000和65536呢?众所周知,*nix文件系统的目录下都有两个特殊文件.和..
.代表当前目录,也是一个指向自身的hard link
..代表上层目录,也是一个指向上层目录的hard link
加上这两个文件,刚好就圆满了 :-)
在一个目录里创建子目录时可能遇到下述一些限制:
*父目录的maxdirsize数值,当超出这个限制时,系统会返回给客户端一个看起来象是文件系统满的错误消息,而实际上文件系统空间并未满。
*一个volumn可包含的最大文件数量,即maxfiles值,该值可调整
*volumn的最大空间限制
*根据Data ONTAP软件版本不同而定的100K/64K子目录数限制
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94290/showart_1889947.html |
|