Bug 1240877
| Summary: | Libvirt should check gluster pool source conflict when two hosts serve the same volume | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Yang Yang <yanyang> |
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
| Status: | CLOSED WONTFIX | QA Contact: | yisun |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.2 | CC: | dyuan, mzhan, pkrempa, pzhang, rbalakri, xuzhang, yisun |
| Target Milestone: | rc | ||
| 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-04-04 14:28:36 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: | |||
Gluster API supports the 'glfs_get_volumeid' call which returns a unique identifier for a volume which could be used to implement this fuction. The problem is that this would require us to open the gluster conection at the time when the pool is defined which is not desired. Additionally the pool source may not be available at that time which would make the check unreliable. Since it's not a issue if you have two pools with same source in case of the gluster pool I don't think it's worth adding the check. |
Description of problem: Given a gluster volume consists of over 2 bricks, define 1st gluster pool with host-0, then define 2st gluster pool with host-1, both pools have same source name and dir path (IOW, both pools are using same gluster volume as source), the function cannot check thus conflict. Version-Release number of selected component (if applicable): libvirt-1.2.17-1.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. prepare a gluster volume consists of 2 bricks # gluster volume info gluster-vol2 Volume Name: gluster-vol2 Type: Distribute Volume ID: 7b96a8b7-56d4-4e94-bf4e-4fab7db56988 Status: Started Snap Volume: no Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: 10.66.4.164:/br2 Brick2: 10.66.5.63:/br2 Options Reconfigured: server.allow-insecure: on performance.readdir-ahead: on auto-delete: disable snap-max-soft-limit: 90 snap-max-hard-limit: 256 2. define 1st gluster pool using Brick1 as source # virsh pool-define gluster.xml Pool gluster defined from gluster.xml # virsh pool-dumpxml gluster <pool type='gluster'> <name>gluster</name> <uuid>6a65fea0-6546-41be-98f0-1c4180eadca9</uuid> <capacity unit='bytes'>158970347520</capacity> <allocation unit='bytes'>107715432448</allocation> <available unit='bytes'>51254915072</available> <source> <host name='10.66.4.164'/> <dir path='/'/> <name>gluster-vol2</name> </source> </pool> 3. define 2nd gluster pool using Brick2 as source # virsh pool-define gluster-pool.xml Pool gluster1 defined from gluster-pool.xml # virsh pool-dumpxml gluster1 <pool type='gluster'> <name>gluster1</name> <uuid>1fa4a4c7-0828-436a-a7f4-e5655ab01968</uuid> <capacity unit='bytes'>158970347520</capacity> <allocation unit='bytes'>107715416064</allocation> <available unit='bytes'>51254931456</available> <source> <host name='10.66.5.63'/> <dir path='/'/> <name>gluster-vol2</name> </source> </pool> Actual results: 2 gluster pools are defined without source conflict Expected results: Should prompt source conflict when defining 2nd gluster pool Additional info: