Merge branch 'vendor/LESS'
[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 May 23, 2011
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 of a larger cluster.
57 Regardless, you must still format each block device separately using
58 this command.
59 .Pp
60 By default the
61 .Nm
62 program creates three local MASTER PFSs: "LOCAL", "BOOT", and "ROOT".
63 The "LOCAL" PFS is mandatory and is always created.  It represents an
64 unclustered mount point representative of the just block device you
65 formatted.
66 .Pp
67 The "BOOT" and "ROOT" PFSs are optional and will be created by default.
68 These provide convenient initially non-clustered mount points for your
69 boot or root filesystem.
70 These PFSs are not created if the
71 .Fl L Ar label
72 option is specified.
73 You can specify
74 .Fl L Ar none
75 if you do not want
76 .Nm
77 to create any PFSs other than "LOCAL".
78 .Pp
79 Generally speaking this command is not used to create clusters.  It is used
80 to format volumes which are then made available for additional clustering
81 commands.
82 Once formatted the device@LOCAL volume can be mounted in order to make the
83 block device available to the cluster.
84 You can then use
85 .Xr hammer2 8
86 directives to construct your cluster, including the creation of additional
87 PFSs within various volumes.
88 If you are managing several machines, or a large number of machines,
89 .Fl L Ar none
90 is typically specified and each machine's ROOT is individually named,
91 for example, "FUBAR-ROOT".
92 .Pp
93 .Nm HAMMER2
94 file systems are sector-size agnostic, however the
95 .Dx
96 implementation requires the sector size to be no larger than 16K.
97 .Nm HAMMER2
98 file systems start at a relative offset of 0 and leave no room for
99 in-band disklabels (old, traditional BSD labels).
100 They may only be created using out-of-band disk labels, which is the
101 default on
102 .Dx
103 via
104 .Po
105 .Xr disklabel 5
106 or
107 .Xr gpt 8
108 labels
109 .Pc ,
110 or with
111 old style disklabels as long as
112 the partition does not overlap the label area (have a starting sector
113 greater than 16).
114 .Pp
115 .Nm HAMMER2
116 file systems are designed for large storage systems, up to 1 Exabyte, and
117 may not operate efficiently on small storage systems.
118 The minimum recommended file system size is 50GB.
119 In addition,
120 .Nm HAMMER2
121 file systems operating normally, with automatic snapshots, do not
122 immediately reclaim space when files are deleted.
123 A regular system maintenance job runs once a day by
124 .Xr periodic 8
125 to handle reclamation.
126 .Pp
127 .Nm HAMMER2
128 works best when the machine's normal workload would not otherwise fill
129 the file system up in the course of 60 days of operation.
130 .Pp
131 The options are as follows:
132 .Bl -tag -width indent
133 .It Fl b Ar bootsize
134 Specify a fixed area in which a boot related kernel and data can be stored.
135 The
136 .Ar bootsize
137 is specified in bytes.
138 By default a boot area of approximately 4MB will be created.
139 .It Fl f
140 Force operation.
141 This is needed for the creation of a
142 .Nm HAMMER2
143 file system less than 10GB size or
144 with less than 500MB UNDO/REDO FIFO.
145 This should not be used under normal circumstances.
146 .It Fl r Ar redosize
147 Specify the size of the fixed REDO FIFO.
148 The
149 .Ar redosize
150 is specified in bytes.
151 By default 0.1% of the root
152 volume's size is used, with a reasonable minimum and a reasonable cap.
153 The UNDO/REDO FIFO is used to sequence meta-data out to the media for
154 instant crash recovery.
155 .It Fl V Ar version
156 Specify the
157 .Nm HAMMER2
158 file system version to format.
159 By default
160 .Nm
161 formats the file system using the highest production version number
162 supported by the
163 .Nm HAMMER2
164 VFS by checking the
165 .Va vfs.hammer2.supported_version
166 sysctl.
167 If you need to maintain compatibility with an older version of
168 .Nm HAMMER2
169 you may specify the version with this option.
170 .It Fl L Ar label
171 By default
172 .Nm
173 creates three local master PFSs on the new volume: "LOCAL", "BOOT", and "ROOT".
174 If you specify one or more label options
175 .Nm
176 will not automatically create "BOOT" or "ROOT".
177 "LOCAL" is always created and should never be specified.
178 If you don't want any extra PFSs to be created, use
179 .Fl L Ar none .
180 .Pp
181 Typically simple HAMMER2 filesystems just use the defaults and
182 .Fl L Ar none
183 is used for more complex filesystem, followed by mounting device@LOCAL
184 and using
185 .Nm hammer2
186 directives to create the desired cluster.
187 .El
188 .Pp
189 The
190 .Ar bootsize
191 and
192 .Ar redosize
193 must be given with a suffix of
194 .Cm K , M , G
195 or
196 .Cm T
197 meaning kilobyte, megabyte, gigabyte and terabyte.
198 Lower case can also be used for suffix.
199 These options create reserved blocks of space on the target volume
200 but are not currently used by the filesystem for anything.
201 .Sh EXAMPLES
202 .Bd -literal -offset indent
203 newfs_hammer2 -L SATURN-HOME /dev/ad0s1d
204 .Ed
205 .Pp
206 Create a file system named
207 .Sq SATURN-HOME
208 on
209 .Pa /dev/ad0s1d .
210 .Sh DIAGNOSTICS
211 Exit status is 0 on success and 1 on error.
212 .Sh SEE ALSO
213 .Xr disklabel32 5 ,
214 .Xr disklabel64 5 ,
215 .Xr HAMMER2 5 ,
216 .Xr fdisk 8 ,
217 .Xr gpt 8 ,
218 .Xr newfs 8
219 .Sh HISTORY
220 The
221 .Nm
222 utility first appeared in
223 .Dx 1.11 .
224 .Sh AUTHORS
225 .An Matthew Dillon Aq Mt dillon@backplane.com