Bug 1371758
| Summary: | RFE:Add json pseudo protocol support for rbd | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Han Han <hhan> |
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
| Status: | CLOSED ERRATA | QA Contact: | lijuan men <lmen> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.4 | CC: | dyuan, jdenemar, mtessun, rbalakri, rjones, xuzhang, yanyang |
| Target Milestone: | rc | Keywords: | FutureFeature |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-2.5.0-1.el7 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-08-01 17:14:13 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: | 1457088 | ||
| Bug Blocks: | |||
|
Description
Han Han
2016-08-31 03:09:04 UTC
Added upstream:
commit 3de7da9448a5edb8440eeeb32b98f282880229e1
Author: Peter Krempa <pkrempa>
Date: Mon Sep 5 15:15:22 2016 +0200
util: storage: Add json pseudo protocol support for legacy RBD strings
RBD in qemu still uses only the legacy 'filename' syntax.
It works well with upstream libvirt:
# qemu-img create -f qcow2 -b 'json:{"file.driver":"rbd","file.filename":"rbd:rbd/hhan:mon_host=10.73.75.52"}' /var/lib/libvirt/images/rbd.img
Formatting '/var/lib/libvirt/images/rbd.img', fmt=qcow2 size=104857600 backing_file=json:{"file.driver":"rbd",,"file.filename":"rbd:rbd/hhan:mon_host=10.73.75.52"} encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
# virsh attach-disk V /var/lib/libvirt/images/nbd.img vdb --subdriver qcow2
Disk attached successfully
Read/Write on the image works well.
# virsh dumpxml V|awk '/<disk/,/<\/disk/'
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/V.qcow2'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/nbd.img'/>
<backingStore type='network' index='1'>
<format type='raw'/>
<source protocol='nbd'>
<host name='10.66.6.236' port='8888'/>
</source>
<backingStore/>
</backingStore>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/>
</disk>
# virsh detach-disk V vdb
Disk detached successfully
verify the bug
version:
libvirt-3.2.0-2.el7.x86_64
qemu-kvm-rhev-2.8.0-6.el7.x86_64
steps:
[root@lmen1 ~]# qemu-img create -f qcow2 -b 'json:{"file.driver":"rbd","file.filename":"rbd:lmen/test.img:mon_host=10.73.75.52"}' /var/lib/libvirt/images/test1.qcow2
Formatting '/var/lib/libvirt/images/test1.qcow2', fmt=qcow2 size=104857600 backing_file=json:{"file.driver":"rbd",,"file.filename":"rbd:lmen/test.img:mon_host=10.73.75.52"} encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@lmen1 ~]# qemu-img info /var/lib/libvirt/images/test1.qcow2
image: /var/lib/libvirt/images/test1.qcow2
file format: qcow2
virtual size: 100M (104857600 bytes)
disk size: 196K
cluster_size: 65536
backing file: json:{"file.driver":"rbd","file.filename":"rbd:lmen/test.img:mon_host=10.73.75.52"}
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
[root@lmen1 ~]# virsh attach-disk test /var/lib/libvirt/images/test1.qcow2 sda --subdriver qcow2
Disk attached successfully
[root@lmen1 ~]# virsh domblklist test
Target Source
------------------------------------------------
hda /var/lib/libvirt/images/test.qcow2
sda /var/lib/libvirt/images/test1.qcow2
[root@lmen1 ~]# virsh dumpxml test
...
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/test1.qcow2'/>
<backingStore type='network' index='1'>
<format type='raw'/>
<source protocol='rbd' name='lmen/test.img'>
<host name='10.73.75.52'/>
</source>
<backingStore/>
</backingStore>
<target dev='sda' bus='scsi'/>
<alias name='scsi0-0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
...
the disk can be read/wrote in the guest
[root@lmen1 ~]# virsh detach-disk test sda
Disk detached successfully
verify the bug
version:
libvirt-3.2.0-11.el7.x86_64
qemu-kvm-rhev-2.9.0-12.el7.x86_64
steps:
1)create the img
[root@lmen1 ~]# qemu-img create -f qcow2 -b 'json:{"file.driver":"rbd","file.filename":"rbd:lmen/test.img:mon_host=10.73.75.52"}' /var/lib/libvirt/images/test1.qcow2
qemu-img: Warning: 'filename' option specified. This is an unsupported option, and may be deprecated in the future
Formatting '/var/lib/libvirt/images/test1.qcow2', fmt=qcow2 size=104857600 backing_file=json:{"file.driver":"rbd",,"file.filename":"rbd:lmen/test.img:mon_host=10.73.75.52"} encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@lmen1 ~]# qemu-img info /var/lib/libvirt/images/test1.qcow2
image: /var/lib/libvirt/images/test1.qcow2
file format: qcow2
virtual size: 100M (104857600 bytes)
disk size: 196K
cluster_size: 65536
backing file: json:{"file.driver":"rbd","file.filename":"rbd:lmen/test.img:mon_host=10.73.75.52"}
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
2)hotplug
[root@lmen1 ~]# virsh attach-disk test /var/lib/libvirt/images/test1.qcow2 sdb --subdriver qcow2
Disk attached successfully
[root@lmen1 ~]# virsh domblklist test
Target Source
------------------------------------------------
hda /var/lib/libvirt/images/RHEL-7.4-x86_64-latest.qcow2
sda rhel7.3.iso
sdb /var/lib/libvirt/images/test1.qcow2
[root@lmen1 ~]# virsh dumpxml test
...
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/test1.qcow2'/>
<backingStore type='network' index='1'>
<format type='raw'/>
<source protocol='rbd' name='lmen/test.img'>
<host name='10.73.75.52'/>
</source>
<backingStore/>
</backingStore>
<target dev='sdb' bus='scsi'/>
<alias name='scsi0-0-0-1'/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
...
the disk can be read/wrote in the guest
[root@lmen1 ~]# virsh detach-disk test sdb
Disk detached successfully
[root@lmen1 ~]# virsh domblklist test
Target Source
------------------------------------------------
hda /var/lib/libvirt/images/RHEL-7.4-x86_64-latest.qcow2
sda rhel7.3.iso
there is not the disk in the guest
3)coldplug
start a guest with xml:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/test1.qcow2'/>
<target dev='sdb' bus='scsi'/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
[root@lmen1 ~]# virsh start test
Domain test started
[root@lmen1 ~]# virsh dumpxml test
...
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/test1.qcow2'/>
<backingStore type='network' index='1'>
<format type='raw'/>
<source protocol='rbd' name='lmen/test.img'>
<host name='10.73.75.52'/>
</source>
<backingStore/>
</backingStore>
<target dev='sdb' bus='scsi'/>
<alias name='scsi0-0-0-1'/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
...
the disk can be read/wrote in the guest
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2017:1846 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2017:1846 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2017:1846 |