1.\"
2.\" CDDL HEADER START
3.\"
4.\" The contents of this file are subject to the terms of the
5.\" Common Development and Distribution License (the "License").
6.\" You may not use this file except in compliance with the License.
7.\"
8.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9.\" or https://opensource.org/licenses/CDDL-1.0.
10.\" See the License for the specific language governing permissions
11.\" and limitations under the License.
12.\"
13.\" When distributing Covered Code, include this CDDL HEADER in each
14.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15.\" If applicable, add the following below this CDDL HEADER, with the
16.\" fields enclosed by brackets "[]" replaced with your own identifying
17.\" information: Portions Copyright [yyyy] [name of copyright owner]
18.\"
19.\" CDDL HEADER END
20.\"
21.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
22.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved.
23.\" Copyright (c) 2012 Cyril Plisko. All Rights Reserved.
24.\" Copyright (c) 2017 Datto Inc.
25.\" Copyright (c) 2018 George Melikov. All Rights Reserved.
26.\" Copyright 2017 Nexenta Systems, Inc.
27.\" Copyright (c) 2017 Open-E, Inc. All Rights Reserved.
28.\" Copyright (c) 2021, Colm Buckley <colm@tuatha.org>
29.\"
30.Dd March 16, 2022
31.Dt ZPOOL-CREATE 8
32.Os
33.
34.Sh NAME
35.Nm zpool-create
36.Nd create ZFS storage pool
37.Sh SYNOPSIS
38.Nm zpool
39.Cm create
40.Op Fl dfn
41.Op Fl m Ar mountpoint
42.Oo Fl o Ar property Ns = Ns Ar value Oc Ns …
43.Oo Fl o Sy feature@ Ns Ar feature Ns = Ns Ar value Oc
44.Op Fl o Ar compatibility Ns = Ns Sy off Ns | Ns Sy legacy Ns | Ns Ar file Ns Oo , Ns Ar file Oc Ns …
45.Oo Fl O Ar file-system-property Ns = Ns Ar value Oc Ns …
46.Op Fl R Ar root
47.Op Fl t Ar tname
48.Ar pool
49.Ar vdev Ns …
50.
51.Sh DESCRIPTION
52Creates a new storage pool containing the virtual devices specified on the
53command line.
54The pool name must begin with a letter, and can only contain
55alphanumeric characters as well as the underscore
56.Pq Qq Sy _ ,
57dash
58.Pq Qq Sy \&- ,
59colon
60.Pq Qq Sy \&: ,
61space
62.Pq Qq Sy \&\  ,
63and period
64.Pq Qq Sy \&. .
65The pool names
66.Sy mirror ,
67.Sy raidz ,
68.Sy draid ,
69.Sy spare
70and
71.Sy log
72are reserved, as are names beginning with
73.Sy mirror ,
74.Sy raidz ,
75.Sy draid ,
76and
77.Sy spare .
78The
79.Ar vdev
80specification is described in the
81.Sx Virtual Devices
82section of
83.Xr zpoolconcepts 7 .
84.Pp
85The command attempts to verify that each device specified is accessible and not
86currently in use by another subsystem.
87However this check is not robust enough
88to detect simultaneous attempts to use a new device in different pools, even if
89.Sy multihost Ns = Sy enabled .
90The administrator must ensure, that simultaneous invocations of any combination
91of
92.Nm zpool Cm replace ,
93.Nm zpool Cm create ,
94.Nm zpool Cm add ,
95or
96.Nm zpool Cm labelclear ,
97do not refer to the same device.
98Using the same device in two pools will result in pool corruption.
99.Pp
100There are some uses, such as being currently mounted, or specified as the
101dedicated dump device, that prevents a device from ever being used by ZFS.
102Other uses, such as having a preexisting UFS file system, can be overridden with
103.Fl f .
104.Pp
105The command also checks that the replication strategy for the pool is
106consistent.
107An attempt to combine redundant and non-redundant storage in a single pool,
108or to mix disks and files, results in an error unless
109.Fl f
110is specified.
111The use of differently-sized devices within a single raidz or mirror group is
112also flagged as an error unless
113.Fl f
114is specified.
115.Pp
116Unless the
117.Fl R
118option is specified, the default mount point is
119.Pa / Ns Ar pool .
120The mount point must not exist or must be empty, or else the root dataset
121will not be able to be be mounted.
122This can be overridden with the
123.Fl m
124option.
125.Pp
126By default all supported features are enabled on the new pool.
127The
128.Fl d
129option and the
130.Fl o Ar compatibility
131property
132.Pq e.g Fl o Sy compatibility Ns = Ns Ar 2020
133can be used to restrict the features that are enabled, so that the
134pool can be imported on other releases of ZFS.
135.Bl -tag -width "-t tname"
136.It Fl d
137Do not enable any features on the new pool.
138Individual features can be enabled by setting their corresponding properties to
139.Sy enabled
140with
141.Fl o .
142See
143.Xr zpool-features 7
144for details about feature properties.
145.It Fl f
146Forces use of
147.Ar vdev Ns s ,
148even if they appear in use or specify a conflicting replication level.
149Not all devices can be overridden in this manner.
150.It Fl m Ar mountpoint
151Sets the mount point for the root dataset.
152The default mount point is
153.Pa /pool
154or
155.Pa altroot/pool
156if
157.Sy altroot
158is specified.
159The mount point must be an absolute path,
160.Sy legacy ,
161or
162.Sy none .
163For more information on dataset mount points, see
164.Xr zfsprops 7 .
165.It Fl n
166Displays the configuration that would be used without actually creating the
167pool.
168The actual pool creation can still fail due to insufficient privileges or
169device sharing.
170.It Fl o Ar property Ns = Ns Ar value
171Sets the given pool properties.
172See
173.Xr zpoolprops 7
174for a list of valid properties that can be set.
175.It Fl o Ar compatibility Ns = Ns Sy off Ns | Ns Sy legacy Ns | Ns Ar file Ns Oo , Ns Ar file Oc Ns …
176Specifies compatibility feature sets.
177See
178.Xr zpool-features 7
179for more information about compatibility feature sets.
180.It Fl o Sy feature@ Ns Ar feature Ns = Ns Ar value
181Sets the given pool feature.
182See the
183.Xr zpool-features 7
184section for a list of valid features that can be set.
185Value can be either disabled or enabled.
186.It Fl O Ar file-system-property Ns = Ns Ar value
187Sets the given file system properties in the root file system of the pool.
188See
189.Xr zfsprops 7
190for a list of valid properties that can be set.
191.It Fl R Ar root
192Equivalent to
193.Fl o Sy cachefile Ns = Ns Sy none Fl o Sy altroot Ns = Ns Ar root
194.It Fl t Ar tname
195Sets the in-core pool name to
196.Ar tname
197while the on-disk name will be the name specified as
198.Ar pool .
199This will set the default of the
200.Sy cachefile
201property to
202.Sy none .
203This is intended
204to handle name space collisions when creating pools for other systems,
205such as virtual machines or physical machines whose pools live on network
206block devices.
207.El
208.
209.Sh EXAMPLES
210.\" These are, respectively, examples 1, 2, 3, 4, 11, 12 from zpool.8
211.\" Make sure to update them bidirectionally
212.Ss Example 1 : No Creating a RAID-Z Storage Pool
213The following command creates a pool with a single raidz root vdev that
214consists of six disks:
215.Dl # Nm zpool Cm create Ar tank Sy raidz Pa sda sdb sdc sdd sde sdf
216.
217.Ss Example 2 : No Creating a Mirrored Storage Pool
218The following command creates a pool with two mirrors, where each mirror
219contains two disks:
220.Dl # Nm zpool Cm create Ar tank Sy mirror Pa sda sdb Sy mirror Pa sdc sdd
221.
222.Ss Example 3 : No Creating a ZFS Storage Pool by Using Partitions
223The following command creates a non-redundant pool using two disk partitions:
224.Dl # Nm zpool Cm create Ar tank Pa sda1 sdb2
225.
226.Ss Example 4 : No Creating a ZFS Storage Pool by Using Files
227The following command creates a non-redundant pool using files.
228While not recommended, a pool based on files can be useful for experimental
229purposes.
230.Dl # Nm zpool Cm create Ar tank Pa /path/to/file/a /path/to/file/b
231.
232.Ss Example 5 : No Managing Hot Spares
233The following command creates a new pool with an available hot spare:
234.Dl # Nm zpool Cm create Ar tank Sy mirror Pa sda sdb Sy spare Pa sdc
235.
236.Ss Example 6 : No Creating a ZFS Pool with Mirrored Separate Intent Logs
237The following command creates a ZFS storage pool consisting of two, two-way
238mirrors and mirrored log devices:
239.Dl # Nm zpool Cm create Ar pool Sy mirror Pa sda sdb Sy mirror Pa sdc sdd Sy log mirror Pa sde sdf
240.
241.Sh SEE ALSO
242.Xr zpool-destroy 8 ,
243.Xr zpool-export 8 ,
244.Xr zpool-import 8
245