From owner-freebsd-fs@FreeBSD.ORG Sun Jan 27 10:36:14 2013 Return-Path: Delivered-To: fs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C2CF3901; Sun, 27 Jan 2013 10:36:14 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 4CD9DA06; Sun, 27 Jan 2013 10:36:14 +0000 (UTC) Received: from localhost (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by acme.spoerlein.net (8.14.6/8.14.6) with ESMTP id r0RAaC2Y099978 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Sun, 27 Jan 2013 11:36:12 +0100 (CET) (envelope-from uqs@FreeBSD.org) Date: Sun, 27 Jan 2013 11:36:12 +0100 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: current@FreeBSD.org, fs@FreeBSD.org Subject: Zpool surgery Message-ID: <20130127103612.GB38645@acme.spoerlein.net> Mail-Followup-To: current@FreeBSD.org, fs@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 10:36:14 -0000 Hey all, I have a slight problem with transplanting a zpool, maybe this is not possible the way I like to do it, maybe I need to fuzz some identifiers... I want to transplant my old zpool tank from a 1TB drive to a new 2TB drive, but *not* use dd(1) or any other cloning mechanism, as the pool was very full very often and is surely severely fragmented. So, I have tank (the old one), the new one, let's call it tank' and then there's the archive pool where snapshots from tank are sent to, and these should now come from tank' in the future. I have: tank -> sending snapshots to archive I want: tank' -> sending snapshots to archive Ideally I would want archive to not even know that tank and tank' are different, so as to not have to send a full snapshot again, but continue the incremental snapshots. So I did zfs send -R tank | ssh otherhost "zfs recv -d tank" and that worked well, this contained a snapshot A that was also already on archive. Then I made a final snapshot B on tank, before turning down that pool and sent it to tank' as well. Now I have snapshot A on tank, tank' and archive and they are virtually identical. I have snapshot B on tank and tank' and would like to send this from tank' to archive, but it complains: cannot receive incremental stream: most recent snapshot of archive does not match incremental source Is there a way to tweak the identity of tank' to be *really* the same as tank, so that archive can accept that incremental stream? Or should I use dd(1) after all to transplant tank to tank'? My other option would be to turn on dedup on archive and send another full stream of tank', 99.9% of which would hopefully be deduped and not consume precious space on archive. Any ideas? Cheers, Uli