Date: Tue, 01 Mar 2011 02:07:14 +0100 From: "Emil Smolenski" <am@raisa.eu.org> To: "Freddie Cash" <fjwcash@gmail.com> Cc: freebsd-fs@freebsd.org Subject: Re: [ZFS] Booting from zpool created on 4k-sector drive Message-ID: <op.vrm32cqdk84lxj@bolt.zol> In-Reply-To: <AANLkTi=w9_d=2W_-_F62AxenmdBs7rE%2BbVAbmR2e877y@mail.gmail.com> References: <op.vn2iid1qk84lxj@arrow> <4D6AAC9A.4000602@jrv.org> <op.vrmp2hrck84lxj@bolt.zol> <AANLkTi=w9_d=2W_-_F62AxenmdBs7rE%2BbVAbmR2e877y@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 01 Mar 2011 00:13:33 +0100, Freddie Cash <fjwcash@gmail.com> wrote: > On Mon, Feb 28, 2011 at 12:08 PM, Emil Smolenski <am@raisa.eu.org> wrote: >> On Sun, 27 Feb 2011 20:57:14 +0100, James R. Van Artsdalen >> <james-freebsd-fs2@jrv.org> wrote: >>> Emil Smolenski wrote: >>>> There is a hack to force zpool creation with minimum sector size equal >>>> to 4k: >>>> >>>> # gnop create -S 4096 ${DEV0} >>>> # zpool create tank ${DEV0}.nop >>>> # zpool export tank >>>> # gnop destroy ${DEV0}.nop >>>> # zpool import tank >>>> >>>> This change is permanent. The only possibility to change the value of >>>> ashift is: zpool destroy/create and restoring pool from backup. >>> >>> Is ashift a property of the pool or a property of the device? >> >> It is property of the ZFS pool. It is calculated when the pool is >> created >> based on the sector size advertised by devices. > > Can you point to where in the source this is set? And where it's used? > > I'd like to have this confirmed once and for all. :) > > I've seen conflicting reports around the web that it's a per-vdev > setting and that it's a per-pool setting. > > For example, this thread in the FreeBSD Forums shows it to be a > per-vdev setting: > https://forums.freebsd.org/showthread.php?t=21644 > > Yet many threads on the zfs-discuss mailing list say it's a per-pool > setting based on the first vdev added to the pool. It is property of vdev actually. I wrote ``it is property of ZFS pool'' in opposite to ``it is property of device''. Sorry for the confusion. There is no need to read sources to obtain this information -- zdb(1m) is sufficient. >>> I'm wonder about the disk replacement scenario, where the replacement >>> disk cannot be smaller than the disk it replaces. >> >> And the new disk must advertise sector size equal or smaller than >> 2**ashift of the existing pool. > > Why? What's the harm in running with ashift=12 (4 KB) on a drive that > uses 0.5 KB sectors? Wouldn't that be the best setup to use, to > future-proof the pool? Yes. That is exactly what I mean. See my first message in this thread for reference: http://lists.freebsd.org/pipermail/freebsd-fs/2010-December/010350.html James asks about disk replacement scenario. In this case you cannot use device with greater sector size than 2**ashift of the existing vdev as replacement: # diskinfo -v md0 |grep sectorsize 512 # sectorsize # zpool create test0 md0 # zdb test0 |grep ashift ashift=9 # diskinfo -v md1.nop |grep sectorsize 4096 # sectorsize # zpool replace test0 md0 md1.nop cannot replace md0 with md1.nop: devices have different sector alignment -- am
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.vrm32cqdk84lxj>