Creating a New Pool By Splitting a Mirrored ZFS Storage
Pool

A mirrored ZFS storage pool can be quickly cloned as a backup pool by
using the zpool split command.

Currently, this feature cannot be used to split a mirrored root pool.

You can use the zpool split command to detach disks
from a mirrored ZFS storage pool to create a new pool with one of the detached
disks. The new pool will have identical contents to the original mirrored
ZFS storage pool.

By default, a zpool split operation on a mirrored
pool detaches the last disk for the newly created pool. After the split operation,
import the new pool. For example:

You can identify which disk should be used for the newly created pool
by specifying it with the zpool split command. For example:

# zpool split tank tank2 c1t0d0

Before the actual split operation occurs, data in memory is flushed
to the mirrored disks. After the data is flushed, the disk is detached from
the pool and given a new pool GUID. A new pool GUID is generated so that the
pool can be imported on the same system on which it was split.

If the pool to be split has non-default dataset mount points and the
new pool is created on the same system, then you will need to use the zpool
split-R option to identify an alternate root directory
for the new pool so that any existing mount points do not conflict. For example:

# zpool split -R /tank2 tank tank2

If you don't use the zpool split-R option
and you can see that mount points conflict when you attempt to import the
new pool, import the new pool with the -R option. If the new
pool is created on a different system, then specifying an alternate root directory
should not be necessary unless mount point conflicts occur.

Review the following considerations before using the zpool
split feature:

This feature is not available for a RAIDZ configuration or
a non-redundant pool of multiple disks.

Data and application operations should be quiesced before
attempting a zpool split operation.

Having disks that honor, rather than ignore, the disk's flush
write cache command is important.

A pool cannot be split if resilvering is in process.

Splitting a mirrored pool is optimal when composed of two
to three disks, where the last disk in the original pool is used for the newly
created pool. Then, you can use the zpool attach command
to recreate your original mirrored storage pool or convert your newly created
pool into a mirrored storage pool. No way currently exists to create a new mirrored pool from an existing mirrored
pool by using this feature.

If the existing pool is a three-way mirror, then the new pool
will contain one disk after the split operation. If the existing pool is
a two-way mirror of two disks, then the outcome is two non-redundant pools
of two disks. You will need to attach two additional disks to convert the
non-redundant pools to mirrored pools.

A good way to keep your data redundant during a split operation
is to split a mirrored storage pool that is composed of three disks so that
the original pool is comprised of two mirrored disks after the split operation.

Example 4–7 Splitting a Mirrored ZFS Pool

In the following example, a mirrored storage pool called trinity,
with three disks, c1t0d0, c1t2d0 and c1t3d0 is split. The two resulting pools are the mirrored pool trinity, with disks c1t0d0 and c1t2d0,
and the new pool, neo, with disk c1t3d0.
Each pool has identical content.