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 31, 2015
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 \&Ef
43.Op Fl b Ar bootsize
44.Op Fl m Ar savesize
45.Op Fl u Ar undosize
46.Op Fl V Ar version
47.Ar special ...
48.Sh DESCRIPTION
49The
50.Nm
51utility creates a
52.Nm HAMMER
53file system on device(s)
54.Ar special .
55If multiple devices are specified a single
56.Nm HAMMER
57file system is created
58which spans all of them.
59Each
60.Ar special
61will constitute a volume which the
62.Nm HAMMER
63file system is built on.
64The first
65.Ar special
66specified becomes the
67.Ar root-volume .
68.Nm HAMMER
69file systems are sector-size agnostic, however the
70.Dx
71implementation requires the sector size to be no larger than 16KB.
72.Nm HAMMER
73file systems start at a relative offset of 0 and may only be created
74under out-of-band disk labels
75.Po
76.Xr disklabel64 5
77or
78.Xr gpt 8
79labels
80.Pc ,
81or in
82.Xr disklabel32 5
83partitions which do not overlap the label area (have a starting sector
84greater than 16).
85.Pp
86.Nm HAMMER
87file systems are designed for large storage systems, up to 1 Exabyte, and
88will not operate efficiently on small storage systems.
89The minimum recommended file system size is 50GB.
90.Nm HAMMER
91must reserve 500MB to 1GB of its storage for reblocking and UNDO/REDO.
92In addition,
93.Nm HAMMER
94file systems operating normally, with full history
95retention and daily snapshots, do not immediately reclaim space when
96files are deleted.
97A regular system maintenance job runs once a day by
98.Xr periodic 8
99to handle reclamation.
100.Pp
101.Nm HAMMER
102works best when the machine's normal workload would not otherwise fill
103the file system up in the course of 60 days of operation.
104.Pp
105The options are as follows:
106.Bl -tag -width indent
107.It Fl L Ar label
108All
109.Nm HAMMER
110file systems must be named and names should be unique on a
111per-machine basis, although
112.Nm
113does not prevent from making file systems with the same label.
114.It Fl b Ar bootsize
115Specify a fixed area in which a boot related kernel and data can be stored.
116This area is currently unused.
117The
118.Ar bootsize
119is specified in bytes.
120.It Fl f
121Force operation.
122This is needed for the creation of a
123.Nm HAMMER
124file system less than 10GB size or
125with less than 500MB UNDO/REDO FIFO.
126This should not be used under normal circumstances.
127.It Fl E
128Use TRIM to erase the device's data before creating the file system.
129The underlying device must have the TRIM sysctl enabled.
130Only devices that support TRIM will have such a sysctl option
131.Va ( kern.cam.da.X.trim_enabled ) .
132.It Fl m Ar savesize
133Specify a fixed area which
134.Nm HAMMER
135may use as a memory log.
136This area is currently unused.
137The
138.Ar savesize
139is specified in bytes.
140.It Fl u Ar undosize
141Specify the size of the fixed UNDO/REDO FIFO.
142The
143.Ar undosize
144is specified in bytes.
145By default 0.1% of the root
146volume's size is used, with a reasonable minimum and a reasonable cap.
147The UNDO/REDO FIFO is used to sequence meta-data out to the media for
148instant crash recovery.
149.It Fl V Ar version
150Specify the
151.Nm HAMMER
152file system version to format.
153By default
154.Nm
155formats the file system using the highest production version number
156supported by the
157.Nm HAMMER
158VFS by checking the
159.Va vfs.hammer.supported_version
160sysctl.
161If you need to maintain compatibility with an older version of
162.Nm HAMMER
163you may specify the version with this option.
164.El
165.Pp
166The
167.Ar bootsize ,
168.Ar savesize
169and
170.Ar undosize
171must be given with a suffix of
172.Cm K , M , G
173or
174.Cm T
175meaning kilobyte, megabyte, gigabyte and terabyte.
176Lower case can also be used for suffix.
177.Sh EXIT STATUS
178.Ex -std
179.Sh EXAMPLES
180Create a file system named
181.Sq HOME
182on
183.Pa /dev/ad0s1d :
184.Bd -literal -offset indent
185newfs_hammer -L HOME /dev/ad0s1d
186.Ed
187.Pp
188Create a file system named
189.Sq TEMP
190on
191.Pa /dev/ad0s1d
192and
193.Pa /dev/ad1s1d :
194.Bd -literal -offset indent
195newfs_hammer -L TEMP /dev/ad0s1d /dev/ad1s1d
196.Ed
197.Sh SEE ALSO
198.Xr disklabel32 5 ,
199.Xr disklabel64 5 ,
200.Xr HAMMER 5 ,
201.Xr fdisk 8 ,
202.Xr gpt 8 ,
203.Xr hammer 8 ,
204.Xr mount_hammer 8 ,
205.Xr newfs 8
206.Sh HISTORY
207The
208.Nm
209utility first appeared in
210.Dx 1.11 .
211.Sh AUTHORS
212.An Matthew Dillon Aq Mt dillon@backplane.com
213