I'll answer myself.
Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
For some unexplained reasons, it calls O_DIRECT flag still:
strace ./td-util create vhd 2048 /path/to/file
open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1
EINVAL (Invalid argument)
exit_group(22) = ?
+++ exited with 22 +++
Checking other files with O_WRONLY flag doesn't bring any ideas as none
of them use "O_DIRECT".
lock.c: fd = open(buf, O_WRONLY | O_CREAT, 0644);
lock.c: fd = open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
lock.c: fd = open(lockfn_flink, O_WRONLY | O_CREAT, 0644);
tapdisk-vbd.c: fd = open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 0666);
td.c: fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
Any ideas how to fix FileSR for ZFS on Linux?
Seems like I'm left with iScsi approach only.
Thanks,
Dawid
On 30/12/14 18:11, Dawid Kowalski wrote:
Hi Guys,
Just wanted to report that file based Storage Repository won't work on
Linux systems as td-util is required O_DIRECT when creating image file
not supported on ZFS (Linux).
When creating vm, i.e. vm-import it calls td-util similar to below:
td-util create vhd 2048 /path/to/file
Strace shows:
open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1
EINVAL (Invalid argument)
I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty
hack than proper solution of the problem.
Regards,
Dawid
_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api