ZFSGuru features

Status
Not open for further replies.
H

HwyXingFrog

Guest
Is it anywhere in the roadmap to have any of the features in ZFSGuru in FreeNAS 8.x?

I was so close to using ZFSGuru, especially considering how well it worked with my WDxxEARS 4k drives.

But after using ZFSGuru for a little bit I saw a few overall features that would be very nice in FreeNAS.

Considering ZFSGuru is dependent on only one person who is developing it (who has recently disappeared without a trace), and possibly won't have any further development done on it, I'll be choosing FreeNAS as my long term solution.

Thanks.
 

horsii

Cadet
Joined
Jun 11, 2011
Messages
5
Can you be a bit more specific around what features you would like from it?

Personally I prefer the full install of the OS rather than an embedded install - and being able to do a full install onto a bootable zfs mirror.

Other than that freenas is/will be at 8.1 the goods.

Paul
 

jafin

Explorer
Joined
May 30, 2011
Messages
51
I did like the fact that zfsguru was a more complete version of freebsd so that adding packages was easier. I hope in future adding packages/modules to freenas may eventuate.

I also enjoyed the zfsguru benchmark which drew nice graphs of the performance of the drives in various raid configurations.
 

pauldonovan

Explorer
Joined
May 31, 2011
Messages
76
I'd like an equivalent to the feature where you can see the status of a scrub or resilver of a pool.

I also prefer ZFSguru's separation of formatting disks and creating pools from them. I think that's too much of a fundamental change to expect it to appear in FreeNAS though.

Paul
 

ghenry22

Cadet
Joined
Jun 8, 2011
Messages
5
I would suggest incorporating the commented loader.conf that ZFSguru uses. By default all options are commented out but each has some explanation on what it affects, values you can choose and what it effects. I found it to be a great boost to Freenas performance by just tweaking a few options and having the commented config file makes it nice and clear.

Ideally would be to make it possible to modify these values directly through the webgui rather than dropping to CLI.

Here is a cut/paste of the loader.conf from ZFSGuru:

#
## ZFSguru advanced tuning
## note that editing loader.conf only works on USB or ZFS-on-root installs
#

## KERNEL MEMORY
#
# Do not exceed your RAM size! Note available RAM is lowered by 500MB when
# using the USB or LiveCD distribution. You can increase kernel memory up to
# 1GB less than your physical RAM.
#
# if you exceed the limits of kernel memory, you may get a panic like this:
# panic: kmem_malloc(131072): kmem_map too small: <totalkmem> total allocated
#
#vm.kmem_size="3g"
#vm.kmem_size_max="3g"


## ZFS tunables

# ARC limits
# tune these in according with vm.kmem_size setting; you can increase it
# up to the value of vm.kmem_size minus 1GB.
#
# note: kernel memory size needs to be larger than maximum ARC size (arc_max)
# note: zfs uses more memory than just the ARC; don't make the ARC too big
#
#vfs.zfs.arc_min="512m"
#vfs.zfs.arc_max="1g"

# ARC metadata limits
# increase to cache more metadata (recommended if you have enough RAM)
#vfs.zfs.arc_meta_limit="128m"

# ZFS prefetch disable
# setting this value to 0 will force prefetching to be used even when
# ZFS considers it undesirable if you have <= 4GiB RAM or running 32-bit
#vfs.zfs.prefetch_disable="0"

# ZFS transaction groups (txg)
# ZFS is not unlike a transactional database in the sense that it processes
# your data in transaction groups. The bigger the txg is, the more data it
# can hold but also the longer flushing transaction groups will take.
# experiment with these values to improve temporary 'lags' or 'hangs'
# override maximum txg size in bytes
#vfs.zfs.txg.write_limit_override="0"
# target number of seconds a txg will be synced (tune this!)
#vfs.zfs.txg.synctime="5"
# maximum number of seconds a txg will be synced (tune this!)
#vfs.zfs.txg.timeout="30"

# vdev cache settings
# should be safe to tune; but be careful about your memory limits
#vfs.zfs.vdev.cache.bshift="16"
#vfs.zfs.vdev.cache.size="10m"
#vfs.zfs.vdev.cache.max="16384"

# vdev pending requests
# this manages the minimum/maximum of outstanding I/Os on the vdevs
# this should be safe to tune; best setting depends on your disks
# ssds may prefer higher settings
#vfs.zfs.vdev.min_pending="4"
#vfs.zfs.vdev.max_pending="32"

# other vdev settings
# I/O requests are aggregated up to this size
#vfs.zfs.vdev.aggregation_limit="131072"
# exponential I/O issue ramp-up rate
#vfs.zfs.vdev.ramp_rate="2"
# used for calculating I/O request deadline
#vfs.zfs.vdev.time_shift="6"

# disable BIO flushes
# disables metadata sync mode and uses async I/O without flushes
# ONLY USE FOR PERFORMANCE TESTING
#vfs.zfs.cache_flush_disable="1"

# disable ZIL (ZFS Intent Log)
# warning: disabling can sometimes improve performance, but you can lose data
# that was recently written if a crash or power interruption occurs.
# ONLY USE FOR PERFORMANCE TESTING
#vfs.zfs.zil_disable="1"

## other tuning
kern.maxfiles="950000"

## mandatory kernel modules (REQUIRED)
zfs_load="YES"
#geom_uzip_load="YES"
#tmpfs_load="YES"

## recommended kernel modules
ahci_load="YES"
siis_load="YES"

## optional kernel modules
#geom_md_load="YES"
#nullfs_load="YES"
#unionfs_load="YES"

# end #
 

ProtoSD

MVP
Joined
Jul 1, 2011
Messages
3,348
ghenry,

I think that's an excellent suggestion, I would like to see something like that also. I already have a tweaked loader.conf, but doing it from the GUI could be useful. I think there was a plugin called Kerntune or something like that in version .7 that would analyze your system suggest settings. Something like that in combination with a GUI interface would be cool.
 

sjieke

Contributor
Joined
Jun 7, 2011
Messages
125
@protosd
What are the tweaks you put in loader.conf? And what are the benefits you received from it?
Next weekend I'm going to build my first NAS and my hardware will be very similar to yours (Atom D525, 6 x 2TB and 4GB RAM) so your info could be very usefull to me :)
 

ProtoSD

MVP
Joined
Jul 1, 2011
Messages
3,348
Well I'm happy to post them, but I can't really explain them that well. It was mostly trial and error and collecting what other people had done.

Man, the threads on this forum are really scattered, but I posted in another thread a link for ZFS tuning.

Anyway, some of the other settings are for network performance and can actually be put in another config file sysctl.conf, but I just decided to clump them into one place to keep track of them easier during upgrades since they don't get saved with your GUI settings and you'll lose them if you don't make a copy when you upgrade.

Also, in case you are uninformed like I was, use the AMD64 image, otherwise a few of these settings won't work because the kernel needs certain options compiled into it that the i386 kernel doesn't have by default.

If I knew what I know now, I probably would have just started out with 8GB of RAM too. Actually based on the list @ghenry22 posted, I may try changing some of my settings. I did have some problems in the beginning with FreeNAS crashing or hanging while trying to do big file transfers (many files). I'm sure what I have isn't perfect, but it works for me at the moment.
 

Attachments

  • loader.conf.txt
    1.5 KB · Views: 714

Tekkie

Patron
Joined
May 31, 2011
Messages
353
Looking at those number they don't seem to 'match' a 8GB RAM system, or am I wrong?
 

ProtoSD

MVP
Joined
Jul 1, 2011
Messages
3,348
No, they're for a 4GB system. I was just saying I wish I had bought 8GB of RAM to start with. But if you have any suggestions for improvements I'm not even close to an expert on ZFS tuning.... ;-)
 

sjieke

Contributor
Joined
Jun 7, 2011
Messages
125
I saw you have prefetch disabled, vfs.zfs.prefetch_disable="1", but according to this article I think you may benefit from enabling it. Or did you test this already and the performance degraded?
 

ProtoSD

MVP
Joined
Jul 1, 2011
Messages
3,348
Hahhaha @sjieke! Thank you. You know what happened was during an upgrade my loader.conf got wiped out. When you first boot it gives you a warning that says "prefetch is disabled by default if you have 4GB (or less) RAM". When I recreated my loader.conf I somehow overlooked this!

Read performance isn't a huge issue for me because I'm not streaming or anything (so far), but I fixed it anyway. Thanks again for catching that.
 

sjieke

Contributor
Joined
Jun 7, 2011
Messages
125
I'm glad I could help :)
 

D-Joe

Dabbler
Joined
Jun 17, 2011
Messages
11
Hi,
does anyone have a loader.conf for a 8GB Ram system or a good documentation so i can set it up on my own?
 

D-Joe

Dabbler
Joined
Jun 17, 2011
Messages
11
Thanks,
i've the following setup:
Board: ASUS E35M1-I
RAM: 8GB Kingston ValueRAM DIMM
HDD: 6x Hitachi Deskstar 7K3000 2000GB

Running in a Raid-Z-2
 

dmt0

Dabbler
Joined
Oct 28, 2011
Messages
47
Hey protosd,
Did you have to recompile the kernel for this loader.conf to work?
 

dmt0

Dabbler
Joined
Oct 28, 2011
Messages
47
I'd be interested to know this if possible?

If you're using a release later than 8.0.3 RC2 (we're talking x86 here - 32 bit), you don't need to recompile. If for whatever reason you want to use an older release, a recompile with KVA_PAGES=512 would be needed. Otherwise you'll have a panic on boot because of these values:

vm.kmem_size="1536M"
vm.kmem_size_max="2048M"
 
Status
Not open for further replies.
Top