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