sbin/newfs_hammer2: Drop -Isbin/hammer2 in Makefile
[dragonfly.git] / sbin / newfs_hammer2 / newfs_hammer2.8
1 .\" Copyright (c) 2011-2014 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 August 26, 2015
34 .Dt NEWFS_HAMMER2 8
35 .Os
36 .Sh NAME
37 .Nm newfs_hammer2
38 .Nd construct a new HAMMER2 file system
39 .Sh SYNOPSIS
40 .Nm
41 .Op Fl f
42 .Op Fl b Ar bootsize
43 .Op Fl r Ar redosize
44 .Op Fl V Ar version
45 .Op Fl L Ar label ...
46 .Ar special
47 .Sh DESCRIPTION
48 The
49 .Nm
50 utility prepares a
51 .Nm HAMMER2
52 volume on the specified block device.
53 .Nm HAMMER2
54 volumes can contain any number of named PFSs (Pseudo FileSystems).
55 Each named PFS can operate independently or be a constituent of
56 a larger cluster.
57 Regardless, you must still format each block device separately using
58 this command.
59 .Pp
60 The
61 .Nm
62 program always creates a PFS called "LOCAL" which may be used for
63 device-specific configuration.  This PFS should never be used for generic
64 data.
65 .Pp
66 If no
67 .Fl L
68 option is specified,
69 .Nm
70 will use the partition id to create a default label for you.
71 .Bl -tag -width indent
72 .It partition 'a'
73 "BOOT" is created.
74 .It partition 'd'
75 "ROOT" is created.
76 .It otherwise
77 "DATA" is created.
78 .El
79 .Pp
80 You can override the default PFS name by specifying one or more
81 .Fl L
82 options.
83 By default these PFSs all represent unclustered mount points.
84 .Pp
85 You can specify
86 .Fl L Ar none
87 if you do not want
88 .Nm
89 to create any PFSs other than "LOCAL".
90 .Pp
91 Generally speaking this command is not used to create clusters.  It is used
92 to format volumes which are then made available for additional clustering
93 commands.
94 Once formatted the device@LOCAL volume can be mounted in order to make it
95 and all other PFSs created on the volume available to the cluster.
96 .Pp
97 You can use
98 .Xr hammer2 8
99 directives to construct your cluster, including the creation of additional
100 PFSs within various volumes.
101 If you are managing several machines, or a large number of machines,
102 .Fl L Ar none
103 is typically specified to reduce clutter.
104 .Pp
105 .Nm HAMMER2
106 file systems are sector-size agnostic, however the
107 .Dx
108 implementation requires the sector size to be no larger than 16K.
109 .Nm HAMMER2
110 file systems start at a relative offset of 0 and leave no room for
111 in-band disklabels (old, traditional BSD labels).
112 They may only be created using out-of-band disk labels, which is the
113 default on
114 .Dx
115 via
116 .Po
117 .Xr disklabel 5
118 or
119 .Xr gpt 8
120 labels
121 .Pc ,
122 or with
123 old style disklabels as long as
124 the partition does not overlap the label area (have a starting sector
125 greater than 16).
126 .Pp
127 .Nm HAMMER2
128 file systems are designed for large storage systems, up to 1 Exabyte, and
129 may not operate efficiently on small storage systems.
130 The minimum recommended file system size is 50GB.
131 In addition,
132 .Nm HAMMER2
133 file systems operating normally, with automatic snapshots, do not
134 immediately reclaim space when files are deleted.
135 A regular system maintenance job runs once a day by
136 .Xr periodic 8
137 to handle reclamation.
138 .Pp
139 .Nm HAMMER2
140 works best when the machine's normal workload would not otherwise fill
141 the file system up in the course of 60 days of operation.
142 .Pp
143 The options are as follows:
144 .Bl -tag -width indent
145 .It Fl b Ar bootsize
146 Specify a fixed area in which a boot related kernel and data can be stored.
147 The
148 .Ar bootsize
149 is specified in bytes.
150 By default a boot area of approximately 64MB will be created.
151 This area is not currently used for booting and may be repurposed in the
152 future.
153 .It Fl f
154 Force operation.
155 This is needed for the creation of a
156 .Nm HAMMER2
157 file system less than 10GB size or
158 with less than 500MB UNDO/REDO FIFO.
159 This should not be used under normal circumstances.
160 .It Fl r Ar redosize
161 Specify the size of the fixed REDO FIFO.
162 The
163 .Ar redosize
164 is specified in bytes.
165 By default 0.1% of the root
166 volume's size is used, with a reasonable minimum and a reasonable cap.
167 The UNDO/REDO FIFO is used to sequence meta-data out to the media for
168 instant crash recovery.
169 .It Fl V Ar version
170 Specify the
171 .Nm HAMMER2
172 file system version to format.
173 By default
174 .Nm
175 formats the file system using the highest production version number
176 supported by the
177 .Nm HAMMER2
178 VFS by checking the
179 .Va vfs.hammer2.supported_version
180 sysctl.
181 If you need to maintain compatibility with an older version of
182 .Nm HAMMER2
183 you may specify the version with this option.
184 .It Fl L Ar label
185 By default
186 .Nm
187 always creates a local master PFSs on the new volume called "LOCAL",
188 and will conditionally also create "BOOT", "ROOT", or "DATA" depending
189 on the partition ('b' creates "BOOT", 'd' creates "ROOT", and any other
190 partition creates "DATA").
191 .Pp
192 If you specify one or more label options to create your own named local
193 PFSs,
194 .Nm
195 will not create any conditional PFSs.
196 However, "LOCAL" is still always created and should not be
197 specified with this option.
198 If you don't want any PFSs to be created (other than "LOCAL"), use
199 .Fl L Ar none .
200 .Pp
201 Typically simple HAMMER2 filesystems just use the defaults and
202 .Fl L Ar none
203 is used for more complex filesystem, followed by mounting device@LOCAL
204 and using
205 .Nm hammer2
206 directives to create the desired cluster.
207 .El
208 .Pp
209 The
210 .Ar bootsize
211 and
212 .Ar redosize
213 must be given with a suffix of
214 .Cm K , M , G
215 or
216 .Cm T
217 meaning kilobyte, megabyte, gigabyte and terabyte.
218 Lower case can also be used for suffix.
219 These options create reserved blocks of space on the target volume
220 but are not currently used by the filesystem for anything.
221 .Sh EXIT STATUS
222 .Ex -std
223 .Sh EXAMPLES
224 .Bd -literal -offset indent
225 newfs_hammer2 -L SATURN-HOME /dev/ad0s1d
226 .Ed
227 .Pp
228 Create a file system named
229 .Sq SATURN-HOME
230 on
231 .Pa /dev/ad0s1d .
232 .Sh SEE ALSO
233 .Xr disklabel32 5 ,
234 .Xr disklabel64 5 ,
235 .Xr HAMMER2 5 ,
236 .Xr fdisk 8 ,
237 .Xr gpt 8 ,
238 .Xr mount_hammer2 8 ,
239 .Xr newfs 8
240 .Sh HISTORY
241 The
242 .Nm
243 utility first appeared in
244 .Dx 3.1
245 but was not enabled unconditionally until
246 .Dx 4.9 .
247 .Sh AUTHORS
248 .An Matthew Dillon Aq Mt dillon@backplane.com