Bug 1394681

Summary: RFE: qemu-kvm: support multiple volume hosts for gluster volumes
Product: Red Hat Enterprise Linux 7 Reporter: SATHEESARAN <sasundar>
Component: qemu-kvmAssignee: Jeff Cody <jcody>
Status: CLOSED WONTFIX QA Contact: Suqin Huang <shuang>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.3CC: chayang, coli, juzhang, knoel, meyang, michen, ngu, pingl, rbalakri, sasundar, virt-maint
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-10-01 02:46:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1283895    
Bug Blocks:    

Description SATHEESARAN 2016-11-14 08:48:16 UTC
Description of problem:
-----------------------
qemu provides native driver for glusterfs ( which uses libgfapi of glusterfs ), for the VMs to access their disk images.

If the host section contains more than one host, I am unable to start the VM

Version-Release number of selected component (if applicable):
-------------------------------------------------------------
RHEL 7.3
RHGS 3.2.0 ( interim build, not yet GA'ed )
qemu-img-1.5.3-126.el7.x86_64
ipxe-roms-qemu-20160127-5.git6366fa7a.el7.noarch
qemu-kvm-common-1.5.3-126.el7.x86_64
libvirt-daemon-driver-qemu-2.0.0-10.el7.x86_64
qemu-kvm-1.5.3-126.el7.x86_64
libvirt-daemon-config-network-2.0.0-10.el7.x86_64
libvirt-python-2.0.0-2.el7.x86_64
libvirt-daemon-driver-storage-2.0.0-10.el7.x86_64
libvirt-daemon-2.0.0-10.el7.x86_64
libvirt-daemon-driver-qemu-2.0.0-10.el7.x86_64
libvirt-daemon-driver-interface-2.0.0-10.el7.x86_64
libvirt-daemon-driver-network-2.0.0-10.el7.x86_64
libvirt-daemon-config-nwfilter-2.0.0-10.el7.x86_64
libvirt-daemon-driver-nodedev-2.0.0-10.el7.x86_64
libvirt-2.0.0-10.el7.x86_64
libvirt-daemon-driver-nwfilter-2.0.0-10.el7.x86_64
libvirt-daemon-driver-secret-2.0.0-10.el7.x86_64
libvirt-client-2.0.0-10.el7.x86_64
libvirt-daemon-driver-lxc-2.0.0-10.el7.x86_64

How reproducible:
-----------------
Always

Steps to Reproduce:
-------------------
1. Create a VM image on the replica 3 gluster volume ( there are 3 gluster servers )
2. Create a VM ( by editing the vm.xml to make following changes )
 <disk type='network' device='disk'>
      <driver name='qemu' type='raw'/>
      <source protocol='gluster' name='rep3vol/vm7.img'>
        <host name='dhcp37-54.lab.eng.blr.redhat.com' port='24007'/>
        <host name='dhcp37-138.lab.eng.blr.redhat.com' port='24007'/>
        <host name='dhcp37-50.lab.eng.blr.redhat.com' port='24007'/>
      </source>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
3. Start the VM

Actual results:
---------------
Unable to start the VM

Expected results:
-----------------
VM should get started

Additional info:
----------------
Errors as seen :
[root@rhs-client10 repvol]# virsh start vm7
error: Failed to start domain vm7
error: internal error: process exited while connecting to monitor: 2016-11-14T08:29:44.266843Z qemu-kvm: -drive file.driver=gluster,file.volume=rep3vol,file.path=/vm7.img,file.server.0.type=tcp,file.server.0.host=dhcp37-54.lab.eng.blr.redhat.com,file.server.0.port=24007,file.server.1.type=tcp,file.server.1.host=dhcp37-138.lab.eng.blr.redhat.com,file.server.1.port=24007,file.server.2.type=tcp,file.server.2.host=dhcp37-50.lab.eng.blr.redhat.com,file.server.2.port=24007,format=raw,if=none,id=drive-virtio-disk0,werror=stop,rerror=stop: could not open disk image drive-virtio-disk0: The 'gluster' block driver requires a file name

Comment 1 SATHEESARAN 2016-11-14 08:54:36 UTC
The same issue was fixed with qemu-kvm-rhev (with this bug - https://bugzilla.redhat.com/show_bug.cgi?id=1247933

I suppose the same fix is required for qemu-kvm to support multiple gluster hosts