Blame view

Documentation/filesystems/xfs.txt 10.2 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  
  The SGI XFS Filesystem
  ======================
  
  XFS is a high performance journaling filesystem which originated
  on the SGI IRIX platform.  It is completely multi-threaded, can
  support large files and large filesystems, extended attributes,
  variable block sizes, is extent based, and makes extensive use of
  Btrees (directories, extents, free space) to aid both performance
  and scalability.
  
  Refer to the documentation at http://oss.sgi.com/projects/xfs/
  for further details.  This implementation is on-disk compatible
  with the IRIX version of XFS.
  
  
  Mount Options
  =============
  
  When mounting an XFS filesystem, the following options are accepted.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    allocsize=size
  	Sets the buffered I/O end-of-file preallocation size when
  	doing delayed allocation writeout (default size is 64KiB).
  	Valid values for this option are page size (typically 4KiB)
  	through to 1GiB, inclusive, in power-of-2 increments.
  
    attr2/noattr2
  	The options enable/disable (default is disabled for backward
  	compatibility on-disk) an "opportunistic" improvement to be
  	made in the way inline extended attributes are stored on-disk.
  	When the new form is used for the first time (by setting or
  	removing extended attributes) the on-disk superblock feature
  	bit field will be updated to reflect this format being in use.
  
    barrier
  	Enables the use of block layer write barriers for writes into
  	the journal and unwritten extent conversion.  This allows for
  	drive level write caching to be enabled, for devices that
  	support write barriers.
e84661aa8   Christoph Hellwig   xfs: add online d...
40
41
42
43
44
    discard
  	Issue command to let the block device reclaim space freed by the
  	filesystem.  This is useful for SSD devices, thinly provisioned
  	LUNs and virtual machine images, but may have a performance
  	impact.  This option is incompatible with the nodelaylog option.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
45
46
47
48
49
50
51
52
53
54
55
56
57
    dmapi
  	Enable the DMAPI (Data Management API) event callouts.
  	Use with the "mtpt" option.
  
    grpid/bsdgroups and nogrpid/sysvgroups
  	These options define what group ID a newly created file gets.
  	When grpid is set, it takes the group ID of the directory in
  	which it is created; otherwise (the default) it takes the fsgid
  	of the current process, unless the directory has the setgid bit
  	set, in which case it takes the gid from the parent directory,
  	and also gets the setgid bit set if it is a directory itself.
  
    ihashsize=value
033bfb1a6   David Chinner   [XFS] Update XFS ...
58
59
  	In memory inode hashes have been removed, so this option has
  	no function as of August 2007. Option is deprecated.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
61
  
    ikeep/noikeep
033bfb1a6   David Chinner   [XFS] Update XFS ...
62
63
64
  	When ikeep is specified, XFS does not delete empty inode clusters
  	and keeps them around on disk. ikeep is the traditional XFS
  	behaviour. When noikeep is specified, empty inode clusters
f6e9f2886   Josef Sipek   [XFS] Update XFS ...
65
66
  	are returned to the free space pool. The default is noikeep for
  	non-DMAPI mounts, while ikeep is the default when DMAPI is in use.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
67

fc97bbf35   Nathan Scott   [XFS] Update XFS ...
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
    inode64
  	Indicates that XFS is allowed to create inodes at any location
  	in the filesystem, including those which will result in inode
  	numbers occupying more than 32 bits of significance.  This is
  	provided for backwards compatibility, but causes problems for
  	backup applications that cannot handle large inode numbers.
  
    largeio/nolargeio
  	If "nolargeio" is specified, the optimal I/O reported in
  	st_blksize by stat(2) will be as small as possible to allow user
  	applications to avoid inefficient read/modify/write I/O.
  	If "largeio" specified, a filesystem that has a "swidth" specified
  	will return the "swidth" value (in bytes) in st_blksize. If the
  	filesystem does not have a "swidth" specified but does specify
  	an "allocsize" then "allocsize" (in bytes) will be returned
  	instead.
  	If neither of these two options are specified, then filesystem
  	will behave as if "nolargeio" was specified.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
86
87
88
89
    logbufs=value
  	Set the number of in-memory log buffers.  Valid numbers range
  	from 2-8 inclusive.
  	The default value is 8 buffers for filesystems with a
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
90
91
  	blocksize of 64KiB, 4 buffers for filesystems with a blocksize
  	of 32KiB, 3 buffers for filesystems with a blocksize of 16KiB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
92
93
94
95
96
97
98
99
  	and 2 buffers for all other configurations.  Increasing the
  	number of buffers may increase performance on some workloads
  	at the cost of the memory used for the additional log buffers
  	and their associated control structures.
  
    logbsize=value
  	Set the size of each in-memory log buffer.
  	Size may be specified in bytes, or in kilobytes with a "k" suffix.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
100
101
  	Valid sizes for version 1 and version 2 logs are 16384 (16k) and
  	32768 (32k).  Valid sizes for version 2 logs also include
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
102
  	65536 (64k), 131072 (128k) and 262144 (256k).
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
103
  	The default value for machines with more than 32MiB of memory
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
104
105
106
107
108
109
110
111
  	is 32768, machines with less memory use 16384 by default.
  
    logdev=device and rtdev=device
  	Use an external log (metadata journal) and/or real-time device.
  	An XFS filesystem has up to three parts: a data section, a log
  	section, and a real-time section.  The real-time section is
  	optional, and the log section can be separate from the data
  	section or contained within it.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
112
113
114
115
    mtpt=mountpoint
  	Use with the "dmapi" option.  The value specified here will be
  	included in the DMAPI mount event, and should be the path of
  	the actual mountpoint that is used.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
    noalign
  	Data allocations will not be aligned at stripe unit boundaries.
  
    noatime
  	Access timestamps are not updated when a file is read.
  
    norecovery
  	The filesystem will be mounted without running log recovery.
  	If the filesystem was not cleanly unmounted, it is likely to
  	be inconsistent when mounted in "norecovery" mode.
  	Some files or directories may not be accessible because of this.
  	Filesystems mounted "norecovery" must be mounted read-only or
  	the mount will fail.
  
    nouuid
  	Don't check for double mounted file systems using the file system uuid.
  	This is useful to mount LVM snapshot volumes.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
133
    uquota/usrquota/uqnoenforce/quota
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
134
  	User disk quota accounting enabled, and limits (optionally)
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
135
  	enforced.  Refer to xfs_quota(8) for further details.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
136

fc97bbf35   Nathan Scott   [XFS] Update XFS ...
137
    gquota/grpquota/gqnoenforce
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
138
  	Group disk quota accounting enabled and limits (optionally)
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
139
140
141
142
143
  	enforced.  Refer to xfs_quota(8) for further details.
  
    pquota/prjquota/pqnoenforce
  	Project disk quota accounting enabled and limits (optionally)
  	enforced.  Refer to xfs_quota(8) for further details.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
144
145
146
147
148
149
150
151
152
153
154
155
156
157
  
    sunit=value and swidth=value
  	Used to specify the stripe unit and width for a RAID device or
  	a stripe volume.  "value" must be specified in 512-byte block
  	units.
  	If this option is not specified and the filesystem was made on
  	a stripe volume or the stripe width or unit were specified for
  	the RAID device at mkfs time, then the mount system call will
  	restore the value from the superblock.  For filesystems that
  	are made directly on RAID devices, these options can be used
  	to override the information in the superblock if the underlying
  	disk layout changes after the filesystem has been created.
  	The "swidth" option is required if the "sunit" option has been
  	specified, and must be a multiple of the "sunit" value.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
158
159
160
161
    swalloc
  	Data allocations will be rounded up to stripe width boundaries
  	when the current end of file is being extended and the file
  	size is larger than the stripe width size.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
162
163
164
165
166
167
  sysctls
  =======
  
  The following sysctls are available for the XFS filesystem:
  
    fs.xfs.stats_clear		(Min: 0  Default: 0  Max: 1)
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
168
  	Setting this to "1" clears accumulated XFS statistics
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
169
  	in /proc/fs/xfs/stat.  It then immediately resets to "0".
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
170

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
    fs.xfs.xfssyncd_centisecs	(Min: 100  Default: 3000  Max: 720000)
    	The interval at which the xfssyncd thread flushes metadata
    	out to disk.  This thread will flush log activity out, and
    	do some processing on unlinked inodes.
  
    fs.xfs.xfsbufd_centisecs	(Min: 50  Default: 100	Max: 3000)
  	The interval at which xfsbufd scans the dirty metadata buffers list.
  
    fs.xfs.age_buffer_centisecs	(Min: 100  Default: 1500  Max: 720000)
  	The age at which xfsbufd flushes dirty metadata buffers to disk.
  
    fs.xfs.error_level		(Min: 0  Default: 3  Max: 11)
  	A volume knob for error reporting when internal errors occur.
  	This will generate detailed messages & backtraces for filesystem
  	shutdowns, for example.  Current threshold values are:
  
  		XFS_ERRLEVEL_OFF:       0
  		XFS_ERRLEVEL_LOW:       1
  		XFS_ERRLEVEL_HIGH:      5
  
    fs.xfs.panic_mask		(Min: 0  Default: 0  Max: 127)
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
192
  	Causes certain error conditions to call BUG(). Value is a bitmask;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
193
  	AND together the tags which represent errors which should cause panics:
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
194

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
195
196
197
198
199
200
201
202
  		XFS_NO_PTAG                     0
  		XFS_PTAG_IFLUSH                 0x00000001
  		XFS_PTAG_LOGRES                 0x00000002
  		XFS_PTAG_AILDELETE              0x00000004
  		XFS_PTAG_ERROR_REPORT           0x00000008
  		XFS_PTAG_SHUTDOWN_CORRUPT       0x00000010
  		XFS_PTAG_SHUTDOWN_IOERROR       0x00000020
  		XFS_PTAG_SHUTDOWN_LOGERROR      0x00000040
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
203
  	This option is intended for debugging only.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
204
205
206
207
208
209
210
211
  
    fs.xfs.irix_symlink_mode	(Min: 0  Default: 0  Max: 1)
  	Controls whether symlinks are created with mode 0777 (default)
  	or whether their mode is affected by the umask (irix mode).
  
    fs.xfs.irix_sgid_inherit	(Min: 0  Default: 0  Max: 1)
  	Controls files created in SGID directories.
  	If the group ID of the new file does not match the effective group
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
212
213
  	ID or one of the supplementary group IDs of the parent dir, the
  	ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
214
  	is set.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
215
216
217
    fs.xfs.inherit_sync		(Min: 0  Default: 1  Max: 1)
  	Setting this to "1" will cause the "sync" flag set
  	by the xfs_io(8) chattr command on a directory to be
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
218
  	inherited by files in that directory.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
219
220
221
    fs.xfs.inherit_nodump		(Min: 0  Default: 1  Max: 1)
  	Setting this to "1" will cause the "nodump" flag set
  	by the xfs_io(8) chattr command on a directory to be
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
222
  	inherited by files in that directory.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
223
224
225
    fs.xfs.inherit_noatime	(Min: 0  Default: 1  Max: 1)
  	Setting this to "1" will cause the "noatime" flag set
  	by the xfs_io(8) chattr command on a directory to be
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
226
  	inherited by files in that directory.
fc97bbf35   Nathan Scott   [XFS] Update XFS ...
227
228
229
230
231
232
233
234
235
236
237
238
  
    fs.xfs.inherit_nosymlinks	(Min: 0  Default: 1  Max: 1)
  	Setting this to "1" will cause the "nosymlinks" flag set
  	by the xfs_io(8) chattr command on a directory to be
  	inherited by files in that directory.
  
    fs.xfs.rotorstep		(Min: 1  Default: 1  Max: 256)
  	In "inode32" allocation mode, this option determines how many
  	files the allocator attempts to allocate in the same allocation
  	group before moving to the next allocation group.  The intent
  	is to control the rate at which the allocator moves between
  	allocation groups when allocating extents for new files.