diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/filesystems/xfs.txt |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'Documentation/filesystems/xfs.txt')
-rw-r--r-- | Documentation/filesystems/xfs.txt | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/Documentation/filesystems/xfs.txt b/Documentation/filesystems/xfs.txt new file mode 100644 index 000000000000..c7d5d0c7067d --- /dev/null +++ b/Documentation/filesystems/xfs.txt | |||
@@ -0,0 +1,188 @@ | |||
1 | |||
2 | The SGI XFS Filesystem | ||
3 | ====================== | ||
4 | |||
5 | XFS is a high performance journaling filesystem which originated | ||
6 | on the SGI IRIX platform. It is completely multi-threaded, can | ||
7 | support large files and large filesystems, extended attributes, | ||
8 | variable block sizes, is extent based, and makes extensive use of | ||
9 | Btrees (directories, extents, free space) to aid both performance | ||
10 | and scalability. | ||
11 | |||
12 | Refer to the documentation at http://oss.sgi.com/projects/xfs/ | ||
13 | for further details. This implementation is on-disk compatible | ||
14 | with the IRIX version of XFS. | ||
15 | |||
16 | |||
17 | Mount Options | ||
18 | ============= | ||
19 | |||
20 | When mounting an XFS filesystem, the following options are accepted. | ||
21 | |||
22 | biosize=size | ||
23 | Sets the preferred buffered I/O size (default size is 64K). | ||
24 | "size" must be expressed as the logarithm (base2) of the | ||
25 | desired I/O size. | ||
26 | Valid values for this option are 14 through 16, inclusive | ||
27 | (i.e. 16K, 32K, and 64K bytes). On machines with a 4K | ||
28 | pagesize, 13 (8K bytes) is also a valid size. | ||
29 | The preferred buffered I/O size can also be altered on an | ||
30 | individual file basis using the ioctl(2) system call. | ||
31 | |||
32 | ikeep/noikeep | ||
33 | When inode clusters are emptied of inodes, keep them around | ||
34 | on the disk (ikeep) - this is the traditional XFS behaviour | ||
35 | and is still the default for now. Using the noikeep option, | ||
36 | inode clusters are returned to the free space pool. | ||
37 | |||
38 | logbufs=value | ||
39 | Set the number of in-memory log buffers. Valid numbers range | ||
40 | from 2-8 inclusive. | ||
41 | The default value is 8 buffers for filesystems with a | ||
42 | blocksize of 64K, 4 buffers for filesystems with a blocksize | ||
43 | of 32K, 3 buffers for filesystems with a blocksize of 16K | ||
44 | and 2 buffers for all other configurations. Increasing the | ||
45 | number of buffers may increase performance on some workloads | ||
46 | at the cost of the memory used for the additional log buffers | ||
47 | and their associated control structures. | ||
48 | |||
49 | logbsize=value | ||
50 | Set the size of each in-memory log buffer. | ||
51 | Size may be specified in bytes, or in kilobytes with a "k" suffix. | ||
52 | Valid sizes for version 1 and version 2 logs are 16384 (16k) and | ||
53 | 32768 (32k). Valid sizes for version 2 logs also include | ||
54 | 65536 (64k), 131072 (128k) and 262144 (256k). | ||
55 | The default value for machines with more than 32MB of memory | ||
56 | is 32768, machines with less memory use 16384 by default. | ||
57 | |||
58 | logdev=device and rtdev=device | ||
59 | Use an external log (metadata journal) and/or real-time device. | ||
60 | An XFS filesystem has up to three parts: a data section, a log | ||
61 | section, and a real-time section. The real-time section is | ||
62 | optional, and the log section can be separate from the data | ||
63 | section or contained within it. | ||
64 | |||
65 | noalign | ||
66 | Data allocations will not be aligned at stripe unit boundaries. | ||
67 | |||
68 | noatime | ||
69 | Access timestamps are not updated when a file is read. | ||
70 | |||
71 | norecovery | ||
72 | The filesystem will be mounted without running log recovery. | ||
73 | If the filesystem was not cleanly unmounted, it is likely to | ||
74 | be inconsistent when mounted in "norecovery" mode. | ||
75 | Some files or directories may not be accessible because of this. | ||
76 | Filesystems mounted "norecovery" must be mounted read-only or | ||
77 | the mount will fail. | ||
78 | |||
79 | nouuid | ||
80 | Don't check for double mounted file systems using the file system uuid. | ||
81 | This is useful to mount LVM snapshot volumes. | ||
82 | |||
83 | osyncisosync | ||
84 | Make O_SYNC writes implement true O_SYNC. WITHOUT this option, | ||
85 | Linux XFS behaves as if an "osyncisdsync" option is used, | ||
86 | which will make writes to files opened with the O_SYNC flag set | ||
87 | behave as if the O_DSYNC flag had been used instead. | ||
88 | This can result in better performance without compromising | ||
89 | data safety. | ||
90 | However if this option is not in effect, timestamp updates from | ||
91 | O_SYNC writes can be lost if the system crashes. | ||
92 | If timestamp updates are critical, use the osyncisosync option. | ||
93 | |||
94 | quota/usrquota/uqnoenforce | ||
95 | User disk quota accounting enabled, and limits (optionally) | ||
96 | enforced. | ||
97 | |||
98 | grpquota/gqnoenforce | ||
99 | Group disk quota accounting enabled and limits (optionally) | ||
100 | enforced. | ||
101 | |||
102 | sunit=value and swidth=value | ||
103 | Used to specify the stripe unit and width for a RAID device or | ||
104 | a stripe volume. "value" must be specified in 512-byte block | ||
105 | units. | ||
106 | If this option is not specified and the filesystem was made on | ||
107 | a stripe volume or the stripe width or unit were specified for | ||
108 | the RAID device at mkfs time, then the mount system call will | ||
109 | restore the value from the superblock. For filesystems that | ||
110 | are made directly on RAID devices, these options can be used | ||
111 | to override the information in the superblock if the underlying | ||
112 | disk layout changes after the filesystem has been created. | ||
113 | The "swidth" option is required if the "sunit" option has been | ||
114 | specified, and must be a multiple of the "sunit" value. | ||
115 | |||
116 | sysctls | ||
117 | ======= | ||
118 | |||
119 | The following sysctls are available for the XFS filesystem: | ||
120 | |||
121 | fs.xfs.stats_clear (Min: 0 Default: 0 Max: 1) | ||
122 | Setting this to "1" clears accumulated XFS statistics | ||
123 | in /proc/fs/xfs/stat. It then immediately resets to "0". | ||
124 | |||
125 | fs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000) | ||
126 | The interval at which the xfssyncd thread flushes metadata | ||
127 | out to disk. This thread will flush log activity out, and | ||
128 | do some processing on unlinked inodes. | ||
129 | |||
130 | fs.xfs.xfsbufd_centisecs (Min: 50 Default: 100 Max: 3000) | ||
131 | The interval at which xfsbufd scans the dirty metadata buffers list. | ||
132 | |||
133 | fs.xfs.age_buffer_centisecs (Min: 100 Default: 1500 Max: 720000) | ||
134 | The age at which xfsbufd flushes dirty metadata buffers to disk. | ||
135 | |||
136 | fs.xfs.error_level (Min: 0 Default: 3 Max: 11) | ||
137 | A volume knob for error reporting when internal errors occur. | ||
138 | This will generate detailed messages & backtraces for filesystem | ||
139 | shutdowns, for example. Current threshold values are: | ||
140 | |||
141 | XFS_ERRLEVEL_OFF: 0 | ||
142 | XFS_ERRLEVEL_LOW: 1 | ||
143 | XFS_ERRLEVEL_HIGH: 5 | ||
144 | |||
145 | fs.xfs.panic_mask (Min: 0 Default: 0 Max: 127) | ||
146 | Causes certain error conditions to call BUG(). Value is a bitmask; | ||
147 | AND together the tags which represent errors which should cause panics: | ||
148 | |||
149 | XFS_NO_PTAG 0 | ||
150 | XFS_PTAG_IFLUSH 0x00000001 | ||
151 | XFS_PTAG_LOGRES 0x00000002 | ||
152 | XFS_PTAG_AILDELETE 0x00000004 | ||
153 | XFS_PTAG_ERROR_REPORT 0x00000008 | ||
154 | XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010 | ||
155 | XFS_PTAG_SHUTDOWN_IOERROR 0x00000020 | ||
156 | XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040 | ||
157 | |||
158 | This option is intended for debugging only. | ||
159 | |||
160 | fs.xfs.irix_symlink_mode (Min: 0 Default: 0 Max: 1) | ||
161 | Controls whether symlinks are created with mode 0777 (default) | ||
162 | or whether their mode is affected by the umask (irix mode). | ||
163 | |||
164 | fs.xfs.irix_sgid_inherit (Min: 0 Default: 0 Max: 1) | ||
165 | Controls files created in SGID directories. | ||
166 | If the group ID of the new file does not match the effective group | ||
167 | ID or one of the supplementary group IDs of the parent dir, the | ||
168 | ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl | ||
169 | is set. | ||
170 | |||
171 | fs.xfs.restrict_chown (Min: 0 Default: 1 Max: 1) | ||
172 | Controls whether unprivileged users can use chown to "give away" | ||
173 | a file to another user. | ||
174 | |||
175 | fs.xfs.inherit_sync (Min: 0 Default: 1 Max 1) | ||
176 | Setting this to "1" will cause the "sync" flag set | ||
177 | by the chattr(1) command on a directory to be | ||
178 | inherited by files in that directory. | ||
179 | |||
180 | fs.xfs.inherit_nodump (Min: 0 Default: 1 Max 1) | ||
181 | Setting this to "1" will cause the "nodump" flag set | ||
182 | by the chattr(1) command on a directory to be | ||
183 | inherited by files in that directory. | ||
184 | |||
185 | fs.xfs.inherit_noatime (Min: 0 Default: 1 Max 1) | ||
186 | Setting this to "1" will cause the "noatime" flag set | ||
187 | by the chattr(1) command on a directory to be | ||
188 | inherited by files in that directory. | ||