From owner-freebsd-questions@FreeBSD.ORG Wed Jan 26 20:42:35 2011 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 3FD28106566C for ; Wed, 26 Jan 2011 20:42:35 +0000 (UTC) (envelope-from dan@dan.emsphone.com) Received: from email2.allantgroup.com (email2.emsphone.com [199.67.51.116]) by mx1.freebsd.org (Postfix) with ESMTP id BFC058FC18 for ; Wed, 26 Jan 2011 20:42:34 +0000 (UTC) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by email2.allantgroup.com (8.14.4/8.14.4) with ESMTP id p0QKgXai048949 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 26 Jan 2011 14:42:33 -0600 (CST) (envelope-from dan@dan.emsphone.com) Received: from dan.emsphone.com (smmsp@localhost [127.0.0.1]) by dan.emsphone.com (8.14.4/8.14.4) with ESMTP id p0QKgXon056774 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 26 Jan 2011 14:42:33 -0600 (CST) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.14.4/8.14.4/Submit) id p0QKgX77056769; Wed, 26 Jan 2011 14:42:33 -0600 (CST) (envelope-from dan) Date: Wed, 26 Jan 2011 14:42:33 -0600 From: Dan Nelson To: Christer Solskogen Message-ID: <20110126204233.GN75125@dan.emsphone.com> References: <4D3FDE82.4000105@mail.zedat.fu-berlin.de> <20110126195800.GM75125@dan.emsphone.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-OS: FreeBSD 8.2-PRERELEASE User-Agent: Mutt/1.5.21 (2010-09-15) X-Virus-Scanned: clamav-milter 0.96.4 at email2.allantgroup.com X-Virus-Status: Clean X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.6 (email2.allantgroup.com [199.67.51.78]); Wed, 26 Jan 2011 14:42:34 -0600 (CST) X-Scanned-By: MIMEDefang 2.68 on 199.67.51.78 Cc: "O. Hartmann" , freebsd-questions@freebsd.org Subject: Re: FreeBSD 9/ZFS: Striped Pool (2 disks) migrating to mirror (onto additional disk) 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: Wed, 26 Jan 2011 20:42:35 -0000 In the last episode (Jan 26), Christer Solskogen said: > On Wed, Jan 26, 2011 at 8:58 PM, Dan Nelson wrote: > > In the last episode (Jan 26), Christer Solskogen said: > >> On Wed, Jan 26, 2011 at 9:42 AM, O. Hartmann wrote: > >> > My question is: is it possible to migrate the two-disk pool without > >> > data loss into a mirrored pool by adding the one 2TB-disk? > >> > >> No, you cant create a two-way mirror of three disks with ZFS. The only > >> way of doing what you want by creating a gmirror (or by hardware raid) > >> of the two 1TB disks. > > > > You can, if you partition the 2tb disk into two smaller volumes, each > > the same size as one of the 1tb disks, then add one of those as a mirror > > of each original disk.  You'll end up with two mirrored vdevs in the > > pool. Performance probably won't be as good as a real mirror, though, > > since zfs doesn't know that two of its physical disks share a spindle. > > Rememer that he also asked to do this without data loss. As far as I know > you cant remove devices from a vdev. If he is willing to accept data loss > there are a lots of ways of doing it. ZFS lets you add and detach mirrors on the fly, since you're not changing the capacity of the pool itself. Sure, you're going to lose the contents of the large 2TB drive, but that's sort of assumed. You can't convert 4TB of non-mirrored disks into 2TB of mirrored disks without losing 2TB of space. Just make sure you have less than 2TB total used data on all volumes, and copy the data off the 2TB filessytem onto the striped 1+1TB one before repartitioning and adding the mirrors. zpool attach [-f] pool device new_device Attaches new_device to an existing zpool device. The existing device cannot be part of a raidz configuration. If _device_ is not currently part of a mirrored configuration, _device_ automatically transforms into a two-way mirror of _device_ and _new_device_. If _device_ is part of a two-way mirror, attaching _new_device_ creates a three-way mirror, and so on. In either case, _new_device_ begins to resilver immediately. (Do not confuse with zpool add, which adds a whole new vdev to the pool. vdevs cannot be removed once added) -- Dan Nelson dnelson@allantgroup.com