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