mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 11:29:36 +03:00
b1e46f869e
Currently, zpool add allows users to add top-level vdevs that have different ashifts but doing so prevents users from being able to perform a top-level vdev removal. Often times consumers may not realize that they have mismatched ashifts until the top-level removal fails. This feature adds ashift validation to the zpool add command and will fail the operation if the sector size of the specified vdev does not match the existing pool. This behavior can be disabled by using the -f flag. In addition, new flags have been added to provide fine-grained control to disable specific checks. These flags are: --allow-in-use --allow-ashift-mismatch --allow-replicaton-mismatch The force flag will disable all of these checks. Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Mark Maybee <mmaybee@delphix.com> Signed-off-by: George Wilson <gwilson@delphix.com> Closes #15509
139 lines
4.3 KiB
Groff
139 lines
4.3 KiB
Groff
.\" CDDL HEADER START
|
|
.\"
|
|
.\" The contents of this file are subject to the terms of the
|
|
.\" Common Development and Distribution License (the "License").
|
|
.\" You may not use this file except in compliance with the License.
|
|
.\"
|
|
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
|
.\" or https://opensource.org/licenses/CDDL-1.0.
|
|
.\" See the License for the specific language governing permissions
|
|
.\" and limitations under the License.
|
|
.\"
|
|
.\" When distributing Covered Code, include this CDDL HEADER in each
|
|
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
|
.\" If applicable, add the following below this CDDL HEADER, with the
|
|
.\" fields enclosed by brackets "[]" replaced with your own identifying
|
|
.\" information: Portions Copyright [yyyy] [name of copyright owner]
|
|
.\"
|
|
.\" CDDL HEADER END
|
|
.\"
|
|
.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
|
|
.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved.
|
|
.\" Copyright (c) 2012 Cyril Plisko. All Rights Reserved.
|
|
.\" Copyright (c) 2017 Datto Inc.
|
|
.\" Copyright (c) 2018 George Melikov. All Rights Reserved.
|
|
.\" Copyright 2017 Nexenta Systems, Inc.
|
|
.\" Copyright (c) 2017 Open-E, Inc. All Rights Reserved.
|
|
.\" Copyright (c) 2024 by Delphix. All Rights Reserved.
|
|
.\"
|
|
.Dd March 8, 2024
|
|
.Dt ZPOOL-ADD 8
|
|
.Os
|
|
.
|
|
.Sh NAME
|
|
.Nm zpool-add
|
|
.Nd add vdevs to ZFS storage pool
|
|
.Sh SYNOPSIS
|
|
.Nm zpool
|
|
.Cm add
|
|
.Op Fl fgLnP
|
|
.Op Fl -allow-in-use -allow-replication-mismatch -allow-ashift-mismatch
|
|
.Oo Fl o Ar property Ns = Ns Ar value Oc
|
|
.Ar pool vdev Ns …
|
|
.
|
|
.Sh DESCRIPTION
|
|
Adds the specified virtual devices to the given pool.
|
|
The
|
|
.Ar vdev
|
|
specification is described in the
|
|
.Em Virtual Devices
|
|
section of
|
|
.Xr zpoolconcepts 7 .
|
|
The behavior of the
|
|
.Fl f
|
|
option, and the device checks performed are described in the
|
|
.Nm zpool Cm create
|
|
subcommand.
|
|
.Bl -tag -width Ds
|
|
.It Fl f
|
|
Forces use of
|
|
.Ar vdev Ns s ,
|
|
even if they appear in use, have conflicting ashift values, or specify
|
|
a conflicting replication level.
|
|
Not all devices can be overridden in this manner.
|
|
.It Fl g
|
|
Display
|
|
.Ar vdev ,
|
|
GUIDs instead of the normal device names.
|
|
These GUIDs can be used in place of
|
|
device names for the zpool detach/offline/remove/replace commands.
|
|
.It Fl L
|
|
Display real paths for
|
|
.Ar vdev Ns s
|
|
resolving all symbolic links.
|
|
This can be used to look up the current block
|
|
device name regardless of the
|
|
.Pa /dev/disk
|
|
path used to open it.
|
|
.It Fl n
|
|
Displays the configuration that would be used without actually adding the
|
|
.Ar vdev Ns s .
|
|
The actual pool creation can still fail due to insufficient privileges or
|
|
device sharing.
|
|
.It Fl P
|
|
Display real paths for
|
|
.Ar vdev Ns s
|
|
instead of only the last component of the path.
|
|
This can be used in conjunction with the
|
|
.Fl L
|
|
flag.
|
|
.It Fl o Ar property Ns = Ns Ar value
|
|
Sets the given pool properties.
|
|
See the
|
|
.Xr zpoolprops 7
|
|
manual page for a list of valid properties that can be set.
|
|
The only property supported at the moment is
|
|
.Sy ashift .
|
|
.It Fl -allow-ashift-mismatch
|
|
Disable the ashift validation which allows mismatched ashift values in the
|
|
pool.
|
|
Adding top-level
|
|
.Ar vdev Ns s
|
|
with different sector sizes will prohibit future device removal operations, see
|
|
.Xr zpool-remove 8 .
|
|
.It Fl -allow-in-use
|
|
Allow vdevs to be added even if they might be in use in another pool.
|
|
.It Fl -allow-replication-mismatch
|
|
Allow vdevs with conflicting replication levels to be added to the pool.
|
|
.El
|
|
.
|
|
.Sh EXAMPLES
|
|
.\" These are, respectively, examples 5, 13 from zpool.8
|
|
.\" Make sure to update them bidirectionally
|
|
.Ss Example 1 : No Adding a Mirror to a ZFS Storage Pool
|
|
The following command adds two mirrored disks to the pool
|
|
.Ar tank ,
|
|
assuming the pool is already made up of two-way mirrors.
|
|
The additional space is immediately available to any datasets within the pool.
|
|
.Dl # Nm zpool Cm add Ar tank Sy mirror Pa sda sdb
|
|
.
|
|
.Ss Example 2 : No Adding Cache Devices to a ZFS Pool
|
|
The following command adds two disks for use as cache devices to a ZFS storage
|
|
pool:
|
|
.Dl # Nm zpool Cm add Ar pool Sy cache Pa sdc sdd
|
|
.Pp
|
|
Once added, the cache devices gradually fill with content from main memory.
|
|
Depending on the size of your cache devices, it could take over an hour for
|
|
them to fill.
|
|
Capacity and reads can be monitored using the
|
|
.Cm iostat
|
|
subcommand as follows:
|
|
.Dl # Nm zpool Cm iostat Fl v Ar pool 5
|
|
.
|
|
.Sh SEE ALSO
|
|
.Xr zpool-attach 8 ,
|
|
.Xr zpool-import 8 ,
|
|
.Xr zpool-initialize 8 ,
|
|
.Xr zpool-online 8 ,
|
|
.Xr zpool-remove 8
|