zpool doesn't upgrade - Re: ZFS directory with a large number of files

Ronald Klop ronald-freebsd8 at klop.yi.org
Tue Aug 2 19:59:50 UTC 2011


On Tue, 02 Aug 2011 12:55:43 +0200, seanrees at gmail.com  
<seanrees at gmail.com> wrote:

> On Tue, Aug 2, 2011 at 11:10 AM, Daniel Kalchev <daniel at digsys.bg> wrote:
>>> If it is a limitation in ZFS it would be nice to know that, perhaps it
>>> truly, really is a bug that can be avoided (or it's inherent in the  
>>> way ZFS
>>> handles such things)
>>
>> It is possible  that there is not enough memory in ARC to cache that  
>> large
>> directory.
>>
>> Other than that, perhaps in ZFS it would be easier to prune the unused
>> directory entries, than it is in UFS. It looks like this is not  
>> implemented.
>>
>> Another reason might be some FreeBSD specific implementation issue for
>> fstatfs.
>>
>> In any case, the data available is not sufficient. More information  
>> would
>> help, like how much RAM this system has, how much ARC uses, some ARC  
>> stats.
>
> Which sysctl's would you like?
>
> I grabbed these to start:
> kstat.zfs.misc.arcstats.size: 118859656
> kstat.zfs.misc.arcstats.hdr_size: 3764416
> kstat.zfs.misc.arcstats.data_size: 53514240
> kstat.zfs.misc.arcstats.other_size: 61581000
>
> kstat.zfs.misc.arcstats.hits: 46762467
> kstat.zfs.misc.arcstats.misses: 16999907
>
> The machine has 2GB of memory.
>
>> What made me wonder is .. how exactly the kernel and zpool disagree on  
>> zpool
>> version? What is the pool version in fact?
>
> % dmesg | grep ZFS
> ZFS NOTICE: Prefetch is disabled by default if less than 4GB of RAM is  
> present;
>             to enable, add "vfs.zfs.prefetch_disable=0" to  
> /boot/loader.conf.
> ZFS filesystem version 5
> ZFS storage pool version 28
>
> % zpool get version tank
> NAME  PROPERTY  VALUE    SOURCE
> tank  version   15       local
>
> % zpool upgrade tank
> This system is currently running ZFS pool version 15.
>
> Pool 'tank' is already formatted using the current version.
>
>
> Sean

I think this zpool upgrade thing is weird. Can you try 'zpool upgrade -a'?

Mine says:
zpool get version zroot
NAME   PROPERTY  VALUE    SOURCE
zroot  version   28       default

Mind the SOURCE=default vs. SOURCE=local.
Is it possible you did 'zpool set version=15 tank' in the past? You can  
check that with 'zpool history'.

NB: if you upgrade the boot pool, don't forget to upgrade to boot loader.  
(See UPDATING)

Ronald.


More information about the freebsd-stable mailing list