Commit | Line | Data |
---|---|---|
1da177e4 LT |
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. |