Merge branch 'vendor/BYACC'
[dragonfly.git] / sbin / newfs_hammer / newfs_hammer.8
1 .\" Copyright (c) 2007 The DragonFly Project.  All rights reserved.
2 .\"
3 .\" This code is derived from software contributed to The DragonFly Project
4 .\" by Matthew Dillon <dillon@backplane.com>
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\"
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\"    notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\"    notice, this list of conditions and the following disclaimer in
14 .\"    the documentation and/or other materials provided with the
15 .\"    distribution.
16 .\" 3. Neither the name of The DragonFly Project nor the names of its
17 .\"    contributors may be used to endorse or promote products derived
18 .\"    from this software without specific, prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 .\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
24 .\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 .\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 .\" SUCH DAMAGE.
32 .\"
33 .Dd December 16, 2016
34 .Dt NEWFS_HAMMER 8
35 .Os
36 .Sh NAME
37 .Nm newfs_hammer
38 .Nd construct a new HAMMER file system
39 .Sh SYNOPSIS
40 .Nm
41 .Fl L Ar label
42 .Op Fl \&Efh
43 .Op Fl b Ar bootsize
44 .Op Fl m Ar savesize
45 .Op Fl u Ar undosize
46 .Op Fl C Ar cachesize Ns Op Ns Cm \&: Ns Ar readahead
47 .Op Fl V Ar version
48 .Ar special ...
49 .Sh DESCRIPTION
50 The
51 .Nm
52 utility creates a
53 .Nm HAMMER
54 file system on device(s)
55 .Ar special .
56 If multiple devices are specified a single
57 .Nm HAMMER
58 file system is created
59 which spans all of them.
60 Each
61 .Ar special
62 will constitute a volume which the
63 .Nm HAMMER
64 file system is built on.
65 The first
66 .Ar special
67 specified becomes the
68 .Ar root-volume
69 with volume# 0.
70 .Nm HAMMER
71 file systems are sector-size agnostic, however the
72 .Dx
73 implementation requires the sector size to be no larger than 16KB.
74 .Nm HAMMER
75 file systems start at a relative offset of 0 and may only be created
76 under out-of-band disk labels
77 .Po
78 .Xr disklabel64 5
79 or
80 .Xr gpt 8
81 labels
82 .Pc ,
83 or in
84 .Xr disklabel32 5
85 partitions which do not overlap the label area (have a starting sector
86 greater than 16).
87 .Pp
88 .Nm HAMMER
89 file systems are designed for large storage systems, up to 1 Exabyte, and
90 will not operate efficiently on small storage systems.
91 The minimum recommended file system size is 50GB.
92 .Nm HAMMER
93 must reserve 512MB to 1GB of its storage for reblocking and UNDO/REDO FIFO.
94 In addition,
95 .Nm HAMMER
96 file systems operating normally, with full history
97 retention and daily snapshots, do not immediately reclaim space when
98 files are deleted.
99 A regular system maintenance job runs once a day by
100 .Xr periodic 8
101 to handle reclamation.
102 .Pp
103 .Nm HAMMER
104 works best when the machine's normal workload would not otherwise fill
105 the file system up in the course of 60 days of operation.
106 .Pp
107 The options are as follows:
108 .Bl -tag -width indent
109 .It Fl L Ar label
110 All
111 .Nm HAMMER
112 file systems must be named and names should be unique on a
113 per-machine basis, although
114 .Nm
115 does not prevent from making file systems with the same label.
116 .It Fl f
117 Force operation.
118 This is needed for the creation of a
119 .Nm HAMMER
120 file system less than 10GB size or
121 with less than 512MB UNDO/REDO FIFO.
122 This should not be used under normal circumstances.
123 .It Fl E
124 Use TRIM to erase the device's data before creating the file system.
125 The underlying device must have the TRIM sysctl enabled.
126 Only devices that support TRIM will have such a sysctl option
127 .Va ( kern.cam.da.X.trim_enabled ) .
128 .It Fl h
129 Show usage.
130 .It Fl b Ar bootsize
131 Specify a fixed area in which a boot related kernel and data can be stored.
132 This area is currently unused.
133 The
134 .Ar bootsize
135 is specified in bytes with a suffix of
136 .Cm K , M , G
137 or
138 .Cm T .
139 .It Fl m Ar savesize
140 Specify a fixed area which
141 .Nm HAMMER
142 may use as a memory log.
143 This area is currently unused.
144 The
145 .Ar savesize
146 is specified in bytes with a suffix of
147 .Cm K , M , G
148 or
149 .Cm T .
150 .It Fl u Ar undosize
151 Specify the size of the fixed UNDO/REDO FIFO.
152 The
153 .Ar undosize
154 is specified in bytes with a suffix of
155 .Cm K , M , G
156 or
157 .Cm T .
158 By default 0.1% of the root
159 volume's size is used, with a reasonable minimum and a reasonable cap.
160 The UNDO/REDO FIFO is used to sequence meta-data out to the media for
161 instant crash recovery.
162 .It Fl C Ar cachesize Ns Op Ns Cm \&: Ns Ar readahead
163 Refer to the same option in
164 .Xr hammer 8 .
165 .It Fl V Ar version
166 Specify the
167 .Nm HAMMER
168 file system version to format.
169 By default
170 .Nm
171 formats the file system using the highest production version number
172 supported by the
173 .Nm HAMMER
174 VFS by checking the
175 .Va vfs.hammer.supported_version
176 sysctl.
177 If you need to maintain compatibility with an older version of
178 .Nm HAMMER
179 you may specify the version with this option.
180 .El
181 .Pp
182 The
183 .Ar bootsize ,
184 .Ar savesize
185 and
186 .Ar undosize
187 must be given with a suffix of
188 .Cm K , M , G
189 or
190 .Cm T
191 meaning kilobyte, megabyte, gigabyte and terabyte.
192 Lower case can also be used for suffix.
193 .Sh EXIT STATUS
194 .Ex -std
195 .Sh EXAMPLES
196 Create a file system named
197 .Sq HOME
198 on
199 .Pa /dev/ad0s1d :
200 .Bd -literal -offset indent
201 newfs_hammer -L HOME /dev/ad0s1d
202 .Ed
203 .Pp
204 Create a file system named
205 .Sq TEMP
206 on
207 .Pa /dev/ad0s1d
208 and
209 .Pa /dev/ad1s1d :
210 .Bd -literal -offset indent
211 newfs_hammer -L TEMP /dev/ad0s1d /dev/ad1s1d
212 .Ed
213 .Sh SEE ALSO
214 .Xr disklabel32 5 ,
215 .Xr disklabel64 5 ,
216 .Xr HAMMER 5 ,
217 .Xr fdisk 8 ,
218 .Xr gpt 8 ,
219 .Xr hammer 8 ,
220 .Xr mount_hammer 8 ,
221 .Xr newfs 8
222 .Sh HISTORY
223 The
224 .Nm
225 utility first appeared in
226 .Dx 1.11 .
227 .Sh AUTHORS
228 .An Matthew Dillon Aq Mt dillon@backplane.com