<p><br>
On Jan 14, 2013 8:49 PM, &quot;Joe Julian&quot; &lt;<a href="mailto:joe@julianfamily.org">joe@julianfamily.org</a>&gt; wrote:<br>
&gt;<br>
&gt; That&#39;s impressive, thanks. <br>
&gt;<br>
&gt; To be clear, that follows the second suggestion which requires the library in the 3.4 qa release, right? </p>
<p>Yes this uses libgfapi from 3.4. So essentially it is better to use libgfapi instead of Fuse mount from guest.</p>
<p>&gt;<br>
&gt; Bharata B Rao &lt;<a href="mailto:bharata.rao@gmail.com">bharata.rao@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Joe,<br>
&gt;&gt;<br>
&gt;&gt; On Sun, Jan 13, 2013 at 8:41 PM, Joe Julian &lt;<a href="mailto:joe@julianfamily.org">joe@julianfamily.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; You have two options:<br>
&gt;&gt;&gt; 1. Mount the GlusterFS volume from within the VM and host the data you&#39;re<br>
&gt;&gt;&gt; operating on there. This avoids all the additional overhead of managing a<br>
&gt;&gt;&gt; filesystem on top of FUSE.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; In my very limited testing, I have found that using the gluster data<br>
&gt;&gt; drive as a 2nd gluster drive (1st being the VM image itself) to QEMU<br>
&gt;&gt; gives better performance than mounting the gluster volume directly<br>
&gt;&gt; from guest.<br>
&gt;&gt;<br>
&gt;&gt; Here are some numbers from FIO read and write:<br>
&gt;&gt; Env: Dual core x86_64 system with F17 running 3.6.10-2.fc17.x86_64<br>
&gt;&gt; kernel for host and F18 3.6.6-3.fc18.x86_74 for guest.<br>
&gt;&gt;<br>
&gt;&gt; Case 1:<br>
&gt;&gt; Mount a gluster volume (test) from inside guest and run FIO<br>
&gt;&gt; read and writes into the mounted gluster drive.<br>
&gt;&gt; [host]# qemu -drive  file=gluster://bharata/rep/F18,if=virtio,cache=none<br>
&gt;&gt; [guest]# glusterfs -s bharata --volfile-id=test /mnt<br>
&gt;&gt;<br>
&gt;&gt; Case 2: Specify gluster volume (test) as a drive to QEMU itself.<br>
&gt;&gt; [host]# qemu -drive<br>
&gt;&gt; file=gluster://bharata/rep/F18,if=virtio,cache=none -drive<br>
&gt;&gt; file=gluster://bharata/test/F17,if=virtio,cache=none.<br>
&gt;&gt; [guest]# mount /dev/vdb3 /mnt<br>
&gt;&gt;<br>
&gt;&gt; In both the above cases, the VM image(F18) resides on GlusterFS volume<br>
&gt;&gt; (rep). And FIO read and writes are performed to /mnt/data1 in both<br>
&gt;&gt; cases.<br>
&gt;&gt;<br>
&gt;&gt; FIO aggregated bandwidth (kB/s) (Avg of 5 runs)<br>
&gt;&gt; Case1    Case 2<br>
&gt;&gt; read  28740     52309<br>
&gt;&gt; Write 27578     48765<br>
&gt;&gt;<br>
&gt;&gt; FIO load file is as follows:<br>
&gt;&gt; [global]<br>
&gt;&gt; ioengine=libaio<br>
&gt;&gt; direct=1<br>
&gt;&gt; rw=read # rw=write for write test<br>
&gt;&gt; bs=128k<br>
&gt;&gt; size=512m<br>
&gt;&gt; directory=/mnt/data1<br>
&gt;&gt; [file1]<br>
&gt;&gt; iodepth=4<br>
&gt;&gt; [file2]<br>
&gt;&gt; iodepth=32<br>
&gt;&gt; [file3]<br>
&gt;&gt; iodepth=8<br>
&gt;&gt; [file4]<br>
&gt;&gt; iodepth=16<br>
&gt;&gt;<br>
&gt;&gt; Of course this is just one case, I wonder if you have seen better<br>
&gt;&gt; numbers for guest FUSE mount case for any of the benchmarks you use ?<br>
&gt;&gt;<br>
&gt;&gt;&gt; 2. Try the 3.4 qa release and native GlusterFS support in the latest<br>
&gt;&gt;&gt; qemu-kvm.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Bharata.</p>