From owner-freebsd-fs@FreeBSD.ORG Fri Jun 19 04:12:39 2009 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 298741065670 for ; Fri, 19 Jun 2009 04:12:39 +0000 (UTC) (envelope-from james-freebsd-fs2@jrv.org) Received: from mail.jrv.org (adsl-70-243-84-13.dsl.austtx.swbell.net [70.243.84.13]) by mx1.freebsd.org (Postfix) with ESMTP id C14308FC16 for ; Fri, 19 Jun 2009 04:12:38 +0000 (UTC) (envelope-from james-freebsd-fs2@jrv.org) Received: from kremvax.housenet.jrv (kremvax.housenet.jrv [192.168.3.124]) by mail.jrv.org (8.14.3/8.14.3) with ESMTP id n5J4Cbm3058717; Thu, 18 Jun 2009 23:12:37 -0500 (CDT) (envelope-from james-freebsd-fs2@jrv.org) Authentication-Results: mail.jrv.org; domainkeys=pass (testing) header.from=james-freebsd-fs2@jrv.org DomainKey-Signature: a=rsa-sha1; s=enigma; d=jrv.org; c=nofws; q=dns; h=message-id:date:from:user-agent:mime-version:to:cc:subject: references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; b=adSRmLGBKvaXItMQcHbPnC9p+44l9LIh17ebIAvFopjwIQK1BAks4MT5VoF9iFiPM PbuFBTTz9IJ2fvmWnK+J5K/d2bXp6us8/eEzPkHZigy7Ivp1P+s5kzxgTzPGL8auNmh lpWXVnDGmKk+bXHke5G+kAZzSlFbDMapAuqwrhQ= Message-ID: <4A3B1020.2010305@jrv.org> Date: Thu, 18 Jun 2009 23:12:16 -0500 From: "James R. Van Artsdalen" User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: freebsd-fs References: In-Reply-To: X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Randy Bush Subject: Re: adding drive to raidz1 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jun 2009 04:12:39 -0000 As a feature suggestion why not reject an "zpool add" of a non-redundant vdev to a pool of redundant vdev's unless -f is given? A command of that sort is almost always a mistake so requiring -f would seem no hardship for anyone... Randy Bush wrote: > NAME STATE READ WRITE CKSUM > tank ONLINE 0 0 0 > raidz1 ONLINE 0 0 0 > ad4s3 ONLINE 0 0 0 > ad5s3 ONLINE 0 0 0 > ad6s1 ONLINE 0 0 0 > ad7s1 ONLINE 0 0 0 > As was said, a vdev (ad7s1) cannot be removed from a pool, and a device cannot be added to a raidz. However, I believe it is possible to attach a device to a single-device vdev such as ad7s1 and turn that vdev into a mirror, regaining redundancy without recreating the pool, perhaps something like: # zpool attach tank ad7s1 ad8s1 to get NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1 ONLINE 0 0 0 ad4s3 ONLINE 0 0 0 ad5s3 ONLINE 0 0 0 ad6s1 ONLINE 0 0 0 mirror ONLINE 0 0 0 ad7s1 ONLINE 0 0 0 ad8s1 ONLINE 0 0 0 (hand edited, not actual zpool output) Even if the pool the pool is to be rebuilt I suggest converting the naked vdevs to mirrors in the meantime to avoid disaster... PS. I prefer pools of mirrors over raidz anyway with such a small number of devices since it's easier to protect against many more kinds of system faults (i.e., power supply, cable, device firmware, host controller, driver, etc).