- 2.1 ZFS Pool Concepts
- 2.2 Creating a Dynamic Stripe
- 2.3 Creating a Pool with Mirrored Devices
- 2.4 Creating a Pool with RAID-Z Devices
- 2.5 Creating a Spare in a Storage Pool
- 2.6 Adding a Spare Vdev to a Second Storage Pool
- 2.7 Replacing Bad Devices Automatically
- 2.8 Locating Disks for Replacement
- 2.9 Example of a Misconfigured Pool
2.9 Example of a Misconfigured Pool
The following is an example of a ZFS pool that started as a RAID-Z pool and needed more space. The administrator just added the new disks to the pool. The status output follows.
$ zpool status -v pool: mypool state: ONLINE status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scrub: resilver completed with 0 errors on Tue Nov 18 17:05:10 2008 config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 18 raidz1 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 c2t5d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 c2t11d0 ONLINE 0 0 0 c2t12d0 ONLINE 0 0 18 c2t10d0 ONLINE 0 0 0 c2t13d0 ONLINE 0 0 0 spares c2t8d0 AVAIL errors: Permanent errors have been detected in the following files: mypool/dataset/u01:<0x2a07a> mypool/dataset/u01:<0x2da66>
c2t9d0, c2t10d0, c2t11d0, c2t12d0, and c2t13d0 are single-disk vdevs. They have no redundancy. The spare vdev will not help because there is nothing to resilver with when one of the single-disk vdevs fails. In this case, ZFS has detected permanent errors in mypool/dataset/u01 and has suggested an action of restoring the files from backup or restoring the whole pool from backup.
The ZFS pool is in danger of a single disk failure that may destroy the whole pool. The only way to get this pool to be redundant is to mirror all the single-vdev drives.
Figure 2.7 represents the ZFS pool mypool. The figure shows five single-disk vdevs with a single RAID-Z vdev. Any damage to the single disks will cause ZFS to lose data, or, worse, the pool will fail.
Figure 2.7 The ZFS pool mypool has a single RAID-Z vdev and five single-disk vdevs
You can correct this configuration for pool redundancy in two ways:
- If there are enough disks, you can mirror the single-disk vdevs.
- You can back up all the file systems and re-create the pool. Then do a full restore of the file systems.
The procedure to replace a single-disk vdev in the preceding example is to mirror the drive in question and then detach the bad drive. What follows is the command-line procedure:
- Mirror the drive with bad sector problems:
# zpool replace mypool <baddisk> <gooddisk>
- Detach the bad disk:
# zpool detach mypool <baddisk>