Skip site navigation (1)Skip section navigation (2)
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>