From owner-freebsd-questions@FreeBSD.ORG Tue Dec 1 18:33:23 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE41D1065672 for ; Tue, 1 Dec 2009 18:33:23 +0000 (UTC) (envelope-from listreader@lazlarlyricon.com) Received: from proxy2.bredband.net (proxy2.bredband.net [195.54.101.72]) by mx1.freebsd.org (Postfix) with ESMTP id 860D08FC1A for ; Tue, 1 Dec 2009 18:33:23 +0000 (UTC) Received: from ipb2.telenor.se (195.54.127.165) by proxy2.bredband.net (7.3.140.3) id 4AD3E1BC015F041A for freebsd-questions@freebsd.org; Tue, 1 Dec 2009 19:33:22 +0100 X-SMTPAUTH-B2: X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnNNAGfwFEtV44PPPGdsb2JhbACBTpdGglUBAQEBN7xJhDEEgWo X-IronPort-AV: E=Sophos;i="4.47,322,1257116400"; d="scan'208";a="10156810" Received: from c-cf83e355.09-42-6e6b7010.cust.bredbandsbolaget.se (HELO lazlar.kicks-ass.net) ([85.227.131.207]) by ipb2.telenor.se with ESMTP; 01 Dec 2009 19:33:21 +0100 Message-ID: <4B156170.5000003@lazlarlyricon.com> Date: Tue, 01 Dec 2009 19:33:20 +0100 From: Rolf Nielsen User-Agent: Thunderbird 2.0.0.23 (X11/20091130) MIME-Version: 1.0 To: Dan Nelson References: <4B155562.30109@lazlarlyricon.com> <20091201175500.GN89004@dan.emsphone.com> In-Reply-To: <20091201175500.GN89004@dan.emsphone.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: ZFS pools of consisting of several mirrors X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Dec 2009 18:33:23 -0000 Dan Nelson wrote: > In the last episode (Dec 01), Rolf Nielsen said: >> In experimenting a bit with ZFS, I, among other things, tried something >> like this >> >> zpool create -R /test test mirror file[01]0 mirror file[01]1 mirror >> file[01]2 mirror file[01]3 mirror file[01]4 mirror file[01]5 >> >> This, according to zpool status, gives me a (file backed) pool consisting >> of six mirrors, each mirror consisting of two files. Now for my question. >> Exactly how is the pool built? Is it... >> >> 1. A RAID0 of the six mirrors? >> >> 2. A mirror of two RAID0 arrays, each array consisting of the six files >> file0[0-5] and file1[0-5] respectively? >> >> 3 and 4. Like 1 and 2 above, but with JBOD instead of RAID0? >> >> 5. Some other way I haven't thought about? >> >> I guess it's 1 or 3, as the zpool status output shows me six mirrors, >> but which is it? And, provided my guess is correct, is there a way to >> implement 2 or 4 without involving geom_stripe or geom_concat? > > It's 1/3/5. Each mirror is independant, and writes are balanced across the > mirrors based on space usage. If you add another mirror to grow the pool, > it will get most of the writes until the usages balance out. > > You usually don't want to build an array with options 2 or 4, since a single > drive failure will degrade the entire mirror half. Consider if you have > > concat00 -> file01 file02 file03 file04 file05 > concat01 -> file11 file12 file13 file14 file15 > mirror0 -> concat0 concat1 > > If file01 fails, concat00 fails, causing mirror0 to become degraded. When > you replace file01, mirror0 will have to resynch all of concat00 from > concat01 since it doesn't know about the subdevices. If you don't replace > file01, and then file15 fails, you have lost your entire volume (unless you > do some hackery to swap file05 and file15 to create a functioning concat01). > Good point. Thanks for the reply.