Project

General

Profile

Bug #4976

zfs should only avoid writing to a failing non-redundant top-level vdev

Added by Christopher Siden about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2014-07-09
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

George Wilson:

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.

History

#1

Updated by Electric Monk about 5 years ago

  • Status changed from New to Closed

git commit 2e4c998613148111f2fc5371085331ffb39122ff

commit  2e4c998613148111f2fc5371085331ffb39122ff
Author: George Wilson <george.wilson@delphix.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 <mahrens@delphix.com>
    Reviewed by: Adam Leventhal <adam.leventhal@delphix.com>
    Reviewed by: Christopher Siden <christopher.siden@delphix.com>
    Approved by: Garrett D'Amore <garrett@damore.org>

Also available in: Atom PDF