Saturday, September 13, 2008

zfs-fuse 0.5.0 released

Hi,

After resyncing the ZFS code in zfs-fuse to OpenSolaris build 98, I have (finally!) decided to make a new release.

I know that going from 0.4.0_beta1 to 0.5.0 is not the most logical thing to do.

However, if you consider that 0.4.0_beta1 was released more than 18 months ago and if you consider all the improvements that have been made since then, it makes a little more sense :-)

(By the way, if you still running 0.4.0_beta1... please, please, please upgrade *now* - serious bugs have been fixed).

This release brings us up-to-date with ZFS pool version 13 (try "zpool upgrade -v").
You can read about any zfs-fuse specific fixes or enhancements in the CHANGES file, although I'm sure I missed a few things.

One thing to mention is that there's no development going on in zfs-fuse in terms of missing features (the ones in the STATUS file). At the moment you can only expect bug fixes and ZFS code updates.

For those of you who have not been following zfs-fuse development closely, please be assured that if you are using IDE, SATA or SCSI disks, you no longer need to disable the write caches of your devices (thanks to Eric Anopolsky).

However, that is only true if you use raw disks or partitions as your vdevs -- if you use LVM, EVMS or other devices (such as loop devices), the disks' write caches still should be manually disabled to avoid potential problems.

If you want peace of mind you can check your syslog right after zfs-fuse starts to do any I/O - zfs-fuse will notify you if it can't flush the write cache.

Enjoy!

29 comments:

Rajgopal V said...

Hey.. Seriously.. Great work... Great work...
I'm new to linux programming... So, I've one question for you-why did u choose fuse for zfs...? Why not write a kernel level file system...?

wizeman said...

Thanks rajgopal.

I chose FUSE as opposed to a kernel-level implementation because this project originally started as a Google Summer of Code program.

This meant that I had to reach a reasonable set of goals for the project in only 3 months time and there couldn't be any licensing controversies (if I wanted to have my project approved).

Also, I did not have any kernel-level programming experience.

Nowadays, it's just way too much work for me to do it on my spare time...

Scramblejams said...

Congratulations! Fantastic work. And, great to know the project is still alive. I have high hopes of chucking ext3 entirely some day soon.

Since it appears from the STATUS file that new features aren't coming until 0.6.0, does your statement that you're not working on missing features mean there's no progress towards 0.6.0 currently foreseen?

Rajgopal V said...

Hmmm... hey wizeman.. I'm doing my engineering final year.. For my project, i've choosen to write a file system.. it would be "VERY" helpful if u help me out.. as i said i'm new to linux programming. so don't know exatly where to start.. please contact me --

raja.fire@gmail.com.

for now, i'm leaning linux kernel and file system basics... also, i'm going through the CODE of your ZFS-FUSE first version...

regomodo said...

Good to hear something again. Well done on the effort so far, it is much appreciated. Who knows, maybe zfs-fuse can be the one that has expandable raidz pools?

Alex said...

Sweet. I thought this project was dead. Can't wait to try out the new version.

Ron said...

Thank you for all your work. I have been running zfs on external USB drives with Ubuntu for some time now.

Anonymous said...

cc1: warnings being treated as errors
cmd/zdb/zdb.c: In function 'zdb_dump_block_raw':
cmd/zdb/zdb.c:2007: error: ignoring return value of 'write', declared with attribute warn_unused_result
scons: *** [cmd/zdb/zdb.o] Error 1
scons: building terminated because of errors.

Anonymous said...

Keep up the *great* work.

BTW, you should create the 0.5x branch in the hg repository ;).

krichard said...

i'm trying for the first time zfs-fuse,
my scons compilation attempts in fedora 9 gives -

"zfs-fuse/fuse.h:31:32: error: fuse/fuse_lowlevel.h: No such file or directory"

the file fuse_lowlevel.h is not in the downloaded zfs-fuse-0.5.0.tar.bz2

thanks for any help on this.

Anonymous said...

cc1: warnings being treated as errors
cmd/zdb/zdb.c: In function 'zdb_dump_block_raw':
cmd/zdb/zdb.c:2007: error: ignoring return value of 'write', declared with attribute warn_unused_result
scons: *** [cmd/zdb/zdb.o] Error 1
scons: building terminated because of errors.


I have this Error too
Have someone en Idea???

Tomas Thiemel said...

Hi, I have a "small patch" for init script when you use /var/run on tmpfs:

#----------#
--- zfs-fuse.orig 2008-11-17 10:37:31.000000000 +0100
+++ zfs-fuse.new 2008-11-17 10:33:03.000000000 +0100
@@ -18,6 +18,8 @@
start() {
ebegin "Starting ZFS-FUSE"
checksystem || return 1
+ mkdir -p $(dirname $PIDFILE) || return 1 ### /var/run on tmpfs
+ touch $PIDFILE || return 1 ### just to be sure...
start-stop-daemon --start --exec ${EXEFILE} \
--user daemon --group disk -- --pidfile ${PIDFILE}
rv=$?
#----------#

//BR Tomas

Tomas Thiemel said...

Hi, I have a "small patch" (fixed) for init script when you use /var/run on tmpfs:

#----------#
--- zfs-fuse.old 2008-11-17 12:03:07.000000000 +0100
+++ zfs-fuse.new 2008-11-17 12:01:34.000000000 +0100
@@ -18,6 +18,7 @@
start() {
ebegin "Starting ZFS-FUSE"
checksystem || return 1
+ mkdir -p $(dirname $PIDFILE) || return 1 ### /var/run on tmpfs
start-stop-daemon --start --exec ${EXEFILE} \
--user daemon --group disk -- --pidfile ${PIDFILE}
rv=$?
#----------#

//BR Tomas

Daniel Varga said...

Wizeman,
great work on getting ZFS work under linux. I would love to see a kernel space implementation so would the linux community.
I had been thinking on writing an entirely new FS with similar features before I researched the existing ones and found ZFS. More or less that is what I wanted. Thanx for your contribution.

Anonymous said...

Hi there,

Great work on ZFS-Fuse. I wanted to move my Linux mdadm raid5's over to a Soalris host with ZFS but due to a cylinder limit Solaris doesnt seem to be able to see my disks.

Your ZFS-Fuse seems to solve that problem for me.

Do you feel your project is far enough along that ones data is safe and we can rely on the ZFS implementation as it stand at version 0.5?

Thanks for your efforts.

Dmitri said...

You actually need the FUSE developer libraries installed. That's clearly in the instructions.

Anonymous said...

If it's failing to compile and you're getting the "warn_unused_result" error then just edit "src/SConstruct", search for any "-Werror" flags and remove them.

"-Werror" turns warnings into fatal errors. The "warn_ununsed_result" shows up in newer versions of gcc/libc and is relatively harmless. Of course the true fix would be to change the ZFS-FUSE code to not ignore the results of whatever calls are showing warnings.

dalore said...

remove -Werror from CCFLAGS in the SConstruct file

Anonymous said...

This is really piece of great work! Few questions: Is it ready to store valuable data? Are You planning to continue with this project? And finally most important: Are pools and logical volumes compatible with sun's original? Thanks in advance.

Hartz said...

Please can you update again, and make sure it builds with recent version of gcc!

Rarokillo said...

Hi, there. Is the project live? I'm asking because there isn't any change from about a year.

Is this ready for using "in the real world"?

What about performance about runing ZFS on FUSE agains a ZFS on a solaris system?

Thanks a lot.

Emmanuel said...

Too bad there are not enough news about this project (september 2008, now jully 2009, almost 1 year).

I have been reading about it in a french linux magazine, and after playing a little with it it's just great !

Now the big question is : is it reliable enough to put important data on it ? Maybe I should just wait until btrfs to be ready instead ?

Anyway congratulations for your amazing work !
(did you know that mac os x is still using version 8 pools, and so it can't import pools created by zfs-fuse since it uses version 13 !!! What a shame, normally zfs support was supposed to be close to perfection on mac os x...).

Emmanuel said...

1 day of testing was enough : I just made a backup 1st of my home dir, then converted it to zfs, and enabled compression on it.

Af first everything seemed to work fine, except that after a while zfs-fuse started to eat all the available ram :
virt = 1560m !
RES = 190m

With it alone I got 179996k of swap on a machine which usually never swaps !

There doesn't seem to be any way to control this ram usage, so it's simply not usable for anything remotely important right now, just for testing...

Too bad !!!

Anonymous said...

Is this a dead project?

J Walker said...

The project is not dead based on the level of activity on the mailing list. However there is a reasonable question to pose on when the next milestone release will see the light of day.

Anonymous said...

When can weee some performance enhancements with zfs-fuse?

I am using zfs-fuse 0.5.1

Hardware:
evga x58 mobo
intel i7 920 cpu
12gb 1333 triple channel memory
two 250gb seagate mdadm mirrored 250 gb reiserfs
two 300gb seagate mirrored zpool zfs



here is a quick disk test

Reiserfs

see some performance enhancements with zfs-fuse?

I am using zfs-fuse 0.5.1

Hardware:
evga x58 mobo
intel i7 920 cpu
12gb 1333 triple channel memory
two 250gb seagate mdadm mirrored 250 gb reiserfs
two 300gb seagate mirrored zpool zfs



here is a quick disk test

Reiserfs

time sh -c "dd if=/dev/zero of=bigfile bs=8k count=250000 && sync"
250000+0 records in
250000+0 records out
2048000000 bytes (2.0 GB) copied, 22.2806 s, 91.9 MB/s

real 0m35.560s
user 0m0.048s
sys 0m4.604s

=================================================

ZFS pool mirrored disks
$ time sh -c "dd if=/dev/zero of=bigfile bs=8k count=250000 && sync"
250000+0 records in
250000+0 records out
2048000000 bytes (2.0 GB) copied, 95.0647 s, 21.5 MB/s

real 1m35.373s
user 0m0.160s
sys 0m3.624s

alo said...

Hello,

I am using ZFS actively in FreeBSD (both 7.2 and 8.0) and one feature I really like is zfs send/recv. With zfs-fuse, this is however, quite problematic, because zfs control interface (which is used for all zfs commands, including send and recv) seems to be single-threaded. So it is impossible to do simultaneous send/recv/set/get for a zfs-fuse instance.

Do you have any plans to improve this or have you already fixed this?

Good work! I would like to see zfs kernel module, though...

Anonymous said...

This blog seems not to follow the progress of http://zfs-fuse.net/

Anonymous said...

Господа!!!

Если вы интересуетесь немного политикой, то должны были заметить - эти резкие волнения в странах Африки
возникли неспроста.

Есть 2 версии этих событий - "официальная" и "неофициальная", и обе версии скорее уводят в сторону от реальных фактов.
[b]Версия 1:[/b] Каддафи - тиран и самодержец, стрелял в мирных граждан, поэтому его надо бы убрать.
[b]Версия 2:[/b] на самом деле Европе с Америкой захотелось немного Ливийской нефти, и они решили навести небольшой "дебош"

Рассмотрим версию 1.
Да, Каддафи уже тот ещё старик, ему конечно пора бы и на пенсию. Но известно ли вам, что конкретно в Ливии
народ имеет весьма высокие преференции при его правлении? Учителя получают под $3.000, выплаты безработным
порядка $1000 и так далее. Да, он стал укрощать группки взбунтовавшихся бедуинов, но кто-нибудь понимает
реальные причины этих бунтов?
Эта версия не выдерживает никакой критики.

Версия 2.
Нефть Ливии? Да, она отличается высоким качеством, Ливийская нефть очень чистая. Но её там не так много.
Да и к тому же, зачем тогда будоражить Египет и прочие африканские государства, которые весь прошлый
год вообще никого не тревожили и не волновали?! А тут вдруг - "тираны", "изверги" и т.п.

Да, эта ситуация дополнительно подогрела цены на нефть. Отдельным корпорациям это выгодно.

Но истина короче.
Каддафи не так давно начал объединять ближневосточные страны под идеей перейти на расчёт
за нефть и товары НЕ долларами, НЕ евро, а альтернативой всему этому. И Египет - одна из стран,
которая это поддержала...

Подробнее - здесь:
http://sterligov.livejournal.com/4389.html

Однако в популярных СМИ это никогда не скажут.

P.S. У Саддама Хусейна, кстати, тоже были такие начинания. Вообще, после кризиса ооочень многие
страны стали задумываться об ИЗБАВЛЕНИИ ОТ ЗАВИСИМОСТИ ОТ ДОЛЛАРА. Рано или поздно
это произойдёт. ФРС уже некуда понижать ставки.

Распространите это где сможете. Люди должны знать правду.


Кстати, это тоже по теме: СБ ООН принял резолюцию по Ливии, нанесла, Россия отказалась участвовать в военной операции в Ливии, опроверг, Франция перенесла вторжение в Ливию на сутки, НАТО, Франция перенесла вторжение в Ливию на сутки, Гитлера