From owner-freebsd-current@FreeBSD.ORG Tue Oct 27 22:17:42 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6223B106568F; Tue, 27 Oct 2009 22:17:42 +0000 (UTC) (envelope-from nork@ninth-nine.com) Received: from sakura.ninth-nine.com (unknown [IPv6:2001:2f0:104:80a1::25]) by mx1.freebsd.org (Postfix) with ESMTP id D33738FC1B; Tue, 27 Oct 2009 22:17:41 +0000 (UTC) Received: from nadesico.ninth-nine.com (ns1.ninth-nine.com [219.127.74.121] (may be forged)) (authenticated bits=0) by sakura.ninth-nine.com (8.14.3/8.14.3/NinthNine) with ESMTP id n9RMHZbZ098445; Wed, 28 Oct 2009 07:17:40 +0900 (JST) (envelope-from nork@ninth-nine.com) Date: Wed, 28 Oct 2009 07:17:34 +0900 From: Norikatsu Shigemura To: Robert Noland Message-Id: <20091028071734.e92e8e49.nork@ninth-nine.com> In-Reply-To: <1256571299.2502.219.camel@balrog.2hip.net> References: <1256517106.2502.205.camel@balrog.2hip.net> <1256571299.2502.219.camel@balrog.2hip.net> X-Mailer: Sylpheed 2.7.1 (GTK+ 2.16.6; i386-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-current@freebsd.org Subject: Re: GPT boot with ZFS RAIDZ "ZFS: i/o error - all block copies unavailable" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2009 22:17:42 -0000 Hi rnoland. On Mon, 26 Oct 2009 10:34:59 -0500 Robert Noland wrote: > > >> ZFS: i/o error - all block copies unavailable > > >> Invalid format > > >> FreeBSD/i386 boot > > >> Default: tank:/boot/kernel/kernel > > >> boot: > > > Could you type "status" at this point and tell what it shows? > > If I type status at this point I get: > > pool: tank > > config: > > NAME STATE > > tank ONLINE > > raidz1 ONLINE > > ad4p3 ONLINE > > ad6p3 ONLINE > > ad8p3 ONLINE > > ad10p3 ONLINE > > Which seems odd, since that's all the drives there are. So if it finds > > these it's already found all drives. My optimistic "Oh! I'll try and boot > > again" spirit was however crushed since it just results in the same error. > Ok, that is both good and frustrating... I haven't produced any boot > failures with all of the drives visible. Do, note that I just added > support for reading gang blocks to the loader. (basically untested, > since I haven't managed to create them at will) You will need to update > your partition boot code for it to be supported during early boot. i.e. > gpart bootcode -p /boot/gptzfsboot -i > The "all block copies unavailable" is a frustrating error, since all it > means is a failed read, but we don't get a clue what failed or why. > With the code that is in -CURRENT it will report gang blocks if found, > even if it fails to read them. I confirmed reproduce. 1. zpool list, and get SIZE and CAP. $ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 59.5G 48.4G 11.1G 81% ONLINE - 2. reduce AVAIL < 10% with creating dummy file like ... $ dd if=/dev/zero of=$HOME/DUMMY.FILE bs=1m count=5632 5632+0 records in 5632+0 records out 5905580032 bytes transferred in 49.822200 secs (118533104 bytes/sec) $ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 59.5G 53.9G 5.61G 90% ONLINE - 3. cd /boot/; cp -pr kernel kernel.err In this time, if reboot, we can get boot time error. 4. rm $HOME/DUMMY.FILE, and reboot 5. boot kernel.err on new-loader. I can get "ZFS: gang block detected!" message and overrun:D.