zfs should only avoid writing to a failing non-redundant top-level vdev
zfs - Zettabyte File System
In metaslab_alloc_dva() we avoid writing single-copy data to devices that are degraded or have write errors. The problem is that if a device has a spare or mirror then we will not write to those device even though one of leaf vdevs may be healthy. This is suboptimal and instead we should only avoid writing to top-level vdevs that are failing and have no other redundancy.
Updated by Electric Monk about 5 years ago
- Status changed from New to Closed
commit 2e4c998613148111f2fc5371085331ffb39122ff Author: George Wilson <email@example.com> Date: 2014-07-19T20:19:25.000Z 4976 zfs should only avoid writing to a failing non-redundant top-level vdev 4977 mdb error in ::spa_space from space_cb() if a metaslab's ms_sm is NULL 4978 ztest fails in get_metaslab_refcount() 4979 extend free space histogram to device and pool 4980 metaslabs should have a fragmentation metric 4981 remove fragmented ops vector from block allocator 4982 space_map object should proactively upgrade when feature is enabled 4983 need to collect metaslab information via mdb 4984 device selection should use fragmentation metric Reviewed by: Matthew Ahrens <firstname.lastname@example.org> Reviewed by: Adam Leventhal <email@example.com> Reviewed by: Christopher Siden <firstname.lastname@example.org> Approved by: Garrett D'Amore <email@example.com>